mirror of
https://github.com/ParticulateFlow/CFDEMcoupling-PFM.git
synced 2025-12-08 06:37:44 +00:00
release on 2013-04-08_18-56-48
This commit is contained in:
81
README
Normal file
81
README
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
CFDEMcoupling - Open Source CFD-DEM coupling
|
||||||
|
|
||||||
|
CFDEMcoupling is part of the CFDEMproject
|
||||||
|
www.cfdem.com
|
||||||
|
Christoph Goniva, christoph.goniva@cfdem.com
|
||||||
|
Copyright 2009-2012 JKU Linz
|
||||||
|
Copyright 2012- DCS Computing GmbH, Linz
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of CFDEMcoupling.
|
||||||
|
|
||||||
|
CFDEMcoupling is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 3 of the License, or (at your
|
||||||
|
option) any later version.
|
||||||
|
|
||||||
|
CFDEMcoupling 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 CFDEMcoupling; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Description
|
||||||
|
This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS
|
||||||
|
and OpenFOAM. Note: this code is not part of OpenFOAM (see DISCLAIMER).
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
CFDEM coupling provides an open source parallel coupled CFD-DEM framework
|
||||||
|
combining the strengths of LIGGGHTS DEM code and the Open Source
|
||||||
|
CFD package OpenFOAM(R)(*). The CFDEMcoupling toolbox allows to expand
|
||||||
|
standard CFD solvers of OpenFOAM(R)(*) to include a coupling to the DEM
|
||||||
|
code LIGGGHTS. In this toolbox the particle representation within the
|
||||||
|
CFD solver is organized by "cloud" classes. Key functionalities are organised
|
||||||
|
in sub-models (e.g. force models, data exchange models, etc.) which can easily
|
||||||
|
be selected and combined by dictionary settings.
|
||||||
|
|
||||||
|
The coupled solvers run fully parallel on distributed-memory clusters.
|
||||||
|
|
||||||
|
Features are:
|
||||||
|
|
||||||
|
- its modular approach allows users to easily implement new models
|
||||||
|
- its MPI parallelization enables to use it for large scale problems
|
||||||
|
- the "forum"_lws on CFD-DEM gives the possibility to exchange with other
|
||||||
|
users / developers
|
||||||
|
- the use of GIT allows to easily update to the latest version
|
||||||
|
- basic documentation is provided
|
||||||
|
|
||||||
|
The file structure:
|
||||||
|
|
||||||
|
- "src" directory including the source files of the coupling toolbox and models
|
||||||
|
- "applications" directory including the solver files for coupled CFD-DEM simulations
|
||||||
|
- "doc" directory including the documentation of CFDEMcoupling
|
||||||
|
- "tutorials" directory including basic tutorial cases showing the functionality
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Details on installation are given on the "www.cfdem.com"
|
||||||
|
|
||||||
|
The functionality of this CFD-DEM framwork is described via "tutorial cases" showing
|
||||||
|
how to use different solvers and models.
|
||||||
|
|
||||||
|
CFDEMcoupling stands for Computational Fluid Dynamics (CFD) -
|
||||||
|
Discrete Element Method (DEM) coupling.
|
||||||
|
|
||||||
|
CFDEMcoupling is an open-source code, distributed freely under the terms of the
|
||||||
|
GNU Public License (GPL).
|
||||||
|
|
||||||
|
Core development of CFDEMcoupling is done by
|
||||||
|
Christoph Goniva and Christoph Kloss, both at DCS Computing GmbH, 2012
|
||||||
|
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
(*) "OpenFOAM(R)"_of is a registered trade mark of the ESI Group.
|
||||||
|
This offering is not affiliated, approved or endorsed by ESI Group,
|
||||||
|
the producer of the OpenFOAM® software and owner of the OpenFOAM® trade mark.
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
Binary file not shown.
Binary file not shown.
@ -6,7 +6,6 @@ voidFractionModels = subModels/voidFractionModel
|
|||||||
locateModels = subModels/locateModel
|
locateModels = subModels/locateModel
|
||||||
meshMotionModels = subModels/meshMotionModel
|
meshMotionModels = subModels/meshMotionModel
|
||||||
momCoupleModels = subModels/momCoupleModel
|
momCoupleModels = subModels/momCoupleModel
|
||||||
regionModels = subModels/regionModel
|
|
||||||
dataExchangeModels = subModels/dataExchangeModel
|
dataExchangeModels = subModels/dataExchangeModel
|
||||||
averagingModels = subModels/averagingModel
|
averagingModels = subModels/averagingModel
|
||||||
clockModels = subModels/clockModel
|
clockModels = subModels/clockModel
|
||||||
@ -21,18 +20,33 @@ $(forceModels)/forceModel/newForceModel.C
|
|||||||
$(forceModels)/noDrag/noDrag.C
|
$(forceModels)/noDrag/noDrag.C
|
||||||
$(forceModels)/checkCouplingInterval/checkCouplingInterval.C
|
$(forceModels)/checkCouplingInterval/checkCouplingInterval.C
|
||||||
$(forceModels)/DiFeliceDrag/DiFeliceDrag.C
|
$(forceModels)/DiFeliceDrag/DiFeliceDrag.C
|
||||||
|
$(forceModels)/DiFeliceDragNLift/DiFeliceDragNLift.C
|
||||||
$(forceModels)/GidaspowDrag/GidaspowDrag.C
|
$(forceModels)/GidaspowDrag/GidaspowDrag.C
|
||||||
$(forceModels)/SchillerNaumannDrag/SchillerNaumannDrag.C
|
$(forceModels)/SchillerNaumannDrag/SchillerNaumannDrag.C
|
||||||
$(forceModels)/Archimedes/Archimedes.C
|
$(forceModels)/Archimedes/Archimedes.C
|
||||||
$(forceModels)/ArchimedesIB/ArchimedesIB.C
|
$(forceModels)/ArchimedesIB/ArchimedesIB.C
|
||||||
$(forceModels)/interface/interface.C
|
$(forceModels)/interface/interface.C
|
||||||
$(forceModels)/ShirgaonkarIB/ShirgaonkarIB.C
|
$(forceModels)/ShirgaonkarIB/ShirgaonkarIB.C
|
||||||
|
$(forceModels)/fieldTimeAverage/fieldTimeAverage.C
|
||||||
|
$(forceModels)/fieldBound/fieldBound.C
|
||||||
|
$(forceModels)/volWeightedAverage/volWeightedAverage.C
|
||||||
|
$(forceModels)/totalMomentumExchange/totalMomentumExchange.C
|
||||||
$(forceModels)/KochHillDrag/KochHillDrag.C
|
$(forceModels)/KochHillDrag/KochHillDrag.C
|
||||||
|
$(forceModels)/BeetstraDrag/multiphaseFlowBasic/multiphaseFlowBasic.C
|
||||||
|
$(forceModels)/BeetstraDrag/BeetstraDrag.C
|
||||||
|
$(forceModels)/LaEuScalarLiquid/LaEuScalarLiquid.C
|
||||||
$(forceModels)/LaEuScalarTemp/LaEuScalarTemp.C
|
$(forceModels)/LaEuScalarTemp/LaEuScalarTemp.C
|
||||||
|
$(forceModels)/LaEuScalarDust/LaEuScalarDust.C
|
||||||
$(forceModels)/virtualMassForce/virtualMassForce.C
|
$(forceModels)/virtualMassForce/virtualMassForce.C
|
||||||
$(forceModels)/gradPForce/gradPForce.C
|
$(forceModels)/gradPForce/gradPForce.C
|
||||||
|
$(forceModels)/gradULiftForce/gradULiftForce.C
|
||||||
$(forceModels)/viscForce/viscForce.C
|
$(forceModels)/viscForce/viscForce.C
|
||||||
$(forceModels)/MeiLift/MeiLift.C
|
$(forceModels)/MeiLift/MeiLift.C
|
||||||
|
$(forceModels)/KochHillDragNLift/KochHillDragNLift.C
|
||||||
|
$(forceModels)/solidsPressureForce/solidsPressureForce.C
|
||||||
|
$(forceModels)/periodicPressure/periodicPressure.C
|
||||||
|
$(forceModels)/periodicPressureControl/periodicPressureControl.C
|
||||||
|
$(forceModels)/averageSlipVel/averageSlipVel.C
|
||||||
|
|
||||||
$(forceModelsMS)/forceModelMS/forceModelMS.C
|
$(forceModelsMS)/forceModelMS/forceModelMS.C
|
||||||
$(forceModelsMS)/forceModelMS/newForceModelMS.C
|
$(forceModelsMS)/forceModelMS/newForceModelMS.C
|
||||||
@ -62,21 +76,18 @@ $(locateModels)/turboEngineSearch/turboEngineSearch.C
|
|||||||
$(locateModels)/turboEngineSearchM2M/turboEngineSearchM2M.C
|
$(locateModels)/turboEngineSearchM2M/turboEngineSearchM2M.C
|
||||||
$(locateModels)/engineSearchIB/engineSearchIB.C
|
$(locateModels)/engineSearchIB/engineSearchIB.C
|
||||||
|
|
||||||
|
|
||||||
$(meshMotionModels)/meshMotionModel/meshMotionModel.C
|
$(meshMotionModels)/meshMotionModel/meshMotionModel.C
|
||||||
$(meshMotionModels)/meshMotionModel/newMeshMotionModel.C
|
$(meshMotionModels)/meshMotionModel/newMeshMotionModel.C
|
||||||
$(meshMotionModels)/noMeshMotion/noMeshMotion.C
|
$(meshMotionModels)/noMeshMotion/noMeshMotion.C
|
||||||
|
$(meshMotionModels)/DEMdrivenMeshMotion/DEMdrivenMeshMotion.C
|
||||||
|
|
||||||
$(momCoupleModels)/momCoupleModel/momCoupleModel.C
|
$(momCoupleModels)/momCoupleModel/momCoupleModel.C
|
||||||
$(momCoupleModels)/momCoupleModel/newMomCoupleModel.C
|
$(momCoupleModels)/momCoupleModel/newMomCoupleModel.C
|
||||||
$(momCoupleModels)/explicitCouple/explicitCouple.C
|
$(momCoupleModels)/explicitCouple/explicitCouple.C
|
||||||
|
$(momCoupleModels)/explicitCoupleSource/explicitCoupleSource.C
|
||||||
$(momCoupleModels)/implicitCouple/implicitCouple.C
|
$(momCoupleModels)/implicitCouple/implicitCouple.C
|
||||||
$(momCoupleModels)/noCouple/noCouple.C
|
$(momCoupleModels)/noCouple/noCouple.C
|
||||||
|
|
||||||
$(regionModels)/regionModel/regionModel.C
|
|
||||||
$(regionModels)/regionModel/newRegionModel.C
|
|
||||||
$(regionModels)/allRegion/allRegion.C
|
|
||||||
|
|
||||||
$(dataExchangeModels)/dataExchangeModel/dataExchangeModel.C
|
$(dataExchangeModels)/dataExchangeModel/dataExchangeModel.C
|
||||||
$(dataExchangeModels)/dataExchangeModel/newDataExchangeModel.C
|
$(dataExchangeModels)/dataExchangeModel/newDataExchangeModel.C
|
||||||
$(dataExchangeModels)/oneWayVTK/oneWayVTK.C
|
$(dataExchangeModels)/oneWayVTK/oneWayVTK.C
|
||||||
@ -102,4 +113,4 @@ $(liggghtsCommandModels)/runLiggghts/runLiggghts.C
|
|||||||
$(liggghtsCommandModels)/writeLiggghts/writeLiggghts.C
|
$(liggghtsCommandModels)/writeLiggghts/writeLiggghts.C
|
||||||
$(liggghtsCommandModels)/readLiggghtsData/readLiggghtsData.C
|
$(liggghtsCommandModels)/readLiggghtsData/readLiggghtsData.C
|
||||||
|
|
||||||
LIB = $(FOAM_USER_LIBBIN)/lib$(CFDEM_LIB_NAME)
|
LIB = $(CFDEM_LIB_DIR)/lib$(CFDEM_LIB_NAME)
|
||||||
|
|||||||
@ -419,7 +419,10 @@ bool Foam::cfdemCloud::evolve
|
|||||||
|
|
||||||
// reset vol Fields
|
// reset vol Fields
|
||||||
clockM().start(16,"resetVolFields");
|
clockM().start(16,"resetVolFields");
|
||||||
if(verbose_) Info << "- resetVolFields()" << endl;
|
if(verbose_){
|
||||||
|
Info << "couplingStep:" << dataExchangeM().couplingStep()
|
||||||
|
<< "\n- resetVolFields()" << endl;
|
||||||
|
}
|
||||||
averagingM().resetVectorAverage(averagingM().UsPrev(),averagingM().UsNext());
|
averagingM().resetVectorAverage(averagingM().UsPrev(),averagingM().UsNext());
|
||||||
voidFractionM().resetVoidFractions();
|
voidFractionM().resetVoidFractions();
|
||||||
averagingM().resetVectorAverage(forceM(0).impParticleForces(),forceM(0).impParticleForces(),true);
|
averagingM().resetVectorAverage(forceM(0).impParticleForces(),forceM(0).impParticleForces(),true);
|
||||||
@ -495,7 +498,6 @@ bool Foam::cfdemCloud::evolve
|
|||||||
clockM().start(23,"giveDEMdata");
|
clockM().start(23,"giveDEMdata");
|
||||||
giveDEMdata();
|
giveDEMdata();
|
||||||
clockM().stop("giveDEMdata");
|
clockM().stop("giveDEMdata");
|
||||||
|
|
||||||
}//end dataExchangeM().couple()
|
}//end dataExchangeM().couple()
|
||||||
Info << "\n timeStepFraction() = " << dataExchangeM().timeStepFraction() << endl;
|
Info << "\n timeStepFraction() = " << dataExchangeM().timeStepFraction() << endl;
|
||||||
|
|
||||||
@ -506,7 +508,7 @@ bool Foam::cfdemCloud::evolve
|
|||||||
|
|
||||||
// calc ddt(voidfraction)
|
// calc ddt(voidfraction)
|
||||||
if (doCouple) calcDdtVoidfraction(voidFractionM().voidFractionNext());
|
if (doCouple) calcDdtVoidfraction(voidFractionM().voidFractionNext());
|
||||||
//calcDdtVoidfraction(alpha); // alternative with scale=1!
|
//calcDdtVoidfraction(alpha); // alternative with scale=1! (does not see change in alpha?)
|
||||||
|
|
||||||
// update particle velocity Field
|
// update particle velocity Field
|
||||||
Us.internalField() = averagingM().UsInterp();
|
Us.internalField() = averagingM().UsInterp();
|
||||||
@ -572,7 +574,6 @@ void cfdemCloud::calcDdtVoidfraction(volScalarField& voidfraction) const
|
|||||||
{
|
{
|
||||||
Info << "calculating ddt(voidfraction) based on couplingTime" << endl;
|
Info << "calculating ddt(voidfraction) based on couplingTime" << endl;
|
||||||
scalar scale=mesh().time().deltaT().value()/dataExchangeM().couplingTime();
|
scalar scale=mesh().time().deltaT().value()/dataExchangeM().couplingTime();
|
||||||
Info << "scale="<< scale << endl;
|
|
||||||
ddtVoidfraction_ = fvc::ddt(voidfraction) * scale;
|
ddtVoidfraction_ = fvc::ddt(voidfraction) * scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -130,6 +130,10 @@ tmp<volVectorField> explicitCouple::expMomSource() const
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
scalar tsf = particleCloud_.dataExchangeM().timeStepFraction();
|
||||||
|
|
||||||
|
if(1-tsf < 1e-4) //tsf==1
|
||||||
|
{
|
||||||
// calc fNext
|
// calc fNext
|
||||||
forAll(fNext_,cellI)
|
forAll(fNext_,cellI)
|
||||||
{
|
{
|
||||||
@ -141,18 +145,11 @@ tmp<volVectorField> explicitCouple::expMomSource() const
|
|||||||
if (fNext_[cellI][i] > fLimit_[i]) fNext_[cellI][i] = fLimit_[i];
|
if (fNext_[cellI][i] > fLimit_[i]) fNext_[cellI][i] = fLimit_[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
tsource() = fPrev_;
|
||||||
// underrelaxation of f
|
}else
|
||||||
if (particleCloud_.dataExchangeM().couplingStep() > 1)
|
|
||||||
{
|
{
|
||||||
tsource() = (1 - particleCloud_.dataExchangeM().timeStepFraction()) * fPrev_
|
tsource() = (1 - tsf) * fPrev_ + tsf * fNext_;
|
||||||
+ particleCloud_.dataExchangeM().timeStepFraction() * fNext_;
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
tsource() = fNext_;
|
|
||||||
}
|
|
||||||
|
|
||||||
return tsource;
|
return tsource;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -139,9 +139,13 @@ tmp<volScalarField> implicitCouple::impMomSource() const
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
scalar tsf = particleCloud_.dataExchangeM().timeStepFraction();
|
||||||
|
|
||||||
// calc Ksl
|
// calc Ksl
|
||||||
scalar Ur;
|
scalar Ur;
|
||||||
|
|
||||||
|
if(1-tsf < 1e-4) //tsf==1
|
||||||
|
{
|
||||||
forAll(KslNext_,cellI)
|
forAll(KslNext_,cellI)
|
||||||
{
|
{
|
||||||
Ur = mag(U_[cellI] - Us_[cellI]);
|
Ur = mag(U_[cellI] - Us_[cellI]);
|
||||||
@ -157,16 +161,10 @@ tmp<volScalarField> implicitCouple::impMomSource() const
|
|||||||
// limiter
|
// limiter
|
||||||
if (KslNext_[cellI] > KslLimit_) KslNext_[cellI] = KslLimit_;
|
if (KslNext_[cellI] > KslLimit_) KslNext_[cellI] = KslLimit_;
|
||||||
}
|
}
|
||||||
|
tsource() = KslPrev_;
|
||||||
// underrelaxation of Ksl
|
}else
|
||||||
if (particleCloud_.dataExchangeM().couplingStep() > 1)
|
|
||||||
{
|
{
|
||||||
tsource() = (1 - particleCloud_.dataExchangeM().timeStepFraction()) * KslPrev_
|
tsource() = (1 - tsf) * KslPrev_ + tsf * KslNext_;
|
||||||
+ particleCloud_.dataExchangeM().timeStepFraction() * KslNext_;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tsource() = KslNext_;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return tsource;
|
return tsource;
|
||||||
|
|||||||
@ -122,19 +122,15 @@ tmp<volScalarField> Foam::voidFractionModel::voidFractionInterp() const
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// use this instead of above code???
|
scalar tsf = particleCloud_.dataExchangeM().timeStepFraction();
|
||||||
//tmp<volScalarField> tsource = voidfractionPrev_;
|
if(1-tsf < 1e-4) //tsf==1
|
||||||
|
|
||||||
if(particleCloud_.dataExchangeM().couplingStep() > 1)
|
|
||||||
{
|
{
|
||||||
tsource() = (1 - particleCloud_.dataExchangeM().timeStepFraction()) * voidfractionPrev_
|
tsource() = voidfractionPrev_;
|
||||||
+ particleCloud_.dataExchangeM().timeStepFraction() * voidfractionNext_;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tsource() = voidfractionNext_;
|
tsource() = (1 - tsf) * voidfractionPrev_ + tsf * voidfractionNext_;
|
||||||
}
|
}
|
||||||
|
|
||||||
return tsource;
|
return tsource;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,2 +1,3 @@
|
|||||||
dummyfile
|
dummyfile
|
||||||
dummyfile
|
dummyfile
|
||||||
|
dummyfile
|
||||||
|
|||||||
@ -26,8 +26,6 @@ FoamFile
|
|||||||
//===========================================================================//
|
//===========================================================================//
|
||||||
// sub-models & settings
|
// sub-models & settings
|
||||||
|
|
||||||
//ignoreDDTvoidfraction;
|
|
||||||
|
|
||||||
modelType "A"; // A or B
|
modelType "A"; // A or B
|
||||||
|
|
||||||
couplingInterval 100;
|
couplingInterval 100;
|
||||||
|
|||||||
@ -23,13 +23,13 @@ startTime 0;
|
|||||||
|
|
||||||
stopAt endTime;
|
stopAt endTime;
|
||||||
|
|
||||||
endTime 0.1;//0.1;
|
endTime 0.1;
|
||||||
|
|
||||||
deltaT 0.0005;
|
deltaT 0.0005;
|
||||||
|
|
||||||
writeControl adjustableRunTime;
|
writeControl adjustableRunTime;
|
||||||
|
|
||||||
writeInterval 0.001;
|
writeInterval 0.01;
|
||||||
|
|
||||||
purgeWrite 0;
|
purgeWrite 0;
|
||||||
|
|
||||||
|
|||||||
@ -40,3 +40,6 @@ dummyfile
|
|||||||
dummyfile
|
dummyfile
|
||||||
dummyfile
|
dummyfile
|
||||||
dummyfile
|
dummyfile
|
||||||
|
dummyfile
|
||||||
|
dummyfile
|
||||||
|
dummyfile
|
||||||
|
|||||||
@ -9,7 +9,7 @@ path = '../../DEM/post/velocity.txt';
|
|||||||
data = load(path);
|
data = load(path);
|
||||||
U_sim = data(:,2:4);
|
U_sim = data(:,2:4);
|
||||||
t_sim = data(:,1);
|
t_sim = data(:,1);
|
||||||
fprintf('final velociy of sim = %f/%f/%f m/s\n',U_sim(length(U_sim(:,1)),1),U_sim(length(U_sim(:,1)),2),U_sim(length(U_sim(:,1)),3) )
|
fprintf('final velocity of sim = %f/%f/%f m/s\n',U_sim(length(U_sim(:,1)),1),U_sim(length(U_sim(:,1)),2),U_sim(length(U_sim(:,1)),3) )
|
||||||
|
|
||||||
|
|
||||||
%====================================%
|
%====================================%
|
||||||
|
|||||||
@ -25,7 +25,7 @@ dimensions [0 0 -1 1 0 0 0];
|
|||||||
// rho=1
|
// rho=1
|
||||||
// --> Tsource = 1
|
// --> Tsource = 1
|
||||||
|
|
||||||
internalField uniform 1;
|
internalField uniform 0;
|
||||||
|
|
||||||
boundaryField
|
boundaryField
|
||||||
{
|
{
|
||||||
|
|||||||
@ -28,7 +28,7 @@ FoamFile
|
|||||||
|
|
||||||
modelType B; // A or B
|
modelType B; // A or B
|
||||||
|
|
||||||
couplingInterval 100;
|
couplingInterval 500;
|
||||||
|
|
||||||
voidFractionModel divided;
|
voidFractionModel divided;
|
||||||
|
|
||||||
|
|||||||
@ -23,13 +23,13 @@ startTime 0;
|
|||||||
|
|
||||||
stopAt endTime;
|
stopAt endTime;
|
||||||
|
|
||||||
endTime 1;
|
endTime 1.0;
|
||||||
|
|
||||||
deltaT 0.001;
|
deltaT 0.005;
|
||||||
|
|
||||||
writeControl adjustableRunTime;
|
writeControl adjustableRunTime;
|
||||||
|
|
||||||
writeInterval 0.01;
|
writeInterval 0.1;
|
||||||
|
|
||||||
purgeWrite 0;
|
purgeWrite 0;
|
||||||
|
|
||||||
|
|||||||
@ -39,7 +39,7 @@ divSchemes
|
|||||||
div((nuEff*dev(grad(U).T()))) Gauss linear;
|
div((nuEff*dev(grad(U).T()))) Gauss linear;
|
||||||
div((viscousTerm*dev(grad(U).T()))) Gauss linear;
|
div((viscousTerm*dev(grad(U).T()))) Gauss linear;
|
||||||
div((nu*dev(grad(U).T()))) Gauss linear;
|
div((nu*dev(grad(U).T()))) Gauss linear;
|
||||||
div(phi,T) Gauss upwind; //limitedLinear 1;
|
div(phi,T) Gauss limitedLinear 1; //Gauss upwind; //
|
||||||
}
|
}
|
||||||
|
|
||||||
laplacianSchemes
|
laplacianSchemes
|
||||||
|
|||||||
Reference in New Issue
Block a user