Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
c8135cee
Commit
c8135cee
authored
Sep 25, 2015
by
Henry Weller
Browse files
reactingEulerFoam: Further improvements to the handling of mass-transfer
between incompressible and compressible phases
parent
c5955e4a
Changes
10
Hide whitespace changes
Inline
Side-by-side
applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.C
View file @
c8135cee
...
...
@@ -57,6 +57,16 @@ Foam::HeatTransferPhaseSystem<BasePhaseSystem>::~HeatTransferPhaseSystem()
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
template
<
class
BasePhaseSystem
>
bool
Foam
::
HeatTransferPhaseSystem
<
BasePhaseSystem
>::
transfersMass
(
const
phaseModel
&
phase
)
const
{
return
false
;
}
template
<
class
BasePhaseSystem
>
Foam
::
tmp
<
Foam
::
volScalarField
>
Foam
::
HeatTransferPhaseSystem
<
BasePhaseSystem
>::
dmdt
...
...
applications/solvers/multiphase/reactingEulerFoam/phaseSystems/PhaseSystems/HeatTransferPhaseSystem/HeatTransferPhaseSystem.H
View file @
c8135cee
...
...
@@ -89,6 +89,9 @@ public:
// Member Functions
//- Return true if there is mass transfer for phase
virtual
bool
transfersMass
(
const
phaseModel
&
phase
)
const
;
//- Return the interfacial mass flow rate
virtual
tmp
<
volScalarField
>
dmdt
(
...
...
applications/solvers/multiphase/reactingEulerFoam/phaseSystems/reactionThermo/hRefConstThermos.C
View file @
c8135cee
...
...
@@ -254,6 +254,16 @@ makeReactionMixtureThermo
);
makeReactionMixtureThermo
(
rhoThermo
,
rhoReactionThermo
,
heRhoThermo
,
multiComponentMixture
,
constRefGasHThermoPhysics
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
}
// End namespace Foam
...
...
applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C
View file @
c8135cee
...
...
@@ -515,12 +515,6 @@ Foam::multiphaseSystem::~multiphaseSystem()
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
bool
Foam
::
multiphaseSystem
::
transfersMass
(
const
phaseModel
&
phase
)
const
{
return
false
;
}
Foam
::
tmp
<
Foam
::
surfaceScalarField
>
Foam
::
multiphaseSystem
::
surfaceTension
(
const
phaseModel
&
phase1
...
...
applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H
View file @
c8135cee
...
...
@@ -176,7 +176,7 @@ public:
)
const
=
0
;
//- Return true if there is mass transfer for phase
virtual
bool
transfersMass
(
const
phaseModel
&
phase
)
const
;
virtual
bool
transfersMass
(
const
phaseModel
&
phase
)
const
=
0
;
//- Return the total interfacial mass transfer rate for phase
virtual
tmp
<
volScalarField
>
dmdt
(
const
phaseModel
&
phase
)
const
=
0
;
...
...
applications/solvers/multiphase/reactingEulerFoam/reactingMultiphaseEulerFoam/pU/pEqn.H
View file @
c8135cee
...
...
@@ -357,11 +357,15 @@ while (pimple.correct())
{
if
(
pEqnComps
.
set
(
phasei
))
{
pEqnComps
[
phasei
]
-=
fluid
.
dmdt
(
phase
);
pEqnComps
[
phasei
]
-=
fluid
.
dmdt
(
phase
)
/
rho
;
}
else
{
pEqnComps
.
set
(
phasei
,
fvm
::
Su
(
-
fluid
.
dmdt
(
phase
),
rho
));
pEqnComps
.
set
(
phasei
,
fvm
::
Su
(
-
fluid
.
dmdt
(
phase
)
/
rho
,
p_rgh
)
);
}
}
}
...
...
applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pU/pEqn.H
View file @
c8135cee
...
...
@@ -247,7 +247,7 @@ while (pimple.correct())
pEqnComp1
=
(
phase1
.
continuityError
()
-
fluid
.
dmdt
()
phase1
.
continuityError
()
-
fvc
::
Sp
(
fvc
::
ddt
(
alpha1
)
+
fvc
::
div
(
alphaPhi1
),
rho1
)
)
/
rho1
+
(
alpha1
/
rho1
)
*
correction
...
...
@@ -270,7 +270,7 @@ while (pimple.correct())
pEqnComp2
=
(
phase2
.
continuityError
()
+
fluid
.
dmdt
()
phase2
.
continuityError
()
-
fvc
::
Sp
(
fvc
::
ddt
(
alpha2
)
+
fvc
::
div
(
alphaPhi2
),
rho2
)
)
/
rho2
+
(
alpha2
/
rho2
)
*
correction
...
...
@@ -288,7 +288,7 @@ while (pimple.correct())
{
pEqnComp1
=
(
phase1
.
continuityError
()
-
fluid
.
dmdt
()
phase1
.
continuityError
()
-
fvc
::
Sp
(
fvc
::
ddt
(
alpha1
)
+
fvc
::
div
(
alphaPhi1
),
rho1
)
)
/
rho1
+
(
alpha1
*
psi1
/
rho1
)
*
correction
(
fvm
::
ddt
(
p_rgh
));
...
...
@@ -298,13 +298,34 @@ while (pimple.correct())
{
pEqnComp2
=
(
phase2
.
continuityError
()
+
fluid
.
dmdt
()
phase2
.
continuityError
()
-
fvc
::
Sp
(
fvc
::
ddt
(
alpha2
)
+
fvc
::
div
(
alphaPhi2
),
rho2
)
)
/
rho2
+
(
alpha2
*
psi2
/
rho2
)
*
correction
(
fvm
::
ddt
(
p_rgh
));
}
}
if
(
fluid
.
transfersMass
())
{
if
(
pEqnComp1
.
valid
())
{
pEqnComp1
()
-=
fluid
.
dmdt
()
/
rho1
;
}
else
{
pEqnComp1
=
fvm
::
Su
(
-
fluid
.
dmdt
()
/
rho1
,
p_rgh
);
}
if
(
pEqnComp2
.
valid
())
{
pEqnComp2
()
+=
fluid
.
dmdt
()
/
rho2
;
}
else
{
pEqnComp2
=
fvm
::
Su
(
fluid
.
dmdt
()
/
rho2
,
p_rgh
);
}
}
// Cache p prior to solve for density update
volScalarField
p_rgh_0
(
p_rgh
);
...
...
applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/pUf/pEqn.H
View file @
c8135cee
...
...
@@ -231,7 +231,7 @@ while (pimple.correct())
{
pEqnComp1
=
(
phase1
.
continuityError
()
-
fluid
.
dmdt
()
phase1
.
continuityError
()
-
fvc
::
Sp
(
fvc
::
ddt
(
alpha1
)
+
fvc
::
div
(
alphaPhi1
),
rho1
)
)
/
rho1
+
(
alpha1
/
rho1
)
*
correction
...
...
@@ -247,7 +247,7 @@ while (pimple.correct())
{
pEqnComp2
=
(
phase2
.
continuityError
()
+
fluid
.
dmdt
()
phase2
.
continuityError
()
-
fvc
::
Sp
(
fvc
::
ddt
(
alpha2
)
+
fvc
::
div
(
alphaPhi2
),
rho2
)
)
/
rho2
+
(
alpha2
/
rho2
)
*
correction
...
...
@@ -265,7 +265,7 @@ while (pimple.correct())
{
pEqnComp1
=
(
phase1
.
continuityError
()
-
fluid
.
dmdt
()
phase1
.
continuityError
()
-
fvc
::
Sp
(
fvc
::
ddt
(
alpha1
)
+
fvc
::
div
(
alphaPhi1
),
rho1
)
)
/
rho1
+
(
alpha1
*
psi1
/
rho1
)
*
correction
(
fvm
::
ddt
(
p_rgh
));
...
...
@@ -275,13 +275,34 @@ while (pimple.correct())
{
pEqnComp2
=
(
phase2
.
continuityError
()
+
fluid
.
dmdt
()
phase2
.
continuityError
()
-
fvc
::
Sp
(
fvc
::
ddt
(
alpha2
)
+
fvc
::
div
(
alphaPhi2
),
rho2
)
)
/
rho2
+
(
alpha2
*
psi2
/
rho2
)
*
correction
(
fvm
::
ddt
(
p_rgh
));
}
}
if
(
fluid
.
transfersMass
())
{
if
(
pEqnComp1
.
valid
())
{
pEqnComp1
()
-=
fluid
.
dmdt
()
/
rho1
;
}
else
{
pEqnComp1
=
fvm
::
Su
(
-
fluid
.
dmdt
()
/
rho1
,
p_rgh
);
}
if
(
pEqnComp2
.
valid
())
{
pEqnComp2
()
+=
fluid
.
dmdt
()
/
rho2
;
}
else
{
pEqnComp2
=
fvm
::
Su
(
fluid
.
dmdt
()
/
rho2
,
p_rgh
);
}
}
// Cache p prior to solve for density update
volScalarField
p_rgh_0
(
"p_rgh_0"
,
p_rgh
);
...
...
applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.C
View file @
c8135cee
...
...
@@ -168,6 +168,12 @@ Foam::twoPhaseSystem::D() const
}
bool
Foam
::
twoPhaseSystem
::
transfersMass
()
const
{
return
transfersMass
(
phase1
());
}
Foam
::
tmp
<
Foam
::
volScalarField
>
Foam
::
twoPhaseSystem
::
dmdt
()
const
{
...
...
applications/solvers/multiphase/reactingEulerFoam/reactingTwoPhaseEulerFoam/twoPhaseSystem/twoPhaseSystem.H
View file @
c8135cee
...
...
@@ -78,6 +78,9 @@ class twoPhaseSystem
// Multiplies the phase-fraction gradient
virtual
tmp
<
volScalarField
>
D
(
const
phasePairKey
&
key
)
const
=
0
;
//- Return true if there is mass transfer for phase
virtual
bool
transfersMass
(
const
phaseModel
&
phase
)
const
=
0
;
//- Return the interfacial mass flow rate for phase pair
virtual
tmp
<
volScalarField
>
dmdt
(
const
phasePairKey
&
key
)
const
=
0
;
...
...
@@ -192,6 +195,9 @@ public:
// Multiplies the phase-fraction gradient
tmp
<
volScalarField
>
D
()
const
;
//- Return true if there is mass transfer
bool
transfersMass
()
const
;
//- Return the interfacial mass flow rate
tmp
<
volScalarField
>
dmdt
()
const
;
...
...
Write
Preview
Supports
Markdown
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