diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp index a3075471092286128326a23a1a76103243b484fd..d63fb1d3f00172cba3fa8a15f449d6eb65199c8a 100644 --- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp +++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp @@ -47,7 +47,7 @@ Parameter::Parameter(const vf::basics::ConfigurationFile &configData, int numberOfProcesses, int myId) { ic.numprocs = numberOfProcesses; - ic.myid = myId; + ic.myid = myId; readConfigData(configData); // initLBMSimulationParameter(); @@ -111,13 +111,13 @@ void Parameter::readConfigData(const vf::basics::ConfigurationFile &configData) ////////////////////////////////////////////////////////////////////////// if (configData.contains("UseMeasurePoints")) this->setUseMeasurePoints(configData.getValue<bool>("UseMeasurePoints")); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// if (configData.contains("UseWale")) this->setUseWale(configData.getValue<bool>("UseWale")); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// if (configData.contains("UseAMD")) this->setUseAMD(configData.getValue<bool>("UseAMD")); - ////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////// if (configData.contains("SGSconstant")) this->setSGSConstant(configData.getValue<real>("SGSconstant")); ////////////////////////////////////////////////////////////////////////// @@ -583,65 +583,134 @@ void Parameter::setForcing(real forcingX, real forcingY, real forcingZ) this->hostForcing[2] = forcingZ; } void Parameter::setQuadricLimiters(real quadricLimiterP, real quadricLimiterM, real quadricLimiterD) -{ - this->hostQuadricLimiters[0] = quadricLimiterP; - this->hostQuadricLimiters[1] = quadricLimiterM; - this->hostQuadricLimiters[2] = quadricLimiterD; +{ + this->hostQuadricLimiters[0] = quadricLimiterP; + this->hostQuadricLimiters[1] = quadricLimiterM; + this->hostQuadricLimiters[2] = quadricLimiterD; } void Parameter::setPhi(real inPhi) { - Phi = inPhi; + Phi = inPhi; } void Parameter::setAngularVelocity(real inAngVel) { - angularVelocity = inAngVel; + angularVelocity = inAngVel; } void Parameter::setStepEnsight(unsigned int step) { - this->stepEnsight = step; + this->stepEnsight = step; } void Parameter::setOutputCount(unsigned int outputCount) { - this->outputCount = outputCount; + this->outputCount = outputCount; } void Parameter::setlimitOfNodesForVTK(unsigned int limitOfNodesForVTK) { this->limitOfNodesForVTK = limitOfNodesForVTK; } -void Parameter::setStartTurn(unsigned int inStartTurn) { startTurn = inStartTurn; } -void Parameter::setDiffOn(bool isDiff) { diffOn = isDiff; } -void Parameter::setCompOn(bool isComp) { compOn = isComp; } -void Parameter::setDiffMod(int DiffMod) { diffMod = DiffMod; } -void Parameter::setD3Qxx(int d3qxx) { this->D3Qxx = d3qxx; } +void Parameter::setStartTurn(unsigned int inStartTurn) +{ + startTurn = inStartTurn; +} +void Parameter::setDiffOn(bool isDiff) +{ + diffOn = isDiff; +} +void Parameter::setCompOn(bool isComp) +{ + compOn = isComp; +} +void Parameter::setDiffMod(int DiffMod) +{ + diffMod = DiffMod; +} +void Parameter::setD3Qxx(int d3qxx) +{ + this->D3Qxx = d3qxx; +} void Parameter::setMaxLevel(int maxlevel) { this->maxlevel = maxlevel - 1; - this->fine = this->maxlevel; + this->fine = this->maxlevel; parH.resize(this->maxlevel + 1); parD.resize(this->maxlevel + 1); } -void Parameter::setParticleBasicLevel(int pbl) { this->particleBasicLevel = pbl; } -void Parameter::setParticleInitLevel(int pil) { this->particleInitLevel = pil; } -void Parameter::setNumberOfParticles(int nop) { this->numberOfParticles = nop; } -void Parameter::setCalcParticles(bool calcParticles) { this->calcParticles = calcParticles; } -void Parameter::setStartXHotWall(real startXHotWall) { this->startXHotWall = startXHotWall; } -void Parameter::setEndXHotWall(real endXHotWall) { this->endXHotWall = endXHotWall; } -void Parameter::setTEnd(unsigned int tend) { ic.tend = tend; } -void Parameter::setTOut(unsigned int tout) { ic.tout = tout; } -void Parameter::setTStartOut(unsigned int tStartOut) { ic.tStartOut = tStartOut; } -void Parameter::setTimestepOfCoarseLevel(unsigned int timestep) { this->timestep = timestep; } +void Parameter::setParticleBasicLevel(int pbl) +{ + this->particleBasicLevel = pbl; +} +void Parameter::setParticleInitLevel(int pil) +{ + this->particleInitLevel = pil; +} +void Parameter::setNumberOfParticles(int nop) +{ + this->numberOfParticles = nop; +} +void Parameter::setCalcParticles(bool calcParticles) +{ + this->calcParticles = calcParticles; +} +void Parameter::setStartXHotWall(real startXHotWall) +{ + this->startXHotWall = startXHotWall; +} +void Parameter::setEndXHotWall(real endXHotWall) +{ + this->endXHotWall = endXHotWall; +} +void Parameter::setTEnd(unsigned int tend) +{ + ic.tend = tend; +} +void Parameter::setTOut(unsigned int tout) +{ + ic.tout = tout; +} +void Parameter::setTStartOut(unsigned int tStartOut) +{ + ic.tStartOut = tStartOut; +} +void Parameter::setTimestepOfCoarseLevel(unsigned int timestep) +{ + this->timestep = timestep; +} void Parameter::setCalcTurbulenceIntensity(bool calcVelocityAndFluctuations) { this->calcVelocityAndFluctuations = calcVelocityAndFluctuations; } -void Parameter::setCalcMedian(bool calcMedian) { ic.calcMedian = calcMedian; } -void Parameter::setCalcDragLift(bool calcDragLift) { this->calcDragLift = calcDragLift; } -void Parameter::setCalcCp(bool calcCp) { this->calcCp = calcCp; } -void Parameter::setWriteVeloASCIIfiles(bool writeVeloASCII) { this->writeVeloASCII = writeVeloASCII; } -void Parameter::setCalcPlaneConc(bool calcPlaneConc) { this->calcPlaneConc = calcPlaneConc; } -void Parameter::setTimeCalcMedStart(int CalcMedStart) { ic.tCalcMedStart = CalcMedStart; } -void Parameter::setTimeCalcMedEnd(int CalcMedEnd) { ic.tCalcMedEnd = CalcMedEnd; } -void Parameter::setOutputPath(std::string oPath) { ic.oPath = oPath; } +void Parameter::setCalcMedian(bool calcMedian) +{ + ic.calcMedian = calcMedian; +} +void Parameter::setCalcDragLift(bool calcDragLift) +{ + this->calcDragLift = calcDragLift; +} +void Parameter::setCalcCp(bool calcCp) +{ + this->calcCp = calcCp; +} +void Parameter::setWriteVeloASCIIfiles(bool writeVeloASCII) +{ + this->writeVeloASCII = writeVeloASCII; +} +void Parameter::setCalcPlaneConc(bool calcPlaneConc) +{ + this->calcPlaneConc = calcPlaneConc; +} +void Parameter::setTimeCalcMedStart(int CalcMedStart) +{ + ic.tCalcMedStart = CalcMedStart; +} +void Parameter::setTimeCalcMedEnd(int CalcMedEnd) +{ + ic.tCalcMedEnd = CalcMedEnd; +} +void Parameter::setOutputPath(std::string oPath) +{ + ic.oPath = oPath; +} void Parameter::setOutputPrefix(std::string oPrefix) { // std::string test = fname; @@ -652,103 +721,281 @@ void Parameter::setFName(std::string fname) // std::string test = fname; ic.fname = fname; } -void Parameter::setPrintFiles(bool printfiles) { ic.printFiles = printfiles; } -void Parameter::setReadGeo(bool readGeo) { ic.readGeo = readGeo; } -void Parameter::setDiffusivity(real Diffusivity) { ic.Diffusivity = Diffusivity; } -void Parameter::setTemperatureInit(real Temp) { ic.Temp = Temp; } -void Parameter::setTemperatureBC(real TempBC) { ic.TempBC = TempBC; } -void Parameter::setViscosity(real Viscosity) { ic.vis = Viscosity; } -void Parameter::setVelocity(real Velocity) { ic.u0 = Velocity; } -void Parameter::setViscosityRatio(real ViscosityRatio) { ic.vis_ratio = ViscosityRatio; } -void Parameter::setVelocityRatio(real VelocityRatio) { ic.u0_ratio = VelocityRatio; } -void Parameter::setDensityRatio(real DensityRatio) { ic.delta_rho = DensityRatio; } -void Parameter::setPressRatio(real PressRatio) { ic.delta_press = PressRatio; } +void Parameter::setPrintFiles(bool printfiles) +{ + ic.printFiles = printfiles; +} +void Parameter::setReadGeo(bool readGeo) +{ + ic.readGeo = readGeo; +} +void Parameter::setDiffusivity(real Diffusivity) +{ + ic.Diffusivity = Diffusivity; +} +void Parameter::setTemperatureInit(real Temp) +{ + ic.Temp = Temp; +} +void Parameter::setTemperatureBC(real TempBC) +{ + ic.TempBC = TempBC; +} +void Parameter::setViscosity(real Viscosity) +{ + ic.vis = Viscosity; +} +void Parameter::setVelocity(real Velocity) +{ + ic.u0 = Velocity; +} +void Parameter::setViscosityRatio(real ViscosityRatio) +{ + ic.vis_ratio = ViscosityRatio; +} +void Parameter::setVelocityRatio(real VelocityRatio) +{ + ic.u0_ratio = VelocityRatio; +} +void Parameter::setDensityRatio(real DensityRatio) +{ + ic.delta_rho = DensityRatio; +} +void Parameter::setPressRatio(real PressRatio) +{ + ic.delta_press = PressRatio; +} real Parameter::getTimeRatio() { - return this->getViscosityRatio()*pow(this->getVelocityRatio(),-2); + return this->getViscosityRatio() * pow(this->getVelocityRatio(), -2); } real Parameter::getForceRatio() { - return this->getDensityRatio()*pow(this->getViscosityRatio(),2); + return this->getDensityRatio() * pow(this->getViscosityRatio(), 2); } real Parameter::getLengthRatio() { - return this->getViscosityRatio()/this->getVelocityRatio(); -} -void Parameter::setRealX(real RealX) { ic.RealX = RealX; } -void Parameter::setRealY(real RealY) { ic.RealY = RealY; } -void Parameter::setPressInID(unsigned int PressInID) { ic.PressInID = PressInID; } -void Parameter::setPressOutID(unsigned int PressOutID) { ic.PressOutID = PressOutID; } -void Parameter::setPressInZ(unsigned int PressInZ) { ic.PressInZ = PressInZ; } -void Parameter::setPressOutZ(unsigned int PressOutZ) { ic.PressOutZ = PressOutZ; } -void Parameter::setMaxDev(int maxdev) { ic.maxdev = maxdev; } -void Parameter::setMyID(int myid) { ic.myid = myid; } -void Parameter::setNumprocs(int numprocs) { ic.numprocs = numprocs; } -void Parameter::setDevices(std::vector<uint> devices) { ic.devices = devices; } -void Parameter::setGeometryFileC(std::string GeometryFileC) { ic.geometryFileC = GeometryFileC; } -void Parameter::setGeometryFileM(std::string GeometryFileM) { ic.geometryFileM = GeometryFileM; } -void Parameter::setGeometryFileF(std::string GeometryFileF) { ic.geometryFileF = GeometryFileF; } -void Parameter::setRe(real Re) { ic.Re = Re; } -void Parameter::setFactorPressBC(real factorPressBC) { ic.factorPressBC = factorPressBC; } -void Parameter::setIsGeo(bool isGeo) { ic.isGeo = isGeo; } -void Parameter::setIsGeoNormal(bool isGeoNormal) { ic.isGeoNormal = isGeoNormal; } -void Parameter::setIsInflowNormal(bool isInflowNormal) { ic.isInflowNormal = isInflowNormal; } -void Parameter::setIsOutflowNormal(bool isOutflowNormal) { ic.isOutflowNormal = isOutflowNormal; } -void Parameter::setIsProp(bool isProp) { ic.isProp = isProp; } -void Parameter::setIsCp(bool isCp) { ic.isCp = isCp; } -void Parameter::setConcFile(bool concFile) { ic.isConc = concFile; } -void Parameter::setStreetVelocityFile(bool streetVelocityFile) { ic.streetVelocityFile = streetVelocityFile; } -void Parameter::setUseMeasurePoints(bool useMeasurePoints) { ic.isMeasurePoints = useMeasurePoints; } -void Parameter::setUseInitNeq(bool useInitNeq) { ic.isInitNeq = useInitNeq; } -void Parameter::setSimulatePorousMedia(bool simulatePorousMedia) { ic.simulatePorousMedia = simulatePorousMedia; } + return this->getViscosityRatio() / this->getVelocityRatio(); +} +void Parameter::setRealX(real RealX) +{ + ic.RealX = RealX; +} +void Parameter::setRealY(real RealY) +{ + ic.RealY = RealY; +} +void Parameter::setPressInID(unsigned int PressInID) +{ + ic.PressInID = PressInID; +} +void Parameter::setPressOutID(unsigned int PressOutID) +{ + ic.PressOutID = PressOutID; +} +void Parameter::setPressInZ(unsigned int PressInZ) +{ + ic.PressInZ = PressInZ; +} +void Parameter::setPressOutZ(unsigned int PressOutZ) +{ + ic.PressOutZ = PressOutZ; +} +void Parameter::setMaxDev(int maxdev) +{ + ic.maxdev = maxdev; +} +void Parameter::setMyID(int myid) +{ + ic.myid = myid; +} +void Parameter::setNumprocs(int numprocs) +{ + ic.numprocs = numprocs; +} +void Parameter::setDevices(std::vector<uint> devices) +{ + ic.devices = devices; +} +void Parameter::setGeometryFileC(std::string GeometryFileC) +{ + ic.geometryFileC = GeometryFileC; +} +void Parameter::setGeometryFileM(std::string GeometryFileM) +{ + ic.geometryFileM = GeometryFileM; +} +void Parameter::setGeometryFileF(std::string GeometryFileF) +{ + ic.geometryFileF = GeometryFileF; +} +void Parameter::setRe(real Re) +{ + ic.Re = Re; +} +void Parameter::setFactorPressBC(real factorPressBC) +{ + ic.factorPressBC = factorPressBC; +} +void Parameter::setIsGeo(bool isGeo) +{ + ic.isGeo = isGeo; +} +void Parameter::setIsGeoNormal(bool isGeoNormal) +{ + ic.isGeoNormal = isGeoNormal; +} +void Parameter::setIsInflowNormal(bool isInflowNormal) +{ + ic.isInflowNormal = isInflowNormal; +} +void Parameter::setIsOutflowNormal(bool isOutflowNormal) +{ + ic.isOutflowNormal = isOutflowNormal; +} +void Parameter::setIsProp(bool isProp) +{ + ic.isProp = isProp; +} +void Parameter::setIsCp(bool isCp) +{ + ic.isCp = isCp; +} +void Parameter::setConcFile(bool concFile) +{ + ic.isConc = concFile; +} +void Parameter::setStreetVelocityFile(bool streetVelocityFile) +{ + ic.streetVelocityFile = streetVelocityFile; +} +void Parameter::setUseMeasurePoints(bool useMeasurePoints) +{ + ic.isMeasurePoints = useMeasurePoints; +} +void Parameter::setUseInitNeq(bool useInitNeq) +{ + ic.isInitNeq = useInitNeq; +} +void Parameter::setSimulatePorousMedia(bool simulatePorousMedia) +{ + ic.simulatePorousMedia = simulatePorousMedia; +} void Parameter::setUseTurbulentViscosity(bool useTurbulentViscosity) { - ic.isTurbulentViscosity = useTurbulentViscosity; + ic.isTurbulentViscosity = useTurbulentViscosity; } void Parameter::setUseWale(bool useWale) { - ic.isWale = useWale; - if (useWale) setUseTurbulentViscosity(true); + ic.isWale = useWale; + if (useWale) + setUseTurbulentViscosity(true); } void Parameter::setUseAMD(bool useAMD) { - ic.isAMD = useAMD; - if (useAMD) setUseTurbulentViscosity(true); + ic.isAMD = useAMD; + if (useAMD) + setUseTurbulentViscosity(true); } void Parameter::setSGSConstant(real SGSConstant) { - ic.SGSConstant = SGSConstant; + ic.SGSConstant = SGSConstant; } void Parameter::setHasWallModelMonitor(bool hasWallModelMonitor) { - ic.hasWallModelMonitor = hasWallModelMonitor; -} - - -void Parameter::setIsF3(bool isF3) { this->isF3 = isF3; } - -void Parameter::setIsBodyForce(bool isBodyForce) { this->isBodyForce = isBodyForce; } - -void Parameter::setGridX(std::vector<int> GridX) { ic.GridX = GridX; } -void Parameter::setGridY(std::vector<int> GridY) { ic.GridY = GridY; } -void Parameter::setGridZ(std::vector<int> GridZ) { ic.GridZ = GridZ; } -void Parameter::setDistX(std::vector<int> DistX) { ic.DistX = DistX; } -void Parameter::setDistY(std::vector<int> DistY) { ic.DistY = DistY; } -void Parameter::setDistZ(std::vector<int> DistZ) { ic.DistZ = DistZ; } -void Parameter::setScaleLBMtoSI(std::vector<real> scaleLBMtoSI) { ic.scaleLBMtoSI = scaleLBMtoSI; } -void Parameter::setTranslateLBMtoSI(std::vector<real> translateLBMtoSI) { ic.translateLBMtoSI = translateLBMtoSI; } -void Parameter::setMinCoordX(std::vector<real> MinCoordX) { ic.minCoordX = MinCoordX; } -void Parameter::setMinCoordY(std::vector<real> MinCoordY) { ic.minCoordY = MinCoordY; } -void Parameter::setMinCoordZ(std::vector<real> MinCoordZ) { ic.minCoordZ = MinCoordZ; } -void Parameter::setMaxCoordX(std::vector<real> MaxCoordX) { ic.maxCoordX = MaxCoordX; } -void Parameter::setMaxCoordY(std::vector<real> MaxCoordY) { ic.maxCoordY = MaxCoordY; } -void Parameter::setMaxCoordZ(std::vector<real> MaxCoordZ) { ic.maxCoordZ = MaxCoordZ; } -void Parameter::setTempH(TempforBoundaryConditions *TempH) { this->TempH = TempH; } -void Parameter::setTempD(TempforBoundaryConditions *TempD) { this->TempD = TempD; } -void Parameter::setTempVelH(TempVelforBoundaryConditions *TempVelH) { this->TempVelH = TempVelH; } -void Parameter::setTempVelD(TempVelforBoundaryConditions *TempVelD) { this->TempVelD = TempVelD; } -void Parameter::setTempPressH(TempPressforBoundaryConditions *TempPressH) { this->TempPressH = TempPressH; } -void Parameter::setTempPressD(TempPressforBoundaryConditions *TempPressD) { this->TempPressD = TempPressD; } + ic.hasWallModelMonitor = hasWallModelMonitor; +} + +void Parameter::setIsF3(bool isF3) +{ + this->isF3 = isF3; +} + +void Parameter::setIsBodyForce(bool isBodyForce) +{ + this->isBodyForce = isBodyForce; +} + +void Parameter::setGridX(std::vector<int> GridX) +{ + ic.GridX = GridX; +} +void Parameter::setGridY(std::vector<int> GridY) +{ + ic.GridY = GridY; +} +void Parameter::setGridZ(std::vector<int> GridZ) +{ + ic.GridZ = GridZ; +} +void Parameter::setDistX(std::vector<int> DistX) +{ + ic.DistX = DistX; +} +void Parameter::setDistY(std::vector<int> DistY) +{ + ic.DistY = DistY; +} +void Parameter::setDistZ(std::vector<int> DistZ) +{ + ic.DistZ = DistZ; +} +void Parameter::setScaleLBMtoSI(std::vector<real> scaleLBMtoSI) +{ + ic.scaleLBMtoSI = scaleLBMtoSI; +} +void Parameter::setTranslateLBMtoSI(std::vector<real> translateLBMtoSI) +{ + ic.translateLBMtoSI = translateLBMtoSI; +} +void Parameter::setMinCoordX(std::vector<real> MinCoordX) +{ + ic.minCoordX = MinCoordX; +} +void Parameter::setMinCoordY(std::vector<real> MinCoordY) +{ + ic.minCoordY = MinCoordY; +} +void Parameter::setMinCoordZ(std::vector<real> MinCoordZ) +{ + ic.minCoordZ = MinCoordZ; +} +void Parameter::setMaxCoordX(std::vector<real> MaxCoordX) +{ + ic.maxCoordX = MaxCoordX; +} +void Parameter::setMaxCoordY(std::vector<real> MaxCoordY) +{ + ic.maxCoordY = MaxCoordY; +} +void Parameter::setMaxCoordZ(std::vector<real> MaxCoordZ) +{ + ic.maxCoordZ = MaxCoordZ; +} +void Parameter::setTempH(TempforBoundaryConditions *TempH) +{ + this->TempH = TempH; +} +void Parameter::setTempD(TempforBoundaryConditions *TempD) +{ + this->TempD = TempD; +} +void Parameter::setTempVelH(TempVelforBoundaryConditions *TempVelH) +{ + this->TempVelH = TempVelH; +} +void Parameter::setTempVelD(TempVelforBoundaryConditions *TempVelD) +{ + this->TempVelD = TempVelD; +} +void Parameter::setTempPressH(TempPressforBoundaryConditions *TempPressH) +{ + this->TempPressH = TempPressH; +} +void Parameter::setTempPressD(TempPressforBoundaryConditions *TempPressD) +{ + this->TempPressD = TempPressD; +} // void Parameter::setkInflowQ(unsigned int kInflowQ) //{ // this->kInflowQ = kInflowQ; @@ -773,176 +1020,380 @@ void Parameter::setTempPressD(TempPressforBoundaryConditions *TempPressD) { this //{ // this->QoutflowD = QoutflowD; //} -void Parameter::setkFull(std::string kFull) { ic.kFull = kFull; } -void Parameter::setgeoFull(std::string geoFull) { ic.geoFull = geoFull; } -void Parameter::setgeoVec(std::string geoVec) { ic.geoVec = geoVec; } -void Parameter::setcoordX(std::string coordX) { ic.coordX = coordX; } -void Parameter::setcoordY(std::string coordY) { ic.coordY = coordY; } -void Parameter::setcoordZ(std::string coordZ) { ic.coordZ = coordZ; } -void Parameter::setneighborX(std::string neighborX) { ic.neighborX = neighborX; } -void Parameter::setneighborY(std::string neighborY) { ic.neighborY = neighborY; } -void Parameter::setneighborZ(std::string neighborZ) { ic.neighborZ = neighborZ; } -void Parameter::setneighborWSB(std::string neighborWSB) { ic.neighborWSB = neighborWSB; } -void Parameter::setscaleCFC(std::string scaleCFC) { ic.scaleCFC = scaleCFC; } -void Parameter::setscaleCFF(std::string scaleCFF) { ic.scaleCFF = scaleCFF; } -void Parameter::setscaleFCC(std::string scaleFCC) { ic.scaleFCC = scaleFCC; } -void Parameter::setscaleFCF(std::string scaleFCF) { ic.scaleFCF = scaleFCF; } -void Parameter::setscaleOffsetCF(std::string scaleOffsetCF) { ic.scaleOffsetCF = scaleOffsetCF; } -void Parameter::setscaleOffsetFC(std::string scaleOffsetFC) { ic.scaleOffsetFC = scaleOffsetFC; } -void Parameter::setgeomBoundaryBcQs(std::string geomBoundaryBcQs) { ic.geomBoundaryBcQs = geomBoundaryBcQs; } -void Parameter::setgeomBoundaryBcValues(std::string geomBoundaryBcValues) +void Parameter::setkFull(std::string kFull) { - ic.geomBoundaryBcValues = geomBoundaryBcValues; + ic.kFull = kFull; } -void Parameter::setnoSlipBcPos(std::string noSlipBcPos) { ic.noSlipBcPos = noSlipBcPos; } -void Parameter::setnoSlipBcQs(std::string noSlipBcQs) { ic.noSlipBcQs = noSlipBcQs; } -void Parameter::setnoSlipBcValue(std::string noSlipBcValue) { ic.noSlipBcValue = noSlipBcValue; } -void Parameter::setnoSlipBcValues(std::string noSlipBcValues) { ic.noSlipBcValues = noSlipBcValues; } -void Parameter::setslipBcPos(std::string slipBcPos) { ic.slipBcPos = slipBcPos; } -void Parameter::setslipBcQs(std::string slipBcQs) { ic.slipBcQs = slipBcQs; } -void Parameter::setslipBcValue(std::string slipBcValue) { ic.slipBcValue = slipBcValue; } -void Parameter::setpressBcPos(std::string pressBcPos) { ic.pressBcPos = pressBcPos; } -void Parameter::setpressBcQs(std::string pressBcQs) { ic.pressBcQs = pressBcQs; } -void Parameter::setpressBcValue(std::string pressBcValue) { ic.pressBcValue = pressBcValue; } -void Parameter::setpressBcValues(std::string pressBcValues) { ic.pressBcValues = pressBcValues; } -void Parameter::setvelBcQs(std::string velBcQs) { ic.velBcQs = velBcQs; } -void Parameter::setvelBcValues(std::string velBcValues) { ic.velBcValues = velBcValues; } -void Parameter::setinletBcQs(std::string inletBcQs) { ic.inletBcQs = inletBcQs; } -void Parameter::setinletBcValues(std::string inletBcValues) { ic.inletBcValues = inletBcValues; } -void Parameter::setoutletBcQs(std::string outletBcQs) { ic.outletBcQs = outletBcQs; } -void Parameter::setoutletBcValues(std::string outletBcValues) { ic.outletBcValues = outletBcValues; } -void Parameter::settopBcQs(std::string topBcQs) { ic.topBcQs = topBcQs; } -void Parameter::settopBcValues(std::string topBcValues) { ic.topBcValues = topBcValues; } -void Parameter::setbottomBcQs(std::string bottomBcQs) { ic.bottomBcQs = bottomBcQs; } -void Parameter::setbottomBcValues(std::string bottomBcValues) { ic.bottomBcValues = bottomBcValues; } -void Parameter::setfrontBcQs(std::string frontBcQs) { ic.frontBcQs = frontBcQs; } -void Parameter::setfrontBcValues(std::string frontBcValues) { ic.frontBcValues = frontBcValues; } -void Parameter::setbackBcQs(std::string backBcQs) { ic.backBcQs = backBcQs; } -void Parameter::setbackBcValues(std::string backBcValues) { ic.backBcValues = backBcValues; } -void Parameter::setwallBcQs(std::string wallBcQs) { ic.wallBcQs = wallBcQs; } -void Parameter::setwallBcValues(std::string wallBcValues) { ic.wallBcValues = wallBcValues; } -void Parameter::setperiodicBcQs(std::string periodicBcQs) { ic.periodicBcQs = periodicBcQs; } -void Parameter::setperiodicBcValues(std::string periodicBcValues) { ic.periodicBcValues = periodicBcValues; } -void Parameter::setpropellerQs(std::string propellerQs) { ic.propellerQs = propellerQs; } -void Parameter::setpropellerValues(std::string propellerValues) { ic.propellerValues = propellerValues; } -void Parameter::setpropellerCylinder(std::string propellerCylinder) { ic.propellerCylinder = propellerCylinder; } -void Parameter::setmeasurePoints(std::string measurePoints) { ic.measurePoints = measurePoints; } -void Parameter::setnumberNodes(std::string numberNodes) { ic.numberNodes = numberNodes; } -void Parameter::setLBMvsSI(std::string LBMvsSI) { ic.LBMvsSI = LBMvsSI; } -void Parameter::setcpTop(std::string cpTop) { ic.cpTop = cpTop; } -void Parameter::setcpBottom(std::string cpBottom) { ic.cpBottom = cpBottom; } -void Parameter::setcpBottom2(std::string cpBottom2) { ic.cpBottom2 = cpBottom2; } -void Parameter::setConcentration(std::string concFile) { ic.concentration = concFile; } -void Parameter::setStreetVelocity(std::string streetVelocity) { ic.streetVelocity = streetVelocity; } -void Parameter::setclockCycleForMP(real clockCycleForMP) { ic.clockCycleForMP = clockCycleForMP; } -void Parameter::setTimeDoCheckPoint(unsigned int tDoCheckPoint) { ic.tDoCheckPoint = tDoCheckPoint; } -void Parameter::setTimeDoRestart(unsigned int tDoRestart) { ic.tDoRestart = tDoRestart; } -void Parameter::setDoCheckPoint(bool doCheckPoint) { ic.doCheckPoint = doCheckPoint; } -void Parameter::setDoRestart(bool doRestart) { ic.doRestart = doRestart; } -void Parameter::settimestepForMP(unsigned int timestepForMP) { ic.timeStepForMP = timestepForMP; } -void Parameter::setObj(std::string str, bool isObj) +void Parameter::setgeoFull(std::string geoFull) { - if (str == "geo") { - this->setIsGeo(isObj); - } else if (str == "prop") { - this->setIsProp(isObj); - } else if (str == "cp") { - this->setIsCp(isObj); - } else if (str == "geoNormal") { - this->setIsGeoNormal(isObj); - } else if (str == "inflowNormal") { - this->setIsInflowNormal(isObj); - } else if (str == "outflowNormal") { - this->setIsOutflowNormal(isObj); - } + ic.geoFull = geoFull; } -void Parameter::setGeometryValues(bool GeometryValues) { ic.GeometryValues = GeometryValues; } -void Parameter::setCalc2ndOrderMoments(bool is2ndOrderMoments) { ic.is2ndOrderMoments = is2ndOrderMoments; } -void Parameter::setCalc3rdOrderMoments(bool is3rdOrderMoments) { ic.is3rdOrderMoments = is3rdOrderMoments; } -void Parameter::setCalcHighOrderMoments(bool isHighOrderMoments) { ic.isHighOrderMoments = isHighOrderMoments; } -void Parameter::setMemsizeGPU(double admem, bool reset) +void Parameter::setgeoVec(std::string geoVec) { - if (reset == true) { - this->memsizeGPU = 0.; - } else { - this->memsizeGPU += admem; - } + ic.geoVec = geoVec; } -// 1D domain decomposition -void Parameter::setPossNeighborFiles(std::vector<std::string> possNeighborFiles, std::string sor) +void Parameter::setcoordX(std::string coordX) { - if (sor == "send") { - this->possNeighborFilesSend = possNeighborFiles; - } else if (sor == "recv") { - this->possNeighborFilesRecv = possNeighborFiles; - } + ic.coordX = coordX; } -void Parameter::setNumberOfProcessNeighbors(unsigned int numberOfProcessNeighbors, int level, std::string sor) +void Parameter::setcoordY(std::string coordY) { - if (sor == "send") { - parH[level]->sendProcessNeighbor.resize(numberOfProcessNeighbors); - parD[level]->sendProcessNeighbor.resize(numberOfProcessNeighbors); - } else if (sor == "recv") { - parH[level]->recvProcessNeighbor.resize(numberOfProcessNeighbors); - parD[level]->recvProcessNeighbor.resize(numberOfProcessNeighbors); - } + ic.coordY = coordY; } -void Parameter::setIsNeighbor(bool isNeigbor) { this->isNeigbor = isNeigbor; } -// 3D domain decomposition -void Parameter::setPossNeighborFilesX(std::vector<std::string> possNeighborFiles, std::string sor) +void Parameter::setcoordZ(std::string coordZ) { - if (sor == "send") { - this->possNeighborFilesSendX = possNeighborFiles; - } else if (sor == "recv") { - this->possNeighborFilesRecvX = possNeighborFiles; - } + ic.coordZ = coordZ; } -void Parameter::setPossNeighborFilesY(std::vector<std::string> possNeighborFiles, std::string sor) +void Parameter::setneighborX(std::string neighborX) { - if (sor == "send") { - this->possNeighborFilesSendY = possNeighborFiles; - } else if (sor == "recv") { - this->possNeighborFilesRecvY = possNeighborFiles; - } + ic.neighborX = neighborX; } -void Parameter::setPossNeighborFilesZ(std::vector<std::string> possNeighborFiles, std::string sor) +void Parameter::setneighborY(std::string neighborY) { - if (sor == "send") { - this->possNeighborFilesSendZ = possNeighborFiles; - } else if (sor == "recv") { - this->possNeighborFilesRecvZ = possNeighborFiles; - } + ic.neighborY = neighborY; } -void Parameter::setNumberOfProcessNeighborsX(unsigned int numberOfProcessNeighbors, int level, std::string sor) +void Parameter::setneighborZ(std::string neighborZ) { - if (sor == "send") { - parH[level]->sendProcessNeighborX.resize(numberOfProcessNeighbors); - parD[level]->sendProcessNeighborX.resize(numberOfProcessNeighbors); - ////////////////////////////////////////////////////////////////////////// - if (getDiffOn() == true) { - parH[level]->sendProcessNeighborADX.resize(numberOfProcessNeighbors); - parD[level]->sendProcessNeighborADX.resize(numberOfProcessNeighbors); - } - ////////////////////////////////////////////////////////////////////////// - } else if (sor == "recv") { - parH[level]->recvProcessNeighborX.resize(numberOfProcessNeighbors); - parD[level]->recvProcessNeighborX.resize(numberOfProcessNeighbors); - ////////////////////////////////////////////////////////////////////////// - if (getDiffOn() == true) { - parH[level]->recvProcessNeighborADX.resize(numberOfProcessNeighbors); - parD[level]->recvProcessNeighborADX.resize(numberOfProcessNeighbors); - } - ////////////////////////////////////////////////////////////////////////// - } + ic.neighborZ = neighborZ; } -void Parameter::setNumberOfProcessNeighborsY(unsigned int numberOfProcessNeighbors, int level, std::string sor) +void Parameter::setneighborWSB(std::string neighborWSB) { - if (sor == "send") { - parH[level]->sendProcessNeighborY.resize(numberOfProcessNeighbors); - parD[level]->sendProcessNeighborY.resize(numberOfProcessNeighbors); - ////////////////////////////////////////////////////////////////////////// - if (getDiffOn() == true) { - parH[level]->sendProcessNeighborADY.resize(numberOfProcessNeighbors); + ic.neighborWSB = neighborWSB; +} +void Parameter::setscaleCFC(std::string scaleCFC) +{ + ic.scaleCFC = scaleCFC; +} +void Parameter::setscaleCFF(std::string scaleCFF) +{ + ic.scaleCFF = scaleCFF; +} +void Parameter::setscaleFCC(std::string scaleFCC) +{ + ic.scaleFCC = scaleFCC; +} +void Parameter::setscaleFCF(std::string scaleFCF) +{ + ic.scaleFCF = scaleFCF; +} +void Parameter::setscaleOffsetCF(std::string scaleOffsetCF) +{ + ic.scaleOffsetCF = scaleOffsetCF; +} +void Parameter::setscaleOffsetFC(std::string scaleOffsetFC) +{ + ic.scaleOffsetFC = scaleOffsetFC; +} +void Parameter::setgeomBoundaryBcQs(std::string geomBoundaryBcQs) +{ + ic.geomBoundaryBcQs = geomBoundaryBcQs; +} +void Parameter::setgeomBoundaryBcValues(std::string geomBoundaryBcValues) +{ + ic.geomBoundaryBcValues = geomBoundaryBcValues; +} +void Parameter::setnoSlipBcPos(std::string noSlipBcPos) +{ + ic.noSlipBcPos = noSlipBcPos; +} +void Parameter::setnoSlipBcQs(std::string noSlipBcQs) +{ + ic.noSlipBcQs = noSlipBcQs; +} +void Parameter::setnoSlipBcValue(std::string noSlipBcValue) +{ + ic.noSlipBcValue = noSlipBcValue; +} +void Parameter::setnoSlipBcValues(std::string noSlipBcValues) +{ + ic.noSlipBcValues = noSlipBcValues; +} +void Parameter::setslipBcPos(std::string slipBcPos) +{ + ic.slipBcPos = slipBcPos; +} +void Parameter::setslipBcQs(std::string slipBcQs) +{ + ic.slipBcQs = slipBcQs; +} +void Parameter::setslipBcValue(std::string slipBcValue) +{ + ic.slipBcValue = slipBcValue; +} +void Parameter::setpressBcPos(std::string pressBcPos) +{ + ic.pressBcPos = pressBcPos; +} +void Parameter::setpressBcQs(std::string pressBcQs) +{ + ic.pressBcQs = pressBcQs; +} +void Parameter::setpressBcValue(std::string pressBcValue) +{ + ic.pressBcValue = pressBcValue; +} +void Parameter::setpressBcValues(std::string pressBcValues) +{ + ic.pressBcValues = pressBcValues; +} +void Parameter::setvelBcQs(std::string velBcQs) +{ + ic.velBcQs = velBcQs; +} +void Parameter::setvelBcValues(std::string velBcValues) +{ + ic.velBcValues = velBcValues; +} +void Parameter::setinletBcQs(std::string inletBcQs) +{ + ic.inletBcQs = inletBcQs; +} +void Parameter::setinletBcValues(std::string inletBcValues) +{ + ic.inletBcValues = inletBcValues; +} +void Parameter::setoutletBcQs(std::string outletBcQs) +{ + ic.outletBcQs = outletBcQs; +} +void Parameter::setoutletBcValues(std::string outletBcValues) +{ + ic.outletBcValues = outletBcValues; +} +void Parameter::settopBcQs(std::string topBcQs) +{ + ic.topBcQs = topBcQs; +} +void Parameter::settopBcValues(std::string topBcValues) +{ + ic.topBcValues = topBcValues; +} +void Parameter::setbottomBcQs(std::string bottomBcQs) +{ + ic.bottomBcQs = bottomBcQs; +} +void Parameter::setbottomBcValues(std::string bottomBcValues) +{ + ic.bottomBcValues = bottomBcValues; +} +void Parameter::setfrontBcQs(std::string frontBcQs) +{ + ic.frontBcQs = frontBcQs; +} +void Parameter::setfrontBcValues(std::string frontBcValues) +{ + ic.frontBcValues = frontBcValues; +} +void Parameter::setbackBcQs(std::string backBcQs) +{ + ic.backBcQs = backBcQs; +} +void Parameter::setbackBcValues(std::string backBcValues) +{ + ic.backBcValues = backBcValues; +} +void Parameter::setwallBcQs(std::string wallBcQs) +{ + ic.wallBcQs = wallBcQs; +} +void Parameter::setwallBcValues(std::string wallBcValues) +{ + ic.wallBcValues = wallBcValues; +} +void Parameter::setperiodicBcQs(std::string periodicBcQs) +{ + ic.periodicBcQs = periodicBcQs; +} +void Parameter::setperiodicBcValues(std::string periodicBcValues) +{ + ic.periodicBcValues = periodicBcValues; +} +void Parameter::setpropellerQs(std::string propellerQs) +{ + ic.propellerQs = propellerQs; +} +void Parameter::setpropellerValues(std::string propellerValues) +{ + ic.propellerValues = propellerValues; +} +void Parameter::setpropellerCylinder(std::string propellerCylinder) +{ + ic.propellerCylinder = propellerCylinder; +} +void Parameter::setmeasurePoints(std::string measurePoints) +{ + ic.measurePoints = measurePoints; +} +void Parameter::setnumberNodes(std::string numberNodes) +{ + ic.numberNodes = numberNodes; +} +void Parameter::setLBMvsSI(std::string LBMvsSI) +{ + ic.LBMvsSI = LBMvsSI; +} +void Parameter::setcpTop(std::string cpTop) +{ + ic.cpTop = cpTop; +} +void Parameter::setcpBottom(std::string cpBottom) +{ + ic.cpBottom = cpBottom; +} +void Parameter::setcpBottom2(std::string cpBottom2) +{ + ic.cpBottom2 = cpBottom2; +} +void Parameter::setConcentration(std::string concFile) +{ + ic.concentration = concFile; +} +void Parameter::setStreetVelocity(std::string streetVelocity) +{ + ic.streetVelocity = streetVelocity; +} +void Parameter::setclockCycleForMP(real clockCycleForMP) +{ + ic.clockCycleForMP = clockCycleForMP; +} +void Parameter::setTimeDoCheckPoint(unsigned int tDoCheckPoint) +{ + ic.tDoCheckPoint = tDoCheckPoint; +} +void Parameter::setTimeDoRestart(unsigned int tDoRestart) +{ + ic.tDoRestart = tDoRestart; +} +void Parameter::setDoCheckPoint(bool doCheckPoint) +{ + ic.doCheckPoint = doCheckPoint; +} +void Parameter::setDoRestart(bool doRestart) +{ + ic.doRestart = doRestart; +} +void Parameter::settimestepForMP(unsigned int timestepForMP) +{ + ic.timeStepForMP = timestepForMP; +} +void Parameter::setObj(std::string str, bool isObj) +{ + if (str == "geo") { + this->setIsGeo(isObj); + } else if (str == "prop") { + this->setIsProp(isObj); + } else if (str == "cp") { + this->setIsCp(isObj); + } else if (str == "geoNormal") { + this->setIsGeoNormal(isObj); + } else if (str == "inflowNormal") { + this->setIsInflowNormal(isObj); + } else if (str == "outflowNormal") { + this->setIsOutflowNormal(isObj); + } +} +void Parameter::setGeometryValues(bool GeometryValues) +{ + ic.GeometryValues = GeometryValues; +} +void Parameter::setCalc2ndOrderMoments(bool is2ndOrderMoments) +{ + ic.is2ndOrderMoments = is2ndOrderMoments; +} +void Parameter::setCalc3rdOrderMoments(bool is3rdOrderMoments) +{ + ic.is3rdOrderMoments = is3rdOrderMoments; +} +void Parameter::setCalcHighOrderMoments(bool isHighOrderMoments) +{ + ic.isHighOrderMoments = isHighOrderMoments; +} +void Parameter::setMemsizeGPU(double admem, bool reset) +{ + if (reset == true) { + this->memsizeGPU = 0.; + } else { + this->memsizeGPU += admem; + } +} +// 1D domain decomposition +void Parameter::setPossNeighborFiles(std::vector<std::string> possNeighborFiles, std::string sor) +{ + if (sor == "send") { + this->possNeighborFilesSend = possNeighborFiles; + } else if (sor == "recv") { + this->possNeighborFilesRecv = possNeighborFiles; + } +} +void Parameter::setNumberOfProcessNeighbors(unsigned int numberOfProcessNeighbors, int level, std::string sor) +{ + if (sor == "send") { + parH[level]->sendProcessNeighbor.resize(numberOfProcessNeighbors); + parD[level]->sendProcessNeighbor.resize(numberOfProcessNeighbors); + } else if (sor == "recv") { + parH[level]->recvProcessNeighbor.resize(numberOfProcessNeighbors); + parD[level]->recvProcessNeighbor.resize(numberOfProcessNeighbors); + } +} +void Parameter::setIsNeighbor(bool isNeigbor) +{ + this->isNeigbor = isNeigbor; +} +// 3D domain decomposition +void Parameter::setPossNeighborFilesX(std::vector<std::string> possNeighborFiles, std::string sor) +{ + if (sor == "send") { + this->possNeighborFilesSendX = possNeighborFiles; + } else if (sor == "recv") { + this->possNeighborFilesRecvX = possNeighborFiles; + } +} +void Parameter::setPossNeighborFilesY(std::vector<std::string> possNeighborFiles, std::string sor) +{ + if (sor == "send") { + this->possNeighborFilesSendY = possNeighborFiles; + } else if (sor == "recv") { + this->possNeighborFilesRecvY = possNeighborFiles; + } +} +void Parameter::setPossNeighborFilesZ(std::vector<std::string> possNeighborFiles, std::string sor) +{ + if (sor == "send") { + this->possNeighborFilesSendZ = possNeighborFiles; + } else if (sor == "recv") { + this->possNeighborFilesRecvZ = possNeighborFiles; + } +} +void Parameter::setNumberOfProcessNeighborsX(unsigned int numberOfProcessNeighbors, int level, std::string sor) +{ + if (sor == "send") { + parH[level]->sendProcessNeighborX.resize(numberOfProcessNeighbors); + parD[level]->sendProcessNeighborX.resize(numberOfProcessNeighbors); + ////////////////////////////////////////////////////////////////////////// + if (getDiffOn() == true) { + parH[level]->sendProcessNeighborADX.resize(numberOfProcessNeighbors); + parD[level]->sendProcessNeighborADX.resize(numberOfProcessNeighbors); + } + ////////////////////////////////////////////////////////////////////////// + } else if (sor == "recv") { + parH[level]->recvProcessNeighborX.resize(numberOfProcessNeighbors); + parD[level]->recvProcessNeighborX.resize(numberOfProcessNeighbors); + ////////////////////////////////////////////////////////////////////////// + if (getDiffOn() == true) { + parH[level]->recvProcessNeighborADX.resize(numberOfProcessNeighbors); + parD[level]->recvProcessNeighborADX.resize(numberOfProcessNeighbors); + } + ////////////////////////////////////////////////////////////////////////// + } +} +void Parameter::setNumberOfProcessNeighborsY(unsigned int numberOfProcessNeighbors, int level, std::string sor) +{ + if (sor == "send") { + parH[level]->sendProcessNeighborY.resize(numberOfProcessNeighbors); + parD[level]->sendProcessNeighborY.resize(numberOfProcessNeighbors); + ////////////////////////////////////////////////////////////////////////// + if (getDiffOn() == true) { + parH[level]->sendProcessNeighborADY.resize(numberOfProcessNeighbors); parD[level]->sendProcessNeighborADY.resize(numberOfProcessNeighbors); } ////////////////////////////////////////////////////////////////////////// @@ -979,9 +1430,18 @@ void Parameter::setNumberOfProcessNeighborsZ(unsigned int numberOfProcessNeighbo ////////////////////////////////////////////////////////////////////////// } } -void Parameter::setIsNeighborX(bool isNeigbor) { this->isNeigborX = isNeigbor; } -void Parameter::setIsNeighborY(bool isNeigbor) { this->isNeigborY = isNeigbor; } -void Parameter::setIsNeighborZ(bool isNeigbor) { this->isNeigborZ = isNeigbor; } +void Parameter::setIsNeighborX(bool isNeigbor) +{ + this->isNeigborX = isNeigbor; +} +void Parameter::setIsNeighborY(bool isNeigbor) +{ + this->isNeigborY = isNeigbor; +} +void Parameter::setIsNeighborZ(bool isNeigbor) +{ + this->isNeigborZ = isNeigbor; +} void Parameter::setSendProcessNeighborsAfterFtoCX(int numberOfNodes, int level, int arrayIndex) { this->getParH(level)->sendProcessNeighborsAfterFtoCX[arrayIndex].numberOfNodes = numberOfNodes; @@ -1036,156 +1496,472 @@ void Parameter::setRecvProcessNeighborsAfterFtoCZ(int numberOfNodes, int level, this->getParH(level)->recvProcessNeighborsAfterFtoCZ[arrayIndex].numberOfFs = this->D3Qxx * numberOfNodes; this->getParD(level)->recvProcessNeighborsAfterFtoCZ[arrayIndex].numberOfFs = this->D3Qxx * numberOfNodes; } -void Parameter::setgeomBoundaryNormalX(std::string geomNormalX) { ic.geomNormalX = geomNormalX; } -void Parameter::setgeomBoundaryNormalY(std::string geomNormalY) { ic.geomNormalY = geomNormalY; } -void Parameter::setgeomBoundaryNormalZ(std::string geomNormalZ) { ic.geomNormalZ = geomNormalZ; } -void Parameter::setInflowBoundaryNormalX(std::string inflowNormalX) { ic.inflowNormalX = inflowNormalX; } -void Parameter::setInflowBoundaryNormalY(std::string inflowNormalY) { ic.inflowNormalY = inflowNormalY; } -void Parameter::setInflowBoundaryNormalZ(std::string inflowNormalZ) { ic.inflowNormalZ = inflowNormalZ; } -void Parameter::setOutflowBoundaryNormalX(std::string outflowNormalX) { ic.outflowNormalX = outflowNormalX; } -void Parameter::setOutflowBoundaryNormalY(std::string outflowNormalY) { ic.outflowNormalY = outflowNormalY; } -void Parameter::setOutflowBoundaryNormalZ(std::string outflowNormalZ) { ic.outflowNormalZ = outflowNormalZ; } -void Parameter::setMainKernel(std::string kernel) +void Parameter::setgeomBoundaryNormalX(std::string geomNormalX) +{ + ic.geomNormalX = geomNormalX; +} +void Parameter::setgeomBoundaryNormalY(std::string geomNormalY) +{ + ic.geomNormalY = geomNormalY; +} +void Parameter::setgeomBoundaryNormalZ(std::string geomNormalZ) +{ + ic.geomNormalZ = geomNormalZ; +} +void Parameter::setInflowBoundaryNormalX(std::string inflowNormalX) +{ + ic.inflowNormalX = inflowNormalX; +} +void Parameter::setInflowBoundaryNormalY(std::string inflowNormalY) +{ + ic.inflowNormalY = inflowNormalY; +} +void Parameter::setInflowBoundaryNormalZ(std::string inflowNormalZ) +{ + ic.inflowNormalZ = inflowNormalZ; +} +void Parameter::setOutflowBoundaryNormalX(std::string outflowNormalX) +{ + ic.outflowNormalX = outflowNormalX; +} +void Parameter::setOutflowBoundaryNormalY(std::string outflowNormalY) +{ + ic.outflowNormalY = outflowNormalY; +} +void Parameter::setOutflowBoundaryNormalZ(std::string outflowNormalZ) +{ + ic.outflowNormalZ = outflowNormalZ; +} +void Parameter::setMainKernel(std::string kernel) +{ + this->mainKernel = kernel; + if (kernel.find("Stream") != std::string::npos) + this->kernelNeedsFluidNodeIndicesToRun = true; +} +void Parameter::setMultiKernelOn(bool isOn) +{ + this->multiKernelOn = isOn; +} +void Parameter::setMultiKernelLevel(std::vector<int> kernelLevel) +{ + this->multiKernelLevel = kernelLevel; +} +void Parameter::setMultiKernel(std::vector<std::string> kernel) +{ + this->multiKernel = kernel; +} +void Parameter::setADKernel(std::string adKernel) +{ + this->adKernel = adKernel; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// add-methods +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +void Parameter::addActuator(SPtr<PreCollisionInteractor> actuator) +{ + actuators.push_back(actuator); +} +void Parameter::addProbe(SPtr<PreCollisionInteractor> probe) +{ + probes.push_back(probe); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// get-methods +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +double *Parameter::getForcesDouble() +{ + return this->hostForcing; +} +real *Parameter::getForcesHost() +{ + return this->forcingH; +} +real *Parameter::getForcesDev() +{ + return this->forcingD; +} +double *Parameter::getQuadricLimitersDouble() +{ + return this->hostQuadricLimiters; +} +real *Parameter::getQuadricLimitersHost() +{ + return this->quadricLimitersH; +} +real *Parameter::getQuadricLimitersDev() +{ + return this->quadricLimitersD; +} +real Parameter::getPhi() +{ + return Phi; +} +real Parameter::getAngularVelocity() +{ + return angularVelocity; +} +real Parameter::getStartXHotWall() +{ + return this->startXHotWall; +} +real Parameter::getEndXHotWall() +{ + return this->endXHotWall; +} +unsigned int Parameter::getStepEnsight() +{ + return this->stepEnsight; +} +unsigned int Parameter::getOutputCount() +{ + return this->outputCount; +} +unsigned int Parameter::getlimitOfNodesForVTK() +{ + return this->limitOfNodesForVTK; +} +unsigned int Parameter::getStartTurn() +{ + return startTurn; +} +std::shared_ptr<LBMSimulationParameter> Parameter::getParD(int level) +{ + return parD[level]; +} +std::shared_ptr<LBMSimulationParameter> Parameter::getParH(int level) +{ + return parH[level]; +} +unsigned int Parameter::getSizeMat(int level) +{ + return parH[level]->size_Mat; +} +unsigned int Parameter::getMemSizereal(int level) +{ + return parH[level]->mem_size_real; +} +unsigned int Parameter::getMemSizeInt(int level) +{ + return parH[level]->mem_size_int; +} +unsigned int Parameter::getMemSizeBool(int level) +{ + return parH[level]->mem_size_bool; +} +unsigned int Parameter::getMemSizerealYZ(int level) +{ + return parH[level]->mem_size_real_yz; +} +int Parameter::getFine() +{ + return fine; +} +int Parameter::getCoarse() +{ + return coarse; +} +int Parameter::getParticleBasicLevel() +{ + return this->particleBasicLevel; +} +int Parameter::getParticleInitLevel() +{ + return this->particleInitLevel; +} +int Parameter::getNumberOfParticles() +{ + return this->numberOfParticles; +} +bool Parameter::getEvenOrOdd(int level) +{ + return parH[level]->evenOrOdd; +} +bool Parameter::getDiffOn() +{ + return diffOn; +} +bool Parameter::getCompOn() +{ + return compOn; +} +int Parameter::getDiffMod() +{ + return diffMod; +} +int Parameter::getFactorNZ() +{ + return factor_gridNZ; +} +int Parameter::getD3Qxx() +{ + return this->D3Qxx; +} +int Parameter::getMaxLevel() +{ + return this->maxlevel; +} +unsigned int Parameter::getTStart() +{ + if (getDoRestart()) { + return getTimeDoRestart() + 1; + } else { + return 1; + } +} +unsigned int Parameter::getTInit() +{ + if (getDoRestart()) { + return getTimeDoRestart(); + } else { + return 0; + } +} +unsigned int Parameter::getTEnd() +{ + return ic.tend; +} +unsigned int Parameter::getTOut() +{ + return ic.tout; +} +unsigned int Parameter::getTStartOut() +{ + return ic.tStartOut; +} +bool Parameter::getCalcMedian() +{ + return ic.calcMedian; +} +bool Parameter::getCalcDragLift() +{ + return this->calcDragLift; +} +bool Parameter::getCalcCp() +{ + return this->calcCp; +} +bool Parameter::getCalcParticle() +{ + return this->calcParticles; +} +bool Parameter::getWriteVeloASCIIfiles() +{ + return this->writeVeloASCII; +} +bool Parameter::getCalcPlaneConc() +{ + return this->calcPlaneConc; +} +int Parameter::getTimeCalcMedStart() +{ + return ic.tCalcMedStart; +} +int Parameter::getTimeCalcMedEnd() +{ + return ic.tCalcMedEnd; +} +std::string Parameter::getOutputPath() +{ + return ic.oPath; +} +std::string Parameter::getOutputPrefix() +{ + return ic.oPrefix; +} +std::string Parameter::getFName() +{ + return ic.fname; +} +bool Parameter::getPrintFiles() +{ + return ic.printFiles; +} +bool Parameter::getReadGeo() +{ + return ic.readGeo; +} +bool Parameter::getCalcTurbulenceIntensity() +{ + return this->calcVelocityAndFluctuations; +} +real Parameter::getDiffusivity() +{ + return ic.Diffusivity; +} +real Parameter::getTemperatureInit() +{ + return ic.Temp; +} +real Parameter::getTemperatureBC() +{ + return ic.TempBC; +} +real Parameter::getViscosity() +{ + return ic.vis; +} +real Parameter::getVelocity() +{ + return ic.u0; +} +real Parameter::getViscosityRatio() +{ + return ic.vis_ratio; +} +real Parameter::getVelocityRatio() +{ + return ic.u0_ratio; +} +real Parameter::getDensityRatio() +{ + return ic.delta_rho; +} +real Parameter::getPressRatio() +{ + return ic.delta_press; +} +real Parameter::getRealX() +{ + return ic.RealX; +} +real Parameter::getRealY() +{ + return ic.RealY; +} +unsigned int Parameter::getPressInID() +{ + return ic.PressInID; +} +unsigned int Parameter::getPressOutID() +{ + return ic.PressOutID; +} +unsigned int Parameter::getPressInZ() +{ + return ic.PressInZ; +} +unsigned int Parameter::getPressOutZ() +{ + return ic.PressOutZ; +} +int Parameter::getMaxDev() +{ + return ic.maxdev; +} +int Parameter::getMyID() +{ + return ic.myid; +} +int Parameter::getNumprocs() +{ + return ic.numprocs; +} +std::vector<uint> Parameter::getDevices() +{ + return ic.devices; +} +std::string Parameter::getGeometryFileC() +{ + return ic.geometryFileC; +} +std::string Parameter::getGeometryFileM() +{ + return ic.geometryFileM; +} +std::string Parameter::getGeometryFileF() +{ + return ic.geometryFileF; +} +real Parameter::getRe() +{ + return ic.Re; +} +real Parameter::getFactorPressBC() +{ + return ic.factorPressBC; +} +std::vector<int> Parameter::getGridX() +{ + return ic.GridX; +} +std::vector<int> Parameter::getGridY() +{ + return ic.GridY; +} +std::vector<int> Parameter::getGridZ() +{ + return ic.GridZ; +} +std::vector<int> Parameter::getDistX() +{ + return ic.DistX; +} +std::vector<int> Parameter::getDistY() +{ + return ic.DistY; +} +std::vector<int> Parameter::getDistZ() +{ + return ic.DistZ; +} +std::vector<real> Parameter::getScaleLBMtoSI() +{ + return ic.scaleLBMtoSI; +} +std::vector<real> Parameter::getTranslateLBMtoSI() +{ + return ic.translateLBMtoSI; +} +std::vector<real> Parameter::getMinCoordX() +{ + return ic.minCoordX; +} +std::vector<real> Parameter::getMinCoordY() +{ + return ic.minCoordY; +} +std::vector<real> Parameter::getMinCoordZ() +{ + return ic.minCoordZ; +} +std::vector<real> Parameter::getMaxCoordX() +{ + return ic.maxCoordX; +} +std::vector<real> Parameter::getMaxCoordY() +{ + return ic.maxCoordY; +} +std::vector<real> Parameter::getMaxCoordZ() +{ + return ic.maxCoordZ; +} +TempforBoundaryConditions *Parameter::getTempH() { - this->mainKernel = kernel; - if (kernel.find("Stream") != std::string::npos) - this->kernelNeedsFluidNodeIndicesToRun = true; + return this->TempH; } -void Parameter::setMultiKernelOn(bool isOn) { this->multiKernelOn = isOn; } -void Parameter::setMultiKernelLevel(std::vector<int> kernelLevel) { this->multiKernelLevel = kernelLevel; } -void Parameter::setMultiKernel(std::vector<std::string> kernel) { this->multiKernel = kernel; } -void Parameter::setADKernel(std::string adKernel) { this->adKernel = adKernel; } - - - - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//add-methods -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void Parameter::addActuator(SPtr<PreCollisionInteractor> actuator) +TempforBoundaryConditions *Parameter::getTempD() { - actuators.push_back(actuator); + return this->TempD; } -void Parameter::addProbe(SPtr<PreCollisionInteractor> probe) +TempVelforBoundaryConditions *Parameter::getTempVelH() { - probes.push_back(probe); + return this->TempVelH; } - - - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// get-methods -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -double *Parameter::getForcesDouble() { return this->hostForcing; } -real *Parameter::getForcesHost() { return this->forcingH; } -real *Parameter::getForcesDev() { return this->forcingD; } -double *Parameter::getQuadricLimitersDouble() { return this->hostQuadricLimiters; } -real *Parameter::getQuadricLimitersHost() { return this->quadricLimitersH; } -real *Parameter::getQuadricLimitersDev() { return this->quadricLimitersD; } -real Parameter::getPhi() { return Phi; } -real Parameter::getAngularVelocity() { return angularVelocity; } -real Parameter::getStartXHotWall() { return this->startXHotWall; } -real Parameter::getEndXHotWall() { return this->endXHotWall; } -unsigned int Parameter::getStepEnsight() { return this->stepEnsight; } -unsigned int Parameter::getOutputCount() { return this->outputCount; } -unsigned int Parameter::getlimitOfNodesForVTK() { return this->limitOfNodesForVTK; } -unsigned int Parameter::getStartTurn() { return startTurn; } -std::shared_ptr<LBMSimulationParameter> Parameter::getParD(int level) { return parD[level]; } -std::shared_ptr<LBMSimulationParameter> Parameter::getParH(int level) { return parH[level]; } -unsigned int Parameter::getSizeMat(int level) { return parH[level]->size_Mat; } -unsigned int Parameter::getMemSizereal(int level) { return parH[level]->mem_size_real; } -unsigned int Parameter::getMemSizeInt(int level) { return parH[level]->mem_size_int; } -unsigned int Parameter::getMemSizeBool(int level) { return parH[level]->mem_size_bool; } -unsigned int Parameter::getMemSizerealYZ(int level) { return parH[level]->mem_size_real_yz; } -int Parameter::getFine() { return fine; } -int Parameter::getCoarse() { return coarse; } -int Parameter::getParticleBasicLevel() { return this->particleBasicLevel; } -int Parameter::getParticleInitLevel() { return this->particleInitLevel; } -int Parameter::getNumberOfParticles() { return this->numberOfParticles; } -bool Parameter::getEvenOrOdd(int level) { return parH[level]->evenOrOdd; } -bool Parameter::getDiffOn() { return diffOn; } -bool Parameter::getCompOn() { return compOn; } -int Parameter::getDiffMod() { return diffMod; } -int Parameter::getFactorNZ() { return factor_gridNZ; } -int Parameter::getD3Qxx() { return this->D3Qxx; } -int Parameter::getMaxLevel() { return this->maxlevel; } -unsigned int Parameter::getTStart() +TempVelforBoundaryConditions *Parameter::getTempVelD() { - if (getDoRestart()) { - return getTimeDoRestart() + 1; - } else { - return 1; - } + return this->TempVelD; } -unsigned int Parameter::getTInit() +TempPressforBoundaryConditions *Parameter::getTempPressH() { - if (getDoRestart()) { - return getTimeDoRestart(); - } else { - return 0; - } + return this->TempPressH; +} +TempPressforBoundaryConditions *Parameter::getTempPressD() +{ + return this->TempPressD; } -unsigned int Parameter::getTEnd() { return ic.tend; } -unsigned int Parameter::getTOut() { return ic.tout; } -unsigned int Parameter::getTStartOut() { return ic.tStartOut; } -bool Parameter::getCalcMedian() { return ic.calcMedian; } -bool Parameter::getCalcDragLift() { return this->calcDragLift; } -bool Parameter::getCalcCp() { return this->calcCp; } -bool Parameter::getCalcParticle() { return this->calcParticles; } -bool Parameter::getWriteVeloASCIIfiles() { return this->writeVeloASCII; } -bool Parameter::getCalcPlaneConc() { return this->calcPlaneConc; } -int Parameter::getTimeCalcMedStart() { return ic.tCalcMedStart; } -int Parameter::getTimeCalcMedEnd() { return ic.tCalcMedEnd; } -std::string Parameter::getOutputPath() { return ic.oPath; } -std::string Parameter::getOutputPrefix() { return ic.oPrefix; } -std::string Parameter::getFName() { return ic.fname; } -bool Parameter::getPrintFiles() { return ic.printFiles; } -bool Parameter::getReadGeo() { return ic.readGeo; } -bool Parameter::getCalcTurbulenceIntensity() { return this->calcVelocityAndFluctuations; } -real Parameter::getDiffusivity() { return ic.Diffusivity; } -real Parameter::getTemperatureInit() { return ic.Temp; } -real Parameter::getTemperatureBC() { return ic.TempBC; } -real Parameter::getViscosity() { return ic.vis; } -real Parameter::getVelocity() { return ic.u0; } -real Parameter::getViscosityRatio() { return ic.vis_ratio; } -real Parameter::getVelocityRatio() { return ic.u0_ratio; } -real Parameter::getDensityRatio() { return ic.delta_rho; } -real Parameter::getPressRatio() { return ic.delta_press; } -real Parameter::getRealX() { return ic.RealX; } -real Parameter::getRealY() { return ic.RealY; } -unsigned int Parameter::getPressInID() { return ic.PressInID; } -unsigned int Parameter::getPressOutID() { return ic.PressOutID; } -unsigned int Parameter::getPressInZ() { return ic.PressInZ; } -unsigned int Parameter::getPressOutZ() { return ic.PressOutZ; } -int Parameter::getMaxDev() { return ic.maxdev; } -int Parameter::getMyID() { return ic.myid; } -int Parameter::getNumprocs() { return ic.numprocs; } -std::vector<uint> Parameter::getDevices() { return ic.devices; } -std::string Parameter::getGeometryFileC() { return ic.geometryFileC; } -std::string Parameter::getGeometryFileM() { return ic.geometryFileM; } -std::string Parameter::getGeometryFileF() { return ic.geometryFileF; } -real Parameter::getRe() { return ic.Re; } -real Parameter::getFactorPressBC() { return ic.factorPressBC; } -std::vector<int> Parameter::getGridX() { return ic.GridX; } -std::vector<int> Parameter::getGridY() { return ic.GridY; } -std::vector<int> Parameter::getGridZ() { return ic.GridZ; } -std::vector<int> Parameter::getDistX() { return ic.DistX; } -std::vector<int> Parameter::getDistY() { return ic.DistY; } -std::vector<int> Parameter::getDistZ() { return ic.DistZ; } -std::vector<real> Parameter::getScaleLBMtoSI() { return ic.scaleLBMtoSI; } -std::vector<real> Parameter::getTranslateLBMtoSI() { return ic.translateLBMtoSI; } -std::vector<real> Parameter::getMinCoordX() { return ic.minCoordX; } -std::vector<real> Parameter::getMinCoordY() { return ic.minCoordY; } -std::vector<real> Parameter::getMinCoordZ() { return ic.minCoordZ; } -std::vector<real> Parameter::getMaxCoordX() { return ic.maxCoordX; } -std::vector<real> Parameter::getMaxCoordY() { return ic.maxCoordY; } -std::vector<real> Parameter::getMaxCoordZ() { return ic.maxCoordZ; } -TempforBoundaryConditions *Parameter::getTempH() { return this->TempH; } -TempforBoundaryConditions *Parameter::getTempD() { return this->TempD; } -TempVelforBoundaryConditions *Parameter::getTempVelH() { return this->TempVelH; } -TempVelforBoundaryConditions *Parameter::getTempVelD() { return this->TempVelD; } -TempPressforBoundaryConditions *Parameter::getTempPressH() { return this->TempPressH; } -TempPressforBoundaryConditions *Parameter::getTempPressD() { return this->TempPressD; } // unsigned int Parameter::getkInflowQ() //{ // return this->kInflowQ; @@ -1210,118 +1986,373 @@ TempPressforBoundaryConditions *Parameter::getTempPressD() { return this->TempPr //{ // return this->QoutflowD; //} -std::string Parameter::getkFull() { return ic.kFull; } -std::string Parameter::getgeoFull() { return ic.geoFull; } -std::string Parameter::getgeoVec() { return ic.geoVec; } -std::string Parameter::getcoordX() { return ic.coordX; } -std::string Parameter::getcoordY() { return ic.coordY; } -std::string Parameter::getcoordZ() { return ic.coordZ; } -std::string Parameter::getneighborX() { return ic.neighborX; } -std::string Parameter::getneighborY() { return ic.neighborY; } -std::string Parameter::getneighborZ() { return ic.neighborZ; } -std::string Parameter::getneighborWSB() { return ic.neighborWSB; } -std::string Parameter::getscaleCFC() { return ic.scaleCFC; } -std::string Parameter::getscaleCFF() { return ic.scaleCFF; } -std::string Parameter::getscaleFCC() { return ic.scaleFCC; } -std::string Parameter::getscaleFCF() { return ic.scaleFCF; } -std::string Parameter::getscaleOffsetCF() { return ic.scaleOffsetCF; } -std::string Parameter::getscaleOffsetFC() { return ic.scaleOffsetFC; } -std::string Parameter::getgeomBoundaryBcQs() { return ic.geomBoundaryBcQs; } -std::string Parameter::getgeomBoundaryBcValues() { return ic.geomBoundaryBcValues; } -std::string Parameter::getnoSlipBcPos() { return ic.noSlipBcPos; } -std::string Parameter::getnoSlipBcQs() { return ic.noSlipBcQs; } -std::string Parameter::getnoSlipBcValue() { return ic.noSlipBcValue; } -std::string Parameter::getnoSlipBcValues() { return ic.noSlipBcValues; } -std::string Parameter::getslipBcPos() { return ic.slipBcPos; } -std::string Parameter::getslipBcQs() { return ic.slipBcQs; } -std::string Parameter::getslipBcValue() { return ic.slipBcValue; } -std::string Parameter::getpressBcPos() { return ic.pressBcPos; } -std::string Parameter::getpressBcQs() { return ic.pressBcQs; } -std::string Parameter::getpressBcValue() { return ic.pressBcValue; } -std::string Parameter::getpressBcValues() { return ic.pressBcValues; } -std::string Parameter::getvelBcQs() { return ic.velBcQs; } -std::string Parameter::getvelBcValues() { return ic.velBcValues; } -std::string Parameter::getinletBcQs() { return ic.inletBcQs; } -std::string Parameter::getinletBcValues() { return ic.inletBcValues; } -std::string Parameter::getoutletBcQs() { return ic.outletBcQs; } -std::string Parameter::getoutletBcValues() { return ic.outletBcValues; } -std::string Parameter::gettopBcQs() { return ic.topBcQs; } -std::string Parameter::gettopBcValues() { return ic.topBcValues; } -std::string Parameter::getbottomBcQs() { return ic.bottomBcQs; } -std::string Parameter::getbottomBcValues() { return ic.bottomBcValues; } -std::string Parameter::getfrontBcQs() { return ic.frontBcQs; } -std::string Parameter::getfrontBcValues() { return ic.frontBcValues; } -std::string Parameter::getbackBcQs() { return ic.backBcQs; } -std::string Parameter::getbackBcValues() { return ic.backBcValues; } -std::string Parameter::getwallBcQs() { return ic.wallBcQs; } -std::string Parameter::getwallBcValues() { return ic.wallBcValues; } -std::string Parameter::getperiodicBcQs() { return ic.periodicBcQs; } -std::string Parameter::getperiodicBcValues() { return ic.periodicBcValues; } -std::string Parameter::getpropellerQs() { return ic.propellerQs; } -std::string Parameter::getpropellerValues() { return ic.propellerValues; } -std::string Parameter::getpropellerCylinder() { return ic.propellerCylinder; } -std::string Parameter::getmeasurePoints() { return ic.measurePoints; } -std::string Parameter::getLBMvsSI() { return ic.LBMvsSI; } -std::string Parameter::getnumberNodes() { return ic.numberNodes; } -std::string Parameter::getcpTop() { return ic.cpTop; } -std::string Parameter::getcpBottom() { return ic.cpBottom; } -std::string Parameter::getcpBottom2() { return ic.cpBottom2; } -std::string Parameter::getConcentration() { return ic.concentration; } -std::string Parameter::getStreetVelocityFilePath() { return ic.streetVelocity; } -real Parameter::getclockCycleForMP() { return ic.clockCycleForMP; } -unsigned int Parameter::getTimeDoCheckPoint() { return ic.tDoCheckPoint; } -unsigned int Parameter::getTimeDoRestart() { return ic.tDoRestart; } -bool Parameter::getDoCheckPoint() { return ic.doCheckPoint; } -bool Parameter::getDoRestart() { return ic.doRestart; } -bool Parameter::getIsGeo() { return ic.isGeo; } -bool Parameter::getIsGeoNormal() { return ic.isGeoNormal; } -bool Parameter::getIsInflowNormal() { return ic.isInflowNormal; } -bool Parameter::getIsOutflowNormal() { return ic.isOutflowNormal; } -bool Parameter::getIsCp() { return ic.isCp; } -bool Parameter::getConcFile() { return ic.isConc; } -bool Parameter::isStreetVelocityFile() { return ic.streetVelocityFile; } -bool Parameter::getUseMeasurePoints() { return ic.isMeasurePoints; } -bool Parameter::getUseWale() { return ic.isWale; } +std::string Parameter::getkFull() +{ + return ic.kFull; +} +std::string Parameter::getgeoFull() +{ + return ic.geoFull; +} +std::string Parameter::getgeoVec() +{ + return ic.geoVec; +} +std::string Parameter::getcoordX() +{ + return ic.coordX; +} +std::string Parameter::getcoordY() +{ + return ic.coordY; +} +std::string Parameter::getcoordZ() +{ + return ic.coordZ; +} +std::string Parameter::getneighborX() +{ + return ic.neighborX; +} +std::string Parameter::getneighborY() +{ + return ic.neighborY; +} +std::string Parameter::getneighborZ() +{ + return ic.neighborZ; +} +std::string Parameter::getneighborWSB() +{ + return ic.neighborWSB; +} +std::string Parameter::getscaleCFC() +{ + return ic.scaleCFC; +} +std::string Parameter::getscaleCFF() +{ + return ic.scaleCFF; +} +std::string Parameter::getscaleFCC() +{ + return ic.scaleFCC; +} +std::string Parameter::getscaleFCF() +{ + return ic.scaleFCF; +} +std::string Parameter::getscaleOffsetCF() +{ + return ic.scaleOffsetCF; +} +std::string Parameter::getscaleOffsetFC() +{ + return ic.scaleOffsetFC; +} +std::string Parameter::getgeomBoundaryBcQs() +{ + return ic.geomBoundaryBcQs; +} +std::string Parameter::getgeomBoundaryBcValues() +{ + return ic.geomBoundaryBcValues; +} +std::string Parameter::getnoSlipBcPos() +{ + return ic.noSlipBcPos; +} +std::string Parameter::getnoSlipBcQs() +{ + return ic.noSlipBcQs; +} +std::string Parameter::getnoSlipBcValue() +{ + return ic.noSlipBcValue; +} +std::string Parameter::getnoSlipBcValues() +{ + return ic.noSlipBcValues; +} +std::string Parameter::getslipBcPos() +{ + return ic.slipBcPos; +} +std::string Parameter::getslipBcQs() +{ + return ic.slipBcQs; +} +std::string Parameter::getslipBcValue() +{ + return ic.slipBcValue; +} +std::string Parameter::getpressBcPos() +{ + return ic.pressBcPos; +} +std::string Parameter::getpressBcQs() +{ + return ic.pressBcQs; +} +std::string Parameter::getpressBcValue() +{ + return ic.pressBcValue; +} +std::string Parameter::getpressBcValues() +{ + return ic.pressBcValues; +} +std::string Parameter::getvelBcQs() +{ + return ic.velBcQs; +} +std::string Parameter::getvelBcValues() +{ + return ic.velBcValues; +} +std::string Parameter::getinletBcQs() +{ + return ic.inletBcQs; +} +std::string Parameter::getinletBcValues() +{ + return ic.inletBcValues; +} +std::string Parameter::getoutletBcQs() +{ + return ic.outletBcQs; +} +std::string Parameter::getoutletBcValues() +{ + return ic.outletBcValues; +} +std::string Parameter::gettopBcQs() +{ + return ic.topBcQs; +} +std::string Parameter::gettopBcValues() +{ + return ic.topBcValues; +} +std::string Parameter::getbottomBcQs() +{ + return ic.bottomBcQs; +} +std::string Parameter::getbottomBcValues() +{ + return ic.bottomBcValues; +} +std::string Parameter::getfrontBcQs() +{ + return ic.frontBcQs; +} +std::string Parameter::getfrontBcValues() +{ + return ic.frontBcValues; +} +std::string Parameter::getbackBcQs() +{ + return ic.backBcQs; +} +std::string Parameter::getbackBcValues() +{ + return ic.backBcValues; +} +std::string Parameter::getwallBcQs() +{ + return ic.wallBcQs; +} +std::string Parameter::getwallBcValues() +{ + return ic.wallBcValues; +} +std::string Parameter::getperiodicBcQs() +{ + return ic.periodicBcQs; +} +std::string Parameter::getperiodicBcValues() +{ + return ic.periodicBcValues; +} +std::string Parameter::getpropellerQs() +{ + return ic.propellerQs; +} +std::string Parameter::getpropellerValues() +{ + return ic.propellerValues; +} +std::string Parameter::getpropellerCylinder() +{ + return ic.propellerCylinder; +} +std::string Parameter::getmeasurePoints() +{ + return ic.measurePoints; +} +std::string Parameter::getLBMvsSI() +{ + return ic.LBMvsSI; +} +std::string Parameter::getnumberNodes() +{ + return ic.numberNodes; +} +std::string Parameter::getcpTop() +{ + return ic.cpTop; +} +std::string Parameter::getcpBottom() +{ + return ic.cpBottom; +} +std::string Parameter::getcpBottom2() +{ + return ic.cpBottom2; +} +std::string Parameter::getConcentration() +{ + return ic.concentration; +} +std::string Parameter::getStreetVelocityFilePath() +{ + return ic.streetVelocity; +} +real Parameter::getclockCycleForMP() +{ + return ic.clockCycleForMP; +} +unsigned int Parameter::getTimeDoCheckPoint() +{ + return ic.tDoCheckPoint; +} +unsigned int Parameter::getTimeDoRestart() +{ + return ic.tDoRestart; +} +bool Parameter::getDoCheckPoint() +{ + return ic.doCheckPoint; +} +bool Parameter::getDoRestart() +{ + return ic.doRestart; +} +bool Parameter::getIsGeo() +{ + return ic.isGeo; +} +bool Parameter::getIsGeoNormal() +{ + return ic.isGeoNormal; +} +bool Parameter::getIsInflowNormal() +{ + return ic.isInflowNormal; +} +bool Parameter::getIsOutflowNormal() +{ + return ic.isOutflowNormal; +} +bool Parameter::getIsCp() +{ + return ic.isCp; +} +bool Parameter::getConcFile() +{ + return ic.isConc; +} +bool Parameter::isStreetVelocityFile() +{ + return ic.streetVelocityFile; +} +bool Parameter::getUseMeasurePoints() +{ + return ic.isMeasurePoints; +} +bool Parameter::getUseWale() +{ + return ic.isWale; +} bool Parameter::getUseAMD() { - return ic.isAMD; -}bool Parameter::getUseTurbulentViscosity() + return ic.isAMD; +} +bool Parameter::getUseTurbulentViscosity() { - return ic.isTurbulentViscosity; + return ic.isTurbulentViscosity; } real Parameter::getSGSConstant() { - return ic.SGSConstant; + return ic.SGSConstant; } bool Parameter::getHasWallModelMonitor() { - return ic.hasWallModelMonitor; + return ic.hasWallModelMonitor; } std::vector<SPtr<PreCollisionInteractor>> Parameter::getActuators() { - return actuators; + return actuators; } std::vector<SPtr<PreCollisionInteractor>> Parameter::getProbes() { - return probes; + return probes; +} +bool Parameter::getUseInitNeq() +{ + return ic.isInitNeq; +} +bool Parameter::getSimulatePorousMedia() +{ + return ic.simulatePorousMedia; } -bool Parameter::getUseInitNeq() { return ic.isInitNeq; } -bool Parameter::getSimulatePorousMedia() { return ic.simulatePorousMedia; } - -bool Parameter::getIsF3() { return this->isF3; } +bool Parameter::getIsF3() +{ + return this->isF3; +} -bool Parameter::getIsBodyForce() { return this->isBodyForce; } +bool Parameter::getIsBodyForce() +{ + return this->isBodyForce; +} -bool Parameter::getIsGeometryValues() { return ic.GeometryValues; } -bool Parameter::getCalc2ndOrderMoments() { return ic.is2ndOrderMoments; } -bool Parameter::getCalc3rdOrderMoments() { return ic.is3rdOrderMoments; } -bool Parameter::getCalcHighOrderMoments() { return ic.isHighOrderMoments; } -bool Parameter::getIsProp() { return ic.isProp; } -bool Parameter::overWritingRestart(uint t) { return t == getTimeDoRestart(); } -unsigned int Parameter::getTimestepForMP() { return ic.timeStepForMP; } -unsigned int Parameter::getTimestepOfCoarseLevel() { return this->timestep; } -double Parameter::getMemsizeGPU() { return this->memsizeGPU; } +bool Parameter::getIsGeometryValues() +{ + return ic.GeometryValues; +} +bool Parameter::getCalc2ndOrderMoments() +{ + return ic.is2ndOrderMoments; +} +bool Parameter::getCalc3rdOrderMoments() +{ + return ic.is3rdOrderMoments; +} +bool Parameter::getCalcHighOrderMoments() +{ + return ic.isHighOrderMoments; +} +bool Parameter::getIsProp() +{ + return ic.isProp; +} +bool Parameter::overWritingRestart(uint t) +{ + return t == getTimeDoRestart(); +} +unsigned int Parameter::getTimestepForMP() +{ + return ic.timeStepForMP; +} +unsigned int Parameter::getTimestepOfCoarseLevel() +{ + return this->timestep; +} +double Parameter::getMemsizeGPU() +{ + return this->memsizeGPU; +} // 1D domain decomposition std::vector<std::string> Parameter::getPossNeighborFiles(std::string sor) { @@ -1341,7 +2372,10 @@ unsigned int Parameter::getNumberOfProcessNeighbors(int level, std::string sor) } throw std::runtime_error("Parameter string invalid."); } -bool Parameter::getIsNeighbor() { return this->isNeigbor; } +bool Parameter::getIsNeighbor() +{ + return this->isNeigbor; +} // 3D domain decomposition std::vector<std::string> Parameter::getPossNeighborFilesX(std::string sor) { @@ -1398,25 +2432,79 @@ unsigned int Parameter::getNumberOfProcessNeighborsZ(int level, std::string sor) throw std::runtime_error("getNumberOfProcessNeighborsZ: Parameter string invalid."); } -bool Parameter::getIsNeighborX() { return this->isNeigborX; } -bool Parameter::getIsNeighborY() { return this->isNeigborY; } -bool Parameter::getIsNeighborZ() { return this->isNeigborZ; } -std::string Parameter::getgeomBoundaryNormalX() { return ic.geomNormalX; } -std::string Parameter::getgeomBoundaryNormalY() { return ic.geomNormalY; } -std::string Parameter::getgeomBoundaryNormalZ() { return ic.geomNormalZ; } -std::string Parameter::getInflowBoundaryNormalX() { return ic.inflowNormalX; } -std::string Parameter::getInflowBoundaryNormalY() { return ic.inflowNormalY; } -std::string Parameter::getInflowBoundaryNormalZ() { return ic.inflowNormalZ; } -std::string Parameter::getOutflowBoundaryNormalX() { return ic.outflowNormalX; } -std::string Parameter::getOutflowBoundaryNormalY() { return ic.outflowNormalY; } -std::string Parameter::getOutflowBoundaryNormalZ() { return ic.outflowNormalZ; } -curandState *Parameter::getRandomState() { return this->devState; } - -std::string Parameter::getMainKernel() { return mainKernel; } -bool Parameter::getMultiKernelOn() { return multiKernelOn; } -std::vector<int> Parameter::getMultiKernelLevel() { return multiKernelLevel; } -std::vector<std::string> Parameter::getMultiKernel() { return multiKernel; } -std::string Parameter::getADKernel() { return adKernel; } +bool Parameter::getIsNeighborX() +{ + return this->isNeigborX; +} +bool Parameter::getIsNeighborY() +{ + return this->isNeigborY; +} +bool Parameter::getIsNeighborZ() +{ + return this->isNeigborZ; +} +std::string Parameter::getgeomBoundaryNormalX() +{ + return ic.geomNormalX; +} +std::string Parameter::getgeomBoundaryNormalY() +{ + return ic.geomNormalY; +} +std::string Parameter::getgeomBoundaryNormalZ() +{ + return ic.geomNormalZ; +} +std::string Parameter::getInflowBoundaryNormalX() +{ + return ic.inflowNormalX; +} +std::string Parameter::getInflowBoundaryNormalY() +{ + return ic.inflowNormalY; +} +std::string Parameter::getInflowBoundaryNormalZ() +{ + return ic.inflowNormalZ; +} +std::string Parameter::getOutflowBoundaryNormalX() +{ + return ic.outflowNormalX; +} +std::string Parameter::getOutflowBoundaryNormalY() +{ + return ic.outflowNormalY; +} +std::string Parameter::getOutflowBoundaryNormalZ() +{ + return ic.outflowNormalZ; +} +curandState *Parameter::getRandomState() +{ + return this->devState; +} + +std::string Parameter::getMainKernel() +{ + return mainKernel; +} +bool Parameter::getMultiKernelOn() +{ + return multiKernelOn; +} +std::vector<int> Parameter::getMultiKernelLevel() +{ + return multiKernelLevel; +} +std::vector<std::string> Parameter::getMultiKernel() +{ + return multiKernel; +} +std::string Parameter::getADKernel() +{ + return adKernel; +} //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void Parameter::setInitialCondition( @@ -1430,9 +2518,18 @@ std::function<void(real, real, real, real &, real &, real &, real &)> &Parameter return this->initialCondition; } -real Parameter::TrafoXtoWorld(int CoordX, int level) { return (parH[level]->mTtoWx * CoordX + parH[level]->cTtoWx); } -real Parameter::TrafoYtoWorld(int CoordY, int level) { return (parH[level]->mTtoWy * CoordY + parH[level]->cTtoWy); } -real Parameter::TrafoZtoWorld(int CoordZ, int level) { return (parH[level]->mTtoWz * CoordZ + parH[level]->cTtoWz); } +real Parameter::TrafoXtoWorld(int CoordX, int level) +{ + return (parH[level]->mTtoWx * CoordX + parH[level]->cTtoWx); +} +real Parameter::TrafoYtoWorld(int CoordY, int level) +{ + return (parH[level]->mTtoWy * CoordY + parH[level]->cTtoWy); +} +real Parameter::TrafoZtoWorld(int CoordZ, int level) +{ + return (parH[level]->mTtoWz * CoordZ + parH[level]->cTtoWz); +} real Parameter::TrafoXtoMGsWorld(int CoordX, int level) { real temp = 0; @@ -1465,7 +2562,7 @@ void Parameter::setUseStreams(bool useStreams) { if (useStreams) { if (this->getNumprocs() != 1) { - this->useStreams = useStreams; + this->useStreams = useStreams; this->cudaStreamManager = std::make_unique<CudaStreamManager>(); return; } else { @@ -1475,11 +2572,20 @@ void Parameter::setUseStreams(bool useStreams) this->useStreams = false; } -bool Parameter::getUseStreams() { return this->useStreams; } +bool Parameter::getUseStreams() +{ + return this->useStreams; +} -std::unique_ptr<CudaStreamManager> &Parameter::getStreamManager() { return this->cudaStreamManager; } +std::unique_ptr<CudaStreamManager> &Parameter::getStreamManager() +{ + return this->cudaStreamManager; +} -bool Parameter::getKernelNeedsFluidNodeIndicesToRun() { return this->kernelNeedsFluidNodeIndicesToRun; } +bool Parameter::getKernelNeedsFluidNodeIndicesToRun() +{ + return this->kernelNeedsFluidNodeIndicesToRun; +} void Parameter::findEdgeNodesCommMultiGPU() { diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h index a61a28452af92e863dac170ff666aa452f0e5e3f..6646cdbfbe70d4be9d35606309b839811cf6ec36 100644 --- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h +++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.h @@ -1,28 +1,28 @@ //======================================================================================= -// ____ ____ __ ______ __________ __ __ __ __ -// \ \ | | | | | _ \ |___ ___| | | | | / \ | | -// \ \ | | | | | |_) | | | | | | | / \ | | -// \ \ | | | | | _ / | | | | | | / /\ \ | | -// \ \ | | | | | | \ \ | | | \__/ | / ____ \ | |____ -// \ \ | | |__| |__| \__\ |__| \________/ /__/ \__\ |_______| -// \ \ | | ________________________________________________________________ -// \ \ | | | ______________________________________________________________| -// \ \| | | | __ __ __ __ ______ _______ -// \ | | |_____ | | | | | | | | | _ \ / _____) -// \ | | _____| | | | | | | | | | | \ \ \_______ +// ____ ____ __ ______ __________ __ __ __ __ +// \ \ | | | | | _ \ |___ ___| | | | | / \ | | +// \ \ | | | | | |_) | | | | | | | / \ | | +// \ \ | | | | | _ / | | | | | | / /\ \ | | +// \ \ | | | | | | \ \ | | | \__/ | / ____ \ | |____ +// \ \ | | |__| |__| \__\ |__| \________/ /__/ \__\ |_______| +// \ \ | | ________________________________________________________________ +// \ \ | | | ______________________________________________________________| +// \ \| | | | __ __ __ __ ______ _______ +// \ | | |_____ | | | | | | | | | _ \ / _____) +// \ | | _____| | | | | | | | | | | \ \ \_______ // \ | | | | |_____ | \_/ | | | | |_/ / _____ | -// \ _____| |__| |________| \_______/ |__| |______/ (_______/ +// \ _____| |__| |________| \_______/ |__| |______/ (_______/ // -// This file is part of VirtualFluids. VirtualFluids is free software: you can +// 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 +// 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 +// +// 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/>. // @@ -33,10 +33,10 @@ #ifndef GPU_PARAMETER_H #define GPU_PARAMETER_H -#include <vector> -#include <string> -#include <memory> #include <functional> +#include <memory> +#include <string> +#include <vector> #include "LBM/D3Q27.h" #include "LBM/LB.h" @@ -52,14 +52,13 @@ namespace basics { class ConfigurationFile; } -} +} // namespace vf class CudaStreamManager; //! \struct LBMSimulationParameter //! \brief struct holds and manages the LB-parameter of the simulation //! \brief For this purpose it holds structures and pointer for host and device data, respectively. -struct LBMSimulationParameter -{ +struct LBMSimulationParameter { bool evenOrOdd; unsigned int numberofthreads; @@ -120,7 +119,7 @@ struct LBMSimulationParameter real *gSij, *gSDij, *gDxvx, *gDyvx, *gDzvx, *gDxvy, *gDyvy, *gDzvy, *gDxvz, *gDyvz, *gDzvz; // DebugInformation // turbulence intensity // - real *vx_mean, *vy_mean, *vz_mean; // means + real *vx_mean, *vy_mean, *vz_mean; // means real *vxx, *vyy, *vzz, *vxy, *vxz, *vyz; // fluctuations std::vector<real> turbulenceIntensity; @@ -216,7 +215,7 @@ struct LBMSimulationParameter unsigned int kPressQ = 0, kPressQread; WallModelParameters wallModel; - + // testRoundoffError Distributions27 kDistTestRE; @@ -336,7 +335,7 @@ struct LBMSimulationParameter int indexOfProcessNeighborSend; int indexInSendBuffer; EdgeNodePositions(int indexOfProcessNeighborRecv, int indexInRecvBuffer, int indexOfProcessNeighborSend, - int indexInSendBuffer) + int indexInSendBuffer) : indexOfProcessNeighborRecv(indexOfProcessNeighborRecv), indexInRecvBuffer(indexInRecvBuffer), indexOfProcessNeighborSend(indexOfProcessNeighborSend), indexInSendBuffer(indexInSendBuffer) { @@ -362,7 +361,7 @@ public: std::shared_ptr<LBMSimulationParameter> getParH(int level); std::shared_ptr<LBMSimulationParameter> getParD(int level); - + void copyMeasurePointsArrayToVector(int lev); ////////////////////////////////////////////////////////////////////////// @@ -496,8 +495,8 @@ public: void setUseMeasurePoints(bool useMeasurePoints); void setUseWale(bool useWale); void setUseTurbulentViscosity(bool useTurbulentViscosity); - void setUseAMD( bool useAMD); - void setSGSConstant( real SGSConstant); + void setUseAMD(bool useAMD); + void setSGSConstant(real SGSConstant); void setHasWallModelMonitor(bool hasWallModelMonitor); void setUseInitNeq(bool useInitNeq); void setSimulatePorousMedia(bool simulatePorousMedia); @@ -579,10 +578,10 @@ public: void setADKernel(std::string adKernel); - //adder + // adder - void addActuator(SPtr<PreCollisionInteractor> actuator); - void addProbe(SPtr<PreCollisionInteractor> probes); + void addActuator(SPtr<PreCollisionInteractor> actuator); + void addProbe(SPtr<PreCollisionInteractor> probes); // getter double *getForcesDouble(); @@ -713,10 +712,10 @@ public: real getViscosityRatio(); real getVelocityRatio(); real getDensityRatio(); - real getPressRatio(); + real getPressRatio(); real getTimeRatio(); real getLengthRatio(); - real getForceRatio(); + real getForceRatio(); real getRealX(); real getRealY(); real getRe(); @@ -826,25 +825,24 @@ public: //////////////////////////////////////////////////////////////////////////// - private: void readConfigData(const vf::basics::ConfigurationFile &configData); - bool compOn { false }; - bool diffOn { false }; - bool isF3 { false }; - bool calcDragLift { false }; - bool calcCp { false }; - bool writeVeloASCII { false }; - bool calcPlaneConc { false }; + bool compOn{ false }; + bool diffOn{ false }; + bool isF3{ false }; + bool calcDragLift{ false }; + bool calcCp{ false }; + bool writeVeloASCII{ false }; + bool calcPlaneConc{ false }; bool calcVelocityAndFluctuations{ false }; - bool isBodyForce { false }; - int diffMod {27}; - int maxlevel {0}; - int coarse {0}; - int fine {0}; - int factor_gridNZ {2}; - int D3Qxx {27}; + bool isBodyForce{ false }; + int diffMod{ 27 }; + int maxlevel{ 0 }; + int coarse{ 0 }; + int fine{ 0 }; + int factor_gridNZ{ 2 }; + int D3Qxx{ 27 }; InitCondition ic; double memsizeGPU; unsigned int limitOfNodesForVTK; @@ -852,8 +850,8 @@ private: unsigned int timestep; // Kernel - std::string mainKernel { "CumulantK17Comp" }; - bool multiKernelOn { false }; + std::string mainKernel{ "CumulantK17Comp" }; + bool multiKernelOn{ false }; std::vector<int> multiKernelLevel; std::vector<std::string> multiKernel; bool kernelNeedsFluidNodeIndicesToRun = false; @@ -861,12 +859,12 @@ private: ////////////////////////////////////////////////////////////////////////// // particles - int particleBasicLevel {0}; - int particleInitLevel {0}; - int numberOfParticles {0}; - bool calcParticles {false}; - real startXHotWall {(real)0.0}; - real endXHotWall {(real)0.0}; + int particleBasicLevel{ 0 }; + int particleInitLevel{ 0 }; + int numberOfParticles{ 0 }; + bool calcParticles{ false }; + real startXHotWall{ (real)0.0 }; + real endXHotWall{ (real)0.0 }; ////////////////////////////////////////////////////////////////////////// // CUDA random number generation curandState *devState; @@ -880,13 +878,13 @@ private: TempPressforBoundaryConditions *TempPressH, *TempPressD; // Drehung/////////////// - real Phi {0.0}; - real angularVelocity; + real Phi{ 0.0 }; + real angularVelocity; unsigned int startTurn; // PreCollisionInteractors ////////////// std::vector<SPtr<PreCollisionInteractor>> actuators; - std::vector<SPtr<PreCollisionInteractor>> probes; + std::vector<SPtr<PreCollisionInteractor>> probes; // Step of Ensight writing// unsigned int stepEnsight; @@ -911,12 +909,10 @@ private: std::vector<std::string> possNeighborFilesRecvX, possNeighborFilesRecvY, possNeighborFilesRecvZ; bool isNeigborX, isNeigborY, isNeigborZ; - //////////////////////////////////////////////////////////////////////////// // initial condition std::function<void(real, real, real, real &, real &, real &, real &)> initialCondition; - //////////////////////////////////////////////////////////////////////////// // cuda streams @@ -925,8 +921,9 @@ private: std::unique_ptr<CudaStreamManager> cudaStreamManager; public: - //! \brief sets whether streams and thus communication hiding should be used - //! \details This function is only useful for simulations on multiple GPUs. If there is only one MPI process, the passed value is automatically overwritten with false. + //! \brief sets whether streams and thus communication hiding should be used + //! \details This function is only useful for simulations on multiple GPUs. If there is only one MPI process, the + //! passed value is automatically overwritten with false. void setUseStreams(bool useStreams); bool getUseStreams(); std::unique_ptr<CudaStreamManager> &getStreamManager(); @@ -938,6 +935,7 @@ public: void findEdgeNodesCommMultiGPU(); bool useReducedCommunicationAfterFtoC{ true }; + private: void findEdgeNodesXY(int level); bool findIndexInSendNodesXY(int level, int index, int &indexOfProcessNeighborSend, int &indexInSendBuffer);