Compare commits

..

5 Commits

Author SHA1 Message Date
07eded03a7 ENH: error handling for empty surfaces in surfaceFieldValue (#2966)
- for workflows with appearing/disappearing patches (for example)
  can specify that empty surfaces should be ignored or warned about
  instead of raising a FatalError.

  Note that this handling is additional to the regular top-level
  "errors" specification. So specifying 'strict' will only actually
  result in a FatalError if the "errors" does not trap errors.

- "ignore" : any empty surfaces are simply ignored and no
  file output (besides the header).

- "warn" : empty surfaces are warned about a few times (10)
  and the file output contains a NaN entry

- "strict" : corresponds to the default behaviour.
  Throws a FatalError if the surface is empty.
  This error may still be caught by the top-level "errors" handling.
2023-08-30 16:31:56 +02:00
45133bfaa8 ENH: relocate functionObjectList errorHandling types to error (#2966)
- was previously private within functionObjectList, now exposed from
  error as 'handlerTypes' and 'handlerNames' enumeration.
2023-08-30 15:48:16 +02:00
49151becf3 ENH: improve robustness of raw reading, file size checks
- use ignore instead of seekg/tellg to swallow input (robuster)

- check for bad gcount() values

- wrap Foam::fileSize() compressed/uncompressed handling into IFstream.

- improve handling of compressed files in masterUncollatedFileOperation.
  Previously read into a string via stream iterators.
  Now read chunk-wise into a List of char for fewer reallocations.
2023-08-30 15:40:26 +02:00
8b0a049de3 ENH: update and enhancement of memory-streams
- soft renames (ie, old names still available via typedefs) for more
  reasonable names and more coverage with std stream variants.

  The old names could be a bit cryptic.
  For example, uiliststream (== an unallocated/external list storage),
  which is written as std::ispanstream for C++23.

  Could similarly argue that IListStream is better named as
  ICharStream, since it is an input stream of characters and the
  internal storage mechanism (List or something else) is mostly
  irrelevant.

  Extending the coverage to include all std stream variants, and
  simply rewrap them for OpenFOAM IOstream types. This simplifies the
  inheritance patterns and allows reuse of icharstream/ocharstream as
  a drop-in replace for istringstream/ostringstream in other wrappers.

  Classes:
    * icharstream / ICharStream   [old: none / IListStream]
    * ocharstream / OCharStream   [old: none / OListStream]
    * ispanstream / ISpanStream   [old: uiliststream / UIListStream]
    * ospanstream / OSpanStream   [old: none / UOListStream]

  Possible new uses : read file contents into a buffer, broadcast
  buffer contents to other ranks and then transfer into an icharstream
  to be read from. This avoid the multiple intermediate copies that
  would be associated when using an istringstream.

- Use size doubling instead of block-wise incremental for ocharstream
  (OCharStream). This corresponds to the sizing behaviour as per
  std::stringstream (according to gcc-11 includes)

STYLE: drop Foam_IOstream_extras constructors for memory streams

- transitional/legacy constructors but not used in any code
2023-08-30 15:40:26 +02:00
ca24f154fc ENH: support List sub-slice searching, use std::find() 2023-08-30 15:40:26 +02:00
1288 changed files with 10850 additions and 31789 deletions

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=2309
api=2306
patch=0

View File

@ -30,6 +30,6 @@ volVectorField U
#include "createPhi.H"
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
#include "readTurbulenceProperties.H"

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

@ -1,6 +1,6 @@
const dictionary& potentialFlow
(
mesh.solution().solutionDict("potentialFlow")
mesh.solutionDict().subDict("potentialFlow")
);
const int nNonOrthCorr

View File

@ -113,6 +113,6 @@ setRefCell
PhiRefCell,
PhiRefValue
);
mesh.schemes().setFluxRequired(Phi.name());
mesh.setFluxRequired(Phi.name());
#include "createMRF.H"

View File

@ -1,6 +1,6 @@
const dictionary& potentialFlow
(
mesh.solution().solutionDict("potentialFlow")
mesh.solutionDict().subDict("potentialFlow")
);
const int nNonOrthCorr

View File

@ -5,7 +5,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
mesh,
fields,
phi,
mesh.schemes().div("div(phi,ft_b_ha_hau)")
mesh.divScheme("div(phi,ft_b_ha_hau)")
)
);

View File

@ -43,7 +43,7 @@ volVectorField U
#include "compressibleCreatePhi.H"
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::RASModel> turbulence

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

@ -44,7 +44,7 @@ volVectorField U
#include "compressibleCreatePhi.H"
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence

View File

@ -5,7 +5,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
mesh,
fields,
phi,
mesh.schemes().div("div(phi,ft_b_ha_hau)")
mesh.divScheme("div(phi,ft_b_ha_hau)")
)
);

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

@ -5,7 +5,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
mesh,
fields,
phi,
mesh.schemes().div("div(phi,Yi_h)")
mesh.divScheme("div(phi,Yi_h)")
)
);
{
@ -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

@ -89,7 +89,7 @@ volScalarField p_rgh
mesh
);
mesh.schemes().setFluxRequired(p_rgh.name());
mesh.setFluxRequired(p_rgh.name());
#include "phrghEqn.H"

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

@ -5,7 +5,7 @@ tmp<fv::convectionScheme<scalar>> mvConvection
mesh,
fields,
phi,
mesh.schemes().div("div(phi,Yi_h)")
mesh.divScheme("div(phi,Yi_h)")
)
);
@ -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

@ -47,7 +47,7 @@ volScalarField& p = thermo.p();
pressureControl pressureControl(p, rho, pimple.dict(), false);
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info << "Creating turbulence model.\n" << nl;
autoPtr<compressible::turbulenceModel> turbulence

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

@ -48,7 +48,7 @@ volScalarField& p = thermo.p();
#include "compressibleCreatePhi.H"
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info << "Creating turbulence model.\n" << nl;
autoPtr<compressible::turbulenceModel> turbulence

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

@ -49,7 +49,7 @@ volScalarField& p = thermo.p();
pressureControl pressureControl(p, rho, pimple.dict(), false);
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info << "Creating turbulence model.\n" << nl;

View File

@ -1,5 +1,5 @@
word fluxScheme("Kurganov");
if (mesh.schemes().dict().readIfPresent("fluxScheme", fluxScheme))
if (mesh.schemesDict().readIfPresent("fluxScheme", fluxScheme))
{
if ((fluxScheme == "Tadmor") || (fluxScheme == "Kurganov"))
{

View File

@ -79,7 +79,7 @@ autoPtr<compressible::turbulenceModel> turbulence
)
);
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
#include "createMRF.H"

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

@ -42,7 +42,7 @@ volVectorField U
pressureControl pressureControl(p, rho, pimple.dict(), false);
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence

View File

@ -56,7 +56,7 @@ if (mesh.changing())
pcorrTypes
);
mesh.schemes().setFluxRequired(pcorr.name());
mesh.setFluxRequired(pcorr.name());
{
dimensionedScalar rAUf("rAUf", dimTime, 1.0);
@ -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

@ -44,7 +44,7 @@ pressureControl pressureControl(p, rho, pimple.dict(), false);
const dimensionedScalar rhoMax("rhoMax", dimDensity, GREAT, pimple.dict());
const dimensionedScalar rhoMin("rhoMin", dimDensity, Zero, pimple.dict());
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
#include "createDpdt.H"

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

@ -40,7 +40,7 @@ volVectorField U
pressureControl pressureControl(p, rho, simple.dict());
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence

View File

@ -40,7 +40,7 @@ volVectorField U
pressureControl pressureControl(p, rho, simple.dict());
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence

View File

@ -36,7 +36,7 @@ volVectorField U
#include "compressibleCreatePhi.H"
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence

View File

@ -46,4 +46,4 @@ volScalarField rho
#include "compressibleCreatePhi.H"
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());

View File

@ -114,5 +114,5 @@ label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell(p, piso.dict(), pRefCell, pRefValue);
mesh.schemes().setFluxRequired(p.name());
mesh.schemes().setFluxRequired(pB.name());
mesh.setFluxRequired(p.name());
mesh.setFluxRequired(pB.name());

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

@ -1,3 +1,3 @@
const dictionary& Bpiso = mesh.solution().solutionDict("BPISO");
const dictionary& Bpiso = mesh.solutionDict().subDict("BPISO");
const int nBcorr = Bpiso.getOrDefault<int>("nCorrectors", 1);

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
),
@ -155,4 +155,4 @@
dimensionedScalar("one", dimless, 0.01)
);
aMesh.schemes().setFluxRequired("h");
aMesh.setFluxRequired("h");

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

@ -1 +1 @@
loopControl iters(runTime, aMesh.solution().solutionDict(), "solution");
loopControl iters(runTime, aMesh.solutionDict(), "solution");

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

@ -119,7 +119,7 @@ if (p_rgh.needReference())
);
}
mesh.schemes().setFluxRequired(p_rgh.name());
mesh.setFluxRequired(p_rgh.name());
#include "createMRF.H"
#include "createIncompressibleRadiationModel.H"

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

@ -119,7 +119,7 @@ if (p_rgh.needReference())
);
}
mesh.schemes().setFluxRequired(p_rgh.name());
mesh.setFluxRequired(p_rgh.name());
#include "createMRF.H"
#include "createIncompressibleRadiationModel.H"

View File

@ -74,7 +74,7 @@ volScalarField p_rgh
// Force p_rgh to be consistent with p
p_rgh = p - rho*gh;
mesh.schemes().setFluxRequired(p_rgh.name());
mesh.setFluxRequired(p_rgh.name());
label pRefCell = 0;
scalar pRefValue = 0.0;

View File

@ -56,7 +56,7 @@ if (mesh.changing())
pcorrTypes
);
mesh.schemes().setFluxRequired(pcorr.name());
mesh.setFluxRequired(pcorr.name());
{
dimensionedScalar rAUf("rAUf", dimTime, 1.0);
@ -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

@ -71,7 +71,7 @@ volScalarField p_rgh
// Force p_rgh to be consistent with p
p_rgh = p - rho*gh;
mesh.schemes().setFluxRequired(p_rgh.name());
mesh.setFluxRequired(p_rgh.name());
label pRefCell = 0;
scalar pRefValue = 0.0;

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

@ -81,7 +81,7 @@ setRefCell
pRefValue
);
mesh.schemes().setFluxRequired(p_rgh.name());
mesh.setFluxRequired(p_rgh.name());
dimensionedScalar initialMass = fvc::domainIntegrate(rho);
dimensionedScalar totalVolume = sum(mesh.V());

View File

@ -174,7 +174,7 @@ forAll(fluidRegions, i)
// Force p_rgh to be consistent with p
p_rghFluid[i] = thermoFluid[i].p() - rhoFluid[i]*ghFluid[i];
fluidRegions[i].schemes().setFluxRequired(p_rghFluid[i].name());
fluidRegions[i].setFluxRequired(p_rghFluid[i].name());
radiation.set
(
@ -185,7 +185,7 @@ forAll(fluidRegions, i)
initialMassFluid[i] = fvc::domainIntegrate(rhoFluid[i]).value();
const dictionary& simpleDict =
fluidRegions[i].solution().solutionDict("SIMPLE");
fluidRegions[i].solutionDict().subDict("SIMPLE");
setRefCell
(

View File

@ -1,5 +1,4 @@
const dictionary& simple =
fluidRegions[i].solution().solutionDict("SIMPLE");
const dictionary& simple = fluidRegions[i].solutionDict().subDict("SIMPLE");
const int nNonOrthCorr =
simple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);

View File

@ -1,5 +1,4 @@
const dictionary& simple =
mesh.solution().solutionDict("SIMPLE");
const dictionary& simple = mesh.solutionDict().subDict("SIMPLE");
const int nNonOrthCorr =
simple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);

View File

@ -278,14 +278,14 @@ forAll(fluidRegions, i)
phaseSystemFluid[i].phase1().thermo().p()
- phaseSystemFluid[i].phase1().thermo().rho()*ghFluid[i];
fluidRegions[i].schemes().setFluxRequired(p_rghFluid[i].name());
fluidRegions[i].setFluxRequired(p_rghFluid[i].name());
Info<< " Correcting initialMassFluid\n" << endl;
initialMassFluid[i] =
fvc::domainIntegrate(phaseSystemFluid[i].rho()).value();
const dictionary& pimpleDict =
fluidRegions[i].solution().solutionDict("PIMPLE");
fluidRegions[i].solutionDict().subDict("PIMPLE");
pimpleDict.readIfPresent("frozenFlow", frozenFlowFluid[i]);

View File

@ -1,5 +1,4 @@
const dictionary& pimpleDict =
mesh.solution().solutionDict("PIMPLE");
const dictionary& pimpleDict = mesh.solutionDict().subDict("PIMPLE");
Switch faceMomentum
(

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

@ -9,7 +9,7 @@ if (Y.size())
mesh,
fields,
phi,
mesh.schemes().div("div(phi,Yi_h)")
mesh.divScheme("div(phi,Yi_h)")
)
);
}
@ -44,7 +44,7 @@ if (Y.size())
fvOptions.constrain(YiEqn);
YiEqn.solve("Yi");
YiEqn.solve(mesh.solver("Yi"));
fvOptions.correct(Yi);

View File

@ -189,7 +189,7 @@ forAll(fluidRegions, i)
// Force p_rgh to be consistent with p
p_rghFluid[i] = thermoFluid[i].p() - rhoFluid[i]*ghFluid[i];
fluidRegions[i].schemes().setFluxRequired(p_rghFluid[i].name());
fluidRegions[i].setFluxRequired(p_rghFluid[i].name());
Info<< " Adding to radiationFluid\n" << endl;
radiation.set
@ -260,8 +260,7 @@ forAll(fluidRegions, i)
);
const dictionary& pimpleDict =
fluidRegions[i].solution().solutionDict("PIMPLE");
fluidRegions[i].solutionDict().subDict("PIMPLE");
pimpleDict.readIfPresent("frozenFlow", frozenFlowFluid[i]);
rhoMaxFluid.set

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,5 +1,4 @@
const dictionary& pimple =
mesh.solution().solutionDict("PIMPLE");
const dictionary& pimple = mesh.solutionDict().subDict("PIMPLE");
const int nCorr =
pimple.getOrDefault<int>("nCorrectors", 1);

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

@ -1,5 +1,4 @@
const dictionary& pimple =
mesh.solution().solutionDict("PIMPLE");
const dictionary& pimple = mesh.solutionDict().subDict("PIMPLE");
int nNonOrthCorr =
pimple.getOrDefault<int>("nNonOrthogonalCorrectors", 0);

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

@ -92,19 +92,21 @@ else
// Consider mesh flux to correct for mesh deformation
bool meshFluxCorr(false);
if (mesh.solutionDict().found("SIMPLE"))
{
const dictionary& solutionDict = mesh.solution().solutionDict();
const dictionary* subdict = nullptr;
if
(
((subdict = solutionDict.findDict("SIMPLE")) != nullptr)
|| ((subdict = solutionDict.findDict("PIMPLE")) != nullptr)
)
{
meshFluxCorr = subdict->getOrDefault("meshFluxCorrection", false);
}
meshFluxCorr =
mesh.solutionDict().subDict("SIMPLE").getOrDefault<bool>
(
"meshFluxCorrection", false
);
}
else if (mesh.solutionDict().found("PIMPLE"))
{
meshFluxCorr =
mesh.solutionDict().subDict("PIMPLE").getOrDefault<bool>
(
"meshFluxCorrection", false
);
}
#include "createRadiationModel.H"

View File

@ -68,7 +68,7 @@ int main(int argc, char *argv[])
Info<< "\nEvolving thermodynamics\n" << endl;
if (mesh.solution().solutionDict().found("SIMPLE"))
if (mesh.solutionDict().found("SIMPLE"))
{
simpleControl simple(mesh);

View File

@ -65,7 +65,7 @@ int main(int argc, char *argv[])
Info<< "\nEvolving thermodynamics\n" << endl;
if (mesh.solution().solutionDict().found("SIMPLE"))
if (mesh.solutionDict().found("SIMPLE"))
{
simpleControl simple(mesh);

View File

@ -106,7 +106,7 @@ int main(int argc, char *argv[])
// mesh.relaxationFactor("alpha")
// *(lambda*max(Ua & U, zeroSensitivity) - alpha);
alpha +=
mesh.solution().fieldRelaxationFactor("alpha")
mesh.fieldRelaxationFactor("alpha")
*(min(max(alpha + lambda*(Ua & U), zeroAlpha), alphaMax) - alpha);
zeroCells(alpha, inletCells);

View File

@ -32,7 +32,7 @@ volVectorField U
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell(p, simple.dict(), pRefCell, pRefValue);
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info<< "Reading field pa\n" << endl;
@ -75,7 +75,7 @@ setRefCell
paRefCell,
paRefValue
);
mesh.schemes().setFluxRequired(pa.name());
mesh.setFluxRequired(pa.name());
singlePhaseTransportModel laminarTransport(U, phi);

View File

@ -54,11 +54,5 @@ volVectorField U
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell
(
p,
mesh.solution().solutionDict("PISO"),
pRefCell,
pRefValue
);
mesh.schemes().setFluxRequired(p.name());
setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue);
mesh.setFluxRequired(p.name());

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

@ -36,11 +36,5 @@ singlePhaseTransportModel fluid(U, phi);
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell
(
p,
mesh.solution().solutionDict("PISO"),
pRefCell,
pRefValue
);
mesh.schemes().setFluxRequired(p.name());
setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue);
mesh.setFluxRequired(p.name());

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

@ -43,7 +43,7 @@ surfaceScalarField phi
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell(p, pimple.dict(), pRefCell, pRefValue);
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info<< "Creating SRF model\n" << endl;
autoPtr<SRF::SRFModel> SRF

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

@ -34,7 +34,7 @@ volVectorField U
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell(p, pimple.dict(), pRefCell, pRefValue);
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
singlePhaseTransportModel laminarTransport(U, phi);

View File

@ -32,7 +32,7 @@ volVectorField U
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell(p, pimple.dict(), pRefCell, pRefValue);
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
//- Overset specific

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

@ -32,7 +32,7 @@ volVectorField U
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell(p, piso.dict(), pRefCell, pRefValue);
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
singlePhaseTransportModel laminarTransport(U, phi);

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

@ -76,4 +76,4 @@ hTotal.write();
Info<< "Creating Coriolis Force" << endl;
const dimensionedVector F("F", ((2.0*Omega) & gHat)*gHat);
mesh.schemes().setFluxRequired(h.name());
mesh.setFluxRequired(h.name());

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

@ -43,7 +43,7 @@ surfaceScalarField phi
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell(p, simple.dict(), pRefCell, pRefValue);
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
Info<< "Creating SRF model\n" << endl;
autoPtr<SRF::SRFModel> SRF(SRF::SRFModel::New(Urel));

View File

@ -32,7 +32,7 @@ volVectorField U
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell(p, simple.dict(), pRefCell, pRefValue);
mesh.schemes().setFluxRequired(p.name());
mesh.setFluxRequired(p.name());
singlePhaseTransportModel laminarTransport(U, phi);

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