Compare commits
5 Commits
develop.mo
...
wip-primit
| Author | SHA1 | Date | |
|---|---|---|---|
| a94db7170d | |||
| 1c458cbf7c | |||
| 5a75946f1a | |||
| 709472a7bb | |||
| af14230255 |
@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
Providing details of your set-up can help us identify any issues, e.g.
|
Providing details of your set-up can help us identify any issues, e.g.
|
||||||
OpenFOAM version : v2312|v2306|v2212|v2206|v2112 etc
|
OpenFOAM version : v2212|v2206|v2112|v2106|v2012 etc
|
||||||
Operating system : ubuntu|openSUSE|centos etc
|
Operating system : ubuntu|openSUSE|centos etc
|
||||||
Hardware info : any info that may help?
|
Hardware info : any info that may help?
|
||||||
Compiler : gcc|intel|clang etc
|
Compiler : gcc|intel|clang etc
|
||||||
|
|||||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -17,6 +17,3 @@
|
|||||||
[submodule "external-solver"]
|
[submodule "external-solver"]
|
||||||
path = modules/external-solver
|
path = modules/external-solver
|
||||||
url = https://develop.openfoam.com/Modules/external-solver.git
|
url = https://develop.openfoam.com/Modules/external-solver.git
|
||||||
[submodule "turbulence-community"]
|
|
||||||
path = modules/turbulence-community
|
|
||||||
url = https://gitlab.com/openfoam/community/tc-turbulence/turbulence-community.git
|
|
||||||
|
|||||||
10
Allwmake
10
Allwmake
@ -96,12 +96,10 @@ echo " ${WM_PROJECT_DIR##*/}"
|
|||||||
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
|
||||||
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
|
||||||
echo
|
echo
|
||||||
|
echo " api = $(etc/openfoam -show-api 2>/dev/null)"
|
||||||
# The api/patch information
|
echo " patch = $(etc/openfoam -show-patch 2>/dev/null)"
|
||||||
sed -e 's/^/ /; s/=/ = /' ./META-INFO/api-info 2>/dev/null || true
|
echo " bin = $(_foamCountDirEntries "$FOAM_APPBIN") entries"
|
||||||
|
echo " lib = $(_foamCountDirEntries "$FOAM_LIBBIN") entries"
|
||||||
echo " bin = $(_foamCountDirEntries "$FOAM_APPBIN") entries"
|
|
||||||
echo " lib = $(_foamCountDirEntries "$FOAM_LIBBIN") entries"
|
|
||||||
echo
|
echo
|
||||||
echo ========================================
|
echo ========================================
|
||||||
|
|
||||||
|
|||||||
@ -5,22 +5,17 @@ It is likely incomplete...
|
|||||||
|
|
||||||
## Contributors (alphabetical by surname)
|
## Contributors (alphabetical by surname)
|
||||||
|
|
||||||
- Horacio Aguerre
|
|
||||||
- Yu Ankun
|
|
||||||
- Tetsuo Aoyagi
|
- Tetsuo Aoyagi
|
||||||
- Akira Azami
|
- Akira Azami
|
||||||
- William Bainbridge
|
- William Bainbridge
|
||||||
- Gabriel Barajas
|
- Gabriel Barajas
|
||||||
- Kutalmis Bercin
|
- Kutalmis Bercin
|
||||||
- Julius Bergmann
|
|
||||||
- Ivor Clifford
|
- Ivor Clifford
|
||||||
- Greg Collecutt
|
- Greg Collecutt
|
||||||
- Jonathan Cranford
|
- Jonathan Cranford
|
||||||
- Santiago Marquez Damian
|
|
||||||
- Sergio Ferraris
|
- Sergio Ferraris
|
||||||
- Matej Forman
|
- Matej Forman
|
||||||
- Marian Fuchs
|
- Marian Fuchs
|
||||||
- Gabriel Gerlero
|
|
||||||
- Pawan Ghildiyal
|
- Pawan Ghildiyal
|
||||||
- Chris Greenshields
|
- Chris Greenshields
|
||||||
- Bernhard Gschaider
|
- Bernhard Gschaider
|
||||||
@ -33,7 +28,6 @@ It is likely incomplete...
|
|||||||
- Alexander Kabat vel Job
|
- Alexander Kabat vel Job
|
||||||
- Thilo Knacke
|
- Thilo Knacke
|
||||||
- Shannon Leakey
|
- Shannon Leakey
|
||||||
- Sergey Lesnik
|
|
||||||
- Tommaso Lucchini
|
- Tommaso Lucchini
|
||||||
- Graham Macpherson
|
- Graham Macpherson
|
||||||
- Alexey Matveichev
|
- Alexey Matveichev
|
||||||
@ -56,12 +50,8 @@ It is likely incomplete...
|
|||||||
- Gavin Tabor
|
- Gavin Tabor
|
||||||
- Zeljko Tukovic
|
- Zeljko Tukovic
|
||||||
- Eugene De Villiers
|
- Eugene De Villiers
|
||||||
- Louis Vittoz
|
|
||||||
- Vuko Vukcevic
|
|
||||||
- Yi Wang
|
- Yi Wang
|
||||||
- Norbert Weber
|
- Norbert Weber
|
||||||
- Gregor Weiss
|
|
||||||
- Volker Weissmann
|
|
||||||
- Henry Weller
|
- Henry Weller
|
||||||
- Niklas Wikstrom
|
- Niklas Wikstrom
|
||||||
- Guanyang Xue
|
- Guanyang Xue
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
api=2310
|
api=2301
|
||||||
patch=0
|
patch=230110
|
||||||
|
|||||||
16
README.md
16
README.md
@ -40,9 +40,9 @@ Violations of the Trademark are monitored, and will be duly prosecuted.
|
|||||||
|
|
||||||
If OpenFOAM has already been compiled on your system, simply source
|
If OpenFOAM has already been compiled on your system, simply source
|
||||||
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
|
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
|
||||||
For example, for the OpenFOAM-v2312 version:
|
For example, for the OpenFOAM-v2212 version:
|
||||||
```
|
```
|
||||||
source /installation/path/OpenFOAM-v2312/etc/bashrc
|
source /installation/path/OpenFOAM-v2212/etc/bashrc
|
||||||
```
|
```
|
||||||
|
|
||||||
## Compiling OpenFOAM
|
## Compiling OpenFOAM
|
||||||
@ -127,8 +127,8 @@ These 3rd-party sources are normally located in a directory parallel
|
|||||||
to the OpenFOAM directory. For example,
|
to the OpenFOAM directory. For example,
|
||||||
```
|
```
|
||||||
/path/parent
|
/path/parent
|
||||||
|-- OpenFOAM-v2312
|
|-- OpenFOAM-v2212
|
||||||
\-- ThirdParty-v2312
|
\-- ThirdParty-v2212
|
||||||
```
|
```
|
||||||
There are, however, many cases where this simple convention is inadequate:
|
There are, however, many cases where this simple convention is inadequate:
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ There are, however, many cases where this simple convention is inadequate:
|
|||||||
operating system or cluster installation provides it)
|
operating system or cluster installation provides it)
|
||||||
|
|
||||||
* When we have changed the OpenFOAM directory name to some arbitrary
|
* When we have changed the OpenFOAM directory name to some arbitrary
|
||||||
directory name, e.g. openfoam-sandbox2312, etc..
|
directory name, e.g. openfoam-sandbox2212, etc..
|
||||||
|
|
||||||
* When we would like any additional 3rd party software to be located
|
* When we would like any additional 3rd party software to be located
|
||||||
inside of the OpenFOAM directory to ensure that the installation is
|
inside of the OpenFOAM directory to ensure that the installation is
|
||||||
@ -156,9 +156,9 @@ when locating the ThirdParty directory with the following precedence:
|
|||||||
2. PREFIX/ThirdParty-VERSION
|
2. PREFIX/ThirdParty-VERSION
|
||||||
* this corresponds to the traditional approach
|
* this corresponds to the traditional approach
|
||||||
3. PREFIX/ThirdParty-vAPI
|
3. PREFIX/ThirdParty-vAPI
|
||||||
* allows for an updated value of VERSION, *eg*, `v2312-myCustom`,
|
* allows for an updated value of VERSION, *eg*, `v2212-myCustom`,
|
||||||
without requiring a renamed ThirdParty. The API value would still
|
without requiring a renamed ThirdParty. The API value would still
|
||||||
be `2312` and the original `ThirdParty-v2312/` would be found.
|
be `2212` and the original `ThirdParty-v2212/` would be found.
|
||||||
4. PREFIX/ThirdParty-API
|
4. PREFIX/ThirdParty-API
|
||||||
* same as the previous example, but using an unadorned API value.
|
* same as the previous example, but using an unadorned API value.
|
||||||
5. PREFIX/ThirdParty-common
|
5. PREFIX/ThirdParty-common
|
||||||
@ -213,4 +213,4 @@ ThirdParty directory will contain either an `Allwmake` file or a
|
|||||||
- [Governance](http://www.openfoam.com/governance/), [Governance Projects](https://www.openfoam.com/governance/projects)
|
- [Governance](http://www.openfoam.com/governance/), [Governance Projects](https://www.openfoam.com/governance/projects)
|
||||||
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
|
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
|
||||||
|
|
||||||
Copyright 2016-2023 OpenCFD Ltd
|
Copyright 2016-2022 OpenCFD Ltd
|
||||||
|
|||||||
@ -118,7 +118,7 @@ int main(int argc, char *argv[])
|
|||||||
fvm::laplacian(rAUf, p) == fvc::div(phiHbyA)
|
fvm::laplacian(rAUf, p) == fvc::div(phiHbyA)
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(piso.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(piso.finalInnerIter())));
|
||||||
|
|
||||||
phi = phiHbyA - pEqn.flux();
|
phi = phiHbyA - pEqn.flux();
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,6 @@ dimensionedScalar rho("rho", dimDensity, transportProperties);
|
|||||||
|
|
||||||
scalar MaxCo =
|
scalar MaxCo =
|
||||||
max(mesh.surfaceInterpolation::deltaCoeffs()*c0).value()
|
max(mesh.surfaceInterpolation::deltaCoeffs()*c0).value()
|
||||||
*runTime.deltaTValue();
|
*runTime.deltaT().value();
|
||||||
|
|
||||||
Info<< "Max acoustic Courant Number = " << MaxCo << endl;
|
Info<< "Max acoustic Courant Number = " << MaxCo << endl;
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
Copyright (C) 2019-2020,2023 OpenCFD Ltd.
|
Copyright (C) 2019-2020 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -132,11 +132,6 @@ void PDRkEpsilon::correct()
|
|||||||
|
|
||||||
// Update epsilon and G at the wall
|
// Update epsilon and G at the wall
|
||||||
epsilon_.boundaryFieldRef().updateCoeffs();
|
epsilon_.boundaryFieldRef().updateCoeffs();
|
||||||
// Push new cell values to
|
|
||||||
// coupled neighbours. Note that we want to avoid the re-updateCoeffs
|
|
||||||
// of the wallFunctions so make sure to bypass the evaluate on
|
|
||||||
// those patches and only do the coupled ones.
|
|
||||||
epsilon_.boundaryFieldRef().evaluateCoupled<coupledFvPatch>();
|
|
||||||
|
|
||||||
// Add the blockage generation term so that it is included consistently
|
// Add the blockage generation term so that it is included consistently
|
||||||
// in both the k and epsilon equations
|
// in both the k and epsilon equations
|
||||||
|
|||||||
@ -109,7 +109,7 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
|
|||||||
mesh,
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
IOobject::NO_REGISTER
|
false
|
||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(Nv.dimensions(), Zero)
|
dimensionedScalar(Nv.dimensions(), Zero)
|
||||||
|
|||||||
@ -27,7 +27,7 @@ if (pimple.transonic())
|
|||||||
betav*fvOptions(psi, p, rho.name())
|
betav*fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -57,7 +57,7 @@ else
|
|||||||
betav*fvOptions(psi, p, rho.name())
|
betav*fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -30,7 +30,7 @@ if (pimple.transonic())
|
|||||||
fvOptions(psi, p, rho.name())
|
fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -66,7 +66,7 @@ else
|
|||||||
fvOptions(psi, p, rho.name())
|
fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -35,7 +35,7 @@ if (pimple.transonic())
|
|||||||
fvOptions(psi, p, rho.name())
|
fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -71,7 +71,7 @@ else
|
|||||||
fvOptions(psi, p, rho.name())
|
fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -223,7 +223,7 @@ if (ign.ignited())
|
|||||||
volScalarField R(Gstar*XiEqStar/(XiEqStar - scalar(1)));
|
volScalarField R(Gstar*XiEqStar/(XiEqStar - scalar(1)));
|
||||||
volScalarField G(R*(XiEq - scalar(1.001))/XiEq);
|
volScalarField G(R*(XiEq - scalar(1.001))/XiEq);
|
||||||
|
|
||||||
//R *= (Gstar + 2*mag(devSymm(fvc::grad(U))))/Gstar;
|
//R *= (Gstar + 2*mag(dev(symm(fvc::grad(U)))))/Gstar;
|
||||||
|
|
||||||
// Solve for the flame wrinkling
|
// Solve for the flame wrinkling
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|||||||
@ -29,7 +29,7 @@ if (pimple.transonic())
|
|||||||
fvOptions(psi, p, rho.name())
|
fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -64,7 +64,7 @@ else
|
|||||||
fvOptions(psi, p, rho.name())
|
fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
solve
|
solve
|
||||||
(
|
(
|
||||||
fvm::ddt(rho, Yi) - chemistry.RR(specieI),
|
fvm::ddt(rho, Yi) - chemistry.RR(specieI),
|
||||||
"Yi"
|
mesh.solver("Yi")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,7 @@ Info<< "Creating base fields for time " << runTime.timeName() << endl;
|
|||||||
mesh,
|
mesh,
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
IOobject::NO_REGISTER
|
false
|
||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar("Ydefault", dimless, 1)
|
dimensionedScalar("Ydefault", dimless, 1)
|
||||||
@ -29,7 +29,7 @@ Info<< "Creating base fields for time " << runTime.timeName() << endl;
|
|||||||
mesh,
|
mesh,
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
IOobject::NO_REGISTER
|
false
|
||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar("p", dimPressure, p0)
|
dimensionedScalar("p", dimPressure, p0)
|
||||||
@ -46,7 +46,7 @@ Info<< "Creating base fields for time " << runTime.timeName() << endl;
|
|||||||
mesh,
|
mesh,
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
IOobject::NO_REGISTER
|
false
|
||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar("T", dimTemperature, T0)
|
dimensionedScalar("T", dimTemperature, T0)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
if (adjustTimeStep)
|
if (adjustTimeStep)
|
||||||
{
|
{
|
||||||
runTime.setDeltaT(min(dtChem, maxDeltaT));
|
runTime.setDeltaT(min(dtChem, maxDeltaT));
|
||||||
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
Info<< "deltaT = " << runTime.deltaT().value() << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
dtChem = chemistry.solve(runTime.deltaTValue());
|
dtChem = chemistry.solve(runTime.deltaT().value());
|
||||||
scalar Qdot = chemistry.Qdot()()[0]/rho[0];
|
scalar Qdot = chemistry.Qdot()()[0]/rho[0];
|
||||||
integratedHeat += Qdot*runTime.deltaTValue();
|
integratedHeat += Qdot*runTime.deltaT().value();
|
||||||
|
|||||||
@ -35,7 +35,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
|
|||||||
|
|
||||||
fvOptions.constrain(YiEqn);
|
fvOptions.constrain(YiEqn);
|
||||||
|
|
||||||
YiEqn.solve("Yi");
|
YiEqn.solve(mesh.solver("Yi"));
|
||||||
|
|
||||||
fvOptions.correct(Yi);
|
fvOptions.correct(Yi);
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,7 @@ while (pimple.correctNonOrthogonal())
|
|||||||
+ fvOptions(psi, p_rgh, rho.name())
|
+ fvOptions(psi, p_rgh, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
p_rghEqn.solve(p_rgh.select(pimple.finalInnerIter()));
|
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -34,7 +34,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
|
|||||||
|
|
||||||
fvOptions.constrain(YiEqn);
|
fvOptions.constrain(YiEqn);
|
||||||
|
|
||||||
YiEqn.solve("Yi");
|
YiEqn.solve(mesh.solver("Yi"));
|
||||||
|
|
||||||
fvOptions.correct(Yi);
|
fvOptions.correct(Yi);
|
||||||
|
|
||||||
|
|||||||
@ -37,7 +37,7 @@ if (pimple.transonic())
|
|||||||
fvOptions(psi, p, rho.name())
|
fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -72,7 +72,7 @@ else
|
|||||||
fvOptions(psi, p, rho.name())
|
fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -49,7 +49,7 @@ if (pimple.transonic())
|
|||||||
fvOptions(psi, p, rho.name())
|
fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -89,7 +89,7 @@ else
|
|||||||
fvOptions(psi, p, rho.name())
|
fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -41,7 +41,7 @@ while (pimple.correctNonOrthogonal())
|
|||||||
- fvm::laplacian(rhorAUf, p_rgh)
|
- fvm::laplacian(rhorAUf, p_rgh)
|
||||||
);
|
);
|
||||||
|
|
||||||
p_rghEqn.solve(p_rgh.select(pimple.finalInnerIter()));
|
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -103,10 +103,16 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField
|
|||||||
<< exit(FatalIOError);
|
<< exit(FatalIOError);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this->readValueEntry(dict))
|
if (dict.found("value"))
|
||||||
{
|
{
|
||||||
// Fallback: set to the internal field
|
fvPatchField<scalar>::operator=
|
||||||
fvPatchField<scalar>::patchInternalField(*this);
|
(
|
||||||
|
scalarField("value", dict, p.size())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fvPatchField<scalar>::operator=(patchInternalField());
|
||||||
}
|
}
|
||||||
|
|
||||||
refValue() = *this;
|
refValue() = *this;
|
||||||
|
|||||||
@ -105,15 +105,18 @@ Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField
|
|||||||
<< exit(FatalIOError);
|
<< exit(FatalIOError);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->readValueEntry(dict))
|
if (dict.found("value"))
|
||||||
{
|
{
|
||||||
const auto* hasRefValue = dict.findEntry("refValue", keyType::LITERAL);
|
fvPatchField<vector>::operator=
|
||||||
const auto* hasFrac = dict.findEntry("valueFraction", keyType::LITERAL);
|
(
|
||||||
|
vectorField("value", dict, p.size())
|
||||||
|
);
|
||||||
|
|
||||||
if (hasRefValue && hasFrac)
|
if (dict.found("refValue") && dict.found("valueFraction"))
|
||||||
{
|
{
|
||||||
this->refValue().assign(*hasRefValue, p.size());
|
this->refValue() = vectorField("refValue", dict, p.size());
|
||||||
this->valueFraction().assign(*hasFrac, p.size());
|
this->valueFraction() =
|
||||||
|
scalarField("valueFraction", dict, p.size());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -17,7 +17,7 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> interpolate
|
|||||||
vf,
|
vf,
|
||||||
dir,
|
dir,
|
||||||
"reconstruct("
|
"reconstruct("
|
||||||
+ (reconFieldName.empty() ? vf.name() : reconFieldName)
|
+ (reconFieldName != word::null ? reconFieldName : vf.name())
|
||||||
+ ')'
|
+ ')'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -63,7 +63,7 @@
|
|||||||
fvOptions(psi, p, rho.name())
|
fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
// Rhie & Chow interpolation (part 2)
|
// Rhie & Chow interpolation (part 2)
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
|
|||||||
@ -29,7 +29,7 @@ if (mesh.changing())
|
|||||||
wordList pcorrTypes
|
wordList pcorrTypes
|
||||||
(
|
(
|
||||||
p.boundaryField().size(),
|
p.boundaryField().size(),
|
||||||
fvPatchFieldBase::zeroGradientType()
|
zeroGradientFvPatchScalarField::typeName
|
||||||
);
|
);
|
||||||
|
|
||||||
// Set BCs of pcorr to fixed-value for patches at which p is fixed
|
// Set BCs of pcorr to fixed-value for patches at which p is fixed
|
||||||
@ -72,7 +72,7 @@ if (mesh.changing())
|
|||||||
divrhoU()
|
divrhoU()
|
||||||
);
|
);
|
||||||
|
|
||||||
pcorrEqn.solve(pcorr.select(pimple.finalInnerIter()));
|
pcorrEqn.solve(mesh.solver(pcorr.select(pimple.finalInnerIter())));
|
||||||
//Bypass virtual layer
|
//Bypass virtual layer
|
||||||
//mesh.fvMesh::solve(pcorrEqn, d);
|
//mesh.fvMesh::solve(pcorrEqn, d);
|
||||||
|
|
||||||
|
|||||||
@ -56,7 +56,7 @@ if (pimple.transonic())
|
|||||||
// Relax the pressure equation to ensure diagonal-dominance
|
// Relax the pressure equation to ensure diagonal-dominance
|
||||||
pEqn.relax();
|
pEqn.relax();
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -78,7 +78,7 @@ else
|
|||||||
{
|
{
|
||||||
fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAUf, p));
|
fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAUf, p));
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -54,7 +54,7 @@ if (pimple.transonic())
|
|||||||
// Relax the pressure equation to ensure diagonal-dominance
|
// Relax the pressure equation to ensure diagonal-dominance
|
||||||
pEqn.relax();
|
pEqn.relax();
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -76,7 +76,7 @@ else
|
|||||||
{
|
{
|
||||||
fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAUf, p));
|
fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAUf, p));
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -65,7 +65,7 @@ if (pimple.transonic())
|
|||||||
// Relax the pressure equation to ensure diagonal-dominance
|
// Relax the pressure equation to ensure diagonal-dominance
|
||||||
pEqn.relax();
|
pEqn.relax();
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -90,7 +90,7 @@ else
|
|||||||
{
|
{
|
||||||
fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAtU, p));
|
fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAtU, p));
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -127,7 +127,7 @@ int main(int argc, char *argv[])
|
|||||||
);
|
);
|
||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
pEqn.solve(p.select(piso.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(piso.finalInnerIter())));
|
||||||
|
|
||||||
if (piso.finalNonOrthogonalIter())
|
if (piso.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -167,7 +167,7 @@ int main(int argc, char *argv[])
|
|||||||
fvm::laplacian(rABf, pB) == fvc::div(phiB)
|
fvm::laplacian(rABf, pB) == fvc::div(phiB)
|
||||||
);
|
);
|
||||||
|
|
||||||
pBEqn.solve(pB.select(bpiso.finalInnerIter()));
|
pBEqn.solve(mesh.solver(pB.select(bpiso.finalInnerIter())));
|
||||||
|
|
||||||
if (bpiso.finalNonOrthogonalIter())
|
if (bpiso.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
*mag(aMesh.edgeInterpolation::deltaCoeffs())
|
*mag(aMesh.edgeInterpolation::deltaCoeffs())
|
||||||
/rhol
|
/rhol
|
||||||
)
|
)
|
||||||
).value()*runTime.deltaTValue();
|
).value()*runTime.deltaT().value();
|
||||||
|
|
||||||
Info<< "Max Capillary Courant Number = " << CoNumSigma << '\n' << endl;
|
Info<< "Max Capillary Courant Number = " << CoNumSigma << '\n' << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
(
|
(
|
||||||
"h",
|
"h",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
@ -20,7 +20,7 @@
|
|||||||
(
|
(
|
||||||
"Us",
|
"Us",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
@ -34,7 +34,7 @@
|
|||||||
(
|
(
|
||||||
"phis",
|
"phis",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
@ -48,7 +48,7 @@
|
|||||||
(
|
(
|
||||||
"phi2s",
|
"phi2s",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
@ -67,7 +67,7 @@
|
|||||||
(
|
(
|
||||||
"Sm",
|
"Sm",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
@ -82,7 +82,7 @@
|
|||||||
(
|
(
|
||||||
"Sd",
|
"Sd",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
@ -96,7 +96,7 @@
|
|||||||
(
|
(
|
||||||
"Sg",
|
"Sg",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
@ -112,7 +112,7 @@
|
|||||||
(
|
(
|
||||||
"ps",
|
"ps",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
@ -134,7 +134,7 @@
|
|||||||
(
|
(
|
||||||
"manningField",
|
"manningField",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
@ -147,7 +147,7 @@
|
|||||||
(
|
(
|
||||||
"frictionFactor",
|
"frictionFactor",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
|
|||||||
@ -7,7 +7,7 @@ volVectorField U
|
|||||||
(
|
(
|
||||||
"U",
|
"U",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
@ -22,7 +22,7 @@ volScalarField H
|
|||||||
(
|
(
|
||||||
"H",
|
"H",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
|
|||||||
@ -87,13 +87,7 @@ int main(int argc, char *argv[])
|
|||||||
(
|
(
|
||||||
fam::ddt(h, Us)
|
fam::ddt(h, Us)
|
||||||
+ fam::div(phi2s, Us)
|
+ fam::div(phi2s, Us)
|
||||||
+ fam::Sp
|
+ fam::Sp(0.0125*frictionFactor*mag(Us), Us)
|
||||||
(
|
|
||||||
0.0125
|
|
||||||
*frictionFactor.internalField()
|
|
||||||
*mag(Us.internalField()),
|
|
||||||
Us
|
|
||||||
)
|
|
||||||
==
|
==
|
||||||
Gs*h
|
Gs*h
|
||||||
- fam::Sp(Sd, Us)
|
- fam::Sp(Sd, Us)
|
||||||
|
|||||||
@ -47,10 +47,10 @@ if (aMesh.nInternalEdges())
|
|||||||
);
|
);
|
||||||
|
|
||||||
CoNum = max(SfUfbyDelta/aMesh.magLe())
|
CoNum = max(SfUfbyDelta/aMesh.magLe())
|
||||||
.value()*runTime.deltaTValue();
|
.value()*runTime.deltaT().value();
|
||||||
|
|
||||||
meanCoNum = (sum(SfUfbyDelta)/sum(aMesh.magLe()))
|
meanCoNum = (sum(SfUfbyDelta)/sum(aMesh.magLe()))
|
||||||
.value()*runTime.deltaTValue();
|
.value()*runTime.deltaT().value();
|
||||||
|
|
||||||
velMag = max(mag(phis)/aMesh.magLe()).value();
|
velMag = max(mag(phis)/aMesh.magLe()).value();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,7 @@ areaScalarField Cs
|
|||||||
(
|
(
|
||||||
"Cs",
|
"Cs",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
@ -26,7 +26,7 @@ areaVectorField Us
|
|||||||
(
|
(
|
||||||
"Us",
|
"Us",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
@ -47,7 +47,6 @@ forAll(Us, faceI)
|
|||||||
Us[faceI].z() =
|
Us[faceI].z() =
|
||||||
Uinf.value()*0.25*R[faceI].x()*R[faceI].z()/sqr(mag(R[faceI]));
|
Uinf.value()*0.25*R[faceI].x()*R[faceI].z()/sqr(mag(R[faceI]));
|
||||||
}
|
}
|
||||||
Us.boundaryFieldRef().evaluateCoupled<coupledFaPatch>();
|
|
||||||
|
|
||||||
Us -= aMesh.faceAreaNormals()*(aMesh.faceAreaNormals() & Us);
|
Us -= aMesh.faceAreaNormals()*(aMesh.faceAreaNormals() & Us);
|
||||||
|
|
||||||
@ -58,7 +57,7 @@ edgeScalarField phis
|
|||||||
(
|
(
|
||||||
"phis",
|
"phis",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
|
|||||||
@ -0,0 +1,2 @@
|
|||||||
|
// Create Finite Area mesh
|
||||||
|
faMesh aMesh(mesh);
|
||||||
@ -7,7 +7,7 @@
|
|||||||
(
|
(
|
||||||
"Cvf",
|
"Cvf",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
@ -24,7 +24,7 @@
|
|||||||
(
|
(
|
||||||
"U",
|
"U",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
|
|||||||
@ -5,7 +5,7 @@ areaScalarField Cs
|
|||||||
(
|
(
|
||||||
"Cs",
|
"Cs",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
@ -37,7 +37,7 @@ areaVectorField Us
|
|||||||
(
|
(
|
||||||
"Us",
|
"Us",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
@ -51,7 +51,7 @@ edgeScalarField phis
|
|||||||
(
|
(
|
||||||
"phis",
|
"phis",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
aMesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
|
|||||||
@ -0,0 +1,2 @@
|
|||||||
|
// Create Finite Area mesh
|
||||||
|
faMesh aMesh(mesh);
|
||||||
@ -7,7 +7,7 @@
|
|||||||
(
|
(
|
||||||
"Cvf",
|
"Cvf",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
@ -24,7 +24,7 @@
|
|||||||
(
|
(
|
||||||
"U",
|
"U",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh.thisDb(),
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
|
|||||||
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));
|
p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));
|
||||||
|
|
||||||
p_rghEqn.solve(p_rgh.select(pimple.finalInnerIter()));
|
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -29,7 +29,7 @@ if (mesh.changing())
|
|||||||
wordList pcorrTypes
|
wordList pcorrTypes
|
||||||
(
|
(
|
||||||
p.boundaryField().size(),
|
p.boundaryField().size(),
|
||||||
fvPatchFieldBase::zeroGradientType()
|
zeroGradientFvPatchScalarField::typeName
|
||||||
);
|
);
|
||||||
|
|
||||||
// Set BCs of pcorr to fixed-value for patches at which p is fixed
|
// Set BCs of pcorr to fixed-value for patches at which p is fixed
|
||||||
@ -72,7 +72,7 @@ if (mesh.changing())
|
|||||||
divrhoU()
|
divrhoU()
|
||||||
);
|
);
|
||||||
|
|
||||||
//pcorrEqn.solve(pcorr.select(pimple.finalInnerIter()));
|
//pcorrEqn.solve(mesh.solver(pcorr.select(pimple.finalInnerIter())));
|
||||||
//Bypass virtual layer
|
//Bypass virtual layer
|
||||||
const dictionary& d = mesh.solver
|
const dictionary& d = mesh.solver
|
||||||
(
|
(
|
||||||
|
|||||||
@ -50,7 +50,7 @@ while (pimple.correctNonOrthogonal())
|
|||||||
- fvm::laplacian(rhorAUf, p_rgh)
|
- fvm::laplacian(rhorAUf, p_rgh)
|
||||||
);
|
);
|
||||||
|
|
||||||
p_rghEqn.solve(p_rgh.select(pimple.finalInnerIter()));
|
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -52,7 +52,7 @@ while (pimple.correctNonOrthogonal())
|
|||||||
compressible ? getRefCellValue(p_rgh, pRefCell) : pRefValue
|
compressible ? getRefCellValue(p_rgh, pRefCell) : pRefValue
|
||||||
);
|
);
|
||||||
|
|
||||||
p_rghEqn.solve(p_rgh.select(pimple.finalInnerIter()));
|
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -108,7 +108,7 @@ forAll(fluidRegions, i)
|
|||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
dimensionedScalar(word::null, dimLength, Zero)
|
dimensionedScalar("hRef", dimLength, Zero) // uses name
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
derivedFvPatchFields/turbulentTemperatureTwoPhaseRadCoupledMixed/turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField.C
|
derivedFvPatchFields/turbulentTemperatureTwoPhaseRadCoupledMixed/turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField.C
|
||||||
solid/solidRegionDiffNo.C
|
../solid/solidRegionDiffNo.C
|
||||||
chtMultiRegionTwoPhaseEulerFoam.C
|
chtMultiRegionTwoPhaseEulerFoam.C
|
||||||
|
|
||||||
EXE = $(FOAM_APPBIN)/chtMultiRegionTwoPhaseEulerFoam
|
EXE = $(FOAM_APPBIN)/chtMultiRegionTwoPhaseEulerFoam
|
||||||
|
|||||||
@ -243,12 +243,14 @@ turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField
|
|||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
|
||||||
|
|
||||||
this->readValueEntry(dict, IOobjectOption::MUST_READ);
|
if (dict.found("refValue"))
|
||||||
|
|
||||||
if (this->readMixedEntries(dict))
|
|
||||||
{
|
{
|
||||||
// Full restart
|
// Full restart
|
||||||
|
refValue() = scalarField("refValue", dict, p.size());
|
||||||
|
refGrad() = scalarField("refGradient", dict, p.size());
|
||||||
|
valueFraction() = scalarField("valueFraction", dict, p.size());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -292,7 +294,8 @@ updateCoeffs()
|
|||||||
|
|
||||||
// Since we're inside initEvaluate/evaluate there might be processor
|
// Since we're inside initEvaluate/evaluate there might be processor
|
||||||
// comms underway. Change the tag we use.
|
// comms underway. Change the tag we use.
|
||||||
const int oldTag = UPstream::incrMsgType();
|
int oldTag = UPstream::msgType();
|
||||||
|
UPstream::msgType() = oldTag+1;
|
||||||
|
|
||||||
// Get the coupling information from the mappedPatchBase
|
// Get the coupling information from the mappedPatchBase
|
||||||
const label patchi = patch().index();
|
const label patchi = patch().index();
|
||||||
@ -470,9 +473,10 @@ updateCoeffs()
|
|||||||
<< regionTypeNames_ << nl << exit(FatalError);
|
<< regionTypeNames_ << nl << exit(FatalError);
|
||||||
}
|
}
|
||||||
|
|
||||||
UPstream::msgType(oldTag); // Restore tag
|
|
||||||
|
|
||||||
mixedFvPatchScalarField::updateCoeffs();
|
mixedFvPatchScalarField::updateCoeffs();
|
||||||
|
|
||||||
|
// Restore tag
|
||||||
|
UPstream::msgType() = oldTag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -221,7 +221,7 @@ forAll(fluidRegions, i)
|
|||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
dimensionedScalar(word::null, dimLength, Zero)
|
dimensionedScalar("hRef", dimLength, Zero)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -13,11 +13,11 @@ forAll(cumulativeContErrIO, i)
|
|||||||
"cumulativeContErr",
|
"cumulativeContErr",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
"uniform",
|
"uniform",
|
||||||
mesh.thisDb(),
|
mesh,
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
dimensionedScalar(word::null, dimless, Zero)
|
dimensionedScalar(dimless, Zero)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
if (finalIter)
|
if (finalIter)
|
||||||
{
|
{
|
||||||
mesh.data().setFinalIteration(true);
|
mesh.data::add("finalIteration", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frozenFlow)
|
if (frozenFlow)
|
||||||
@ -35,5 +35,5 @@ else
|
|||||||
|
|
||||||
if (finalIter)
|
if (finalIter)
|
||||||
{
|
{
|
||||||
mesh.data().setFinalIteration(false);
|
mesh.data::remove("finalIteration");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1 +0,0 @@
|
|||||||
../../solid/solidRegionDiffNo.C
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
if (finalIter)
|
if (finalIter)
|
||||||
{
|
{
|
||||||
mesh.data().setFinalIteration(true);
|
mesh.data::add("finalIteration", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -22,7 +22,7 @@ if (finalIter)
|
|||||||
|
|
||||||
fvOptions.constrain(hEqn);
|
fvOptions.constrain(hEqn);
|
||||||
|
|
||||||
hEqn.solve(h.select(finalIter));
|
hEqn.solve(mesh.solver(h.select(finalIter)));
|
||||||
|
|
||||||
fvOptions.correct(h);
|
fvOptions.correct(h);
|
||||||
}
|
}
|
||||||
@ -35,5 +35,5 @@ if (finalIter)
|
|||||||
|
|
||||||
if (finalIter)
|
if (finalIter)
|
||||||
{
|
{
|
||||||
mesh.data().setFinalIteration(false);
|
mesh.data::remove("finalIteration");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,7 +33,7 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
EEqn.solve(he.select(finalIter));
|
EEqn.solve(mesh.solver(he.select(finalIter)));
|
||||||
fvOptions.correct(he);
|
fvOptions.correct(he);
|
||||||
|
|
||||||
thermo.correct();
|
thermo.correct();
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
- fvc::snGrad(p_rgh)
|
- fvc::snGrad(p_rgh)
|
||||||
)*mesh.magSf()
|
)*mesh.magSf()
|
||||||
),
|
),
|
||||||
U.select(finalIter)
|
mesh.solver(U.select(finalIter))
|
||||||
);
|
);
|
||||||
|
|
||||||
fvOptions.correct(U);
|
fvOptions.correct(U);
|
||||||
|
|||||||
@ -44,7 +44,7 @@ if (Y.size())
|
|||||||
|
|
||||||
fvOptions.constrain(YiEqn);
|
fvOptions.constrain(YiEqn);
|
||||||
|
|
||||||
YiEqn.solve("Yi");
|
YiEqn.solve(mesh.solver("Yi"));
|
||||||
|
|
||||||
fvOptions.correct(Yi);
|
fvOptions.correct(Yi);
|
||||||
|
|
||||||
|
|||||||
@ -112,7 +112,7 @@ forAll(fluidRegions, i)
|
|||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
dimensionedScalar(word::null, dimLength, Zero)
|
dimensionedScalar("hRef", dimLength, Zero) // uses name
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -13,11 +13,11 @@ forAll(cumulativeContErrIO, i)
|
|||||||
"cumulativeContErr",
|
"cumulativeContErr",
|
||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
"uniform",
|
"uniform",
|
||||||
mesh.thisDb(),
|
mesh,
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE
|
||||||
),
|
),
|
||||||
dimensionedScalar(word::null, dimless, Zero)
|
dimensionedScalar(dimless, Zero)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -52,12 +52,15 @@ constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
|
|||||||
|
|
||||||
p_rghEqn.solve
|
p_rghEqn.solve
|
||||||
(
|
(
|
||||||
p_rgh.select
|
mesh.solver
|
||||||
(
|
(
|
||||||
|
p_rgh.select
|
||||||
(
|
(
|
||||||
oCorr == nOuterCorr-1
|
(
|
||||||
&& corr == nCorr-1
|
oCorr == nOuterCorr-1
|
||||||
&& nonOrth == nNonOrthCorr
|
&& corr == nCorr-1
|
||||||
|
&& nonOrth == nNonOrthCorr
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
if (finalIter)
|
if (finalIter)
|
||||||
{
|
{
|
||||||
mesh.data().setFinalIteration(true);
|
mesh.data::add("finalIteration", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frozenFlow)
|
if (frozenFlow)
|
||||||
@ -36,5 +36,5 @@ else
|
|||||||
|
|
||||||
if (finalIter)
|
if (finalIter)
|
||||||
{
|
{
|
||||||
mesh.data().setFinalIteration(false);
|
mesh.data::remove("finalIteration");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
bool coupled = false;
|
fvSolution solutionDict(runTime);
|
||||||
{
|
|
||||||
fvSolution solutionDict(runTime);
|
bool coupled(solutionDict.getOrDefault("coupledEnergyField", false));
|
||||||
solutionDict.readIfPresent("coupledEnergyField", coupled);
|
|
||||||
}
|
|
||||||
|
|
||||||
autoPtr<fvMatrix<scalar>> fvMatrixAssemblyPtr;
|
autoPtr<fvMatrix<scalar>> fvMatrixAssemblyPtr;
|
||||||
|
|
||||||
|
|||||||
@ -49,11 +49,11 @@ if (adjustTimeStep)
|
|||||||
(
|
(
|
||||||
min
|
min
|
||||||
(
|
(
|
||||||
min(maxCo/CoNum, maxDi/DiNum)*runTime.deltaTValue(),
|
min(maxCo/CoNum, maxDi/DiNum)*runTime.deltaT().value(),
|
||||||
min(runTime.deltaTValue(), maxDeltaT)
|
min(runTime.deltaTValue(), maxDeltaT)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
Info<< "deltaT = " << runTime.deltaT().value() << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -59,12 +59,12 @@ if (adjustTimeStep)
|
|||||||
(
|
(
|
||||||
min
|
min
|
||||||
(
|
(
|
||||||
min(deltaTFluid, maxDeltaTSolid)*runTime.deltaTValue(),
|
min(deltaTFluid, maxDeltaTSolid)*runTime.deltaT().value(),
|
||||||
maxDeltaT
|
maxDeltaT
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
Info<< "deltaT = " << runTime.deltaTValue() << endl;
|
Info<< "deltaT = " << runTime.deltaT().value() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -57,7 +57,7 @@
|
|||||||
),
|
),
|
||||||
solidRegions[i],
|
solidRegions[i],
|
||||||
dimensionedSymmTensor(tkappaByCp().dimensions(), Zero),
|
dimensionedSymmTensor(tkappaByCp().dimensions(), Zero),
|
||||||
fvPatchFieldBase::zeroGradientType()
|
zeroGradientFvPatchSymmTensorField::typeName
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -25,10 +25,10 @@
|
|||||||
|
|
||||||
if (finalIter)
|
if (finalIter)
|
||||||
{
|
{
|
||||||
mesh.data().setFinalIteration(true);
|
mesh.data::add("finalIteration", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
hEqn.solve(h.select(finalIter));
|
hEqn.solve(mesh.solver(h.select(finalIter)));
|
||||||
|
|
||||||
fvOptions.correct(h);
|
fvOptions.correct(h);
|
||||||
|
|
||||||
@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
if (finalIter)
|
if (finalIter)
|
||||||
{
|
{
|
||||||
mesh.data().setFinalIteration(false);
|
mesh.data::remove("finalIteration");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,7 +34,7 @@ if (!thermo.isotropic())
|
|||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedSymmTensor(tkappaByCp().dimensions(), Zero),
|
dimensionedSymmTensor(tkappaByCp().dimensions(), Zero),
|
||||||
fvPatchFieldBase::zeroGradientType()
|
zeroGradientFvPatchSymmTensorField::typeName
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
volSymmTensorField& aniAlpha = *taniAlpha;
|
volSymmTensorField& aniAlpha = *taniAlpha;
|
||||||
|
|||||||
@ -44,7 +44,7 @@ IOobject turbulencePropertiesHeader
|
|||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ_IF_MODIFIED,
|
IOobject::MUST_READ_IF_MODIFIED,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
IOobject::NO_REGISTER
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
if (turbulencePropertiesHeader.typeHeaderOk<IOdictionary>(false))
|
if (turbulencePropertiesHeader.typeHeaderOk<IOdictionary>(false))
|
||||||
|
|||||||
@ -141,7 +141,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
pEqn.solve(p.select(piso.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(piso.finalInnerIter())));
|
||||||
|
|
||||||
if (piso.finalNonOrthogonalIter())
|
if (piso.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -114,7 +114,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
pEqn.solve(p.select(piso.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(piso.finalInnerIter())));
|
||||||
|
|
||||||
if (piso.finalNonOrthogonalIter())
|
if (piso.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -40,7 +40,7 @@ while (pimple.correctNonOrthogonal())
|
|||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -24,7 +24,7 @@ if (mesh.changing())
|
|||||||
wordList pcorrTypes
|
wordList pcorrTypes
|
||||||
(
|
(
|
||||||
p.boundaryField().size(),
|
p.boundaryField().size(),
|
||||||
fvPatchFieldBase::zeroGradientType()
|
zeroGradientFvPatchScalarField::typeName
|
||||||
);
|
);
|
||||||
|
|
||||||
// Set BCs of pcorr to fixed-value for patches at which p is fixed
|
// Set BCs of pcorr to fixed-value for patches at which p is fixed
|
||||||
|
|||||||
@ -32,7 +32,7 @@ while (pimple.correctNonOrthogonal())
|
|||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -45,7 +45,7 @@ while (pimple.correctNonOrthogonal())
|
|||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -26,7 +26,7 @@ while (piso.correctNonOrthogonal())
|
|||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
pEqn.solve(p.select(piso.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(piso.finalInnerIter())));
|
||||||
|
|
||||||
if (piso.finalNonOrthogonalIter())
|
if (piso.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||||
Copyright (C) 2023 OpenCFD Ltd.
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -106,9 +105,6 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
#include "CourantNo.H"
|
#include "CourantNo.H"
|
||||||
|
|
||||||
// Update settings from the control dictionary
|
|
||||||
piso.read();
|
|
||||||
|
|
||||||
// Pressure-velocity PISO corrector
|
// Pressure-velocity PISO corrector
|
||||||
{
|
{
|
||||||
#include "UEqn.H"
|
#include "UEqn.H"
|
||||||
|
|||||||
@ -135,7 +135,7 @@ int main(int argc, char *argv[])
|
|||||||
- fvm::laplacian(ghrAUf, h)
|
- fvm::laplacian(ghrAUf, h)
|
||||||
);
|
);
|
||||||
|
|
||||||
hEqn.solve(h.select(pimple.finalInnerIter()));
|
hEqn.solve(mesh.solver(h.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -130,7 +130,7 @@ int main(int argc, char *argv[])
|
|||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedVector(cloudSU.dimensions()/dimVolume, Zero),
|
dimensionedVector(cloudSU.dimensions()/dimVolume, Zero),
|
||||||
fvPatchFieldBase::zeroGradientType()
|
zeroGradientFvPatchVectorField::typeName
|
||||||
);
|
);
|
||||||
|
|
||||||
cloudVolSUSu.primitiveFieldRef() = -cloudSU.source()/mesh.V();
|
cloudVolSUSu.primitiveFieldRef() = -cloudSU.source()/mesh.V();
|
||||||
|
|||||||
@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -111,7 +111,7 @@ int main(int argc, char *argv[])
|
|||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedVector(cloudSU.dimensions()/dimVolume, Zero),
|
dimensionedVector(cloudSU.dimensions()/dimVolume, Zero),
|
||||||
fvPatchFieldBase::zeroGradientType()
|
zeroGradientFvPatchVectorField::typeName
|
||||||
);
|
);
|
||||||
|
|
||||||
cloudVolSUSu.primitiveFieldRef() = -cloudSU.source()/mesh.V();
|
cloudVolSUSu.primitiveFieldRef() = -cloudSU.source()/mesh.V();
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -36,7 +36,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
|
|||||||
|
|
||||||
fvOptions.constrain(YiEqn);
|
fvOptions.constrain(YiEqn);
|
||||||
|
|
||||||
YiEqn.solve("Yi");
|
YiEqn.solve(mesh.solver("Yi"));
|
||||||
|
|
||||||
fvOptions.correct(Yi);
|
fvOptions.correct(Yi);
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,7 @@ if (pimple.transonic())
|
|||||||
+ fvOptions(psi, p, rho.name())
|
+ fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -69,7 +69,7 @@ else
|
|||||||
+ fvOptions(psi, p, rho.name())
|
+ fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -34,7 +34,7 @@ while (pimple.correctNonOrthogonal())
|
|||||||
|
|
||||||
pEqn.setReference(pRefCell, pRefValue);
|
pEqn.setReference(pRefCell, pRefValue);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -37,7 +37,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
|
|||||||
|
|
||||||
fvOptions.constrain(YEqn);
|
fvOptions.constrain(YEqn);
|
||||||
|
|
||||||
YEqn.solve("Yi");
|
YEqn.solve(mesh.solver("Yi"));
|
||||||
|
|
||||||
fvOptions.correct(Yi);
|
fvOptions.correct(Yi);
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@ IOobject io
|
|||||||
mesh,
|
mesh,
|
||||||
IOobject::READ_IF_PRESENT,
|
IOobject::READ_IF_PRESENT,
|
||||||
IOobject::NO_WRITE,
|
IOobject::NO_WRITE,
|
||||||
IOobject::NO_REGISTER
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
if (io.typeHeaderOk<IOdictionary>())
|
if (io.typeHeaderOk<IOdictionary>())
|
||||||
@ -32,4 +32,4 @@ if (io.typeHeaderOk<IOdictionary>())
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
|
|||||||
@ -47,7 +47,7 @@ while (pimple.correctNonOrthogonal())
|
|||||||
- fvm::laplacian(rhorAUf, p_rgh)
|
- fvm::laplacian(rhorAUf, p_rgh)
|
||||||
);
|
);
|
||||||
|
|
||||||
p_rghEqn.solve(p_rgh.select(pimple.finalInnerIter()));
|
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -34,7 +34,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
|
|||||||
|
|
||||||
fvOptions.constrain(YEqn);
|
fvOptions.constrain(YEqn);
|
||||||
|
|
||||||
YEqn.solve("Yi");
|
YEqn.solve(mesh.solver("Yi"));
|
||||||
|
|
||||||
fvOptions.correct(Yi);
|
fvOptions.correct(Yi);
|
||||||
|
|
||||||
|
|||||||
@ -34,7 +34,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
|
|||||||
|
|
||||||
fvOptions.constrain(YEqn);
|
fvOptions.constrain(YEqn);
|
||||||
|
|
||||||
YEqn.solve("Yi");
|
YEqn.solve(mesh.solver("Yi"));
|
||||||
|
|
||||||
fvOptions.correct(Yi);
|
fvOptions.correct(Yi);
|
||||||
|
|
||||||
|
|||||||
@ -35,7 +35,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
|
|||||||
|
|
||||||
fvOptions.constrain(YEqn);
|
fvOptions.constrain(YEqn);
|
||||||
|
|
||||||
YEqn.solve("Yi");
|
YEqn.solve(mesh.solver("Yi"));
|
||||||
|
|
||||||
fvOptions.correct(Yi);
|
fvOptions.correct(Yi);
|
||||||
|
|
||||||
|
|||||||
@ -41,7 +41,7 @@ if (pimple.transonic())
|
|||||||
+ fvOptions(psi, p, rho.name())
|
+ fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -77,7 +77,7 @@ else
|
|||||||
+ fvOptions(psi, p, rho.name())
|
+ fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -42,7 +42,7 @@ if (pimple.transonic())
|
|||||||
+ fvOptions(psi, p, rho.name())
|
+ fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
@ -77,7 +77,7 @@ else
|
|||||||
+ fvOptions(psi, p, rho.name())
|
+ fvOptions(psi, p, rho.name())
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -141,7 +141,7 @@ int main(int argc, char *argv[])
|
|||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedVector(cloudSU.dimensions()/dimVolume, Zero),
|
dimensionedVector(cloudSU.dimensions()/dimVolume, Zero),
|
||||||
fvPatchFieldBase::zeroGradientType()
|
zeroGradientFvPatchVectorField::typeName
|
||||||
);
|
);
|
||||||
|
|
||||||
cloudVolSUSu.primitiveFieldRef() = -cloudSU.source()/mesh.V();
|
cloudVolSUSu.primitiveFieldRef() = -cloudSU.source()/mesh.V();
|
||||||
|
|||||||
@ -64,7 +64,8 @@ volScalarField mu
|
|||||||
mesh,
|
mesh,
|
||||||
IOobject::READ_IF_PRESENT
|
IOobject::READ_IF_PRESENT
|
||||||
),
|
),
|
||||||
mixture.mu()
|
mixture.mu(),
|
||||||
|
calculatedFvPatchScalarField::typeName
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -138,7 +139,7 @@ volScalarField alphac
|
|||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(dimless, Zero),
|
dimensionedScalar(dimless, Zero),
|
||||||
fvPatchFieldBase::zeroGradientType()
|
zeroGradientFvPatchScalarField::typeName
|
||||||
);
|
);
|
||||||
alphac.oldTime();
|
alphac.oldTime();
|
||||||
|
|
||||||
|
|||||||
@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));
|
p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));
|
||||||
|
|
||||||
p_rghEqn.solve(p_rgh.select(pimple.finalInnerIter()));
|
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
wordList pcorrTypes
|
wordList pcorrTypes
|
||||||
(
|
(
|
||||||
p.boundaryField().size(),
|
p.boundaryField().size(),
|
||||||
fvPatchFieldBase::zeroGradientType()
|
zeroGradientFvPatchScalarField::typeName
|
||||||
);
|
);
|
||||||
|
|
||||||
for (label i=0; i<p.boundaryField().size(); i++)
|
for (label i=0; i<p.boundaryField().size(); i++)
|
||||||
|
|||||||
@ -36,7 +36,7 @@
|
|||||||
- fvm::laplacian(rhorAUf, p)
|
- fvm::laplacian(rhorAUf, p)
|
||||||
);
|
);
|
||||||
|
|
||||||
pEqn.solve(p.select(pimple.finalInnerIter()));
|
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
{
|
{
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user