Skip to content
Snippets Groups Projects
Commit a4999f85 authored by Konstantin Kutscher's avatar Konstantin Kutscher
Browse files

new boundary conditions

parent 6d7e51e1
No related branches found
No related tags found
No related merge requests found
Showing
with 2473 additions and 1050 deletions
......@@ -11,7 +11,7 @@ add_subdirectory(Applications/sphere)
#add_subdirectory(Applications/bananas2)
# add_subdirectory(Applications/plate)
# add_subdirectory(Applications/plate2)
# add_subdirectory(Applications/FlowAroundCylinder)
add_subdirectory(Applications/FlowAroundCylinder)
add_subdirectory(Applications/LaminarTubeFlow)
# add_subdirectory(Applications/LaminarTubeFlowConv)
#add_subdirectory(Applications/cylinderSt)
......@@ -44,5 +44,7 @@ add_subdirectory(Applications/pChannel)
#add_subdirectory(Applications/pDisk)
add_subdirectory(Applications/BoxBenchmark)
add_subdirectory(Applications/DHIT)
add_subdirectory(Applications/FNG)
add_subdirectory(Applications/aperm)
\ No newline at end of file
add_subdirectory(Applications/DLR-F16)
add_subdirectory(Applications/aperm)
add_subdirectory(Applications/f16test)
add_subdirectory(Applications/mirror)
\ No newline at end of file
pathname = d:/temp/DHIT_128_2
pathname = d:/temp/DHIT_Green
numOfThreads = 4
availMem = 11e9
......@@ -6,15 +6,15 @@ availMem = 11e9
length = 128 128 128
blocknx = 32 32 32
initTime = 10000
initTime = 10
outTime = 100
endTime = 1000000
outTime = 1
endTime = 10
logToFile = false
#Simulation
initFile = d:/Projects/DHIT/Velocities_128_2.txt
initFile = d:/Projects/DHIT/Velocities.txt
nuLB = 1.2395e-2
uRMS = 0.0234
lambda = 0.1
......
......@@ -10,6 +10,8 @@ void run(string configname)
{
try
{
//Sleep(30000);
ConfigurationFile config;
config.load(configname);
......@@ -115,8 +117,8 @@ void run(string configname)
ppblocks.reset();
//set connectors
D3Q27InterpolationProcessorPtr iProcessor(new D3Q27IncompressibleOffsetInterpolationProcessor());
D3Q27SetConnectorsBlockVisitor setConnsVisitor(comm, true, D3Q27System::ENDDIR, nuLB, iProcessor);
InterpolationProcessorPtr iProcessor(new IncompressibleOffsetInterpolationProcessor());
SetConnectorsBlockVisitor setConnsVisitor(comm, true, D3Q27System::ENDDIR, nuLB, iProcessor);
grid->accept(setConnsVisitor);
//domain decomposition for threads
......@@ -148,12 +150,12 @@ void run(string configname)
UBLOG(logINFO, "Available memory per process = " << availMem << " bytes");
}
LBMKernel3DPtr kernel;
LBMKernelPtr kernel;
//kernel = LBMKernel3DPtr(new LBMKernelETD3Q27CCLB(blocknx[0], blocknx[1], blocknx[2], LBMKernelETD3Q27CCLB::NORMAL));
kernel = LBMKernel3DPtr(new InitDensityLBMKernel(blocknx[0], blocknx[1], blocknx[2]));
kernel = LBMKernelPtr(new InitDensityLBMKernel(blocknx[0], blocknx[1], blocknx[2]));
BCProcessorPtr bcProc(new D3Q27ETBCProcessor());
BCProcessorPtr bcProc(new BCProcessor());
kernel->setBCProcessor(bcProc);
SetKernelBlockVisitor kernelVisitor(kernel, nuLB, availMem, needMem);
......@@ -162,15 +164,38 @@ void run(string configname)
intHelper.setBC();
//initialization of distributions
//D3Q27ETInitDistributionsBlockVisitor initVisitor(nuLB, rhoLB, uLB, uLB, uLB);
InitDistributionsFromFileBlockVisitor initVisitor(nuLB, rhoLB, initFile);
InitDistributionsBlockVisitor initVisitor(nuLB, rhoLB);
double u_LB = 0.01;
mu::Parser inflowProfileVx1, inflowProfileVx2, inflowProfileVx3;
inflowProfileVx1.DefineConst("U", u_LB);
inflowProfileVx1.DefineConst("PI", PI);
inflowProfileVx1.DefineConst("L1", g_maxX1-g_minX1);
inflowProfileVx1.DefineConst("L2", g_maxX2-g_minX2);
inflowProfileVx1.DefineConst("L3", g_maxX3-g_minX3);
inflowProfileVx1.SetExpr("U*cos(2.0*PI*x1/L1)*sin(2.0*PI*x2/L2)*sin(2.0*PI*x3/L3)");
inflowProfileVx2.DefineConst("U", u_LB);
inflowProfileVx2.DefineConst("PI", PI);
inflowProfileVx2.DefineConst("L1", g_maxX1-g_minX1);
inflowProfileVx2.DefineConst("L2", g_maxX2-g_minX2);
inflowProfileVx2.DefineConst("L3", g_maxX3-g_minX3);
inflowProfileVx2.SetExpr("-U*cos(2.0*PI*x1/L1)*sin(2.0*PI*x2/L2)*cos(2.0*PI*x3/L3)");
inflowProfileVx3.DefineConst("U", u_LB);
inflowProfileVx3.DefineConst("PI", PI);
inflowProfileVx3.DefineConst("L1", g_maxX1-g_minX1);
inflowProfileVx3.DefineConst("L2", g_maxX2-g_minX2);
inflowProfileVx3.DefineConst("L3", g_maxX3-g_minX3);
inflowProfileVx3.SetExpr("-U/2.0*sin(8.0*PI*(x1)/(L1))*cos(8.0*PI*(x3)/L3)");
initVisitor.setVx1(inflowProfileVx1);
initVisitor.setVx2(inflowProfileVx2);
initVisitor.setVx3(inflowProfileVx3);
//InitDistributionsFromFileBlockVisitor initVisitor(nuLB, rhoLB, initFile);
grid->accept(initVisitor);
//boundary conditions grid
{
UbSchedulerPtr geoSch(new UbScheduler(1));
MacroscopicQuantitiesCoProcessorPtr ppgeo(
new MacroscopicQuantitiesCoProcessor(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, true));
WriteBoundaryConditionsCoProcessorPtr ppgeo(
new WriteBoundaryConditionsCoProcessor(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm));
grid->coProcess(0);
}
......@@ -184,7 +209,7 @@ void run(string configname)
}
UbSchedulerPtr outputSch(new UbScheduler(outTime));
MacroscopicQuantitiesCoProcessor pp(grid, outputSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv);
WriteMacroscopicQuantitiesCoProcessor pp(grid, outputSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm);
UbSchedulerPtr nupsSch(new UbScheduler(10, 30, 100));
NUPSCounterCoProcessor npr(grid, nupsSch, numOfThreads, comm);
......@@ -195,9 +220,9 @@ void run(string configname)
if (myid == 0) UBLOG(logINFO, "Initialisation-end");
kernel = LBMKernel3DPtr(new LBMKernelETD3Q27CCLB(blocknx[0], blocknx[1], blocknx[2], LBMKernelETD3Q27CCLB::NORMAL));
kernel = LBMKernelPtr(new IncompressibleCumulantLBMKernel(blocknx[0], blocknx[1], blocknx[2], IncompressibleCumulantLBMKernel::NORMAL));
kernel->setBCProcessor(bcProc);
SetKernelBlockVisitor kernelVisitor2(kernel, nuLB, availMem, needMem, SetKernelBlockVisitor::Change);
SetKernelBlockVisitor kernelVisitor2(kernel, nuLB, availMem, needMem, SetKernelBlockVisitor::ChangeKernel);
grid->accept(kernelVisitor2);
UbSchedulerPtr visSch(new UbScheduler(outTime));
......
pathOut = d:/temp/fng
pathGeo = d:/Projects/SFB880/FNG/A1_Forschungsdaten_Profilgeometrie_STL_CATIA_Rossian
fngFileWhole = f16-ascii.stl
fngFileBodyPart = f16-body-part-ascii.stl
fngFileTrailingEdge = f16-trailing-edge-ascii.stl
numOfThreads = 1
availMem = 20e9
refineLevel = 3
blockNx = 16 16 16
uLB = 0.1
#x1min x1max x2min x2max x3min x3max [mm]
boundingBox = -50 400 45 55 -60 80
deltaXfine = 0.1
restartStep = 10000
restartStepStart = 10000
outTime = 1000
endTime = 1000
logToFile = false
porousTralingEdge = false
thinWall = false
\ No newline at end of file
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
########################################################
## C++ PROJECT ###
########################################################
PROJECT(f16)
INCLUDE(${SOURCE_ROOT}/IncludsList.cmake)
#################################################################
### LOCAL FILES ###
#################################################################
FILE(GLOB SPECIFIC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/*.hpp )
SET(ALL_SOURCES ${ALL_SOURCES} ${SPECIFIC_FILES})
SOURCE_GROUP(src FILES ${SPECIFIC_FILES})
SET(CAB_ADDITIONAL_LINK_LIBRARIES VirtualFluids)
#################################################################
### CREATE PROJECT ###
#################################################################
CREATE_CAB_PROJECT(f16 BINARY)
pathOut = d:/temp/fngPorous
pathGeo = d:/Projects/SFB880/FNG/A1_Forschungsdaten_Profilgeometrie_STL_CATIA_Rossian
#fngFileWhole = f16-ascii.stl
fngFileWhole = grundgeometrie-direkter-export.stl
fngFileBodyPart = f16-body-part-ascii.stl
fngFileTrailingEdge = f16-trailing-edge-ascii.stl
zigZagTape = 2zackenbaender0.stl
numOfThreads = 4
availMem = 20e9
refineLevel = 8
#blockNx = 8 4 8
blockNx = 21 6 13
uLB = 0.1
#x1min x1max x2min x2max x3min x3max [m]
boundingBox = -0.90 1.20 0.035 0.065 -0.65 0.65
#deltaXfine = 0.001
#deltaXfine = 0.00375
#deltaXfine = 1.46484375e-5
#deltaXfine = 0.00001171875
#deltaXfine = 9.765625e-6
deltaXfine = 19.53125e-6
#10e-6
refineDistance = 0.3
restartStep = 10000
restartStepStart = 10000
outTime = 1
endTime = 2000
logToFile = false
porousTralingEdge = true
thinWall = false
pathOut = d:/temp/f16Grid_x21
pathGeo = d:/Projects/SFB880/DLR-F16/A1_Forschungsdaten_Profilgeometrie_STL_CATIA_Rossian
#fngFileWhole = f16-ascii.stl
fngFileWhole = grundgeometrie-direkter-export.stl
#fngFileWhole = grundgeometrie-mittel.stl
fngFileBodyPart = f16-body-part-ascii.stl
fngFileTrailingEdge = f16-trailing-edge-ascii.stl
zigZagTape = 2zackenbaender0.stl
numOfThreads = 4
availMem = 10e9
refineLevel = 8
blockNx = 21 6 6
#blockNx = 21 6 13
#blockNx = 294 12 247
uLB = 0.1
#x1min x1max x2min x2max x3min x3max [m]
boundingBox = -0.90 1.20 0.035 0.065 -0.65 0.65
#boundingBox = -0.90 1.20 0.035 0.065 -0.65 0.65048
#boundingBox = -0.1 0.60 0.035 0.065 -0.3 0.3
#boundingBox = -10e-3 310e-3 0.035 0.065 -21e-3 21e-3
#deltaXfine = 0.005 #level 0
#deltaXfine = 0.0025 #level 1
#deltaXfine = 0.00125 #level 2
#deltaXfine = 0.000625 #level 3
#deltaXfine = 0.0003125 #level 4
#deltaXfine = 0.00015625 #level 5
#deltaXfine = 0.000078125 #level 6
#deltaXfine = 0.0000390625 #level 7
deltaXfine = 0.00001953125 #level 8
refineDistance = 0.3
restartStep = 100000
restartStepStart = 100000
outTime = 1000
endTime = 200000
logToFile = false
porousTralingEdge = false
thinWall = false
testBox=false
nupsStep = 10 10 10000000
\ No newline at end of file
pathOut = d:/temp/f16Grid
pathGeo = d:/Projects/SFB880/DLR-F16/A1_Forschungsdaten_Profilgeometrie_STL_CATIA_Rossian
#fngFileWhole = f16-ascii.stl
fngFileWhole = grundgeometrie-direkter-export.stl
#fngFileWhole = grundgeometrie-mittel.stl
fngFileBodyPart = f16-body-part-ascii.stl
fngFileTrailingEdge = f16-trailing-edge-ascii.stl
zigZagTape = 2zackenbaender0.stl
numOfThreads = 4
availMem = 10e9
refineLevel = 8 #10
#blockNx = 8 8 8
blockNx = 6 6 6
#blockNx = 294 12 247
uLB = 0.1
#x1min x1max x2min x2max x3min x3max [m]
boundingBox = -0.90 1.20 0.035 0.065 -0.65 0.65
#boundingBox = -0.90 1.1992 0.035 0.065 -0.65 0.65
#boundingBox = -0.1 0.60 0.035 0.065 -0.3 0.3
#boundingBox = -10e-3 310e-3 0.035 0.065 -21e-3 25e-3
#deltaXfine = 5120e-6 #level 0
#deltaXfine = 2560e-6 #level 1
#deltaXfine = 1280e-6 #level 2
#deltaXfine = 640e-6 #level 3
#deltaXfine = 320e-6 #level 4
#deltaXfine = 160e-6 #level 5
#deltaXfine = 80e-6 #level 6
#deltaXfine = 40e-6 #level 7
deltaXfine = 20e-6 #level 8
#deltaXfine = 10e-6 #level 9
#deltaXfine = 0.000009765625
#deltaXfine = 6.5e-6
refineDistance = 0.1 #0.3
restartStep = 100000
restartStepStart = 100000
outTime = 1000
endTime = 200000
logToFile = false
porousTralingEdge = false
thinWall = false
nupsStep = 10 10 10000000
\ No newline at end of file
pathOut = d:/temp/fng6
pathGeo = d:/Projects/SFB880/FNG/A1_Forschungsdaten_Profilgeometrie_STL_CATIA_Rossian
#fngFileWhole = f16-ascii.stl
fngFileWhole = grundgeometrie-direkter-export.stl
#fngFileWhole = grundgeometrie-mittel.stl
fngFileBodyPart = f16-body-part-ascii.stl
fngFileTrailingEdge = f16-trailing-edge-ascii.stl
zigZagTape = 2zackenbaender0.stl
numOfThreads = 1
availMem = 10e9
refineLevel = 1
#blockNx = 8 4 8
blockNx = 21 6 13
#blockNx = 294 12 247
uLB = 0.1
#x1min x1max x2min x2max x3min x3max [m]
#boundingBox = -0.90 1.20 0.035 0.065 -0.65 0.65
#boundingBox = -0.1 0.60 0.035 0.065 -0.3 0.3
#boundingBox = -10e-3 310e-3 0.035 0.065 -21e-3 21e-3
boundingBox = -0.360 0.660 0.035 0.065 -0.30 0.30
#deltaXfine = 0.005 #level 0
#deltaXfine = 0.0025 #level 1
#deltaXfine = 0.00125 #level 2
#deltaXfine = 0.000625 #level 3
#deltaXfine = 0.0003125 #level 4
#deltaXfine = 0.00015625 #level 5
#deltaXfine = 0.000078125 #level 6
#deltaXfine = 0.0000390625 #level 7
deltaXfine = 0.00001953125 #level 8
refineDistance = 0.3
restartStep = 100
restartStepStart = 100
outTime = 100
endTime = 100
logToFile = false
porousTralingEdge = false
thinWall = false
testBox=true
nupsStep = 10 10 10000000
\ No newline at end of file
This diff is collapsed.
......@@ -5,7 +5,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
########################################################
PROJECT(cylinder)
INCLUDE(${SOURCE_ROOT}/lib/IncludsList.txt)
INCLUDE(${SOURCE_ROOT}/IncludsList.cmake)
#################################################################
### LOCAL FILES ###
......@@ -17,7 +17,7 @@ FILE(GLOB SPECIFIC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h
SET(ALL_SOURCES ${ALL_SOURCES} ${SPECIFIC_FILES})
SOURCE_GROUP(src FILES ${SPECIFIC_FILES})
SET(CAB_ADDITIONAL_LINK_LIBRARIES vfluids)
SET(CAB_ADDITIONAL_LINK_LIBRARIES VirtualFluids)
#################################################################
### CREATE PROJECT ###
......
This diff is collapsed.
This diff is collapsed.
pathname = d:/temp/pflowDP2
numOfThreads = 4
availMem = 8e9
logToFile = false
blocknx = 10 10 10
gridnx = 2 1 2
nuLB = 1e-2
dpLB = 1e-7
deltax = 0.1
refineLevel = 0
logToFile=false
thinWall = false
restartStep = 100000
endTime = 100000
outTime = 100000
\ No newline at end of file
This diff is collapsed.
pathname = d:/temp/LaminarTubeFlow1
numOfThreads = 1
numOfThreads = 4
availMem = 10e9
#Grid
......@@ -13,8 +13,8 @@ uLB = 0.001
Re = 10
outTime = 10
endTime = 500
outTime = 1
endTime = 5000
logToFile = false
......
......@@ -56,6 +56,25 @@ void run(string configname)
const int baseLevel = 0;
//BC Adapter
//////////////////////////////////////////////////////////////////////////////
BCAdapterPtr noSlipBCAdapter(new NoSlipBCAdapter());
//noSlipBCAdapter->setBcAlgorithm(BCAlgorithmPtr(new ThinWallNoSlipBCAlgorithm()));
//BCAdapterPtr denBCAdapter(new DensityBCAdapter(rhoLB));
//denBCAdapter->setBcAlgorithm(BCAlgorithmPtr(new EqDensityBCAlgorithm()));
noSlipBCAdapter->setBcAlgorithm(BCAlgorithmPtr(new NoSlipBCAlgorithm()));
BCAdapterPtr denBCAdapter(new DensityBCAdapter(rhoLB));
denBCAdapter->setBcAlgorithm(BCAlgorithmPtr(new NonReflectingDensityBCAlgorithm()));
//////////////////////////////////////////////////////////////////////////////////
//BS visitor
BoundaryConditionsBlockVisitor bcVisitor;
bcVisitor.addBC(noSlipBCAdapter);
bcVisitor.addBC(denBCAdapter);
Grid3DPtr grid(new Grid3D(comm));
//////////////////////////////////////////////////////////////////////////
......@@ -77,6 +96,9 @@ void run(string configname)
double g_maxX3 = length[2] / 2.0;
//geometry
//x
//GbObject3DPtr cylinder(new GbCylinder3D(g_minX1 - 2.0*dx, 0.0, 0.0, g_maxX1 + 2.0*dx, 0.0, 0.0, dLB / 2.0));
//y
GbObject3DPtr cylinder(new GbCylinder3D(g_minX1 - 2.0*dx, 0.0, 0.0, g_maxX1 + 2.0*dx, 0.0, 0.0, dLB / 2.0));
GbSystem3D::writeGeoObject(cylinder.get(), pathname + "/geo/cylinder", WbWriterVtkXmlBinary::getInstance());
......@@ -118,14 +140,13 @@ void run(string configname)
ppblocks->process(0);
int bbOption = 1; //0=simple Bounce Back, 1=quadr. BB
D3Q27BoundaryConditionAdapterPtr bcObst(new D3Q27NoSlipBCAdapter(bbOption));
D3Q27InteractorPtr cylinderInt(new D3Q27Interactor(cylinder, grid, bcObst, Interactor3D::INVERSESOLID));
D3Q27InteractorPtr cylinderInt(new D3Q27Interactor(cylinder, grid, noSlipBCAdapter, Interactor3D::INVERSESOLID));
double r = boost::dynamic_pointer_cast<GbCylinder3D>(cylinder)->getRadius();
double cx1 = g_minX1;
double cx2 = cylinder->getX2Centroid();
double cx3 = cylinder->getX3Centroid();
mu::Parser fct;
fct.SetExpr("vx1*(1-((x2-y0)^2+(x3-z0)^2)/(R^2))");
fct.DefineConst("x2Vmax", 0.0); //x2-Pos fuer vmax
......@@ -136,12 +157,13 @@ void run(string configname)
fct.DefineConst("y0", cx2);
fct.DefineConst("z0", cx3);
fct.DefineConst("nue", nuLB);
BCAdapterPtr velBCAdapter(new VelocityBCAdapter(true, false, false, fct, 0, BCFunction::INFCONST));
//velBCAdapter->setBcAlgorithm(BCAlgorithmPtr(new VelocityBCAlgorithm()));
velBCAdapter->setBcAlgorithm(BCAlgorithmPtr(new NonReflectingVelocityBCAlgorithm()));
D3Q27BoundaryConditionAdapterPtr velBCAdapter(new D3Q27VelocityBCAdapter(true, false, false, fct, 0, D3Q27BCFunction::INFCONST));
D3Q27InteractorPtr inflowInt = D3Q27InteractorPtr(new D3Q27Interactor(geoInflow, grid, velBCAdapter, Interactor3D::SOLID));
//outflow
D3Q27BoundaryConditionAdapterPtr denBCAdapter(new D3Q27DensityBCAdapter(rhoLB));
D3Q27InteractorPtr outflowInt = D3Q27InteractorPtr(new D3Q27Interactor(geoOutflow, grid, denBCAdapter, Interactor3D::SOLID));
......@@ -153,8 +175,9 @@ void run(string configname)
intHelper.selectBlocks();
//set connectors
D3Q27InterpolationProcessorPtr iProcessor(new D3Q27IncompressibleOffsetInterpolationProcessor());
D3Q27SetConnectorsBlockVisitor setConnsVisitor(comm, true, D3Q27System::ENDDIR, nuLB, iProcessor);
//InterpolationProcessorPtr iProcessor(new IncompressibleOffsetInterpolationProcessor());
InterpolationProcessorPtr iProcessor(new CompressibleOffsetInterpolationProcessor());
SetConnectorsBlockVisitor setConnsVisitor(comm, true, D3Q27System::ENDDIR, nuLB, iProcessor);
//ConnectorFactoryPtr factory(new Block3DConnectorFactory());
//ConnectorBlockVisitor setConnsVisitor(comm, nuLB, iProcessor, factory);
grid->accept(setConnsVisitor);
......@@ -191,23 +214,14 @@ void run(string configname)
UBLOG(logINFO, "Available memory per process = " << availMem << " bytes");
}
LBMKernel3DPtr kernel;
LBMKernelPtr kernel;
kernel = LBMKernel3DPtr(new LBMKernelETD3Q27CCLB(blocknx[0], blocknx[1], blocknx[2], LBMKernelETD3Q27CCLB::NORMAL));
//kernel = LBMKernelPtr(new IncompressibleCumulantLBMKernel(blocknx[0], blocknx[1], blocknx[2], IncompressibleCumulantLBMKernel::NORMAL));
kernel = LBMKernelPtr(new CompressibleCumulantLBMKernel(blocknx[0], blocknx[1], blocknx[2], CompressibleCumulantLBMKernel::NORMAL));
//
//BCProcessorPtr bcProc(new D3Q27ETBCProcessor());
BCProcessorPtr bcProc(new D3Q27ETForThinWallBCProcessor());
BoundaryConditionPtr noSlipBC;
BoundaryConditionPtr velBC;
BoundaryConditionPtr denBC;
//noSlipBC = BoundaryConditionPtr(new NoSlipBoundaryCondition());
noSlipBC = BoundaryConditionPtr(new ThinWallNoSlipBoundaryCondition());
velBC = BoundaryConditionPtr(new VelocityBoundaryCondition());
denBC = BoundaryConditionPtr(new NonEqDensityBoundaryCondition());
bcProc->addBC(noSlipBC);
bcProc->addBC(velBC);
bcProc->addBC(denBC);
BCProcessorPtr bcProc(new BCProcessor());
//BCProcessorPtr bcProc(new ThinWallBCProcessor());
kernel->setBCProcessor(bcProc);
......@@ -216,26 +230,25 @@ void run(string configname)
if (refineLevel > 0)
{
D3Q27SetUndefinedNodesBlockVisitor undefNodesVisitor;
SetUndefinedNodesBlockVisitor undefNodesVisitor;
grid->accept(undefNodesVisitor);
}
intHelper.setBC();
BoundaryConditionBlockVisitor bcVisitor;
bcVisitor.addBC(velBCAdapter);
grid->accept(bcVisitor);
//initialization of distributions
D3Q27ETInitDistributionsBlockVisitor initVisitor(nuLB, rhoLB);
InitDistributionsBlockVisitor initVisitor(nuLB, rhoLB);
grid->accept(initVisitor);
//boundary conditions grid
//{
// UbSchedulerPtr geoSch(new UbScheduler(1));
// MacroscopicQuantitiesCoProcessorPtr ppgeo(
// new MacroscopicQuantitiesCoProcessor(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, true));
// grid->coProcess(0);
//}
{
UbSchedulerPtr geoSch(new UbScheduler(1));
WriteBoundaryConditionsCoProcessor(grid, geoSch, pathname, WbWriterVtkXmlBinary::getInstance(), conv, comm);
grid->coProcess(0);
}
if (myid == 0) UBLOG(logINFO, "Preprocess - end");
}
......@@ -254,22 +267,25 @@ void run(string configname)
UBLOG(logINFO, "path = " << pathname);
}
//BoundaryConditionBlockVisitor bcVisitor;
//grid->accept(bcVisitor);
BCAdapterPtr velBCAdapter(new VelocityBCAdapter());
velBCAdapter->setBcAlgorithm(BCAlgorithmPtr(new VelocityBCAlgorithm()));
bcVisitor.addBC(velBCAdapter);
grid->accept(bcVisitor);
//set connectors
D3Q27InterpolationProcessorPtr iProcessor(new D3Q27IncompressibleOffsetInterpolationProcessor());
D3Q27SetConnectorsBlockVisitor setConnsVisitor(comm, true, D3Q27System::ENDDIR, nuLB, iProcessor);
InterpolationProcessorPtr iProcessor(new IncompressibleOffsetInterpolationProcessor());
SetConnectorsBlockVisitor setConnsVisitor(comm, true, D3Q27System::ENDDIR, nuLB, iProcessor);
grid->accept(setConnsVisitor);
if (myid == 0) UBLOG(logINFO, "Restart - end");
}
UbSchedulerPtr visSch(new UbScheduler(outTime));
MacroscopicQuantitiesCoProcessor pp(grid, visSch, pathname, WbWriterVtkXmlASCII::getInstance(), conv);
WriteMacroscopicQuantitiesCoProcessor pp(grid, visSch, pathname, WbWriterVtkXmlASCII::getInstance(), conv, comm);
UbSchedulerPtr nupsSch(new UbScheduler(10, 30, 100));
NUPSCounterCoProcessor npr(grid, nupsSch, numOfThreads, comm);
//CalculationManagerPtr calculation(new CalculationManager(grid, numOfThreads, endTime, visSch,CalculationManager::PrePostBc));
CalculationManagerPtr calculation(new CalculationManager(grid, numOfThreads, endTime, visSch));
if (myid == 0) UBLOG(logINFO, "Simulation-start");
calculation->calculate();
......
pathname = /hpc3lustre/work/koskuche/SFB880/Permeability/anisotropic/PA200-250-50_800MPI
pathGeo = /hpc3lustre/work/koskuche/SFB880/Materials/anisotropic
numOfThreads = 1
availMem = 11e9
logToFile = true
#porous media
rawFile = true
sampleFilename = /PA_200-250-50%_gewalzt_1575x1616x1643_32922.raw
#diminsions [voxel]
pmNX1 = 1575
pmNX2 = 1616
pmNX3 = 1643
#threshold
lthreshold = 32922
uthreshold = 65535
#diminsions [m]
pmL1 = 15.75e-3
pmL2 = 16.16e-3
pmL3 = 16.43e-3
#grid
blocknx = 32
nx3 = 10
deltax = 20e-6
spongeLayer=false
#physic
newPressure = false
dp_LB = 1e-7
newViscosity = false
nu_LB = 0.0005
timeSeriesFile = /timeseries/1
timeSeriesOutTime = 1000
gridPrepare = true
numOfParts = 800
restartStep = 50000
restartStepStart=50000
flowInit = true
endTime = 800000
outTime = 50000
nupsStep = 1000 1000 10000000
pathname = /hpc3lustre/work/koskuche/SFB880/Permeability/anisotropic/PA80-110+120-150_MPI
pathGeo = /hpc3lustre/work/koskuche/SFB880/Materials/anisotropic
numOfThreads = 1
availMem = 11e9
logToFile = true
#porous media
rawFile = false
#sampleFilename = /PA_80-110+120-150_1824x1735x1603_8656.raw
sampleFilename = /vtk/PA80-110+120-150_1600x1600x1600_8656.vti
#diminsions [voxel]
pmNX1 = 1600
pmNX2 = 1600
pmNX3 = 1600
#threshold
lthreshold = 8656
uthreshold = 30294
#diminsions [m]
pmL1 = 16e-3
pmL2 = 16e-3
pmL3 = 16e-3
pmDeltas = true
#deltas [m]
pmDeltaX1 = 0.01e-3
pmDeltaX2 = 0.01e-3
pmDeltaX3 = 0.01e-3
yDir = false
zDir = false
#grid
blocknx = 32
nx3 = 10
deltax = 16e-6
spongeLayer=false
#physic
dp_LB = 1e-6
nu_LB = 0.0005
timeSeriesFile = /timeseries/1
timeSeriesOutTime = 1000
restartStep = 50000
restartStepStart=50000
endTime = 800000
outTime = 50000
nupsStep = 1000 1000 10000000
gridPrepare = false
numOfParts = 800
pathname = d:/temp/apermPA80-110+120-150
pathGeo = f:/
numOfThreads = 4
availMem = 11e9
logToFile = flse
#porous media
rawFile = false
sampleFilename = /PA80-110+120-150_1600x1600x1600_8656.vti
#diminsions [voxel]
pmNX1 = 1600
pmNX2 = 1600
pmNX3 = 1600
#threshold
lthreshold = 8656
uthreshold = 30294
#diminsions [m]
pmL1 = 16e-3
pmL2 = 16e-3
pmL3 = 16e-3
pmDeltas = true
#deltas [m]
pmDeltaX1 = 0.01e-3
pmDeltaX2 = 0.01e-3
pmDeltaX3 = 0.01e-3
yDir = false
zDir = false
#grid
blocknx = 32
nx3 = 10
deltax = 80e-6
spongeLayer=false
#physic
newPressure = false
dp_LB = 1e-6
newViscosity = false
nu_LB = 0.0005
vx1=0
vx2=0
vx3=0
timeSeriesFile = /timeseries/1
timeSeriesOutTime = 1000
restartStep = 50000
restartStepStart=50000
endTime = 800000
outTime = 50000
nupsStep = 1000 1000 10000000
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment