Compare commits
1 Commits
feature-po
...
feature-st
| Author | SHA1 | Date | |
|---|---|---|---|
| 775d0b277b |
@ -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 : v2306|v2212|v2206|v2112|v2106 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
|
|
||||||
|
|||||||
@ -9,7 +9,6 @@ It is likely incomplete...
|
|||||||
- Yu Ankun
|
- Yu Ankun
|
||||||
- Tetsuo Aoyagi
|
- Tetsuo Aoyagi
|
||||||
- Akira Azami
|
- Akira Azami
|
||||||
- Pete Bachant
|
|
||||||
- William Bainbridge
|
- William Bainbridge
|
||||||
- Gabriel Barajas
|
- Gabriel Barajas
|
||||||
- Kutalmis Bercin
|
- Kutalmis Bercin
|
||||||
@ -34,7 +33,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
|
||||||
@ -47,7 +45,6 @@ It is likely incomplete...
|
|||||||
- Victor Olesen
|
- Victor Olesen
|
||||||
- Evangelos Papoutsis-Kiachagias
|
- Evangelos Papoutsis-Kiachagias
|
||||||
- Juho Peltola
|
- Juho Peltola
|
||||||
- Josep Pocurull
|
|
||||||
- Johan Roenby
|
- Johan Roenby
|
||||||
- Henrik Rusche
|
- Henrik Rusche
|
||||||
- Bruno Santos
|
- Bruno Santos
|
||||||
@ -62,7 +59,6 @@ It is likely incomplete...
|
|||||||
- Vuko Vukcevic
|
- Vuko Vukcevic
|
||||||
- Yi Wang
|
- Yi Wang
|
||||||
- Norbert Weber
|
- Norbert Weber
|
||||||
- Gregor Weiss
|
|
||||||
- Volker Weissmann
|
- Volker Weissmann
|
||||||
- Henry Weller
|
- Henry Weller
|
||||||
- Niklas Wikstrom
|
- Niklas Wikstrom
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
api=2312
|
api=2307
|
||||||
patch=0
|
patch=0
|
||||||
|
|||||||
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-v2306 version:
|
||||||
```
|
```
|
||||||
source /installation/path/OpenFOAM-v2312/etc/bashrc
|
source /installation/path/OpenFOAM-v2306/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-v2306
|
||||||
\-- ThirdParty-v2312
|
\-- ThirdParty-v2306
|
||||||
```
|
```
|
||||||
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-sandbox2306, 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*, `v2306-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 `2306` and the original `ThirdParty-v2306/` 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();
|
||||||
|
|
||||||
|
|||||||
@ -69,8 +69,7 @@ Foam::XiEqModels::Gulder::~Gulder()
|
|||||||
Foam::tmp<Foam::volScalarField> Foam::XiEqModels::Gulder::XiEq() const
|
Foam::tmp<Foam::volScalarField> Foam::XiEqModels::Gulder::XiEq() const
|
||||||
{
|
{
|
||||||
volScalarField up(sqrt((2.0/3.0)*turbulence_.k()));
|
volScalarField up(sqrt((2.0/3.0)*turbulence_.k()));
|
||||||
const tmp<volScalarField> tepsilon(turbulence_.epsilon());
|
const volScalarField& epsilon = turbulence_.epsilon();
|
||||||
const volScalarField& epsilon = tepsilon();
|
|
||||||
|
|
||||||
if (subGridSchelkin_)
|
if (subGridSchelkin_)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -75,10 +75,8 @@ Foam::XiEqModels::SCOPEXiEq::~SCOPEXiEq()
|
|||||||
|
|
||||||
Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
|
Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
|
||||||
{
|
{
|
||||||
const tmp<volScalarField> tk(turbulence_.k());
|
const volScalarField& k = turbulence_.k();
|
||||||
const volScalarField& k = tk();
|
const volScalarField& epsilon = turbulence_.epsilon();
|
||||||
const tmp<volScalarField> tepsilon(turbulence_.epsilon());
|
|
||||||
const volScalarField& epsilon = tepsilon();
|
|
||||||
|
|
||||||
volScalarField up(sqrt((2.0/3.0)*k));
|
volScalarField up(sqrt((2.0/3.0)*k));
|
||||||
if (subGridSchelkin_)
|
if (subGridSchelkin_)
|
||||||
|
|||||||
@ -66,8 +66,7 @@ Foam::XiGModels::KTS::~KTS()
|
|||||||
Foam::tmp<Foam::volScalarField> Foam::XiGModels::KTS::G() const
|
Foam::tmp<Foam::volScalarField> Foam::XiGModels::KTS::G() const
|
||||||
{
|
{
|
||||||
volScalarField up(sqrt((2.0/3.0)*turbulence_.k()));
|
volScalarField up(sqrt((2.0/3.0)*turbulence_.k()));
|
||||||
const tmp<volScalarField> tepsilon(turbulence_.epsilon());
|
const volScalarField& epsilon = turbulence_.epsilon();
|
||||||
const volScalarField& epsilon = tepsilon();
|
|
||||||
|
|
||||||
volScalarField tauEta(sqrt(mag(thermo_.muu()/(thermo_.rhou()*epsilon))));
|
volScalarField tauEta(sqrt(mag(thermo_.muu()/(thermo_.rhou()*epsilon))));
|
||||||
|
|
||||||
|
|||||||
@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -110,6 +110,15 @@ public:
|
|||||||
const fvPatchFieldMapper&
|
const fvPatchFieldMapper&
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Construct and return a clone
|
||||||
|
virtual tmp<fvPatchScalarField> clone() const
|
||||||
|
{
|
||||||
|
return tmp<fvPatchScalarField>
|
||||||
|
(
|
||||||
|
new smoluchowskiJumpTFvPatchScalarField(*this)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
//- Construct as copy setting internal field reference
|
||||||
smoluchowskiJumpTFvPatchScalarField
|
smoluchowskiJumpTFvPatchScalarField
|
||||||
(
|
(
|
||||||
@ -117,22 +126,18 @@ public:
|
|||||||
const DimensionedField<scalar, volMesh>&
|
const DimensionedField<scalar, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Return a clone
|
//- Construct and return a clone setting internal field reference
|
||||||
virtual tmp<fvPatchField<scalar>> clone() const
|
virtual tmp<fvPatchScalarField> clone
|
||||||
{
|
|
||||||
return fvPatchField<scalar>::Clone(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Clone with an internal field reference
|
|
||||||
virtual tmp<fvPatchField<scalar>> clone
|
|
||||||
(
|
(
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return fvPatchField<scalar>::Clone(*this, iF);
|
return tmp<fvPatchScalarField>
|
||||||
|
(
|
||||||
|
new smoluchowskiJumpTFvPatchScalarField(*this, iF)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Mapping functions
|
// Mapping functions
|
||||||
|
|
||||||
//- Map (and resize as needed) from self given a mapping object
|
//- Map (and resize as needed) from self given a mapping object
|
||||||
|
|||||||
@ -118,6 +118,15 @@ public:
|
|||||||
const fvPatchFieldMapper&
|
const fvPatchFieldMapper&
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Construct and return a clone
|
||||||
|
virtual tmp<fvPatchVectorField> clone() const
|
||||||
|
{
|
||||||
|
return tmp<fvPatchVectorField>
|
||||||
|
(
|
||||||
|
new maxwellSlipUFvPatchVectorField(*this)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
//- Construct as copy setting internal field reference
|
||||||
maxwellSlipUFvPatchVectorField
|
maxwellSlipUFvPatchVectorField
|
||||||
(
|
(
|
||||||
@ -125,19 +134,16 @@ public:
|
|||||||
const DimensionedField<vector, volMesh>&
|
const DimensionedField<vector, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Return a clone
|
//- Construct and return a clone setting internal field reference
|
||||||
virtual tmp<fvPatchField<vector>> clone() const
|
virtual tmp<fvPatchVectorField> clone
|
||||||
{
|
|
||||||
return fvPatchField<vector>::Clone(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Clone with an internal field reference
|
|
||||||
virtual tmp<fvPatchField<vector>> clone
|
|
||||||
(
|
(
|
||||||
const DimensionedField<vector, volMesh>& iF
|
const DimensionedField<vector, volMesh>& iF
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return fvPatchField<vector>::Clone(*this, iF);
|
return tmp<fvPatchVectorField>
|
||||||
|
(
|
||||||
|
new maxwellSlipUFvPatchVectorField(*this, iF)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -135,6 +135,15 @@ public:
|
|||||||
const fixedRhoFvPatchScalarField&
|
const fixedRhoFvPatchScalarField&
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Construct and return a clone
|
||||||
|
virtual tmp<fvPatchScalarField> clone() const
|
||||||
|
{
|
||||||
|
return tmp<fvPatchScalarField>
|
||||||
|
(
|
||||||
|
new fixedRhoFvPatchScalarField(*this)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
//- Construct as copy setting internal field reference
|
||||||
fixedRhoFvPatchScalarField
|
fixedRhoFvPatchScalarField
|
||||||
(
|
(
|
||||||
@ -142,19 +151,16 @@ public:
|
|||||||
const DimensionedField<scalar, volMesh>&
|
const DimensionedField<scalar, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Return a clone
|
//- Construct and return a clone setting internal field reference
|
||||||
virtual tmp<fvPatchField<scalar>> clone() const
|
virtual tmp<fvPatchScalarField> clone
|
||||||
{
|
|
||||||
return fvPatchField<scalar>::Clone(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Clone with an internal field reference
|
|
||||||
virtual tmp<fvPatchField<scalar>> clone
|
|
||||||
(
|
(
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return fvPatchField<scalar>::Clone(*this, iF);
|
return tmp<fvPatchScalarField>
|
||||||
|
(
|
||||||
|
new fixedRhoFvPatchScalarField(*this, iF)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
volScalarField& p = thermo.p();
|
volScalarField& p = thermo.p();
|
||||||
const volScalarField& T = thermo.T();
|
const volScalarField& T = thermo.T();
|
||||||
const volScalarField& psi = thermo.psi();
|
const volScalarField& psi = thermo.psi();
|
||||||
|
const volScalarField& mu = thermo.mu();
|
||||||
|
|
||||||
bool inviscid(true);
|
bool inviscid(true);
|
||||||
if (max(thermo.mu().cref().primitiveField()) > 0.0)
|
if (max(mu.primitiveField()) > 0.0)
|
||||||
{
|
{
|
||||||
inviscid = false;
|
inviscid = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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())
|
||||||
|
|||||||
@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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
|
||||||
),
|
),
|
||||||
|
|||||||
@ -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
|
||||||
),
|
),
|
||||||
@ -58,7 +58,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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -196,6 +196,18 @@ public:
|
|||||||
const fvPatchFieldMapper&
|
const fvPatchFieldMapper&
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Construct and return a clone
|
||||||
|
virtual tmp<fvPatchScalarField> clone() const
|
||||||
|
{
|
||||||
|
return tmp<fvPatchScalarField>
|
||||||
|
(
|
||||||
|
new turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField
|
||||||
|
(
|
||||||
|
*this
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
//- Construct as copy setting internal field reference
|
||||||
turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField
|
turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField
|
||||||
(
|
(
|
||||||
@ -203,19 +215,20 @@ public:
|
|||||||
const DimensionedField<scalar, volMesh>&
|
const DimensionedField<scalar, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Return a clone
|
//- Construct and return a clone setting internal field reference
|
||||||
virtual tmp<fvPatchField<scalar>> clone() const
|
virtual tmp<fvPatchScalarField> clone
|
||||||
{
|
|
||||||
return fvPatchField<scalar>::Clone(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Clone with an internal field reference
|
|
||||||
virtual tmp<fvPatchField<scalar>> clone
|
|
||||||
(
|
(
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return fvPatchField<scalar>::Clone(*this, iF);
|
return tmp<fvPatchScalarField>
|
||||||
|
(
|
||||||
|
new turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField
|
||||||
|
(
|
||||||
|
*this,
|
||||||
|
iF
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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,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);
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,8 +43,6 @@ Description
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
#include "postProcess.H"
|
|
||||||
|
|
||||||
#include "setRootCase.H"
|
#include "setRootCase.H"
|
||||||
#include "createTime.H"
|
#include "createTime.H"
|
||||||
#include "createMesh.H"
|
#include "createMesh.H"
|
||||||
@ -66,13 +64,13 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
// Solve all primal equations
|
// Solve all primal equations
|
||||||
om.solvePrimalEquations();
|
om.solvePrimalEquations();
|
||||||
|
|
||||||
// Clear sensitivities
|
|
||||||
om.clearSensitivities();
|
|
||||||
|
|
||||||
// Solve all adjoint equations
|
|
||||||
om.solveAdjointEquations();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update primal-based quantities of the adjoint solvers
|
||||||
|
om.updatePrimalBasedQuantities();
|
||||||
|
|
||||||
|
// Solve all adjoint equations
|
||||||
|
om.solveAdjointEquations();
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<< "End\n" << endl;
|
Info<< "End\n" << endl;
|
||||||
|
|||||||
@ -85,6 +85,15 @@ public:
|
|||||||
const fvPatchFieldMapper&
|
const fvPatchFieldMapper&
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Construct and return a clone
|
||||||
|
virtual tmp<fvPatchScalarField> clone() const
|
||||||
|
{
|
||||||
|
return tmp<fvPatchScalarField>
|
||||||
|
(
|
||||||
|
new adjointOutletPressureFvPatchScalarField(*this)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
//- Construct as copy setting internal field reference
|
||||||
adjointOutletPressureFvPatchScalarField
|
adjointOutletPressureFvPatchScalarField
|
||||||
(
|
(
|
||||||
@ -92,19 +101,16 @@ public:
|
|||||||
const DimensionedField<scalar, volMesh>&
|
const DimensionedField<scalar, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Return a clone
|
//- Construct and return a clone setting internal field reference
|
||||||
virtual tmp<fvPatchField<scalar>> clone() const
|
virtual tmp<fvPatchScalarField> clone
|
||||||
{
|
|
||||||
return fvPatchField<scalar>::Clone(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Clone with an internal field reference
|
|
||||||
virtual tmp<fvPatchField<scalar>> clone
|
|
||||||
(
|
(
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return fvPatchField<scalar>::Clone(*this, iF);
|
return tmp<fvPatchScalarField>
|
||||||
|
(
|
||||||
|
new adjointOutletPressureFvPatchScalarField(*this, iF)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -85,6 +85,15 @@ public:
|
|||||||
const fvPatchFieldMapper&
|
const fvPatchFieldMapper&
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Construct and return a clone
|
||||||
|
virtual tmp<fvPatchVectorField> clone() const
|
||||||
|
{
|
||||||
|
return tmp<fvPatchVectorField>
|
||||||
|
(
|
||||||
|
new adjointOutletVelocityFvPatchVectorField(*this)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
//- Construct as copy setting internal field reference
|
||||||
adjointOutletVelocityFvPatchVectorField
|
adjointOutletVelocityFvPatchVectorField
|
||||||
(
|
(
|
||||||
@ -92,19 +101,16 @@ public:
|
|||||||
const DimensionedField<vector, volMesh>&
|
const DimensionedField<vector, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Return a clone
|
//- Construct and return a clone setting internal field reference
|
||||||
virtual tmp<fvPatchField<vector>> clone() const
|
virtual tmp<fvPatchVectorField> clone
|
||||||
{
|
|
||||||
return fvPatchField<vector>::Clone(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Clone with an internal field reference
|
|
||||||
virtual tmp<fvPatchField<vector>> clone
|
|
||||||
(
|
(
|
||||||
const DimensionedField<vector, volMesh>& iF
|
const DimensionedField<vector, volMesh>& iF
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return fvPatchField<vector>::Clone(*this, iF);
|
return tmp<fvPatchVectorField>
|
||||||
|
(
|
||||||
|
new adjointOutletVelocityFvPatchVectorField(*this, iF)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -33,7 +33,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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -99,7 +99,7 @@
|
|||||||
+ (max(alpha2, scalar(0))/rho2)*p_rghEqnComp2()
|
+ (max(alpha2, scalar(0))/rho2)*p_rghEqnComp2()
|
||||||
)
|
)
|
||||||
+ p_rghEqnIncomp,
|
+ p_rghEqnIncomp,
|
||||||
p_rgh.select(pimple.finalInnerIter())
|
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
|
||||||
);
|
);
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
|
|||||||
@ -160,8 +160,7 @@ void VoFPatchTransfer::correct
|
|||||||
const volScalarField& heVoF = thermo.thermo1().he();
|
const volScalarField& heVoF = thermo.thermo1().he();
|
||||||
const volScalarField& TVoF = thermo.thermo1().T();
|
const volScalarField& TVoF = thermo.thermo1().T();
|
||||||
const volScalarField CpVoF(thermo.thermo1().Cp());
|
const volScalarField CpVoF(thermo.thermo1().Cp());
|
||||||
const tmp<volScalarField> trhoVoF(thermo.thermo1().rho());
|
const volScalarField& rhoVoF = thermo.thermo1().rho()();
|
||||||
const volScalarField& rhoVoF = trhoVoF();
|
|
||||||
const volScalarField& alphaVoF = thermo.alpha1();
|
const volScalarField& alphaVoF = thermo.alpha1();
|
||||||
|
|
||||||
forAll(patchIDs_, pidi)
|
forAll(patchIDs_, pidi)
|
||||||
|
|||||||
@ -108,7 +108,7 @@
|
|||||||
solve
|
solve
|
||||||
(
|
(
|
||||||
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
|
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
|
||||||
p_rgh.select(pimple.finalInnerIter())
|
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
|
||||||
);
|
);
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
|
|||||||
@ -124,7 +124,7 @@
|
|||||||
solve
|
solve
|
||||||
(
|
(
|
||||||
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
|
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
|
||||||
p_rgh.select(pimple.finalInnerIter())
|
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
|
||||||
);
|
);
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
|
|||||||
@ -110,7 +110,7 @@
|
|||||||
solve
|
solve
|
||||||
(
|
(
|
||||||
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
|
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
|
||||||
p_rgh.select(pimple.finalInnerIter())
|
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
|
||||||
);
|
);
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
|
|||||||
@ -108,7 +108,7 @@
|
|||||||
solve
|
solve
|
||||||
(
|
(
|
||||||
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
|
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
|
||||||
p_rgh.select(pimple.finalInnerIter())
|
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
|
||||||
);
|
);
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
|
|||||||
@ -135,14 +135,14 @@ public:
|
|||||||
virtual volScalarField& he()
|
virtual volScalarField& he()
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return const_cast<volScalarField&>(volScalarField::null());
|
return thermo1_->he();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Enthalpy/Internal energy [J/kg]
|
//- Enthalpy/Internal energy [J/kg]
|
||||||
virtual const volScalarField& he() const
|
virtual const volScalarField& he() const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return volScalarField::null();
|
return thermo1_->he();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Enthalpy/Internal energy
|
//- Enthalpy/Internal energy
|
||||||
@ -213,7 +213,7 @@ public:
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return nullptr;
|
return tmp<scalarField>::New(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/kg/K]
|
//- Heat capacity at constant volume [J/kg/K]
|
||||||
@ -236,7 +236,7 @@ public:
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return nullptr;
|
return tmp<scalarField>::New(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Gamma = Cp/Cv []
|
//- Gamma = Cp/Cv []
|
||||||
|
|||||||
@ -164,6 +164,15 @@ public:
|
|||||||
const fvPatchFieldMapper&
|
const fvPatchFieldMapper&
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//- Construct and return a clone
|
||||||
|
virtual tmp<fvPatchScalarField> clone() const
|
||||||
|
{
|
||||||
|
return tmp<fvPatchScalarField>
|
||||||
|
(
|
||||||
|
new alphaContactAngleFvPatchScalarField(*this)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
//- Construct as copy setting internal field reference
|
||||||
alphaContactAngleFvPatchScalarField
|
alphaContactAngleFvPatchScalarField
|
||||||
(
|
(
|
||||||
@ -171,19 +180,16 @@ public:
|
|||||||
const DimensionedField<scalar, volMesh>&
|
const DimensionedField<scalar, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Return a clone
|
//- Construct and return a clone setting internal field reference
|
||||||
virtual tmp<fvPatchField<scalar>> clone() const
|
virtual tmp<fvPatchScalarField> clone
|
||||||
{
|
|
||||||
return fvPatchField<scalar>::Clone(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Clone with an internal field reference
|
|
||||||
virtual tmp<fvPatchField<scalar>> clone
|
|
||||||
(
|
(
|
||||||
const DimensionedField<scalar, volMesh>& iF
|
const DimensionedField<scalar, volMesh>& iF
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return fvPatchField<scalar>::Clone(*this, iF);
|
return tmp<fvPatchScalarField>
|
||||||
|
(
|
||||||
|
new alphaContactAngleFvPatchScalarField(*this, iF)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -243,14 +243,14 @@ public:
|
|||||||
virtual volScalarField& he()
|
virtual volScalarField& he()
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return const_cast<volScalarField&>(volScalarField::null());
|
return phases_[0].thermo().he();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Enthalpy/Internal energy [J/kg]
|
//- Enthalpy/Internal energy [J/kg]
|
||||||
virtual const volScalarField& he() const
|
virtual const volScalarField& he() const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return volScalarField::null();
|
return phases_[0].thermo().he();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Enthalpy/Internal energy
|
//- Enthalpy/Internal energy
|
||||||
@ -327,7 +327,7 @@ public:
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return nullptr;
|
return tmp<scalarField>::New(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/kg/K]
|
//- Heat capacity at constant volume [J/kg/K]
|
||||||
@ -350,7 +350,7 @@ public:
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return nullptr;
|
return tmp<scalarField>::New(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Gamma = Cp/Cv []
|
//- Gamma = Cp/Cv []
|
||||||
|
|||||||
@ -28,8 +28,7 @@
|
|||||||
forAllConstIters(mixture.phases(), phase)
|
forAllConstIters(mixture.phases(), phase)
|
||||||
{
|
{
|
||||||
const rhoThermo& thermo = phase().thermo();
|
const rhoThermo& thermo = phase().thermo();
|
||||||
const tmp<volScalarField> trho(thermo.rho());
|
const volScalarField& rho = thermo.rho()();
|
||||||
const volScalarField& rho = trho();
|
|
||||||
|
|
||||||
p_rghEqnComps.set
|
p_rghEqnComps.set
|
||||||
(
|
(
|
||||||
@ -81,7 +80,7 @@
|
|||||||
(
|
(
|
||||||
p_rghEqnComp
|
p_rghEqnComp
|
||||||
+ p_rghEqnIncomp,
|
+ p_rghEqnIncomp,
|
||||||
p_rgh.select(pimple.finalInnerIter())
|
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
|
||||||
);
|
);
|
||||||
|
|
||||||
if (pimple.finalNonOrthogonalIter())
|
if (pimple.finalNonOrthogonalIter())
|
||||||
|
|||||||
@ -54,7 +54,7 @@
|
|||||||
- fvm::laplacian(turbulence->nut(), alpha1)
|
- fvm::laplacian(turbulence->nut(), alpha1)
|
||||||
);
|
);
|
||||||
|
|
||||||
alpha1Eqn.solve("alpha1Diffusion");
|
alpha1Eqn.solve(mesh.solver("alpha1Diffusion"));
|
||||||
|
|
||||||
alphaPhi += alpha1Eqn.flux();
|
alphaPhi += alpha1Eqn.flux();
|
||||||
alpha2 = 1.0 - alpha1;
|
alpha2 = 1.0 - alpha1;
|
||||||
|
|||||||
@ -32,7 +32,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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017-2024 OpenCFD Ltd
|
Copyright (C) 2017-2019 OpenCFD Ltd
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -206,13 +206,9 @@ public:
|
|||||||
//- Construct as copy
|
//- Construct as copy
|
||||||
DTRMParticle(const DTRMParticle& p);
|
DTRMParticle(const DTRMParticle& p);
|
||||||
|
|
||||||
//- Return a clone
|
|
||||||
virtual autoPtr<particle> clone() const
|
|
||||||
{
|
|
||||||
return particle::Clone(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Factory class to read-construct particles (for parallel transfer)
|
//- Factory class to read-construct particles used for
|
||||||
|
// parallel transfer
|
||||||
class iNew
|
class iNew
|
||||||
{
|
{
|
||||||
const polyMesh& mesh_;
|
const polyMesh& mesh_;
|
||||||
|
|||||||
@ -329,7 +329,7 @@ Foam::radiation::laserDTRM::laserDTRM(const volScalarField& T)
|
|||||||
:
|
:
|
||||||
radiationModel(typeName, T),
|
radiationModel(typeName, T),
|
||||||
mode_(powerDistNames_.get("mode", *this)),
|
mode_(powerDistNames_.get("mode", *this)),
|
||||||
DTRMCloud_(mesh_, Foam::zero{}, "DTRMCloud"), // Empty cloud
|
DTRMCloud_(mesh_, "DTRMCloud", IDLList<DTRMParticle>()),
|
||||||
nParticles_(0),
|
nParticles_(0),
|
||||||
ndTheta_(get<label>("nTheta")),
|
ndTheta_(get<label>("nTheta")),
|
||||||
ndr_(get<label>("nr")),
|
ndr_(get<label>("nr")),
|
||||||
@ -427,7 +427,7 @@ Foam::radiation::laserDTRM::laserDTRM
|
|||||||
:
|
:
|
||||||
radiationModel(typeName, dict, T),
|
radiationModel(typeName, dict, T),
|
||||||
mode_(powerDistNames_.get("mode", *this)),
|
mode_(powerDistNames_.get("mode", *this)),
|
||||||
DTRMCloud_(mesh_, Foam::zero{}, "DTRMCloud"), // Empty cloud
|
DTRMCloud_(mesh_, "DTRMCloud", IDLList<DTRMParticle>()),
|
||||||
nParticles_(0),
|
nParticles_(0),
|
||||||
ndTheta_(get<label>("nTheta")),
|
ndTheta_(get<label>("nTheta")),
|
||||||
ndr_(get<label>("nr")),
|
ndr_(get<label>("nr")),
|
||||||
|
|||||||
@ -56,7 +56,7 @@
|
|||||||
|
|
||||||
p_rghEqn.setReference(pRefCell, pRefValue);
|
p_rghEqn.setReference(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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
p_rghEqn.setReference(pRefCell, pRefValue);
|
p_rghEqn.setReference(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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -86,14 +86,14 @@ public:
|
|||||||
virtual volScalarField& he()
|
virtual volScalarField& he()
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return const_cast<volScalarField&>(volScalarField::null());
|
return p();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return access to the internal energy field [J/Kg]
|
//- Return access to the internal energy field [J/Kg]
|
||||||
virtual const volScalarField& he() const
|
virtual const volScalarField& he() const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return volScalarField::null();
|
return p();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Enthalpy/Internal energy
|
//- Enthalpy/Internal energy
|
||||||
@ -182,7 +182,7 @@ public:
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return nullptr;
|
return tmp<scalarField>::New(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return Cv of the mixture
|
//- Return Cv of the mixture
|
||||||
@ -205,7 +205,7 @@ public:
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return nullptr;
|
return tmp<scalarField>::New(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Gamma = Cp/Cv []
|
//- Gamma = Cp/Cv []
|
||||||
|
|||||||
@ -40,7 +40,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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -47,7 +47,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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
p_rghEqn.setReference(pRefCell, pRefValue);
|
p_rghEqn.setReference(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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -45,7 +45,7 @@
|
|||||||
//p_rghEqn.setReference(pRefCell, pRefValue);
|
//p_rghEqn.setReference(pRefCell, pRefValue);
|
||||||
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())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
p_rghEqn.setReference(pRefCell, pRefValue);
|
p_rghEqn.setReference(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())
|
||||||
{
|
{
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user