Compare commits

..

16 Commits

Author SHA1 Message Date
e90948839b ENH: hostCollated: revert to collated naming if running on single proc 2023-11-09 16:00:53 +00:00
4a9124d1e0 COMP: fileOperation: label64 compilation fix 2023-11-06 12:01:19 +00:00
4fd5747513 BUG: fileOperation: restore local file checking.
Can be done since processorsDirs now synced.
2023-10-26 14:40:10 +01:00
6aba163aed BUG: redistributePar: write cell/face/pointProcAddressing to correct
directory
2023-10-25 15:05:53 +01:00
ce16d617ee BUG: collated: cooperate with non-parallel 2023-10-24 17:33:11 +01:00
6437211eee ENH: redistributePar: loose matching of processors directories 2023-10-19 11:43:10 +01:00
5df26efc35 ENH: redistributePar: update for distribute mode
- uses read&write handlers
- fixes initialisation of partial handlers
- 'uniform' copied to wrong place
- -overwrite not deleting old processors dirs
2023-10-04 17:15:12 +01:00
4b1959a900 BUG: redistributePar: excessive directories for collated. Fixes #2936. 2023-07-06 16:18:12 +01:00
4c720e438e BUG: redistributePar: enforce master-only reading of controlDict
redistributePar explicitly switches off master-only reading.
2023-07-06 11:21:02 +01:00
299c20861d TUT: redistributePar 2023-07-05 22:15:17 +02:00
372fec5ab4 ENH: improve check for decomposedBlock and simpler startup 2023-07-05 22:15:17 +02:00
5769e6fc83 ENH: improve fileHandler support for redistributePar
- use file handlers to manage where meshes/fields are to be read and
  written.
2023-07-05 22:14:47 +02:00
a183ecc97f ENH: broadcast dynamicCode, create missing processor directories
- code is compiled dynamically on the master node.
  In the normal (non-distributed) case, simply poll the NFS
  to see when it appears on the sub-procs.

  For a case with distributed roots, first broadcast it (via MPI)
  to the IO master nodes and then poll afterwards.

- on startup, detect and create missing processorXXX/ subdirectories
  on distributed filesystems
2023-07-05 22:12:12 +02:00
c39ea22545 ENH: add delayed handling of file watches to regIOobject
- this delay the communication of file watches, which helps avoid
  communication deadlocks with master-only reading.

Co-authored-by: Mark Olesen <>
2023-07-05 22:12:12 +02:00
f41193c52f ENH: handle watching included files 2023-07-05 22:12:12 +02:00
48ec899ff2 ENH: Update redistribute clouds with readOnProc/writeOnProc
- when reading, detect all clouds on all processors and uses this when
  reading fields. Similarly, when writing it uses writeOnProc to skip
  clouds that are empty on any particular processor.

Co-authored-by: Mark Olesen <>
2023-07-05 22:12:12 +02:00
1769 changed files with 22906 additions and 53181 deletions

View File

@ -49,7 +49,7 @@
<!--
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
Hardware info : any info that may help?
Compiler : gcc|intel|clang etc

3
.gitmodules vendored
View File

@ -17,6 +17,3 @@
[submodule "external-solver"]
path = modules/external-solver
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

View File

@ -33,7 +33,6 @@ It is likely incomplete...
- Alexander Kabat vel Job
- Thilo Knacke
- Shannon Leakey
- Sergey Lesnik
- Tommaso Lucchini
- Graham Macpherson
- Alexey Matveichev
@ -60,7 +59,6 @@ It is likely incomplete...
- Vuko Vukcevic
- Yi Wang
- Norbert Weber
- Gregor Weiss
- Volker Weissmann
- Henry Weller
- Niklas Wikstrom

View File

@ -1,2 +1,2 @@
api=2310
api=2306
patch=0

View File

@ -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
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
@ -127,8 +127,8 @@ These 3rd-party sources are normally located in a directory parallel
to the OpenFOAM directory. For example,
```
/path/parent
|-- OpenFOAM-v2312
\-- ThirdParty-v2312
|-- OpenFOAM-v2306
\-- ThirdParty-v2306
```
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)
* 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
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
* this corresponds to the traditional approach
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
be `2312` and the original `ThirdParty-v2312/` would be found.
be `2306` and the original `ThirdParty-v2306/` would be found.
4. PREFIX/ThirdParty-API
* same as the previous example, but using an unadorned API value.
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)
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
Copyright 2016-2023 OpenCFD Ltd
Copyright 2016-2022 OpenCFD Ltd

View File

@ -118,7 +118,7 @@ int main(int argc, char *argv[])
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();

View File

@ -27,7 +27,7 @@ if (pimple.transonic())
betav*fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -57,7 +57,7 @@ else
betav*fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -30,7 +30,7 @@ if (pimple.transonic())
fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -66,7 +66,7 @@ else
fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -35,7 +35,7 @@ if (pimple.transonic())
fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -71,7 +71,7 @@ else
fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -29,7 +29,7 @@ if (pimple.transonic())
fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -64,7 +64,7 @@ else
fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -6,7 +6,7 @@
solve
(
fvm::ddt(rho, Yi) - chemistry.RR(specieI),
"Yi"
mesh.solver("Yi")
);
}
}

View File

@ -35,7 +35,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
fvOptions.constrain(YiEqn);
YiEqn.solve("Yi");
YiEqn.solve(mesh.solver("Yi"));
fvOptions.correct(Yi);

View File

@ -36,7 +36,7 @@ while (pimple.correctNonOrthogonal())
+ 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())
{

View File

@ -34,7 +34,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
fvOptions.constrain(YiEqn);
YiEqn.solve("Yi");
YiEqn.solve(mesh.solver("Yi"));
fvOptions.correct(Yi);

View File

@ -37,7 +37,7 @@ if (pimple.transonic())
fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -72,7 +72,7 @@ else
fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -49,7 +49,7 @@ if (pimple.transonic())
fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -89,7 +89,7 @@ else
fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -41,7 +41,7 @@ while (pimple.correctNonOrthogonal())
- 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())
{

View File

@ -17,7 +17,7 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> interpolate
vf,
dir,
"reconstruct("
+ (reconFieldName.empty() ? vf.name() : reconFieldName)
+ (reconFieldName != word::null ? reconFieldName : vf.name())
+ ')'
)
);

View File

@ -63,7 +63,7 @@
fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
// Rhie & Chow interpolation (part 2)
if (pimple.finalNonOrthogonalIter())

View File

@ -72,7 +72,7 @@ if (mesh.changing())
divrhoU()
);
pcorrEqn.solve(pcorr.select(pimple.finalInnerIter()));
pcorrEqn.solve(mesh.solver(pcorr.select(pimple.finalInnerIter())));
//Bypass virtual layer
//mesh.fvMesh::solve(pcorrEqn, d);

View File

@ -56,7 +56,7 @@ if (pimple.transonic())
// Relax the pressure equation to ensure diagonal-dominance
pEqn.relax();
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -78,7 +78,7 @@ else
{
fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAUf, p));
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -54,7 +54,7 @@ if (pimple.transonic())
// Relax the pressure equation to ensure diagonal-dominance
pEqn.relax();
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -76,7 +76,7 @@ else
{
fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAUf, p));
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -65,7 +65,7 @@ if (pimple.transonic())
// Relax the pressure equation to ensure diagonal-dominance
pEqn.relax();
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -90,7 +90,7 @@ else
{
fvScalarMatrix pEqn(pDDtEqn - fvm::laplacian(rhorAtU, p));
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -127,7 +127,7 @@ int main(int argc, char *argv[])
);
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve(p.select(piso.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(piso.finalInnerIter())));
if (piso.finalNonOrthogonalIter())
{
@ -167,7 +167,7 @@ int main(int argc, char *argv[])
fvm::laplacian(rABf, pB) == fvc::div(phiB)
);
pBEqn.solve(pB.select(bpiso.finalInnerIter()));
pBEqn.solve(mesh.solver(pB.select(bpiso.finalInnerIter())));
if (bpiso.finalNonOrthogonalIter())
{

View File

@ -5,7 +5,7 @@
(
"h",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
@ -20,7 +20,7 @@
(
"Us",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
@ -34,7 +34,7 @@
(
"phis",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
@ -48,7 +48,7 @@
(
"phi2s",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
@ -67,7 +67,7 @@
(
"Sm",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
@ -82,7 +82,7 @@
(
"Sd",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
@ -96,7 +96,7 @@
(
"Sg",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
@ -112,7 +112,7 @@
(
"ps",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
@ -134,7 +134,7 @@
(
"manningField",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
@ -147,7 +147,7 @@
(
"frictionFactor",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),

View File

@ -7,7 +7,7 @@ volVectorField U
(
"U",
runTime.timeName(),
mesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
@ -22,7 +22,7 @@ volScalarField H
(
"H",
runTime.timeName(),
mesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),

View File

@ -5,7 +5,7 @@ areaScalarField Cs
(
"Cs",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
@ -26,7 +26,7 @@ areaVectorField Us
(
"Us",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
@ -58,7 +58,7 @@ edgeScalarField phis
(
"phis",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),

View File

@ -0,0 +1,2 @@
// Create Finite Area mesh
faMesh aMesh(mesh);

View File

@ -7,7 +7,7 @@
(
"Cvf",
runTime.timeName(),
mesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
@ -24,7 +24,7 @@
(
"U",
runTime.timeName(),
mesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),

View File

@ -5,7 +5,7 @@ areaScalarField Cs
(
"Cs",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
@ -37,7 +37,7 @@ areaVectorField Us
(
"Us",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
),
@ -51,7 +51,7 @@ edgeScalarField phis
(
"phis",
runTime.timeName(),
aMesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),

View File

@ -0,0 +1,2 @@
// Create Finite Area mesh
faMesh aMesh(mesh);

View File

@ -7,7 +7,7 @@
(
"Cvf",
runTime.timeName(),
mesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
@ -24,7 +24,7 @@
(
"U",
runTime.timeName(),
mesh.thisDb(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),

View File

@ -27,7 +27,7 @@
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())
{

View File

@ -72,7 +72,7 @@ if (mesh.changing())
divrhoU()
);
//pcorrEqn.solve(pcorr.select(pimple.finalInnerIter()));
//pcorrEqn.solve(mesh.solver(pcorr.select(pimple.finalInnerIter())));
//Bypass virtual layer
const dictionary& d = mesh.solver
(

View File

@ -50,7 +50,7 @@ while (pimple.correctNonOrthogonal())
- 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())
{

View File

@ -52,7 +52,7 @@ while (pimple.correctNonOrthogonal())
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())
{

View File

@ -292,7 +292,8 @@ updateCoeffs()
// Since we're inside initEvaluate/evaluate there might be processor
// 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
const label patchi = patch().index();
@ -470,9 +471,10 @@ updateCoeffs()
<< regionTypeNames_ << nl << exit(FatalError);
}
UPstream::msgType(oldTag); // Restore tag
mixedFvPatchScalarField::updateCoeffs();
// Restore tag
UPstream::msgType() = oldTag;
}

View File

@ -1,6 +1,6 @@
if (finalIter)
{
mesh.data().setFinalIteration(true);
mesh.data::add("finalIteration", true);
}
if (frozenFlow)
@ -35,5 +35,5 @@ else
if (finalIter)
{
mesh.data().setFinalIteration(false);
mesh.data::remove("finalIteration");
}

View File

@ -1,6 +1,6 @@
if (finalIter)
{
mesh.data().setFinalIteration(true);
mesh.data::add("finalIteration", true);
}
{
@ -22,7 +22,7 @@ if (finalIter)
fvOptions.constrain(hEqn);
hEqn.solve(h.select(finalIter));
hEqn.solve(mesh.solver(h.select(finalIter)));
fvOptions.correct(h);
}
@ -35,5 +35,5 @@ if (finalIter)
if (finalIter)
{
mesh.data().setFinalIteration(false);
mesh.data::remove("finalIteration");
}

View File

@ -33,7 +33,7 @@
}
else
{
EEqn.solve(he.select(finalIter));
EEqn.solve(mesh.solver(he.select(finalIter)));
fvOptions.correct(he);
thermo.correct();

View File

@ -28,7 +28,7 @@
- fvc::snGrad(p_rgh)
)*mesh.magSf()
),
U.select(finalIter)
mesh.solver(U.select(finalIter))
);
fvOptions.correct(U);

View File

@ -44,7 +44,7 @@ if (Y.size())
fvOptions.constrain(YiEqn);
YiEqn.solve("Yi");
YiEqn.solve(mesh.solver("Yi"));
fvOptions.correct(Yi);

View File

@ -52,12 +52,15 @@ constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
p_rghEqn.solve
(
p_rgh.select
mesh.solver
(
p_rgh.select
(
oCorr == nOuterCorr-1
&& corr == nCorr-1
&& nonOrth == nNonOrthCorr
(
oCorr == nOuterCorr-1
&& corr == nCorr-1
&& nonOrth == nNonOrthCorr
)
)
)
);

View File

@ -1,6 +1,6 @@
if (finalIter)
{
mesh.data().setFinalIteration(true);
mesh.data::add("finalIteration", true);
}
if (frozenFlow)
@ -36,5 +36,5 @@ else
if (finalIter)
{
mesh.data().setFinalIteration(false);
mesh.data::remove("finalIteration");
}

View File

@ -1,8 +1,6 @@
bool coupled = false;
{
fvSolution solutionDict(runTime);
solutionDict.readIfPresent("coupledEnergyField", coupled);
}
fvSolution solutionDict(runTime);
bool coupled(solutionDict.getOrDefault("coupledEnergyField", false));
autoPtr<fvMatrix<scalar>> fvMatrixAssemblyPtr;

View File

@ -25,10 +25,10 @@
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);
@ -39,7 +39,7 @@
if (finalIter)
{
mesh.data().setFinalIteration(false);
mesh.data::remove("finalIteration");
}
}
}

View File

@ -141,7 +141,7 @@ int main(int argc, char *argv[])
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve(p.select(piso.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(piso.finalInnerIter())));
if (piso.finalNonOrthogonalIter())
{

View File

@ -114,7 +114,7 @@ int main(int argc, char *argv[])
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve(p.select(piso.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(piso.finalInnerIter())));
if (piso.finalNonOrthogonalIter())
{

View File

@ -40,7 +40,7 @@ while (pimple.correctNonOrthogonal())
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -32,7 +32,7 @@ while (pimple.correctNonOrthogonal())
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -45,7 +45,7 @@ while (pimple.correctNonOrthogonal())
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -26,7 +26,7 @@ while (piso.correctNonOrthogonal())
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve(p.select(piso.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(piso.finalInnerIter())));
if (piso.finalNonOrthogonalIter())
{

View File

@ -6,7 +6,6 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2023 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -106,9 +105,6 @@ int main(int argc, char *argv[])
#include "CourantNo.H"
// Update settings from the control dictionary
piso.read();
// Pressure-velocity PISO corrector
{
#include "UEqn.H"

View File

@ -135,7 +135,7 @@ int main(int argc, char *argv[])
- fvm::laplacian(ghrAUf, h)
);
hEqn.solve(h.select(pimple.finalInnerIter()));
hEqn.solve(mesh.solver(h.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -34,7 +34,7 @@
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -32,7 +32,7 @@
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -36,7 +36,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
fvOptions.constrain(YiEqn);
YiEqn.solve("Yi");
YiEqn.solve(mesh.solver("Yi"));
fvOptions.correct(Yi);

View File

@ -33,7 +33,7 @@ if (pimple.transonic())
+ fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -69,7 +69,7 @@ else
+ fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -34,7 +34,7 @@ while (pimple.correctNonOrthogonal())
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -37,7 +37,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
fvOptions.constrain(YEqn);
YEqn.solve("Yi");
YEqn.solve(mesh.solver("Yi"));
fvOptions.correct(Yi);

View File

@ -47,7 +47,7 @@ while (pimple.correctNonOrthogonal())
- 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())
{

View File

@ -34,7 +34,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
fvOptions.constrain(YEqn);
YEqn.solve("Yi");
YEqn.solve(mesh.solver("Yi"));
fvOptions.correct(Yi);

View File

@ -34,7 +34,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
fvOptions.constrain(YEqn);
YEqn.solve("Yi");
YEqn.solve(mesh.solver("Yi"));
fvOptions.correct(Yi);

View File

@ -35,7 +35,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
fvOptions.constrain(YEqn);
YEqn.solve("Yi");
YEqn.solve(mesh.solver("Yi"));
fvOptions.correct(Yi);

View File

@ -41,7 +41,7 @@ if (pimple.transonic())
+ fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -77,7 +77,7 @@ else
+ fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -42,7 +42,7 @@ if (pimple.transonic())
+ fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
@ -77,7 +77,7 @@ else
+ fvOptions(psi, p, rho.name())
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -38,7 +38,7 @@
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())
{

View File

@ -36,7 +36,7 @@
- fvm::laplacian(rhorAUf, p)
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -33,7 +33,7 @@
- fvm::laplacian(rhorAUf, p)
);
pEqn.solve(p.select(pimple.finalInnerIter()));
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -99,7 +99,7 @@
+ (max(alpha2, scalar(0))/rho2)*p_rghEqnComp2()
)
+ p_rghEqnIncomp,
p_rgh.select(pimple.finalInnerIter())
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
if (pimple.finalNonOrthogonalIter())

View File

@ -86,7 +86,6 @@ VoFPatchTransfer::VoFPatchTransfer
wordRes patchNames;
if (coeffDict_.readIfPresent("patches", patchNames))
{
// Can also use pbm.indices(), but no warnings...
patchIDs_ = pbm.patchSet(patchNames).sortedToc();
Info<< " applying to " << patchIDs_.size() << " patches:" << nl;

View File

@ -108,7 +108,7 @@
solve
(
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
p_rgh.select(pimple.finalInnerIter())
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
if (pimple.finalNonOrthogonalIter())

View File

@ -124,7 +124,7 @@
solve
(
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
p_rgh.select(pimple.finalInnerIter())
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
if (pimple.finalNonOrthogonalIter())

View File

@ -110,7 +110,7 @@
solve
(
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
p_rgh.select(pimple.finalInnerIter())
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
if (pimple.finalNonOrthogonalIter())

View File

@ -108,7 +108,7 @@
solve
(
p_rghEqnComp1() + p_rghEqnComp2() + p_rghEqnIncomp,
p_rgh.select(pimple.finalInnerIter())
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
if (pimple.finalNonOrthogonalIter())

View File

@ -80,7 +80,7 @@
(
p_rghEqnComp
+ p_rghEqnIncomp,
p_rgh.select(pimple.finalInnerIter())
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
if (pimple.finalNonOrthogonalIter())

View File

@ -54,7 +54,7 @@
- fvm::laplacian(turbulence->nut(), alpha1)
);
alpha1Eqn.solve("alpha1Diffusion");
alpha1Eqn.solve(mesh.solver("alpha1Diffusion"));
alphaPhi += alpha1Eqn.flux();
alpha2 = 1.0 - alpha1;

View File

@ -32,7 +32,7 @@
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())
{

View File

@ -329,7 +329,7 @@ Foam::radiation::laserDTRM::laserDTRM(const volScalarField& T)
:
radiationModel(typeName, T),
mode_(powerDistNames_.get("mode", *this)),
DTRMCloud_(mesh_, Foam::zero{}, "DTRMCloud"), // Empty cloud
DTRMCloud_(mesh_, "DTRMCloud", IDLList<DTRMParticle>()),
nParticles_(0),
ndTheta_(get<label>("nTheta")),
ndr_(get<label>("nr")),
@ -427,7 +427,7 @@ Foam::radiation::laserDTRM::laserDTRM
:
radiationModel(typeName, dict, T),
mode_(powerDistNames_.get("mode", *this)),
DTRMCloud_(mesh_, Foam::zero{}, "DTRMCloud"), // Empty cloud
DTRMCloud_(mesh_, "DTRMCloud", IDLList<DTRMParticle>()),
nParticles_(0),
ndTheta_(get<label>("nTheta")),
ndr_(get<label>("nr")),

View File

@ -52,9 +52,7 @@ namespace Foam
const Foam::volScalarField&
Foam::radiation::localDensityAbsorptionEmission::alpha(word alphaName) const
{
const volScalarField* ptr = mesh_.cfindObject<volScalarField>(alphaName);
if (!ptr)
if (!mesh_.foundObject<volScalarField>(alphaName))
{
FatalErrorInFunction
<< "Unable to retrieve density field " << alphaName << " from "
@ -62,7 +60,7 @@ Foam::radiation::localDensityAbsorptionEmission::alpha(word alphaName) const
<< exit(FatalError);
}
return *ptr;
return mesh_.lookupObject<volScalarField>(alphaName);
}

View File

@ -56,7 +56,7 @@
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())
{

View File

@ -39,7 +39,7 @@
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())
{

View File

@ -40,7 +40,7 @@
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())
{

View File

@ -47,7 +47,7 @@
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())
{

View File

@ -44,7 +44,7 @@
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())
{

View File

@ -45,7 +45,7 @@
//p_rghEqn.setReference(pRefCell, pRefValue);
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())
{

View File

@ -38,7 +38,7 @@
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())
{

View File

@ -223,7 +223,7 @@
// + (alpha2/rho2)*pEqnComp2()
// ) +
pEqnIncomp,
p_rgh.select(pimple.finalInnerIter())
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
if (pimple.finalNonOrthogonalIter())

View File

@ -30,7 +30,7 @@ while (pimple.correctNonOrthogonal())
p_ghEqn.setReference(p_ghRefCell, p_ghRefValue);
p_ghEqn.solve(p_gh.select(pimple.finalInnerIter()));
p_ghEqn.solve(mesh.solver(p_gh.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -37,7 +37,7 @@
p_ghEqn.setReference(p_ghRefCell, p_ghRefValue);
p_ghEqn.solve(p_gh.select(pimple.finalInnerIter()));
p_ghEqn.solve(mesh.solver(p_gh.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{

View File

@ -24,7 +24,7 @@
);
YiEqn.relax();
YiEqn.solve("Yi");
YiEqn.solve(mesh.solver("Yi"));
}
}
}

View File

@ -370,7 +370,11 @@ while (pimple.correct())
}
}
pEqn.solve(p_rgh.select(pimple.finalInnerIter()));
solve
(
pEqn,
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
}
// Correct fluxes and velocities on last non-orthogonal iteration

View File

@ -358,7 +358,11 @@ while (pimple.correct())
}
}
pEqn.solve(p_rgh.select(pimple.finalInnerIter()));
solve
(
pEqn,
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
}
// Correct fluxes and velocities on last non-orthogonal iteration

View File

@ -20,7 +20,7 @@
);
Y1iEqn.relax();
Y1iEqn.solve("Yi");
Y1iEqn.solve(mesh.solver("Yi"));
}
}
@ -39,7 +39,7 @@
);
Y2iEqn.relax();
Y2iEqn.solve("Yi");
Y2iEqn.solve(mesh.solver("Yi"));
}
}
}

View File

@ -341,7 +341,11 @@ while (pimple.correct())
pEqn += pEqnComp2();
}
pEqn.solve(p_rgh.select(pimple.finalInnerIter()));
solve
(
pEqn,
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
}
if (pimple.finalNonOrthogonalIter())

View File

@ -29,7 +29,7 @@
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())
{

View File

@ -312,7 +312,7 @@ while (pimple.correct())
solve
(
pEqnComp1() + pEqnComp2() + pEqnIncomp,
p_rgh.select(pimple.finalInnerIter())
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
// Correct fluxes and velocities on last non-orthogonal iteration

View File

@ -291,7 +291,7 @@ while (pimple.correct())
solve
(
pEqnComp1() + pEqnComp2() + pEqnIncomp,
p_rgh.select(pimple.finalInnerIter())
mesh.solver(p_rgh.select(pimple.finalInnerIter()))
);
if (pimple.finalNonOrthogonalIter())

View File

@ -34,6 +34,7 @@ Description
#include "argList.H"
#include "ListOps.H"
#include "CircularBuffer.H"
#include "StringStream.H"
#include "FlatOutput.H"
using namespace Foam;
@ -78,7 +79,7 @@ int main(int argc, char *argv[])
Info<< buf1[-12] << nl;
Info<< "contains: " << buf1.contains(40) << nl;
Info<< "found: " << buf1.found(40) << nl;
buf1.push_uniq(100); report(buf1);
buf1 = Zero; report(buf1);
@ -91,10 +92,7 @@ int main(int argc, char *argv[])
}
report(buf1);
buf1.push_back(identity(5));
buf1.emplace_front(-1000);
buf1.emplace_back(1000);
report(buf1);
buf1.push_back(identity(5)); report(buf1);
buf1.info(Info);
Info<< buf1 << nl;

View File

@ -24,10 +24,9 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
Test-Circulator
Test-circulator
Description
Tests for Circulator and ConstCirculator
\*---------------------------------------------------------------------------*/

Some files were not shown because too many files have changed in this diff Show More