Compare commits
200 Commits
develop.mo
...
feature-am
| Author | SHA1 | Date | |
|---|---|---|---|
| 1307c4eb2e | |||
| de8dd7a5cf | |||
| a083ebb7bf | |||
| 279abca7fa | |||
| 8c89c8f417 | |||
| e44184e626 | |||
| f639538600 | |||
| 3973cf7a83 | |||
| 28e212030d | |||
| cff9c7b60c | |||
| ef47662131 | |||
| 0c84e50583 | |||
| 618faa0ab6 | |||
| 5680ce1ee2 | |||
| f6825c7952 | |||
| d89ecc74be | |||
| 27aa7e4e91 | |||
| 43c0c3989b | |||
| 05194796ef | |||
| 61aaacd088 | |||
| e7f0628d79 | |||
| 7006056eae | |||
| b98f53ceca | |||
| 5a70be0846 | |||
| 78fc102df1 | |||
| fa2aeec45b | |||
| d03a225061 | |||
| abfe30454a | |||
| 3535d7890d | |||
| 47232ccf66 | |||
| cd8bc891f0 | |||
| 1cbbcf15d3 | |||
| b393d6eca1 | |||
| 9de77857a6 | |||
| 46e0ef92d3 | |||
| 8b793f8866 | |||
| 337e672d53 | |||
| 04d880e2ce | |||
| 4f43f0302d | |||
| f7cdd3ef63 | |||
| fac940e1cc | |||
| 7891960bd1 | |||
| 6e2bdb0613 | |||
| 05e4001cf2 | |||
| b6eb300718 | |||
| b4d7a31913 | |||
| 90e9a070a7 | |||
| 3b966afb9c | |||
| 613959c52b | |||
| 25551b23bf | |||
| 73b6ddd760 | |||
| 8b73d06898 | |||
| ec2b1be8c5 | |||
| c138f89c1f | |||
| d9483f5080 | |||
| 7bf0aaf99c | |||
| 51f150d84c | |||
| 71d4a23ec0 | |||
| 995a9705e2 | |||
| 33f20edbb1 | |||
| 710eb5c142 | |||
| 092db087c9 | |||
| 21196d8c0b | |||
| ac574a6ccb | |||
| 87eed74e42 | |||
| 119dd84327 | |||
| 08df023808 | |||
| ec3bca90fc | |||
| 8b85e5c932 | |||
| 506802bbea | |||
| 0c20009587 | |||
| 5a0fba84b4 | |||
| 732c8b3330 | |||
| a9b451b3e4 | |||
| ff567dbe71 | |||
| e3b7c2e6ee | |||
| 84a1fc9b4f | |||
| 47c44a5783 | |||
| 91a1eaa01b | |||
| 852f66fc11 | |||
| fcf090410a | |||
| 08c23685c3 | |||
| 19a6241e08 | |||
| 52f5a6d039 | |||
| fe1d7e01d6 | |||
| cb416fb3ec | |||
| 4ae4f0928d | |||
| 6dadd3d33e | |||
| 3a43aae7c0 | |||
| 9ad3754ed7 | |||
| d6781b91fe | |||
| d9c5a5d1a9 | |||
| fc9820b08a | |||
| f9bbd06e57 | |||
| 182afc27ba | |||
| 0bf39691ff | |||
| 312c7a1c32 | |||
| 0ae3da8560 | |||
| 44c594dbff | |||
| a889e5eba6 | |||
| 3d0cb79be3 | |||
| d310f82402 | |||
| 152eceeb56 | |||
| ebe49d4cbd | |||
| 7cfd053079 | |||
| 81f0620b7b | |||
| 7b7dde0a6d | |||
| f485093d37 | |||
| a4cbb33373 | |||
| f625a9a0dd | |||
| 5d5f541dd6 | |||
| 646b0aab36 | |||
| d048befbc0 | |||
| 26904bf6df | |||
| 62524b140c | |||
| e3f0521b19 | |||
| bb16c493b7 | |||
| 89cd584440 | |||
| 2190684914 | |||
| 987dbe4589 | |||
| 39e054b0b8 | |||
| f6ec5c676e | |||
| ad85b684bb | |||
| dde4b12687 | |||
| 1a1322a2b0 | |||
| 8394e45c13 | |||
| a46b310fa4 | |||
| 793231b4aa | |||
| 1dc216eb1f | |||
| c4328296b0 | |||
| 52ab1fc06f | |||
| f8bee97897 | |||
| 9f0f9f2dd6 | |||
| 58787bb166 | |||
| 1d8f0d55f7 | |||
| c39a0f6494 | |||
| 82417d1d8b | |||
| f88e06cac2 | |||
| e5a62a0bdd | |||
| d5661b50de | |||
| 9bb189d1d6 | |||
| 28aad3a03e | |||
| f8c20963d2 | |||
| 032a4519ff | |||
| cf47600dde | |||
| de133af526 | |||
| 88be9ef5c6 | |||
| 7d9bba67c1 | |||
| 2602d08d8a | |||
| af43f9aa24 | |||
| 686f2a3986 | |||
| 0fbdbb8330 | |||
| e8f0cfb2a5 | |||
| 4c3f9a9772 | |||
| 7868d9251a | |||
| 0af46becdd | |||
| 0120d7720b | |||
| afe9b90d04 | |||
| a6e9a29f41 | |||
| 634f921831 | |||
| 28c538f3e1 | |||
| 3cd2b2c692 | |||
| c3b212e06c | |||
| eabb821926 | |||
| 46757d12ec | |||
| 1f7fb08060 | |||
| e5d5e7b0be | |||
| bf18fb758c | |||
| e764f7b573 | |||
| b5b48b66d1 | |||
| 741520801a | |||
| 8947735b1d | |||
| 2ad6c9f5d2 | |||
| 753a534382 | |||
| f35b4cc3fb | |||
| 2927015824 | |||
| 6020fabcdd | |||
| adaac7257f | |||
| bd84860e9b | |||
| 50d13c6278 | |||
| e0ea0973b1 | |||
| b435feffde | |||
| b23b09fdbd | |||
| 2b2c78309c | |||
| 59bf69b92e | |||
| 58cfb58b1a | |||
| b6a30fae61 | |||
| ae8b654a86 | |||
| dbacd7bc95 | |||
| d6ba54bfec | |||
| 577f584446 | |||
| 7a9dd4c0c2 | |||
| 80d7227c3a | |||
| 88b3fb7c2d | |||
| 7e0acfa4ed | |||
| 2045de8345 | |||
| 432d65475c | |||
| c9a9309b8c | |||
| 0352a224b7 | |||
| 79993bba43 |
@ -9,6 +9,7 @@ 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
|
||||||
@ -46,6 +47,7 @@ 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
|
||||||
|
|||||||
@ -1,2 +1,2 @@
|
|||||||
api=2310
|
api=2401
|
||||||
patch=0
|
patch=240220
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
|
Copyright (C) 2023 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -93,24 +94,14 @@ Foam::PDRDragModels::basic::~basic()
|
|||||||
|
|
||||||
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
||||||
{
|
{
|
||||||
tmp<volSymmTensorField> tDragDcu
|
auto tDragDcu = volSymmTensorField::New
|
||||||
(
|
(
|
||||||
new volSymmTensorField
|
"tDragDcu",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
U_.mesh(),
|
||||||
(
|
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
||||||
"tDragDcu",
|
|
||||||
U_.mesh().time().constant(),
|
|
||||||
U_.mesh(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
U_.mesh(),
|
|
||||||
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& DragDcu = tDragDcu.ref();
|
||||||
volSymmTensorField& DragDcu = tDragDcu.ref();
|
|
||||||
|
|
||||||
if (on_)
|
if (on_)
|
||||||
{
|
{
|
||||||
@ -127,24 +118,14 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
|||||||
|
|
||||||
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
|
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tGk
|
auto tGk = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"tGk",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
U_.mesh(),
|
||||||
(
|
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||||
"tGk",
|
|
||||||
U_.mesh().time().constant(),
|
|
||||||
U_.mesh(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
U_.mesh(),
|
|
||||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& Gk = tGk.ref();
|
||||||
volScalarField& Gk = tGk.ref();
|
|
||||||
|
|
||||||
if (on_)
|
if (on_)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -69,7 +69,8 @@ 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 volScalarField& epsilon = turbulence_.epsilon();
|
const tmp<volScalarField> tepsilon(turbulence_.epsilon());
|
||||||
|
const volScalarField& epsilon = tepsilon();
|
||||||
|
|
||||||
if (subGridSchelkin_)
|
if (subGridSchelkin_)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||||
|
Copyright (C) 2023 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -75,8 +76,10 @@ Foam::XiEqModels::SCOPEXiEq::~SCOPEXiEq()
|
|||||||
|
|
||||||
Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
|
Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
|
||||||
{
|
{
|
||||||
const volScalarField& k = turbulence_.k();
|
const tmp<volScalarField> tk(turbulence_.k());
|
||||||
const volScalarField& epsilon = turbulence_.epsilon();
|
const volScalarField& k = tk();
|
||||||
|
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_)
|
||||||
@ -91,23 +94,14 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
|
|||||||
volScalarField K(0.157*upBySu/sqrt(Rl));
|
volScalarField K(0.157*upBySu/sqrt(Rl));
|
||||||
volScalarField Ma(MaModel.Ma());
|
volScalarField Ma(MaModel.Ma());
|
||||||
|
|
||||||
tmp<volScalarField> tXiEq
|
auto tXiEq = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"XiEq",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
epsilon.mesh(),
|
||||||
(
|
dimensionedScalar(dimless, Zero)
|
||||||
"XiEq",
|
|
||||||
epsilon.time().timeName(),
|
|
||||||
epsilon.db(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
epsilon.mesh(),
|
|
||||||
dimensionedScalar(dimless, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
volScalarField& xieq = tXiEq.ref();
|
auto& xieq = tXiEq.ref();
|
||||||
|
|
||||||
forAll(xieq, celli)
|
forAll(xieq, celli)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -78,11 +78,10 @@ bool Foam::XiEqModel::read(const dictionary& XiEqProperties)
|
|||||||
void Foam::XiEqModel::writeFields() const
|
void Foam::XiEqModel::writeFields() const
|
||||||
{
|
{
|
||||||
//***HGW It is not clear why B is written here
|
//***HGW It is not clear why B is written here
|
||||||
if (Su_.mesh().foundObject<volSymmTensorField>("B"))
|
const auto* B = Su_.mesh().cfindObject<volSymmTensorField>("B");
|
||||||
|
if (B)
|
||||||
{
|
{
|
||||||
const volSymmTensorField& B =
|
B->write();
|
||||||
Su_.mesh().lookupObject<volSymmTensorField>("B");
|
|
||||||
B.write();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,39 +97,26 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
|
|||||||
const volSymmTensorField& nsv =
|
const volSymmTensorField& nsv =
|
||||||
mesh.lookupObject<volSymmTensorField>("nsv");
|
mesh.lookupObject<volSymmTensorField>("nsv");
|
||||||
|
|
||||||
tmp<volScalarField> tN
|
auto tN = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"tN",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh,
|
||||||
(
|
dimensionedScalar(Nv.dimensions(), Zero)
|
||||||
"tN",
|
|
||||||
mesh.time().timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
IOobject::NO_REGISTER
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedScalar(Nv.dimensions(), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
volScalarField& N = tN.ref();
|
auto& N = tN.ref();
|
||||||
|
|
||||||
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||||
|
|
||||||
volSymmTensorField ns
|
auto tns = volSymmTensorField::New
|
||||||
(
|
(
|
||||||
IOobject
|
"tns",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
"tns",
|
|
||||||
mesh.time().timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
auto& ns = tns.ref();
|
||||||
|
|
||||||
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||||
|
|
||||||
const volVectorField Uhat
|
const volVectorField Uhat
|
||||||
|
|||||||
@ -66,7 +66,8 @@ 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 volScalarField& epsilon = turbulence_.epsilon();
|
const tmp<volScalarField> tepsilon(turbulence_.epsilon());
|
||||||
|
const volScalarField& epsilon = tepsilon();
|
||||||
|
|
||||||
volScalarField tauEta(sqrt(mag(thermo_.muu()/(thermo_.rhou()*epsilon))));
|
volScalarField tauEta(sqrt(mag(thermo_.muu()/(thermo_.rhou()*epsilon))));
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
\\/ 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.
|
||||||
@ -255,24 +256,14 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
|||||||
scalar phi
|
scalar phi
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tSu0
|
auto tSu0 = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"Su0",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
p.mesh(),
|
||||||
(
|
dimensionedScalar(dimVelocity, Zero)
|
||||||
"Su0",
|
|
||||||
p.time().timeName(),
|
|
||||||
p.db(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
p.mesh(),
|
|
||||||
dimensionedScalar(dimVelocity, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& Su0 = tSu0.ref();
|
||||||
volScalarField& Su0 = tSu0.ref();
|
|
||||||
|
|
||||||
forAll(Su0, celli)
|
forAll(Su0, celli)
|
||||||
{
|
{
|
||||||
@ -304,24 +295,14 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
|||||||
const volScalarField& phi
|
const volScalarField& phi
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tSu0
|
auto tSu0 = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"Su0",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
p.mesh(),
|
||||||
(
|
dimensionedScalar(dimVelocity, Zero)
|
||||||
"Su0",
|
|
||||||
p.time().timeName(),
|
|
||||||
p.db(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
p.mesh(),
|
|
||||||
dimensionedScalar(dimVelocity, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& Su0 = tSu0.ref();
|
||||||
volScalarField& Su0 = tSu0.ref();
|
|
||||||
|
|
||||||
forAll(Su0, celli)
|
forAll(Su0, celli)
|
||||||
{
|
{
|
||||||
@ -358,24 +339,14 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
|
|||||||
const volScalarField& phi
|
const volScalarField& phi
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tMa
|
auto tMa = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"Ma",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
phi.mesh(),
|
||||||
(
|
dimensionedScalar(dimless, Zero)
|
||||||
"Ma",
|
|
||||||
phi.time().timeName(),
|
|
||||||
phi.db(),
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
phi.mesh(),
|
|
||||||
dimensionedScalar(dimless, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& ma = tMa.ref();
|
||||||
volScalarField& ma = tMa.ref();
|
|
||||||
|
|
||||||
forAll(ma, celli)
|
forAll(ma, celli)
|
||||||
{
|
{
|
||||||
@ -418,21 +389,12 @@ Foam::laminarFlameSpeedModels::SCOPE::Ma() const
|
|||||||
{
|
{
|
||||||
const fvMesh& mesh = psiuReactionThermo_.p().mesh();
|
const fvMesh& mesh = psiuReactionThermo_.p().mesh();
|
||||||
|
|
||||||
return tmp<volScalarField>
|
return volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"Ma",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh,
|
||||||
(
|
dimensionedScalar("Ma", dimless, Ma(equivalenceRatio_))
|
||||||
"Ma",
|
|
||||||
mesh.time().timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedScalar("Ma", dimless, Ma(equivalenceRatio_))
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,7 +10,8 @@ if (pimple.dict().getOrDefault("hydrostaticInitialization", false))
|
|||||||
"0",
|
"0",
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::MUST_READ,
|
IOobject::MUST_READ,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh
|
mesh
|
||||||
)
|
)
|
||||||
|
|||||||
@ -110,15 +110,6 @@ 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
|
||||||
(
|
(
|
||||||
@ -126,18 +117,22 @@ public:
|
|||||||
const DimensionedField<scalar, volMesh>&
|
const DimensionedField<scalar, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
//- Return a clone
|
||||||
virtual tmp<fvPatchScalarField> clone
|
virtual tmp<fvPatchField<scalar>> clone() const
|
||||||
|
{
|
||||||
|
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 tmp<fvPatchScalarField>
|
return fvPatchField<scalar>::Clone(*this, iF);
|
||||||
(
|
|
||||||
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,15 +118,6 @@ 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
|
||||||
(
|
(
|
||||||
@ -134,16 +125,19 @@ public:
|
|||||||
const DimensionedField<vector, volMesh>&
|
const DimensionedField<vector, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
//- Return a clone
|
||||||
virtual tmp<fvPatchVectorField> clone
|
virtual tmp<fvPatchField<vector>> clone() const
|
||||||
|
{
|
||||||
|
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 tmp<fvPatchVectorField>
|
return fvPatchField<vector>::Clone(*this, iF);
|
||||||
(
|
|
||||||
new maxwellSlipUFvPatchVectorField(*this, iF)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -135,15 +135,6 @@ 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
|
||||||
(
|
(
|
||||||
@ -151,16 +142,19 @@ public:
|
|||||||
const DimensionedField<scalar, volMesh>&
|
const DimensionedField<scalar, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
//- Return a clone
|
||||||
virtual tmp<fvPatchScalarField> clone
|
virtual tmp<fvPatchField<scalar>> clone() const
|
||||||
|
{
|
||||||
|
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 tmp<fvPatchScalarField>
|
return fvPatchField<scalar>::Clone(*this, iF);
|
||||||
(
|
|
||||||
new fixedRhoFvPatchScalarField(*this, iF)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
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(mu.primitiveField()) > 0.0)
|
if (max(thermo.mu().cref().primitiveField()) > 0.0)
|
||||||
{
|
{
|
||||||
inviscid = false;
|
inviscid = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -196,18 +196,6 @@ 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
|
||||||
(
|
(
|
||||||
@ -215,20 +203,19 @@ public:
|
|||||||
const DimensionedField<scalar, volMesh>&
|
const DimensionedField<scalar, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
//- Return a clone
|
||||||
virtual tmp<fvPatchScalarField> clone
|
virtual tmp<fvPatchField<scalar>> clone() const
|
||||||
|
{
|
||||||
|
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 tmp<fvPatchScalarField>
|
return fvPatchField<scalar>::Clone(*this, iF);
|
||||||
(
|
|
||||||
new turbulentTemperatureTwoPhaseRadCoupledMixedFvPatchScalarField
|
|
||||||
(
|
|
||||||
*this,
|
|
||||||
iF
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -43,6 +43,8 @@ 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"
|
||||||
@ -64,13 +66,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,15 +85,6 @@ 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
|
||||||
(
|
(
|
||||||
@ -101,16 +92,19 @@ public:
|
|||||||
const DimensionedField<scalar, volMesh>&
|
const DimensionedField<scalar, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
//- Return a clone
|
||||||
virtual tmp<fvPatchScalarField> clone
|
virtual tmp<fvPatchField<scalar>> clone() const
|
||||||
|
{
|
||||||
|
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 tmp<fvPatchScalarField>
|
return fvPatchField<scalar>::Clone(*this, iF);
|
||||||
(
|
|
||||||
new adjointOutletPressureFvPatchScalarField(*this, iF)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -85,15 +85,6 @@ 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
|
||||||
(
|
(
|
||||||
@ -101,16 +92,19 @@ public:
|
|||||||
const DimensionedField<vector, volMesh>&
|
const DimensionedField<vector, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
//- Return a clone
|
||||||
virtual tmp<fvPatchVectorField> clone
|
virtual tmp<fvPatchField<vector>> clone() const
|
||||||
|
{
|
||||||
|
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 tmp<fvPatchVectorField>
|
return fvPatchField<vector>::Clone(*this, iF);
|
||||||
(
|
|
||||||
new adjointOutletVelocityFvPatchVectorField(*this, iF)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,12 +3,7 @@ if (nAlphaSubCycles > 1)
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -3,12 +3,7 @@ if (nAlphaSubCycles > 1)
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -4,26 +4,19 @@ if (nAlphaSubCycles > 1)
|
|||||||
{
|
{
|
||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
|
|
||||||
talphaPhi1 = new surfaceScalarField
|
talphaPhi1.reset
|
||||||
(
|
(
|
||||||
IOobject
|
new surfaceScalarField
|
||||||
(
|
(
|
||||||
"alphaPhi1",
|
mesh.newIOobject("alphaPhi1"),
|
||||||
runTime.timeName(),
|
mesh,
|
||||||
mesh
|
dimensionedScalar(alphaPhi10.dimensions(), Zero)
|
||||||
),
|
)
|
||||||
mesh,
|
|
||||||
dimensionedScalar(alphaPhi10.dimensions(), Zero)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -160,7 +160,8 @@ 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 volScalarField& rhoVoF = thermo.thermo1().rho()();
|
const tmp<volScalarField> trhoVoF(thermo.thermo1().rho());
|
||||||
|
const volScalarField& rhoVoF = trhoVoF();
|
||||||
const volScalarField& alphaVoF = thermo.alpha1();
|
const volScalarField& alphaVoF = thermo.alpha1();
|
||||||
|
|
||||||
forAll(patchIDs_, pidi)
|
forAll(patchIDs_, pidi)
|
||||||
|
|||||||
@ -13,26 +13,19 @@ if (nAlphaSubCycles > 1)
|
|||||||
{
|
{
|
||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
|
|
||||||
talphaPhi1 = new surfaceScalarField
|
talphaPhi1.reset
|
||||||
(
|
(
|
||||||
IOobject
|
new surfaceScalarField
|
||||||
(
|
(
|
||||||
"alphaPhi1",
|
mesh.newIOobject("alphaPhi1"),
|
||||||
runTime.timeName(),
|
mesh,
|
||||||
mesh
|
dimensionedScalar(alphaPhi10.dimensions(), Zero)
|
||||||
),
|
)
|
||||||
mesh,
|
|
||||||
dimensionedScalar(alphaPhi10.dimensions(), Zero)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -135,14 +135,14 @@ public:
|
|||||||
virtual volScalarField& he()
|
virtual volScalarField& he()
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return thermo1_->he();
|
return const_cast<volScalarField&>(volScalarField::null());
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Enthalpy/Internal energy [J/kg]
|
//- Enthalpy/Internal energy [J/kg]
|
||||||
virtual const volScalarField& he() const
|
virtual const volScalarField& he() const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return thermo1_->he();
|
return volScalarField::null();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Enthalpy/Internal energy
|
//- Enthalpy/Internal energy
|
||||||
@ -213,7 +213,7 @@ public:
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return tmp<scalarField>::New(p);
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- 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 tmp<scalarField>::New(p);
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Gamma = Cp/Cv []
|
//- Gamma = Cp/Cv []
|
||||||
|
|||||||
@ -164,15 +164,6 @@ 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
|
||||||
(
|
(
|
||||||
@ -180,16 +171,19 @@ public:
|
|||||||
const DimensionedField<scalar, volMesh>&
|
const DimensionedField<scalar, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
//- Return a clone
|
||||||
virtual tmp<fvPatchScalarField> clone
|
virtual tmp<fvPatchField<scalar>> clone() const
|
||||||
|
{
|
||||||
|
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 tmp<fvPatchScalarField>
|
return fvPatchField<scalar>::Clone(*this, iF);
|
||||||
(
|
|
||||||
new alphaContactAngleFvPatchScalarField(*this, iF)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -99,7 +99,8 @@ Foam::multiphaseMixtureThermo::multiphaseMixtureThermo
|
|||||||
mesh_.time().timeName(),
|
mesh_.time().timeName(),
|
||||||
mesh_,
|
mesh_,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimless, Zero)
|
dimensionedScalar(dimless, Zero)
|
||||||
@ -998,19 +999,12 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixtureThermo::K
|
|||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::multiphaseMixtureThermo::nearInterface() const
|
Foam::multiphaseMixtureThermo::nearInterface() const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tnearInt
|
auto tnearInt = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"nearInterface",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(dimless, Zero)
|
||||||
"nearInterface",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(dimless, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
for (const phaseModel& phase : phases_)
|
for (const phaseModel& phase : phases_)
|
||||||
|
|||||||
@ -243,14 +243,14 @@ public:
|
|||||||
virtual volScalarField& he()
|
virtual volScalarField& he()
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return phases_[0].thermo().he();
|
return const_cast<volScalarField&>(volScalarField::null());
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Enthalpy/Internal energy [J/kg]
|
//- Enthalpy/Internal energy [J/kg]
|
||||||
virtual const volScalarField& he() const
|
virtual const volScalarField& he() const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return phases_[0].thermo().he();
|
return volScalarField::null();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Enthalpy/Internal energy
|
//- Enthalpy/Internal energy
|
||||||
@ -327,7 +327,7 @@ public:
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return tmp<scalarField>::New(p);
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- 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 tmp<scalarField>::New(p);
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Gamma = Cp/Cv []
|
//- Gamma = Cp/Cv []
|
||||||
|
|||||||
@ -28,7 +28,8 @@
|
|||||||
forAllConstIters(mixture.phases(), phase)
|
forAllConstIters(mixture.phases(), phase)
|
||||||
{
|
{
|
||||||
const rhoThermo& thermo = phase().thermo();
|
const rhoThermo& thermo = phase().thermo();
|
||||||
const volScalarField& rho = thermo.rho()();
|
const tmp<volScalarField> trho(thermo.rho());
|
||||||
|
const volScalarField& rho = trho();
|
||||||
|
|
||||||
p_rghEqnComps.set
|
p_rghEqnComps.set
|
||||||
(
|
(
|
||||||
|
|||||||
@ -18,12 +18,7 @@
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField alphaPhiSum
|
surfaceScalarField alphaPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("alphaPhiSum"),
|
||||||
(
|
|
||||||
"alphaPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(phi.dimensions(), Zero)
|
dimensionedScalar(phi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -158,13 +158,11 @@ Foam::tmp<Foam::volSymmTensorField> Foam::relativeVelocityModel::tauDm() const
|
|||||||
// Calculate the relative velocity of the continuous phase w.r.t the mean
|
// Calculate the relative velocity of the continuous phase w.r.t the mean
|
||||||
volVectorField Ucm(betad*Udm_/betac);
|
volVectorField Ucm(betad*Udm_/betac);
|
||||||
|
|
||||||
return tmp<volSymmTensorField>
|
return volSymmTensorField::New
|
||||||
(
|
(
|
||||||
new volSymmTensorField
|
"tauDm",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
"tauDm",
|
betad*sqr(Udm_) + betac*sqr(Ucm)
|
||||||
betad*sqr(Udm_) + betac*sqr(Ucm)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017-2019 OpenCFD Ltd
|
Copyright (C) 2017-2024 OpenCFD Ltd
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -206,9 +206,13 @@ 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 used for
|
//- Factory class to read-construct particles (for parallel transfer)
|
||||||
// parallel transfer
|
|
||||||
class iNew
|
class iNew
|
||||||
{
|
{
|
||||||
const polyMesh& mesh_;
|
const polyMesh& mesh_;
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2017-2022 OpenCFD Ltd.
|
Copyright (C) 2017-2023 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -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_, "DTRMCloud", IDLList<DTRMParticle>()),
|
DTRMCloud_(mesh_, Foam::zero{}, "DTRMCloud"), // Empty cloud
|
||||||
nParticles_(0),
|
nParticles_(0),
|
||||||
ndTheta_(get<label>("nTheta")),
|
ndTheta_(get<label>("nTheta")),
|
||||||
ndr_(get<label>("nr")),
|
ndr_(get<label>("nr")),
|
||||||
@ -407,7 +407,8 @@ Foam::radiation::laserDTRM::laserDTRM(const volScalarField& T)
|
|||||||
mesh_.time().timeName(),
|
mesh_.time().timeName(),
|
||||||
mesh_,
|
mesh_,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimPower/dimVolume, Zero)
|
dimensionedScalar(dimPower/dimVolume, Zero)
|
||||||
@ -427,7 +428,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_, "DTRMCloud", IDLList<DTRMParticle>()),
|
DTRMCloud_(mesh_, Foam::zero{}, "DTRMCloud"), // Empty cloud
|
||||||
nParticles_(0),
|
nParticles_(0),
|
||||||
ndTheta_(get<label>("nTheta")),
|
ndTheta_(get<label>("nTheta")),
|
||||||
ndr_(get<label>("nr")),
|
ndr_(get<label>("nr")),
|
||||||
@ -504,7 +505,8 @@ Foam::radiation::laserDTRM::laserDTRM
|
|||||||
mesh_.time().timeName(),
|
mesh_.time().timeName(),
|
||||||
mesh_,
|
mesh_,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimPower/pow3(dimLength), Zero)
|
dimensionedScalar(dimPower/pow3(dimLength), Zero)
|
||||||
@ -535,42 +537,23 @@ Foam::label Foam::radiation::laserDTRM::nBands() const
|
|||||||
|
|
||||||
void Foam::radiation::laserDTRM::calculate()
|
void Foam::radiation::laserDTRM::calculate()
|
||||||
{
|
{
|
||||||
tmp<volScalarField> treflectingCells
|
auto treflectingCells = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"reflectingCellsVol",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar("zero", dimless, -1)
|
||||||
"reflectingCellsVol",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar("zero", dimless, -1)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
volScalarField& reflectingCellsVol = treflectingCells.ref();
|
auto& reflectingCellsVol = treflectingCells.ref();
|
||||||
|
|
||||||
|
auto tnHat = volVectorField::New
|
||||||
tmp<volVectorField> tnHat
|
|
||||||
(
|
(
|
||||||
new volVectorField
|
"nHat",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedVector(dimless, Zero)
|
||||||
"nHat",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedVector(dimless, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
volVectorField& nHat = tnHat.ref();
|
auto& nHat = tnHat.ref();
|
||||||
|
|
||||||
|
|
||||||
// Reset the field
|
// Reset the field
|
||||||
@ -686,9 +669,9 @@ void Foam::radiation::laserDTRM::calculate()
|
|||||||
|
|
||||||
globalIndex::gatherInplaceOp(lines);
|
globalIndex::gatherInplaceOp(lines);
|
||||||
|
|
||||||
if (Pstream::master())
|
if (UPstream::master())
|
||||||
{
|
{
|
||||||
OBJstream os(type() + ":particlePath.obj");
|
OBJstream os(type() + "-particlePath.obj");
|
||||||
|
|
||||||
for (label pointi = 0; pointi < lines.size(); pointi += 2)
|
for (label pointi = 0; pointi < lines.size(); pointi += 2)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -88,25 +88,14 @@ Foam::radiation::localDensityAbsorptionEmission::localDensityAbsorptionEmission
|
|||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::radiation::localDensityAbsorptionEmission::aCont(const label bandI) const
|
Foam::radiation::localDensityAbsorptionEmission::aCont(const label bandI) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> ta
|
auto ta = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"a",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(inv(dimLength), Zero)
|
||||||
"a",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
IOobject::NO_REGISTER
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(inv(dimLength), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& a = ta.ref();
|
||||||
volScalarField& a = ta.ref();
|
|
||||||
|
|
||||||
forAll(alphaNames_, i)
|
forAll(alphaNames_, i)
|
||||||
{
|
{
|
||||||
@ -121,25 +110,14 @@ Foam::radiation::localDensityAbsorptionEmission::aCont(const label bandI) const
|
|||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::radiation::localDensityAbsorptionEmission::eCont(const label bandI) const
|
Foam::radiation::localDensityAbsorptionEmission::eCont(const label bandI) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> te
|
auto te = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"e",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(inv(dimLength), Zero)
|
||||||
"e",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
IOobject::NO_REGISTER
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(inv(dimLength), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
auto& e = te.ref();
|
||||||
volScalarField& e = te.ref();
|
|
||||||
|
|
||||||
forAll(alphaNames_, i)
|
forAll(alphaNames_, i)
|
||||||
{
|
{
|
||||||
@ -154,22 +132,12 @@ Foam::radiation::localDensityAbsorptionEmission::eCont(const label bandI) const
|
|||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::radiation::localDensityAbsorptionEmission::ECont(const label bandI) const
|
Foam::radiation::localDensityAbsorptionEmission::ECont(const label bandI) const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tE
|
auto tE = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"E",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||||
"E",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
IOobject::NO_REGISTER
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
scalarField& E = tE.ref().primitiveFieldRef();
|
scalarField& E = tE.ref().primitiveFieldRef();
|
||||||
|
|||||||
@ -171,16 +171,8 @@ Foam::temperaturePhaseChangeTwoPhaseMixtures::constant::TSource() const
|
|||||||
|
|
||||||
const volScalarField& T = mesh_.lookupObject<volScalarField>("T");
|
const volScalarField& T = mesh_.lookupObject<volScalarField>("T");
|
||||||
|
|
||||||
tmp<fvScalarMatrix> tTSource
|
auto tTSource = tmp<fvScalarMatrix>::New(T, dimEnergy/dimTime);
|
||||||
(
|
auto& TSource = tTSource.ref();
|
||||||
new fvScalarMatrix
|
|
||||||
(
|
|
||||||
T,
|
|
||||||
dimEnergy/dimTime
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
fvScalarMatrix& TSource = tTSource.ref();
|
|
||||||
|
|
||||||
const twoPhaseMixtureEThermo& thermo =
|
const twoPhaseMixtureEThermo& thermo =
|
||||||
refCast<const twoPhaseMixtureEThermo>
|
refCast<const twoPhaseMixtureEThermo>
|
||||||
|
|||||||
@ -382,7 +382,7 @@ Foam::tmp<Foam::volScalarField> Foam::twoPhaseMixtureEThermo::kappaEff
|
|||||||
const volScalarField& kappat
|
const volScalarField& kappat
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
tmp<Foam::volScalarField> kappaEff(kappa() + kappat);
|
tmp<volScalarField> kappaEff(kappa() + kappat);
|
||||||
kappaEff.ref().rename("kappaEff");
|
kappaEff.ref().rename("kappaEff");
|
||||||
return kappaEff;
|
return kappaEff;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -86,14 +86,14 @@ public:
|
|||||||
virtual volScalarField& he()
|
virtual volScalarField& he()
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return p();
|
return const_cast<volScalarField&>(volScalarField::null());
|
||||||
}
|
}
|
||||||
|
|
||||||
//- 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 p();
|
return volScalarField::null();
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Enthalpy/Internal energy
|
//- Enthalpy/Internal energy
|
||||||
@ -182,7 +182,7 @@ public:
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return tmp<scalarField>::New(p);
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Return Cv of the mixture
|
//- Return Cv of the mixture
|
||||||
@ -205,7 +205,7 @@ public:
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
NotImplemented;
|
NotImplemented;
|
||||||
return tmp<scalarField>::New(p);
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Gamma = Cp/Cv []
|
//- Gamma = Cp/Cv []
|
||||||
|
|||||||
@ -3,12 +3,7 @@ if (nAlphaSubCycles > 1)
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -32,12 +32,7 @@ if (nAlphaSubCycles > 1)
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -21,12 +21,7 @@
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -50,7 +50,8 @@
|
|||||||
runTime.timeName(),
|
runTime.timeName(),
|
||||||
mesh,
|
mesh,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(dimVelocity*dimArea, Zero)
|
dimensionedScalar(dimVelocity*dimArea, Zero)
|
||||||
|
|||||||
@ -164,15 +164,6 @@ 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
|
||||||
(
|
(
|
||||||
@ -180,16 +171,19 @@ public:
|
|||||||
const DimensionedField<scalar, volMesh>&
|
const DimensionedField<scalar, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
//- Return a clone
|
||||||
virtual tmp<fvPatchScalarField> clone
|
virtual tmp<fvPatchField<scalar>> clone() const
|
||||||
|
{
|
||||||
|
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 tmp<fvPatchScalarField>
|
return fvPatchField<scalar>::Clone(*this, iF);
|
||||||
(
|
|
||||||
new alphaContactAngleFvPatchScalarField(*this, iF)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -68,8 +68,9 @@ Foam::multiphaseMixture::multiphaseMixture
|
|||||||
"transportProperties",
|
"transportProperties",
|
||||||
U.time().constant(),
|
U.time().constant(),
|
||||||
U.db(),
|
U.db(),
|
||||||
IOobject::MUST_READ_IF_MODIFIED,
|
IOobject::READ_MODIFIED,
|
||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
|
||||||
@ -85,9 +86,7 @@ Foam::multiphaseMixture::multiphaseMixture
|
|||||||
(
|
(
|
||||||
"rhoPhi",
|
"rhoPhi",
|
||||||
mesh_.time().timeName(),
|
mesh_.time().timeName(),
|
||||||
mesh_,
|
mesh_
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimMass/dimTime, Zero)
|
dimensionedScalar(dimMass/dimTime, Zero)
|
||||||
@ -101,7 +100,8 @@ Foam::multiphaseMixture::multiphaseMixture
|
|||||||
mesh_.time().timeName(),
|
mesh_.time().timeName(),
|
||||||
mesh_,
|
mesh_,
|
||||||
IOobject::NO_READ,
|
IOobject::NO_READ,
|
||||||
IOobject::AUTO_WRITE
|
IOobject::AUTO_WRITE,
|
||||||
|
IOobject::REGISTER
|
||||||
),
|
),
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimless, Zero)
|
dimensionedScalar(dimless, Zero)
|
||||||
@ -257,19 +257,12 @@ Foam::multiphaseMixture::nuf() const
|
|||||||
Foam::tmp<Foam::surfaceScalarField>
|
Foam::tmp<Foam::surfaceScalarField>
|
||||||
Foam::multiphaseMixture::surfaceTensionForce() const
|
Foam::multiphaseMixture::surfaceTensionForce() const
|
||||||
{
|
{
|
||||||
tmp<surfaceScalarField> tstf
|
auto tstf = surfaceScalarField::New
|
||||||
(
|
(
|
||||||
new surfaceScalarField
|
"surfaceTensionForce",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(dimensionSet(1, -2, -2, 0, 0), Zero)
|
||||||
"surfaceTensionForce",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(dimensionSet(1, -2, -2, 0, 0), Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
surfaceScalarField& stf = tstf.ref();
|
surfaceScalarField& stf = tstf.ref();
|
||||||
@ -324,12 +317,7 @@ void Foam::multiphaseMixture::solve()
|
|||||||
{
|
{
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh_.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh_
|
|
||||||
),
|
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(rhoPhi_.dimensions(), Zero)
|
dimensionedScalar(rhoPhi_.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
@ -552,19 +540,12 @@ Foam::tmp<Foam::volScalarField> Foam::multiphaseMixture::K
|
|||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::multiphaseMixture::nearInterface() const
|
Foam::multiphaseMixture::nearInterface() const
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tnearInt
|
auto tnearInt = volScalarField::New
|
||||||
(
|
(
|
||||||
new volScalarField
|
"nearInterface",
|
||||||
(
|
IOobject::NO_REGISTER,
|
||||||
IOobject
|
mesh_,
|
||||||
(
|
dimensionedScalar(dimless, Zero)
|
||||||
"nearInterface",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_
|
|
||||||
),
|
|
||||||
mesh_,
|
|
||||||
dimensionedScalar(dimless, Zero)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
for (const phase& ph : phases_)
|
for (const phase& ph : phases_)
|
||||||
@ -649,12 +630,7 @@ void Foam::multiphaseMixture::solveAlphas
|
|||||||
|
|
||||||
volScalarField sumAlpha
|
volScalarField sumAlpha
|
||||||
(
|
(
|
||||||
IOobject
|
mesh_.newIOobject("sumAlpha"),
|
||||||
(
|
|
||||||
"sumAlpha",
|
|
||||||
mesh_.time().timeName(),
|
|
||||||
mesh_
|
|
||||||
),
|
|
||||||
mesh_,
|
mesh_,
|
||||||
dimensionedScalar(dimless, Zero)
|
dimensionedScalar(dimless, Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -272,10 +272,7 @@ while (pimple.correct())
|
|||||||
).ptr()
|
).ptr()
|
||||||
);
|
);
|
||||||
|
|
||||||
deleteDemandDrivenData
|
pEqnComps[phasei].faceFluxCorrectionPtr(nullptr);
|
||||||
(
|
|
||||||
pEqnComps[phasei].faceFluxCorrectionPtr()
|
|
||||||
);
|
|
||||||
|
|
||||||
pEqnComps[phasei].relax();
|
pEqnComps[phasei].relax();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,12 +5,7 @@ if (nAlphaSubCycles > 1)
|
|||||||
dimensionedScalar totalDeltaT = runTime.deltaT();
|
dimensionedScalar totalDeltaT = runTime.deltaT();
|
||||||
surfaceScalarField rhoPhiSum
|
surfaceScalarField rhoPhiSum
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.newIOobject("rhoPhiSum"),
|
||||||
(
|
|
||||||
"rhoPhiSum",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
dimensionedScalar(rhoPhi.dimensions(), Zero)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -100,15 +100,6 @@ public:
|
|||||||
const tractionDisplacementFvPatchVectorField&
|
const tractionDisplacementFvPatchVectorField&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone
|
|
||||||
virtual tmp<fvPatchVectorField> clone() const
|
|
||||||
{
|
|
||||||
return tmp<fvPatchVectorField>
|
|
||||||
(
|
|
||||||
new tractionDisplacementFvPatchVectorField(*this)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
//- Construct as copy setting internal field reference
|
||||||
tractionDisplacementFvPatchVectorField
|
tractionDisplacementFvPatchVectorField
|
||||||
(
|
(
|
||||||
@ -116,16 +107,19 @@ public:
|
|||||||
const DimensionedField<vector, volMesh>&
|
const DimensionedField<vector, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
//- Return a clone
|
||||||
virtual tmp<fvPatchVectorField> clone
|
virtual tmp<fvPatchField<vector>> clone() const
|
||||||
|
{
|
||||||
|
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 tmp<fvPatchVectorField>
|
return fvPatchField<vector>::Clone(*this, iF);
|
||||||
(
|
|
||||||
new tractionDisplacementFvPatchVectorField(*this, iF)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -98,15 +98,6 @@ public:
|
|||||||
const tractionDisplacementCorrectionFvPatchVectorField&
|
const tractionDisplacementCorrectionFvPatchVectorField&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone
|
|
||||||
virtual tmp<fvPatchVectorField> clone() const
|
|
||||||
{
|
|
||||||
return tmp<fvPatchVectorField>
|
|
||||||
(
|
|
||||||
new tractionDisplacementCorrectionFvPatchVectorField(*this)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
//- Construct as copy setting internal field reference
|
//- Construct as copy setting internal field reference
|
||||||
tractionDisplacementCorrectionFvPatchVectorField
|
tractionDisplacementCorrectionFvPatchVectorField
|
||||||
(
|
(
|
||||||
@ -114,16 +105,19 @@ public:
|
|||||||
const DimensionedField<vector, volMesh>&
|
const DimensionedField<vector, volMesh>&
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Construct and return a clone setting internal field reference
|
//- Return a clone
|
||||||
virtual tmp<fvPatchVectorField> clone
|
virtual tmp<fvPatchField<vector>> clone() const
|
||||||
|
{
|
||||||
|
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 tmp<fvPatchVectorField>
|
return fvPatchField<vector>::Clone(*this, iF);
|
||||||
(
|
|
||||||
new tractionDisplacementCorrectionFvPatchVectorField(*this, iF)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-DFULLDEBUG -g \
|
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude
|
-I$(LIB_SRC)/meshTools/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -70,7 +70,10 @@ int main(int argc, char *argv[])
|
|||||||
);
|
);
|
||||||
|
|
||||||
labelList cellToCoarse(identity(mesh.nCells()));
|
labelList cellToCoarse(identity(mesh.nCells()));
|
||||||
labelListList coarseToCell(invertOneToMany(mesh.nCells(), cellToCoarse));
|
CompactListList<label> coarseToCell
|
||||||
|
(
|
||||||
|
invertOneToManyCompact(mesh.nCells(), cellToCoarse)
|
||||||
|
);
|
||||||
|
|
||||||
++runTime;
|
++runTime;
|
||||||
|
|
||||||
@ -78,16 +81,11 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
volScalarField scalarAgglomeration
|
volScalarField scalarAgglomeration
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.thisDb().newIOobject("agglomeration"),
|
||||||
(
|
|
||||||
"agglomeration",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(dimless, Zero)
|
Foam::zero{},
|
||||||
|
dimless,
|
||||||
|
fvPatchFieldBase::zeroGradientType()
|
||||||
);
|
);
|
||||||
scalarField& fld = scalarAgglomeration.primitiveFieldRef();
|
scalarField& fld = scalarAgglomeration.primitiveFieldRef();
|
||||||
forAll(fld, celli)
|
forAll(fld, celli)
|
||||||
@ -142,31 +140,23 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
forAll(addr, fineI)
|
forAll(addr, finei)
|
||||||
{
|
{
|
||||||
const labelList& cellLabels = coarseToCell[fineI];
|
labelUIndList(cellToCoarse, coarseToCell[finei]) = addr[finei];
|
||||||
forAll(cellLabels, i)
|
|
||||||
{
|
|
||||||
cellToCoarse[cellLabels[i]] = addr[fineI];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
coarseToCell = invertOneToMany(coarseSize, cellToCoarse);
|
coarseToCell = invertOneToManyCompact(coarseSize, cellToCoarse);
|
||||||
|
|
||||||
// Write agglomeration
|
// Write agglomeration
|
||||||
{
|
{
|
||||||
volScalarField scalarAgglomeration
|
volScalarField scalarAgglomeration
|
||||||
(
|
(
|
||||||
IOobject
|
mesh.thisDb().newIOobject("agglomeration"),
|
||||||
(
|
|
||||||
"agglomeration",
|
|
||||||
runTime.timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::AUTO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
mesh,
|
||||||
dimensionedScalar(dimless, Zero)
|
Foam::zero{},
|
||||||
|
dimless,
|
||||||
|
fvPatchFieldBase::zeroGradientType()
|
||||||
);
|
);
|
||||||
|
|
||||||
scalarField& fld = scalarAgglomeration.primitiveFieldRef();
|
scalarField& fld = scalarAgglomeration.primitiveFieldRef();
|
||||||
forAll(fld, celli)
|
forAll(fld, celli)
|
||||||
{
|
{
|
||||||
@ -193,9 +183,9 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Determine coarse cc
|
// Determine coarse cc
|
||||||
forAll(coarseToCell, coarseI)
|
forAll(coarseToCell, coarsei)
|
||||||
{
|
{
|
||||||
const labelList& cellLabels = coarseToCell[coarseI];
|
const auto& cellLabels = coarseToCell[coarsei];
|
||||||
|
|
||||||
point coarseCc = average
|
point coarseCc = average
|
||||||
(
|
(
|
||||||
@ -204,10 +194,8 @@ int main(int argc, char *argv[])
|
|||||||
meshTools::writeOBJ(str, coarseCc);
|
meshTools::writeOBJ(str, coarseCc);
|
||||||
vertI++;
|
vertI++;
|
||||||
|
|
||||||
forAll(cellLabels, i)
|
for (label celli : cellLabels)
|
||||||
{
|
{
|
||||||
label celli = cellLabels[i];
|
|
||||||
|
|
||||||
str << "l " << celli+1 << ' ' << vertI << nl;
|
str << "l " << celli+1 << ' ' << vertI << nl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -124,11 +124,11 @@ int main(int argc, char *argv[])
|
|||||||
<< "toc: " << flatOutput(table0.toc()) << nl;
|
<< "toc: " << flatOutput(table0.toc()) << nl;
|
||||||
|
|
||||||
HashTable<label, label, Hash<label>> table2
|
HashTable<label, label, Hash<label>> table2
|
||||||
({
|
(
|
||||||
{3, 10},
|
// From key/value pairs
|
||||||
{5, 12},
|
labelList({3, 5, 7}),
|
||||||
{7, 16}
|
labelList({10, 12, 16})
|
||||||
});
|
);
|
||||||
|
|
||||||
Info<< "table2: " << table2 << nl
|
Info<< "table2: " << table2 << nl
|
||||||
<< "toc: " << flatOutput(table2.toc()) << nl;
|
<< "toc: " << flatOutput(table2.toc()) << nl;
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
Test-HashTable4.C
|
Test-HashTable4.cxx
|
||||||
|
|
||||||
EXE = $(FOAM_USER_APPBIN)/Test-HashTable4
|
EXE = $(FOAM_USER_APPBIN)/Test-HashTable4
|
||||||
|
|||||||
@ -159,7 +159,6 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
|
|
||||||
cpuTime timer;
|
cpuTime timer;
|
||||||
memInfo mem;
|
|
||||||
|
|
||||||
Info<< "insert " << nElem << " (int) elements";
|
Info<< "insert " << nElem << " (int) elements";
|
||||||
if (optFnd)
|
if (optFnd)
|
||||||
@ -207,7 +206,7 @@ int main(int argc, char *argv[])
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
loopInsert(map, nElem);
|
loopInsert(map, nElem);
|
||||||
(void)timer.cpuTimeIncrement();
|
timer.resetCpuTimeIncrement();
|
||||||
|
|
||||||
unsigned long sum = 0;
|
unsigned long sum = 0;
|
||||||
for (label loopi = 0; loopi < nFind*nLoops; ++loopi)
|
for (label loopi = 0; loopi < nFind*nLoops; ++loopi)
|
||||||
@ -269,7 +268,7 @@ int main(int argc, char *argv[])
|
|||||||
HashSet<label, Hash<label>> map(32);
|
HashSet<label, Hash<label>> map(32);
|
||||||
|
|
||||||
loopInsert(map, nElem);
|
loopInsert(map, nElem);
|
||||||
(void)timer.cpuTimeIncrement();
|
timer.resetCpuTimeIncrement();
|
||||||
|
|
||||||
unsigned long sum = 0;
|
unsigned long sum = 0;
|
||||||
for (label loopi = 0; loopi < nFind*nLoops; ++loopi)
|
for (label loopi = 0; loopi < nFind*nLoops; ++loopi)
|
||||||
@ -306,7 +305,8 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
Info<< timer.cpuTimeIncrement() << " s\n";
|
Info<< timer.cpuTimeIncrement() << " s\n";
|
||||||
Info<< "mem info: " << mem.update() << endl;
|
Foam::memInfo{}.writeEntry("mem-info", Info);
|
||||||
|
Info<< endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,4 +1,2 @@
|
|||||||
EXE_INC = -DFULLDEBUG
|
/* EXE_INC = */
|
||||||
|
/* EXE_LIBS = */
|
||||||
/* EXE_INC = -I$(LIB_SRC)/finiteVolume/lnInclude */
|
|
||||||
/* EXE_LIBS = -lfiniteVolume */
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2011 OpenFOAM Foundation
|
Copyright (C) 2011 OpenFOAM Foundation
|
||||||
Copyright (C) 2017-2022 OpenCFD Ltd.
|
Copyright (C) 2017-2024 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -156,29 +156,24 @@ int main(int argc, char *argv[])
|
|||||||
os.writeEntry("idl3", idl3);
|
os.writeEntry("idl3", idl3);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Pstream::parRun())
|
if (UPstream::parRun())
|
||||||
{
|
{
|
||||||
if (Pstream::master())
|
if (UPstream::master())
|
||||||
{
|
{
|
||||||
Pout<< "full: " << flatOutput(idl3.values()) << nl
|
Pout<< "full: " << flatOutput(idl3.values()) << nl
|
||||||
<< "send: " << flatOutput(idl3) << endl;
|
<< "send: " << flatOutput(idl3) << endl;
|
||||||
|
|
||||||
for (const int proci : Pstream::subProcs())
|
for (const int proci : UPstream::subProcs())
|
||||||
{
|
{
|
||||||
OPstream toSlave(Pstream::commsTypes::scheduled, proci);
|
OPstream::send(idl3, proci);
|
||||||
toSlave << idl3;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// From master
|
// From master
|
||||||
IPstream fromMaster
|
List<label> recv;
|
||||||
(
|
|
||||||
Pstream::commsTypes::scheduled,
|
|
||||||
Pstream::masterNo()
|
|
||||||
);
|
|
||||||
|
|
||||||
List<label> recv(fromMaster);
|
IPstream::recv(recv, UPstream::masterNo());
|
||||||
|
|
||||||
Pout<<"recv: " << flatOutput(recv) << endl;
|
Pout<<"recv: " << flatOutput(recv) << endl;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-DFULLDEBUG \
|
|
||||||
-I$(LIB_SRC)/mesh/blockMesh/lnInclude
|
-I$(LIB_SRC)/mesh/blockMesh/lnInclude
|
||||||
|
|
||||||
EXE_LIBS = \
|
EXE_LIBS = \
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-DFULLDEBUG -g -O0 \
|
|
||||||
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
|
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -67,8 +67,8 @@ using namespace Foam;
|
|||||||
// // (note:without calculating pointNormals
|
// // (note:without calculating pointNormals
|
||||||
// // to avoid them being stored)
|
// // to avoid them being stored)
|
||||||
//
|
//
|
||||||
// tmp<pointField> textrudeN(new pointField(p.nPoints(), Zero));
|
// auto textrudeN = tmp<pointField>::New(p.nPoints(), Zero);
|
||||||
// pointField& extrudeN = textrudeN();
|
// auto& extrudeN = textrudeN.ref();
|
||||||
// {
|
// {
|
||||||
// const faceList& localFaces = p.localFaces();
|
// const faceList& localFaces = p.localFaces();
|
||||||
// const vectorField& faceAreas = mesh.faceAreas();
|
// const vectorField& faceAreas = mesh.faceAreas();
|
||||||
|
|||||||
@ -412,7 +412,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
Info<< "range-for of list (" << list1.count() << '/'
|
Info<< "range-for of list (" << list1.count_nonnull() << '/'
|
||||||
<< list1.size() << ") non-null entries" << nl
|
<< list1.size() << ") non-null entries" << nl
|
||||||
<< "(" << nl;
|
<< "(" << nl;
|
||||||
for (const auto& item : list1)
|
for (const auto& item : list1)
|
||||||
|
|||||||
@ -123,15 +123,9 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
const label nDomains = max(cellToProc) + 1;
|
const label nDomains = max(cellToProc) + 1;
|
||||||
|
|
||||||
|
// Local mesh connectivity
|
||||||
CompactListList<label> cellCells;
|
CompactListList<label> cellCells;
|
||||||
globalMeshData::calcCellCells
|
globalMeshData::calcCellCells(mesh, cellCells);
|
||||||
(
|
|
||||||
mesh,
|
|
||||||
identity(mesh.nCells()),
|
|
||||||
mesh.nCells(),
|
|
||||||
false,
|
|
||||||
cellCells
|
|
||||||
);
|
|
||||||
|
|
||||||
decompositionInformation info
|
decompositionInformation info
|
||||||
(
|
(
|
||||||
|
|||||||
3
applications/test/checkIOspeed/Make/files
Normal file
3
applications/test/checkIOspeed/Make/files
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Test-checkIOspeed.cxx
|
||||||
|
|
||||||
|
EXE = $(FOAM_USER_APPBIN)/Test-checkIOspeed
|
||||||
7
applications/test/checkIOspeed/Make/options
Normal file
7
applications/test/checkIOspeed/Make/options
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
EXE_INC = \
|
||||||
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
|
-I$(LIB_SRC)/mesh/blockMesh/lnInclude
|
||||||
|
|
||||||
|
EXE_LIBS = \
|
||||||
|
-lfiniteVolume \
|
||||||
|
-lblockMesh
|
||||||
400
applications/test/checkIOspeed/Test-checkIOspeed.cxx
Normal file
400
applications/test/checkIOspeed/Test-checkIOspeed.cxx
Normal file
@ -0,0 +1,400 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | www.openfoam.com
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Copyright (C) 2024 OpenCFD Ltd.
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Application
|
||||||
|
Test-checkIOspeed
|
||||||
|
|
||||||
|
Description
|
||||||
|
Simple test of file writing, including timings
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "argList.H"
|
||||||
|
#include "profiling.H"
|
||||||
|
#include "clockTime.H"
|
||||||
|
|
||||||
|
#include "fileName.H"
|
||||||
|
#include "fileOperation.H"
|
||||||
|
#include "IOstreams.H"
|
||||||
|
#include "OSspecific.H"
|
||||||
|
#include "globalIndex.H"
|
||||||
|
#include "volFields.H"
|
||||||
|
#include "IOField.H"
|
||||||
|
#include "PDRblock.H"
|
||||||
|
|
||||||
|
// Not really great since CoherentMesh only works with reading!
|
||||||
|
#ifdef USE_COHERENT
|
||||||
|
#include "OFCstream.H"
|
||||||
|
#include "SliceStreamRepo.H"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <numeric>
|
||||||
|
|
||||||
|
using namespace Foam;
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
// Main program:
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
argList::addNote("Rewrites fields multiple times");
|
||||||
|
|
||||||
|
argList::noFunctionObjects(); // Disallow function objects
|
||||||
|
argList::noCheckProcessorDirectories();
|
||||||
|
|
||||||
|
argList::addVerboseOption("additional verbosity");
|
||||||
|
argList::addOption
|
||||||
|
(
|
||||||
|
"output",
|
||||||
|
"N",
|
||||||
|
"Begin output iteration (default: 10000)"
|
||||||
|
);
|
||||||
|
argList::addOption
|
||||||
|
(
|
||||||
|
"count",
|
||||||
|
"N",
|
||||||
|
"Number of writes (default: 1)"
|
||||||
|
);
|
||||||
|
argList::addOption
|
||||||
|
(
|
||||||
|
"fields",
|
||||||
|
"N",
|
||||||
|
"Number of fields to write (default: 1)"
|
||||||
|
);
|
||||||
|
argList::addOption
|
||||||
|
(
|
||||||
|
"global",
|
||||||
|
"N",
|
||||||
|
"Global field size"
|
||||||
|
);
|
||||||
|
argList::addOption
|
||||||
|
(
|
||||||
|
"local",
|
||||||
|
"N",
|
||||||
|
"Local fields size (default: 1000)"
|
||||||
|
);
|
||||||
|
argList::addOption
|
||||||
|
(
|
||||||
|
"mesh",
|
||||||
|
"(nx ny nz)",
|
||||||
|
"Create with a mesh"
|
||||||
|
);
|
||||||
|
argList::addOption
|
||||||
|
(
|
||||||
|
"exclude",
|
||||||
|
"(int ... )",
|
||||||
|
"zero-sized on ranks with specified modulo"
|
||||||
|
);
|
||||||
|
|
||||||
|
argList::addBoolOption("coherent", "Force coherent output");
|
||||||
|
|
||||||
|
#include "setRootCase.H"
|
||||||
|
#include "createTime.H"
|
||||||
|
|
||||||
|
const label firstOutput = args.getOrDefault("output", 10000);
|
||||||
|
const label nOutput = args.getOrDefault("count", 1);
|
||||||
|
const label nFields = args.getOrDefault("fields", 1);
|
||||||
|
labelVector meshCells(0, 0, 0);
|
||||||
|
|
||||||
|
const int verbose = args.verbose();
|
||||||
|
|
||||||
|
const bool useCoherent = args.found("coherent");
|
||||||
|
|
||||||
|
labelList excludes;
|
||||||
|
args.readListIfPresent("exclude", excludes);
|
||||||
|
|
||||||
|
bool writeOnProc = true;
|
||||||
|
|
||||||
|
const label myProci = UPstream::myProcNo();
|
||||||
|
|
||||||
|
for (const label excl : excludes)
|
||||||
|
{
|
||||||
|
if (excl > 1 && myProci > 0 && (myProci % excl) == 0)
|
||||||
|
{
|
||||||
|
writeOnProc = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const label nProcsEff =
|
||||||
|
returnReduce((writeOnProc ? 1 : 0), sumOp<label>());
|
||||||
|
|
||||||
|
Info<< "Output " << nProcsEff
|
||||||
|
<< "/" << UPstream::nProcs()
|
||||||
|
<< " ranks" << nl;
|
||||||
|
|
||||||
|
|
||||||
|
if (args.readIfPresent("mesh", meshCells))
|
||||||
|
{
|
||||||
|
if (!writeOnProc)
|
||||||
|
{
|
||||||
|
meshCells = Zero;
|
||||||
|
}
|
||||||
|
|
||||||
|
PDRblock block(boundBox(point::zero, point::one), meshCells);
|
||||||
|
|
||||||
|
// Advance time
|
||||||
|
// - coherent currently still needs to read the mesh itself!
|
||||||
|
runTime.setTime(firstOutput, firstOutput);
|
||||||
|
|
||||||
|
IOobject meshIO
|
||||||
|
(
|
||||||
|
polyMesh::defaultRegion,
|
||||||
|
runTime.timeName(),
|
||||||
|
runTime,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE,
|
||||||
|
IOobject::NO_REGISTER
|
||||||
|
);
|
||||||
|
|
||||||
|
autoPtr<polyMesh> pmeshPtr(block.innerMesh(meshIO));
|
||||||
|
|
||||||
|
fvMesh mesh
|
||||||
|
(
|
||||||
|
meshIO,
|
||||||
|
pointField(pmeshPtr->points()),
|
||||||
|
faceList(pmeshPtr->faces()),
|
||||||
|
labelList(pmeshPtr->faceOwner()),
|
||||||
|
labelList(pmeshPtr->faceNeighbour())
|
||||||
|
);
|
||||||
|
|
||||||
|
pmeshPtr.reset(nullptr);
|
||||||
|
|
||||||
|
const label fieldSize = mesh.nCells();
|
||||||
|
|
||||||
|
const globalIndex giCells(fieldSize);
|
||||||
|
|
||||||
|
// Create fields
|
||||||
|
Info<< nl << "Create " << nFields << " fields" << nl
|
||||||
|
<< "field-size:" << fieldSize
|
||||||
|
<< " total-size:" << giCells.totalSize() << nl;
|
||||||
|
|
||||||
|
// Dimensioned field (no proc boundaries)
|
||||||
|
|
||||||
|
PtrList<volScalarField::Internal> fields(nFields);
|
||||||
|
|
||||||
|
{
|
||||||
|
IOobject io
|
||||||
|
(
|
||||||
|
"field",
|
||||||
|
runTime.timeName(),
|
||||||
|
runTime,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE,
|
||||||
|
IOobject::NO_REGISTER
|
||||||
|
);
|
||||||
|
|
||||||
|
forAll(fields, fieldi)
|
||||||
|
{
|
||||||
|
io.resetHeader("field" + Foam::name(fieldi));
|
||||||
|
|
||||||
|
fields.set
|
||||||
|
(
|
||||||
|
fieldi,
|
||||||
|
new volScalarField::Internal(io, mesh, dimless)
|
||||||
|
);
|
||||||
|
|
||||||
|
auto& fld = fields[fieldi];
|
||||||
|
std::iota(fld.begin(), fld.end(), scalar(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IOstreamOption streamOpt(IOstreamOption::BINARY);
|
||||||
|
|
||||||
|
if (useCoherent)
|
||||||
|
{
|
||||||
|
#ifdef USE_COHERENT
|
||||||
|
streamOpt.format(IOstreamOption::COHERENT);
|
||||||
|
runTime.writeFormat(IOstreamOption::COHERENT);
|
||||||
|
|
||||||
|
mesh.writeObject(streamOpt, true);
|
||||||
|
|
||||||
|
Info<< nl
|
||||||
|
<< "Specified -coherent (instance: "
|
||||||
|
<< mesh.pointsInstance() << ")" << endl;
|
||||||
|
|
||||||
|
const auto& coherent = CoherentMesh::New(mesh);
|
||||||
|
|
||||||
|
Info<< " points = "
|
||||||
|
<< coherent.globalPointOffsets().totalSize() << nl
|
||||||
|
<< " cells = "
|
||||||
|
<< coherent.globalCellOffsets().totalSize() << nl
|
||||||
|
<< " patches = "
|
||||||
|
<< coherent.nNonProcessorPatches() << nl;
|
||||||
|
|
||||||
|
#else
|
||||||
|
Info<< "Warning: -coherent ignored" << nl;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< nl
|
||||||
|
<< "Writing " << nOutput << " times starting at "
|
||||||
|
<< firstOutput << nl;
|
||||||
|
|
||||||
|
clockTime timing;
|
||||||
|
|
||||||
|
if (verbose) Info<< "Time:";
|
||||||
|
|
||||||
|
for
|
||||||
|
(
|
||||||
|
label timeIndex = firstOutput, count = 0;
|
||||||
|
count < nOutput;
|
||||||
|
++timeIndex, ++count
|
||||||
|
)
|
||||||
|
{
|
||||||
|
runTime.setTime(timeIndex, timeIndex);
|
||||||
|
if (verbose) Info<< ' ' << runTime.timeName() << flush;
|
||||||
|
runTime.writeNow();
|
||||||
|
|
||||||
|
for (const auto& fld : fields)
|
||||||
|
{
|
||||||
|
fld.regIOobject::writeObject(streamOpt, writeOnProc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (useCoherent)
|
||||||
|
{
|
||||||
|
#ifdef USE_COHERENT
|
||||||
|
SliceStreamRepo::closeInstance();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
if (verbose) Info<< nl;
|
||||||
|
Info<< nl << "Writing took "
|
||||||
|
<< timing.timeIncrement() << "s" << endl;
|
||||||
|
|
||||||
|
Info<< nl
|
||||||
|
<< "Cleanup newly generated files with" << nl << nl
|
||||||
|
<< " foamListTimes -rm -time "
|
||||||
|
<< firstOutput << ":" << nl
|
||||||
|
<< " foamListTimes -processor -rm -time "
|
||||||
|
<< firstOutput << ":" << nl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
label fieldSize = 1000;
|
||||||
|
|
||||||
|
if (args.readIfPresent("global", fieldSize))
|
||||||
|
{
|
||||||
|
fieldSize /= nProcsEff;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
args.readIfPresent("local", fieldSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!writeOnProc)
|
||||||
|
{
|
||||||
|
fieldSize = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const globalIndex giCells(fieldSize);
|
||||||
|
|
||||||
|
// Create fields
|
||||||
|
Info<< nl << "Create " << nFields << " fields" << nl
|
||||||
|
<< "field-size:" << fieldSize
|
||||||
|
<< " total-size:" << giCells.totalSize() << nl;
|
||||||
|
|
||||||
|
|
||||||
|
PtrList<IOField<scalar>> fields(nFields);
|
||||||
|
|
||||||
|
{
|
||||||
|
IOobject io
|
||||||
|
(
|
||||||
|
"field",
|
||||||
|
runTime.timeName(),
|
||||||
|
runTime,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE,
|
||||||
|
IOobject::NO_REGISTER
|
||||||
|
);
|
||||||
|
|
||||||
|
forAll(fields, fieldi)
|
||||||
|
{
|
||||||
|
io.resetHeader("field" + Foam::name(fieldi));
|
||||||
|
|
||||||
|
fields.set
|
||||||
|
(
|
||||||
|
fieldi,
|
||||||
|
new IOField<scalar>(io, fieldSize)
|
||||||
|
);
|
||||||
|
|
||||||
|
auto& fld = fields[fieldi];
|
||||||
|
std::iota(fld.begin(), fld.end(), scalar(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IOstreamOption streamOpt(IOstreamOption::BINARY);
|
||||||
|
|
||||||
|
if (useCoherent)
|
||||||
|
{
|
||||||
|
Info<< "Warning: -coherent ignored" << nl;
|
||||||
|
}
|
||||||
|
|
||||||
|
Info<< nl
|
||||||
|
<< "Writing " << nOutput << " times starting at "
|
||||||
|
<< firstOutput << nl;
|
||||||
|
|
||||||
|
clockTime timing;
|
||||||
|
|
||||||
|
if (verbose) Info<< "Time:";
|
||||||
|
|
||||||
|
for
|
||||||
|
(
|
||||||
|
label timeIndex = firstOutput, count = 0;
|
||||||
|
count < nOutput;
|
||||||
|
++timeIndex, ++count
|
||||||
|
)
|
||||||
|
{
|
||||||
|
runTime.setTime(timeIndex, timeIndex);
|
||||||
|
if (verbose) Info<< ' ' << runTime.timeName() << flush;
|
||||||
|
runTime.writeNow();
|
||||||
|
|
||||||
|
for (const auto& fld : fields)
|
||||||
|
{
|
||||||
|
fld.regIOobject::writeObject(streamOpt, writeOnProc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (verbose) Info<< nl;
|
||||||
|
Info<< nl << "Writing took "
|
||||||
|
<< timing.timeIncrement() << "s" << endl;
|
||||||
|
|
||||||
|
Info<< nl
|
||||||
|
<< "Cleanup newly generated files with" << nl << nl
|
||||||
|
<< " foamListTimes -rm -time "
|
||||||
|
<< firstOutput << ":" << nl
|
||||||
|
<< " foamListTimes -processor -rm -time "
|
||||||
|
<< firstOutput << ":" << nl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Info<< "\nEnd\n" << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
Test-cpuInfo.C
|
Test-cpuInfo.cxx
|
||||||
|
|
||||||
EXE = $(FOAM_USER_APPBIN)/Test-cpuInfo
|
EXE = $(FOAM_USER_APPBIN)/Test-cpuInfo
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2016 OpenCFD Ltd.
|
Copyright (C) 2016-2023 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -39,7 +39,7 @@ using namespace Foam;
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
cpuInfo().write(Info);
|
Foam::cpuInfo{}.writeEntry("cpu-info", Info);
|
||||||
Info<< endl;
|
Info<< endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -1,3 +1,3 @@
|
|||||||
Test-cstring.C
|
Test-cstring.cxx
|
||||||
|
|
||||||
EXE = $(FOAM_USER_APPBIN)/Test-cstring
|
EXE = $(FOAM_USER_APPBIN)/Test-cstring
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
\\ / A nd | www.openfoam.com
|
\\ / A nd | www.openfoam.com
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
Copyright (C) 2016-2017 OpenCFD Ltd.
|
Copyright (C) 2016-2024 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -81,8 +81,7 @@ int print(char *argv[])
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
DynamicList<string> dynlst;
|
DynamicList<string> dynlst(16);
|
||||||
dynlst.reserve(16);
|
|
||||||
|
|
||||||
dynlst.push_back("string1 with content");
|
dynlst.push_back("string1 with content");
|
||||||
dynlst.push_back("string2 other content");
|
dynlst.push_back("string2 other content");
|
||||||
@ -104,6 +103,18 @@ int main(int argc, char *argv[])
|
|||||||
Info<< nl;
|
Info<< nl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
CStringList inC({ "string1", "string2", "string3", "end" });
|
||||||
|
|
||||||
|
Info<< "null-terminated string list from " << nl;
|
||||||
|
print(inC.strings());
|
||||||
|
|
||||||
|
Info<< "sublist: starting at " << inC.size()/2 << nl;
|
||||||
|
print(inC.strings(inC.size()/2));
|
||||||
|
|
||||||
|
Info<< nl;
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
string testInput
|
string testInput
|
||||||
(
|
(
|
||||||
@ -124,7 +135,7 @@ int main(int argc, char *argv[])
|
|||||||
Info<< nl;
|
Info<< nl;
|
||||||
}
|
}
|
||||||
|
|
||||||
Info<<"command-line with " << CStringList::count(argv) << " items"<< endl;
|
Info<< "command-line with " << CStringList::count(argv) << " items" << nl;
|
||||||
|
|
||||||
print(argc, argv);
|
print(argc, argv);
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -64,6 +64,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
// Add some more entries
|
// Add some more entries
|
||||||
{
|
{
|
||||||
|
label idx = 0;
|
||||||
dictionary subdict;
|
dictionary subdict;
|
||||||
|
|
||||||
subdict.add("key", 100);
|
subdict.add("key", 100);
|
||||||
@ -72,23 +73,30 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
subdict.add
|
subdict.add
|
||||||
(
|
(
|
||||||
new formattingEntry(10, "// comment - without newline.")
|
new formattingEntry(++idx, "// comment - without newline.")
|
||||||
);
|
);
|
||||||
|
|
||||||
subdict.add
|
subdict.add
|
||||||
(
|
(
|
||||||
// NB newline must be part of the content!
|
// NB newline must be part of the content!
|
||||||
new formattingEntry(11, "// some comment - with newline?\n")
|
new formattingEntry(++idx, "// some comment - with newline?\n")
|
||||||
);
|
);
|
||||||
|
|
||||||
subdict.add
|
subdict.add
|
||||||
(
|
(
|
||||||
// NB newline must be part of the content!
|
// NB newline must be part of the content!
|
||||||
new formattingEntry(12, "/* other comment */\n")
|
new formattingEntry(++idx, "/* other comment */\n")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Other - invisible
|
||||||
|
subdict.add(new formattingEntry(++idx, token(123), false));
|
||||||
|
|
||||||
|
// Other - visible (probably not what anyone wants!)
|
||||||
|
subdict.add(new formattingEntry(++idx, token(456)));
|
||||||
|
|
||||||
subdict.add("val", 42);
|
subdict.add("val", 42);
|
||||||
|
|
||||||
|
Info<< "subdict keys:" << flatOutput(subdict.toc()) << nl;
|
||||||
dict.add("subdict", std::move(subdict));
|
dict.add("subdict", std::move(subdict));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-DFULLDEBUG -g -O0 \
|
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||||
-I$(LIB_SRC)/meshTools/lnInclude
|
-I$(LIB_SRC)/meshTools/lnInclude
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: v2306 |
|
| \\ / O peration | Version: v2312 |
|
||||||
| \\ / A nd | Website: www.openfoam.com |
|
| \\ / A nd | Website: www.openfoam.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user