Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
HPCAPPs
OpenFOAM-GPU-v2.0
Commits
649c29f9
Commit
649c29f9
authored
Aug 30, 2023
by
quant
Browse files
Initial commit
parent
89db0b5a
Changes
789
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1399 additions
and
0 deletions
+1399
-0
OpenFOAM-v2112/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/pEqn.H
...ications/solvers/lagrangian/sprayFoam/sprayDyMFoam/pEqn.H
+121
-0
OpenFOAM-v2112/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
.../solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
+169
-0
OpenFOAM-v2112/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
...112/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
+137
-0
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/files
...olvers/lagrangian/uncoupledKinematicParcelFoam/Make/files
+3
-0
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
...vers/lagrangian/uncoupledKinematicParcelFoam/Make/options
+36
-0
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/createFields.H
...rs/lagrangian/uncoupledKinematicParcelFoam/createFields.H
+65
-0
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/files
...aticParcelFoam/uncoupledKinematicParcelDyMFoam/Make/files
+3
-0
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/options
...icParcelFoam/uncoupledKinematicParcelDyMFoam/Make/options
+42
-0
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/uncoupledKinematicParcelDyMFoam.C
...dKinematicParcelDyMFoam/uncoupledKinematicParcelDyMFoam.C
+96
-0
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelFoam.C
...coupledKinematicParcelFoam/uncoupledKinematicParcelFoam.C
+92
-0
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/Allwclean
.../applications/solvers/multiphase/MPPICInterFoam/Allwclean
+8
-0
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/Allwmake
...2/applications/solvers/multiphase/MPPICInterFoam/Allwmake
+9
-0
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/MPPICInterFoam.C
...ations/solvers/multiphase/MPPICInterFoam/MPPICInterFoam.C
+185
-0
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/Make/files
...applications/solvers/multiphase/MPPICInterFoam/Make/files
+3
-0
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/Make/options
...plications/solvers/multiphase/MPPICInterFoam/Make/options
+44
-0
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/UEqn.H
...112/applications/solvers/multiphase/MPPICInterFoam/UEqn.H
+50
-0
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/alphaEqn.H
...applications/solvers/multiphase/MPPICInterFoam/alphaEqn.H
+266
-0
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H
...ions/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H
+42
-0
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/compressibleTwoPhaseMixtureTurbulenceModels/Make/files
...am/compressibleTwoPhaseMixtureTurbulenceModels/Make/files
+3
-0
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/compressibleTwoPhaseMixtureTurbulenceModels/Make/options
.../compressibleTwoPhaseMixtureTurbulenceModels/Make/options
+25
-0
No files found.
Too many changes to show.
To preserve performance only
789 of 789+
files are displayed.
Plain diff
Email patch
OpenFOAM-v2112/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/pEqn.H
0 → 100644
View file @
649c29f9
rho
=
thermo
.
rho
();
rho
=
max
(
rho
,
rhoMin
);
rho
=
min
(
rho
,
rhoMax
);
rho
.
relax
();
volScalarField
rAU
(
1
.
0
/
UEqn
.
A
());
surfaceScalarField
rhorAUf
(
"rhorAUf"
,
fvc
::
interpolate
(
rho
*
rAU
));
volVectorField
HbyA
(
constrainHbyA
(
rAU
*
UEqn
.
H
(),
U
,
p
));
if
(
pimple
.
nCorrPISO
()
<=
1
)
{
tUEqn
.
clear
();
}
if
(
pimple
.
transonic
())
{
surfaceScalarField
phid
(
"phid"
,
fvc
::
interpolate
(
psi
)
*
(
fvc
::
flux
(
HbyA
)
+
MRF
.
zeroFilter
(
rhorAUf
*
fvc
::
ddtCorr
(
rho
,
U
,
rhoUf
)
/
fvc
::
interpolate
(
rho
)
)
)
);
fvc
::
makeRelative
(
phid
,
psi
,
U
);
MRF
.
makeRelative
(
fvc
::
interpolate
(
psi
),
phid
);
while
(
pimple
.
correctNonOrthogonal
())
{
fvScalarMatrix
pEqn
(
fvm
::
ddt
(
psi
,
p
)
+
fvm
::
div
(
phid
,
p
)
-
fvm
::
laplacian
(
rhorAUf
,
p
)
==
parcels
.
Srho
()
+
fvOptions
(
psi
,
p
,
rho
.
name
())
);
pEqn
.
solve
(
mesh
.
solver
(
p
.
select
(
pimple
.
finalInnerIter
())));
if
(
pimple
.
finalNonOrthogonalIter
())
{
phi
==
pEqn
.
flux
();
}
}
}
else
{
surfaceScalarField
phiHbyA
(
"phiHbyA"
,
fvc
::
flux
(
rho
*
HbyA
)
+
MRF
.
zeroFilter
(
rhorAUf
*
fvc
::
ddtCorr
(
rho
,
U
,
rhoUf
))
);
fvc
::
makeRelative
(
phiHbyA
,
rho
,
U
);
MRF
.
makeRelative
(
fvc
::
interpolate
(
rho
),
phiHbyA
);
// Update the pressure BCs to ensure flux consistency
constrainPressure
(
p
,
rho
,
U
,
phiHbyA
,
rhorAUf
,
MRF
);
while
(
pimple
.
correctNonOrthogonal
())
{
fvScalarMatrix
pEqn
(
fvm
::
ddt
(
psi
,
p
)
+
fvc
::
div
(
phiHbyA
)
-
fvm
::
laplacian
(
rhorAUf
,
p
)
==
parcels
.
Srho
()
+
fvOptions
(
psi
,
p
,
rho
.
name
())
);
pEqn
.
solve
(
mesh
.
solver
(
p
.
select
(
pimple
.
finalInnerIter
())));
if
(
pimple
.
finalNonOrthogonalIter
())
{
phi
=
phiHbyA
+
pEqn
.
flux
();
}
}
}
#include "rhoEqn.H"
#include "compressibleContinuityErrs.H"
// Explicitly relax pressure for momentum corrector
p
.
relax
();
// Recalculate density from the relaxed pressure
rho
=
thermo
.
rho
();
rho
=
max
(
rho
,
rhoMin
);
rho
=
min
(
rho
,
rhoMax
);
rho
.
relax
();
Info
<<
"rho min/max : "
<<
min
(
rho
).
value
()
<<
" "
<<
max
(
rho
).
value
()
<<
endl
;
U
=
HbyA
-
rAU
*
fvc
::
grad
(
p
);
U
.
correctBoundaryConditions
();
fvOptions
.
correct
(
U
);
K
=
0
.
5
*
magSqr
(
U
);
{
rhoUf
=
fvc
::
interpolate
(
rho
*
U
);
surfaceVectorField
n
(
mesh
.
Sf
()
/
mesh
.
magSf
());
rhoUf
+=
n
*
(
fvc
::
absolute
(
phi
,
rho
,
U
)
/
mesh
.
magSf
()
-
(
n
&
rhoUf
));
}
if
(
thermo
.
dpdt
())
{
dpdt
=
fvc
::
ddt
(
p
);
if
(
mesh
.
moving
())
{
dpdt
-=
fvc
::
div
(
fvc
::
meshPhi
(
rho
,
U
),
p
);
}
}
OpenFOAM-v2112/applications/solvers/lagrangian/sprayFoam/sprayDyMFoam/sprayDyMFoam.C
0 → 100644
View file @
649c29f9
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2015-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM 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.
OpenFOAM 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 OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
sprayDyMFoam
Group
grpLagrangianSolvers grpMovingMeshSolvers
Description
Transient solver for compressible, turbulent flow with a spray particle
cloud, with optional mesh motion and mesh topology changes.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "dynamicFvMesh.H"
#include "turbulenceModel.H"
#include "basicSprayCloud.H"
#include "psiReactionThermo.H"
#include "CombustionModel.H"
#include "radiationModel.H"
#include "SLGThermo.H"
#include "pimpleControl.H"
#include "CorrectPhi.H"
#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int
main
(
int
argc
,
char
*
argv
[])
{
argList
::
addNote
(
"Transient solver for compressible, turbulent flow"
" with a spray particle cloud.
\n
"
"With optional mesh motion and mesh topology changes.
\n
"
);
#include "postProcess.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createDynamicFvMesh.H"
#include "createDyMControls.H"
#include "createFields.H"
#include "createFieldRefs.H"
#include "createRhoUf.H"
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
#include "initContinuityErrs.H"
turbulence
->
validate
();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info
<<
"
\n
Starting time loop
\n
"
<<
endl
;
while
(
runTime
.
run
())
{
#include "readDyMControls.H"
{
// Store divrhoU from the previous time-step/mesh for the correctPhi
volScalarField
divrhoU
(
"divrhoU"
,
fvc
::
div
(
fvc
::
absolute
(
phi
,
rho
,
U
))
);
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
++
runTime
;
Info
<<
"Time = "
<<
runTime
.
timeName
()
<<
nl
<<
endl
;
// Store momentum to set rhoUf for introduced faces.
volVectorField
rhoU
(
"rhoU"
,
rho
*
U
);
// Store the particle positions
parcels
.
storeGlobalPositions
();
// Do any mesh changes
mesh
.
update
();
if
(
mesh
.
changing
())
{
MRF
.
update
();
if
(
correctPhi
)
{
// Calculate absolute flux from the mapped surface velocity
phi
=
mesh
.
Sf
()
&
rhoUf
;
#include "correctPhi.H"
// Make the fluxes relative to the mesh-motion
fvc
::
makeRelative
(
phi
,
rho
,
U
);
}
if
(
checkMeshCourantNo
)
{
#include "meshCourantNo.H"
}
}
}
parcels
.
evolve
();
#include "rhoEqn.H"
// --- Pressure-velocity PIMPLE corrector loop
while
(
pimple
.
loop
())
{
#include "UEqn.H"
#include "YEqn.H"
#include "EEqn.H"
// --- Pressure corrector loop
while
(
pimple
.
correct
())
{
#include "pEqn.H"
}
if
(
pimple
.
turbCorr
())
{
turbulence
->
correct
();
}
}
rho
=
thermo
.
rho
();
if
(
runTime
.
write
())
{
combustion
->
Qdot
()().
write
();
}
runTime
.
printExecutionTime
(
Info
);
}
Info
<<
"End
\n
"
<<
endl
;
return
0
;
}
// ************************************************************************* //
OpenFOAM-v2112/applications/solvers/lagrangian/sprayFoam/sprayFoam.C
0 → 100644
View file @
649c29f9
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM 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.
OpenFOAM 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 OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
sprayFoam
Group
grpLagrangianSolvers
Description
Transient solver for compressible, turbulent flow with a spray particle
cloud.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "turbulentFluidThermoModel.H"
#include "basicSprayCloud.H"
#include "psiReactionThermo.H"
#include "CombustionModel.H"
#include "radiationModel.H"
#include "SLGThermo.H"
#include "pimpleControl.H"
#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int
main
(
int
argc
,
char
*
argv
[])
{
argList
::
addNote
(
"Transient solver for compressible, turbulent flow"
" with a spray particle cloud."
);
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
#include "createControl.H"
#include "createTimeControls.H"
#include "createFields.H"
#include "createFieldRefs.H"
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
#include "initContinuityErrs.H"
turbulence
->
validate
();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info
<<
"
\n
Starting time loop
\n
"
<<
endl
;
while
(
runTime
.
run
())
{
#include "readTimeControls.H"
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
++
runTime
;
Info
<<
"Time = "
<<
runTime
.
timeName
()
<<
nl
<<
endl
;
parcels
.
evolve
();
if
(
pimple
.
solveFlow
())
{
#include "rhoEqn.H"
// --- Pressure-velocity PIMPLE corrector loop
while
(
pimple
.
loop
())
{
#include "UEqn.H"
#include "YEqn.H"
#include "EEqn.H"
// --- Pressure corrector loop
while
(
pimple
.
correct
())
{
#include "pEqn.H"
}
if
(
pimple
.
turbCorr
())
{
turbulence
->
correct
();
}
}
rho
=
thermo
.
rho
();
if
(
runTime
.
write
())
{
combustion
->
Qdot
()().
write
();
}
}
else
{
if
(
runTime
.
writeTime
())
{
parcels
.
write
();
}
}
runTime
.
printExecutionTime
(
Info
);
}
Info
<<
"End
\n
"
<<
endl
;
return
0
;
}
// ************************************************************************* //
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/files
0 → 100644
View file @
649c29f9
uncoupledKinematicParcelFoam.C
EXE = $(FOAM_APPBIN)/uncoupledKinematicParcelFoam
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/Make/options
0 → 100644
View file @
649c29f9
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/finiteArea/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
-I$(LIB_SRC)/regionFaModels/lnInclude \
-I$(LIB_SRC)/faOptions/lnInclude \
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-llagrangian \
-llagrangianIntermediate \
-llagrangianTurbulence \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
-lradiationModels \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lregionModels \
-lsurfaceFilmModels \
-lregionFaModels \
-lfiniteArea \
-lfaOptions
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/createFields.H
0 → 100644
View file @
649c29f9
#include "readGravitationalAcceleration.H"
Info
<<
"Reading thermophysical properties
\n
"
<<
endl
;
autoPtr
<
psiThermo
>
pThermo
(
psiThermo
::
New
(
mesh
)
);
psiThermo
&
thermo
=
pThermo
();
volScalarField
rho
(
IOobject
(
"rho"
,
runTime
.
timeName
(),
mesh
,
IOobject
::
NO_READ
,
IOobject
::
AUTO_WRITE
),
thermo
.
rho
()
);
Info
<<
"
\n
Reading field U
\n
"
<<
endl
;
volVectorField
U
(
IOobject
(
"U"
,
runTime
.
timeName
(),
mesh
,
IOobject
::
MUST_READ
,
IOobject
::
AUTO_WRITE
),
mesh
);
#include "compressibleCreatePhi.H"
Info
<<
"Creating turbulence model
\n
"
<<
endl
;
autoPtr
<
compressible
::
turbulenceModel
>
turbulence
(
compressible
::
turbulenceModel
::
New
(
rho
,
U
,
phi
,
thermo
)
);
const
word
kinematicCloudName
(
args
.
getOrDefault
<
word
>
(
"cloud"
,
"kinematicCloud"
)
);
Info
<<
"Constructing kinematicCloud "
<<
kinematicCloudName
<<
endl
;
basicKinematicCloud
kinematicCloud
(
kinematicCloudName
,
rho
,
U
,
thermo
.
mu
(),
g
);
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/files
0 → 100644
View file @
649c29f9
uncoupledKinematicParcelDyMFoam.C
EXE = $(FOAM_APPBIN)/uncoupledKinematicParcelDyMFoam
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/Make/options
0 → 100644
View file @
649c29f9
EXE_INC = \
-I.. \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/finiteArea/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/regionFaModels/lnInclude \
-I$(LIB_SRC)/faOptions/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-llagrangian \
-llagrangianIntermediate \
-llagrangianTurbulence \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lspecie \
-lradiationModels \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lregionModels \
-lsurfaceFilmModels \
-ldynamicMesh \
-ldynamicFvMesh \
-ltopoChangerFvMesh \
-lregionFaModels \
-lfiniteArea \
-lfaOptions
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelDyMFoam/uncoupledKinematicParcelDyMFoam.C
0 → 100644
View file @
649c29f9
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM 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.
OpenFOAM 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 OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
uncoupledKinematicParcelDyMFoam
Description
Transient solver for the passive transport of a particle cloud.
Uses a pre-calculated velocity field to evolve the cloud.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "dynamicFvMesh.H"
#include "psiThermo.H"
#include "turbulentFluidThermoModel.H"
#include "basicKinematicCloud.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int
main
(
int
argc
,
char
*
argv
[])
{
argList
::
addNote
(
"Transient solver for the passive transport of a particle cloud"
" with optional mesh motion"
"Uses a pre-calculated velocity field to evolve the cloud."
);
argList
::
addOption
(
"cloudName"
,
"name"
,
"specify alternative cloud name. default is 'kinematicCloud'"
);
#define NO_CONTROL
#include "postProcess.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createDynamicFvMesh.H"
#include "createFields.H"
#include "compressibleCourantNo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info
<<
"
\n
Starting time loop
\n
"
<<
endl
;
while
(
runTime
.
loop
())
{
Info
<<
"Time = "
<<
runTime
.
timeName
()
<<
nl
<<
endl
;
kinematicCloud
.
storeGlobalPositions
();
mesh
.
update
();
U
.
correctBoundaryConditions
();
Info
<<
"Evolving "
<<
kinematicCloud
.
name
()
<<
endl
;
kinematicCloud
.
evolve
();
runTime
.
write
();
runTime
.
printExecutionTime
(
Info
);
}
Info
<<
"End
\n
"
<<
endl
;
return
0
;
}
// ************************************************************************* //
OpenFOAM-v2112/applications/solvers/lagrangian/uncoupledKinematicParcelFoam/uncoupledKinematicParcelFoam.C
0 → 100644
View file @
649c29f9
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM 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.
OpenFOAM 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 OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
uncoupledKinematicParcelFoam
Group
grpLagrangianSolvers
Description
Transient solver for the passive transport of a particle cloud.
Uses a pre-calculated velocity field to evolve the cloud.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "psiThermo.H"
#include "turbulentFluidThermoModel.H"
#include "basicKinematicCloud.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int
main
(
int
argc
,
char
*
argv
[])
{
argList
::
addNote
(
"Transient solver for the passive transport of a particle cloud.
\n
"
"Uses a pre-calculated velocity field to evolve the cloud."
);
argList
::
addOption
(
"cloud"
,
"name"
,
"specify alternative cloud name. default is 'kinematicCloud'"
);
#define NO_CONTROL
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
#include "createFields.H"
#include "compressibleCourantNo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info
<<
"
\n
Starting time loop
\n
"
<<
endl
;
while
(
runTime
.
loop
())
{
Info
<<
"Time = "
<<
runTime
.
timeName
()
<<
nl
<<
endl
;
Info
<<
"Evolving "
<<
kinematicCloud
.
name
()
<<
endl
;
kinematicCloud
.
evolve
();
runTime
.
write
();
runTime
.
printExecutionTime
(
Info
);
}
Info
<<
"End
\n
"
<<
endl
;
return
0
;
}
// ************************************************************************* //
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/Allwclean
0 → 100644
View file @
649c29f9
#!/bin/sh
cd
"
${
0
%/*
}
"
||
exit
# Run from this directory
#------------------------------------------------------------------------------
wclean libso compressibleTwoPhaseMixtureTurbulenceModels
wclean
#------------------------------------------------------------------------------
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/Allwmake
0 → 100644
View file @
649c29f9
#!/bin/sh
cd
"
${
0
%/*
}
"
||
exit
# Run from this directory
.
${
WM_PROJECT_DIR
:?
}
/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------
wmake
$targetType
compressibleTwoPhaseMixtureTurbulenceModels
wmake
$targetType
#------------------------------------------------------------------------------
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/MPPICInterFoam.C
0 → 100644
View file @
649c29f9
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2016-2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM 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.
OpenFOAM 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 OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
MPPICInterFoam
Description
Solver for two incompressible, isothermal immiscible fluids using a VOF
(volume of fluid) phase-fraction based interface capturing approach.
The momentum and other fluid properties are of the "mixture" and a single
momentum equation is solved.
It includes MRF and an MPPIC cloud.
Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "CMULES.H"
#include "EulerDdtScheme.H"
#include "localEulerDdtScheme.H"
#include "CrankNicolsonDdtScheme.H"
#include "subCycle.H"
#include "immiscibleIncompressibleTwoPhaseMixture.H"
#include "PhaseCompressibleTurbulenceModel.H"
#include "pimpleControl.H"
#include "fvOptions.H"
#include "CorrectPhi.H"
#include "fvcSmooth.H"
#include "basicKinematicCloud.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int
main
(
int
argc
,
char
*
argv
[])
{
argList
::
addNote
(
"Solver for two incompressible, isothermal immiscible fluids using"
" VOF phase-fraction based interface capturing.
\n
"
"Includes MRF and an MPPIC cloud."
);
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
#include "createControl.H"
#include "createTimeControls.H"
#include "initContinuityErrs.H"
#include "createFields.H"
#include "createAlphaFluxes.H"
#include "createFvOptions.H"
#include "correctPhi.H"
turbulence
->
validate
();
if
(
!
LTS
)
{
#include "readTimeControls.H"
#include "CourantNo.H"
#include "setInitialDeltaT.H"
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info
<<
"
\n
Starting time loop
\n
"
<<
endl
;
while
(
runTime
.
run
())
{
#include "readTimeControls.H"
if
(
LTS
)
{
#include "setRDeltaT.H"
}
else
{
#include "CourantNo.H"
#include "alphaCourantNo.H"
#include "setDeltaT.H"
}
++
runTime
;
Info
<<
"Time = "
<<
runTime
.
timeName
()
<<
nl
<<
endl
;
Info
<<
"Evolving "
<<
kinematicCloud
.
name
()
<<
endl
;
kinematicCloud
.
evolve
();
// Update continuous phase volume fraction field
alphac
=
max
(
1
.
0
-
kinematicCloud
.
theta
(),
alphacMin
);
alphac
.
correctBoundaryConditions
();
Info
<<
"Continuous phase-1 volume fraction = "
<<
alphac
.
weightedAverage
(
mesh
.
Vsc
()).
value
()
<<
" Min(alphac) = "
<<
min
(
alphac
).
value
()
<<
" Max(alphac) = "
<<
max
(
alphac
).
value
()
<<
endl
;
alphacf
=
fvc
::
interpolate
(
alphac
);
alphaRhoPhic
=
alphacf
*
rhoPhi
;
alphaPhic
=
alphacf
*
phi
;
alphacRho
=
alphac
*
rho
;
fvVectorMatrix
cloudSU
(
kinematicCloud
.
SU
(
U
));
volVectorField
cloudVolSUSu
(
IOobject
(
"cloudVolSUSu"
,
runTime
.
timeName
(),
mesh
),
mesh
,
dimensionedVector
(
cloudSU
.
dimensions
()
/
dimVolume
,
Zero
),
zeroGradientFvPatchVectorField
::
typeName
);
cloudVolSUSu
.
primitiveFieldRef
()
=
-
cloudSU
.
source
()
/
mesh
.
V
();
cloudVolSUSu
.
correctBoundaryConditions
();
cloudSU
.
source
()
=
vector
::
zero
;
// --- Pressure-velocity PIMPLE corrector loop
while
(
pimple
.
loop
())
{
#include "alphaControls.H"
#include "alphaEqnSubCycle.H"
mixture
.
correct
();
#include "UEqn.H"
// --- Pressure corrector loop
while
(
pimple
.
correct
())
{
#include "pEqn.H"
}
if
(
pimple
.
turbCorr
())
{
turbulence
->
correct
();
}
}
runTime
.
write
();
runTime
.
printExecutionTime
(
Info
);
}
Info
<<
"End
\n
"
<<
endl
;
return
0
;
}
// ************************************************************************* //
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/Make/files
0 → 100644
View file @
649c29f9
MPPICInterFoam.C
EXE = $(FOAM_APPBIN)/MPPICInterFoam
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/Make/options
0 → 100644
View file @
649c29f9
EXE_INC = \
-I../VoF \
-I$(FOAM_SOLVERS)/multiphase/interFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/finiteArea/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
-I$(LIB_SRC)/regionFaModels/lnInclude \
-I$(LIB_SRC)/faOptions/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-llagrangian \
-llagrangianIntermediate \
-lthermophysicalProperties \
-lspecie \
-lincompressibleTransportModels \
-limmiscibleIncompressibleTwoPhaseMixture \
-linterfaceProperties \
-lturbulenceModels \
-lsampling \
-lregionModels \
-lsurfaceFilmModels \
-lcompressibleTwoPhaseMixtureTurbulenceModels
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/UEqn.H
0 → 100644
View file @
649c29f9
MRF
.
correctBoundaryVelocity
(
U
);
fvVectorMatrix
UEqn
(
fvm
::
ddt
(
alphacRho
,
U
)
+
MRF
.
DDt
(
alphacRho
,
U
)
-
fvm
::
Sp
(
fvc
::
ddt
(
rho
)
+
fvc
::
div
(
rhoPhi
),
U
)
+
fvm
::
div
(
rhoPhi
,
U
)
+
turbulence
->
divDevRhoReff
(
U
)
==
fvOptions
(
rho
,
U
)
+
cloudSU
);
UEqn
.
relax
();
fvOptions
.
constrain
(
UEqn
);
volScalarField
rAUc
(
1
.
0
/
UEqn
.
A
());
surfaceScalarField
rAUcf
(
fvc
::
interpolate
(
rAUc
));
surfaceScalarField
phicForces
(
(
fvc
::
interpolate
(
rAUc
*
cloudVolSUSu
)
&
mesh
.
Sf
())
);
if
(
pimple
.
momentumPredictor
())
{
solve
(
UEqn
==
fvc
::
reconstruct
(
phicForces
/
rAUcf
+
(
fvc
::
interpolate
(
mixture
.
sigmaK
()
)
*
fvc
::
snGrad
(
alpha1
)
-
ghf
*
fvc
::
snGrad
(
rho
)
-
fvc
::
snGrad
(
p_rgh
)
)
*
mesh
.
magSf
()
)
);
fvOptions
.
correct
(
U
);
}
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/alphaEqn.H
0 → 100644
View file @
649c29f9
{
word
alphaScheme
(
"div(phi,alpha)"
);
word
alpharScheme
(
"div(phirb,alpha)"
);
// Set the off-centering coefficient according to ddt scheme
scalar
ocCoeff
=
0
;
{
tmp
<
fv
::
ddtScheme
<
scalar
>>
tddtAlpha
(
fv
::
ddtScheme
<
scalar
>::
New
(
mesh
,
mesh
.
ddtScheme
(
"ddt(alpha)"
)
)
);
const
fv
::
ddtScheme
<
scalar
>&
ddtAlpha
=
tddtAlpha
();
if
(
isType
<
fv
::
EulerDdtScheme
<
scalar
>>
(
ddtAlpha
)
||
isType
<
fv
::
localEulerDdtScheme
<
scalar
>>
(
ddtAlpha
)
)
{
ocCoeff
=
0
;
}
else
if
(
isType
<
fv
::
CrankNicolsonDdtScheme
<
scalar
>>
(
ddtAlpha
))
{
if
(
nAlphaSubCycles
>
1
)
{
FatalErrorInFunction
<<
"Sub-cycling is not supported "
"with the CrankNicolson ddt scheme"
<<
exit
(
FatalError
);
}
if
(
alphaRestart
||
mesh
.
time
().
timeIndex
()
>
mesh
.
time
().
startTimeIndex
()
+
1
)
{
ocCoeff
=
refCast
<
const
fv
::
CrankNicolsonDdtScheme
<
scalar
>>
(
ddtAlpha
)
.
ocCoeff
();
}
}
else
{
FatalErrorInFunction
<<
"Only Euler and CrankNicolson ddt schemes are supported"
<<
exit
(
FatalError
);
}
}
// Set the time blending factor, 1 for Euler
scalar
cnCoeff
=
1
.
0
/
(
1
.
0
+
ocCoeff
);
// Standard face-flux compression coefficient
surfaceScalarField
phic
(
mixture
.
cAlpha
()
*
mag
(
alphaPhic
/
mesh
.
magSf
()));
// Add the optional isotropic compression contribution
if
(
icAlpha
>
0
)
{
phic
*=
(
1
.
0
-
icAlpha
);
phic
+=
(
mixture
.
cAlpha
()
*
icAlpha
)
*
fvc
::
interpolate
(
mag
(
U
));
}
// Add the optional shear compression contribution
if
(
scAlpha
>
0
)
{
phic
+=
scAlpha
*
mag
(
mesh
.
delta
()
&
fvc
::
interpolate
(
symm
(
fvc
::
grad
(
U
))));
}
surfaceScalarField
::
Boundary
&
phicBf
=
phic
.
boundaryFieldRef
();
// Do not compress interface at non-coupled boundary faces
// (inlets, outlets etc.)
forAll
(
phic
.
boundaryField
(),
patchi
)
{
fvsPatchScalarField
&
phicp
=
phicBf
[
patchi
];
if
(
!
phicp
.
coupled
())
{
phicp
==
0
;
}
}
tmp
<
surfaceScalarField
>
phiCN
(
alphaPhic
);
// Calculate the Crank-Nicolson off-centred volumetric flux
if
(
ocCoeff
>
0
)
{
phiCN
=
cnCoeff
*
alphaPhic
+
(
1
.
0
-
cnCoeff
)
*
alphaPhic
.
oldTime
();
}
if
(
MULESCorr
)
{
#include "alphaSuSp.H"
fvScalarMatrix
alpha1Eqn
(
(
LTS
?
fv
::
localEulerDdtScheme
<
scalar
>
(
mesh
).
fvmDdt
(
alphac
,
alpha1
)
:
fv
::
EulerDdtScheme
<
scalar
>
(
mesh
).
fvmDdt
(
alpha1
)
)
+
fv
::
gaussConvectionScheme
<
scalar
>
(
mesh
,
phiCN
,
upwind
<
scalar
>
(
mesh
,
phiCN
)
).
fvmDiv
(
phiCN
,
alpha1
)
-
fvm
::
Sp
(
fvc
::
ddt
(
alphac
)
+
fvc
::
div
(
phiCN
),
alpha1
)
==
Su
+
fvm
::
Sp
(
Sp
+
divU
,
alpha1
)
);
alpha1Eqn
.
solve
();
Info
<<
"Phase-1 volume fraction = "
<<
alpha1
.
weightedAverage
(
mesh
.
Vsc
()).
value
()
<<
" Min("
<<
alpha1
.
name
()
<<
") = "
<<
min
(
alpha1
).
value
()
<<
" Max("
<<
alpha1
.
name
()
<<
") = "
<<
max
(
alpha1
).
value
()
<<
endl
;
tmp
<
surfaceScalarField
>
talphaPhi1UD
(
alpha1Eqn
.
flux
());
alphaPhi10
=
talphaPhi1UD
();
if
(
alphaApplyPrevCorr
&&
talphaPhi1Corr0
.
valid
())
{
Info
<<
"Applying the previous iteration compression flux"
<<
endl
;
MULES
::
correct
(
alphac
,
alpha1
,
alphaPhi10
,
talphaPhi1Corr0
.
ref
(),
zeroField
(),
zeroField
(),
oneField
(),
zeroField
()
);
alphaPhi10
+=
talphaPhi1Corr0
();
}
// Cache the upwind-flux
talphaPhi1Corr0
=
talphaPhi1UD
;
alpha2
=
1
.
0
-
alpha1
;
mixture
.
correct
();
}
for
(
int
aCorr
=
0
;
aCorr
<
nAlphaCorr
;
aCorr
++
)
{
#include "alphaSuSp.H"
surfaceScalarField
phir
(
phic
*
mixture
.
nHatf
());
tmp
<
surfaceScalarField
>
talphaPhi1Un
(
fvc
::
flux
(
phiCN
(),
cnCoeff
*
alpha1
+
(
1
.
0
-
cnCoeff
)
*
alpha1
.
oldTime
(),
alphaScheme
)
+
fvc
::
flux
(
-
fvc
::
flux
(
-
phir
,
alpha2
,
alpharScheme
),
alpha1
,
alpharScheme
)
);
if
(
MULESCorr
)
{
tmp
<
surfaceScalarField
>
talphaPhi1Corr
(
talphaPhi1Un
()
-
alphaPhi10
);
volScalarField
alpha10
(
"alpha10"
,
alpha1
);
MULES
::
correct
(
alphac
,
alpha1
,
talphaPhi1Un
(),
talphaPhi1Corr
.
ref
(),
Sp
,
(
-
Sp
*
alpha1
)(),
oneField
(),
zeroField
()
);
// Under-relax the correction for all but the 1st corrector
if
(
aCorr
==
0
)
{
alphaPhi10
+=
talphaPhi1Corr
();
}
else
{
alpha1
=
0
.
5
*
alpha1
+
0
.
5
*
alpha10
;
alphaPhi10
+=
0
.
5
*
talphaPhi1Corr
();
}
}
else
{
alphaPhi10
=
talphaPhi1Un
;
MULES
::
explicitSolve
(
alphac
,
alpha1
,
phiCN
,
alphaPhi10
,
Sp
,
(
Su
+
divU
*
min
(
alpha1
(),
scalar
(
1
)))(),
oneField
(),
zeroField
()
);
}
alpha2
=
1
.
0
-
alpha1
;
mixture
.
correct
();
}
if
(
alphaApplyPrevCorr
&&
MULESCorr
)
{
talphaPhi1Corr0
=
alphaPhi10
-
talphaPhi1Corr0
;
talphaPhi1Corr0
.
ref
().
rename
(
"alphaPhi1Corr0"
);
}
else
{
talphaPhi1Corr0
.
clear
();
}
if
(
word
(
mesh
.
ddtScheme
(
"ddt(rho,U)"
))
==
fv
::
EulerDdtScheme
<
vector
>::
typeName
)
{
#include "rhofs.H"
rhoPhi
=
alphaPhi10
*
(
rho1f
-
rho2f
)
+
phiCN
*
rho2f
;
}
else
{
if
(
ocCoeff
>
0
)
{
// Calculate the end-of-time-step alpha flux
alphaPhi10
=
(
alphaPhi10
-
(
1
.
0
-
cnCoeff
)
*
alphaPhi10
.
oldTime
())
/
cnCoeff
;
}
// Calculate the end-of-time-step mass flux
#include "rhofs.H"
rhoPhi
=
alphaPhi10
*
(
rho1f
-
rho2f
)
+
alphaPhic
*
rho2f
;
}
Info
<<
"Phase-1 volume fraction = "
<<
alpha1
.
weightedAverage
(
mesh
.
Vsc
()).
value
()
<<
" Min("
<<
alpha1
.
name
()
<<
") = "
<<
min
(
alpha1
).
value
()
<<
" Max("
<<
alpha1
.
name
()
<<
") = "
<<
max
(
alpha1
).
value
()
<<
endl
;
}
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/alphaEqnSubCycle.H
0 → 100644
View file @
649c29f9
if
(
nAlphaSubCycles
>
1
)
{
dimensionedScalar
totalDeltaT
=
runTime
.
deltaT
();
surfaceScalarField
rhoPhiSum
(
IOobject
(
"rhoPhiSum"
,
runTime
.
timeName
(),
mesh
),
mesh
,
dimensionedScalar
(
rhoPhi
.
dimensions
(),
Zero
)
);
tmp
<
volScalarField
>
trSubDeltaT
;
if
(
LTS
)
{
trSubDeltaT
=
fv
::
localEulerDdt
::
localRSubDeltaT
(
mesh
,
nAlphaSubCycles
);
}
for
(
subCycle
<
volScalarField
>
alphaSubCycle
(
alpha1
,
nAlphaSubCycles
);
!
(
++
alphaSubCycle
).
end
();
)
{
#include "alphaEqn.H"
rhoPhiSum
+=
(
runTime
.
deltaT
()
/
totalDeltaT
)
*
rhoPhi
;
}
rhoPhi
=
rhoPhiSum
;
}
else
{
#include "alphaEqn.H"
}
rho
==
alpha1
*
rho1
+
alpha2
*
rho2
;
mu
=
mixture
.
mu
();
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/compressibleTwoPhaseMixtureTurbulenceModels/Make/files
0 → 100644
View file @
649c29f9
compressibleTwoPhaseMixtureTurbulenceModels.C
LIB = $(FOAM_LIBBIN)/libcompressibleTwoPhaseMixtureTurbulenceModels
OpenFOAM-v2112/applications/solvers/multiphase/MPPICInterFoam/compressibleTwoPhaseMixtureTurbulenceModels/Make/options
0 → 100644
View file @
649c29f9
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/transportModels/twoPhaseMixture/lnInclude \
-I$(LIB_SRC)/transportModels/incompressible/lnInclude \
-I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \
-I$(LIB_SRC)/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/incompressible/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/phaseIncompressible/lnInclude
LIB_LIBS = \
-lfiniteVolume \
-lmeshTools \
-lincompressibleTransportModels \
-limmiscibleIncompressibleTwoPhaseMixture \
-linterfaceProperties \
-lturbulenceModels \
-lincompressibleTurbulenceModels \
-lcompressibleTurbulenceModels
Prev
1
…
30
31
32
33
34
35
36
37
38
…
40
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment