From 0e2798399e10f87f10f2b2577d816372af4bb25d Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Tue, 5 Dec 2017 12:00:00 +0100 Subject: [PATCH] ENH: add enthalpy sub-looping for chtMultiRegion* solvers --- .../chtMultiRegionFoam/chtMultiRegionFoam.C | 37 ++++++++-- .../chtMultiRegionSimpleFoam.C | 33 ++++++++- .../fluid/setRegionFluidFields.H | 17 ++--- .../solid/solveSolid.H | 10 +-- .../fluid/createFluidFields.H | 12 ++-- .../fluid/setRegionFluidFields.H | 7 +- .../solid/createSolidMeshes.H | 10 +-- .../chtMultiRegionFoam/solid/solveSolid.H | 10 +-- .../field/externalCoupled/externalCoupled.C | 68 ++++++++++++------- .../field/externalCoupled/externalCoupled.H | 18 +++-- .../externalCoupledMixedFvPatchField.H | 17 +++-- ...oupledTemperatureMixedFvPatchScalarField.H | 35 +++++----- .../regionProperties/regionProperties.H | 6 +- 13 files changed, 186 insertions(+), 94 deletions(-) diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C index 155b08a0f89..80e7e78fbba 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionFoam.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -47,6 +47,7 @@ Description #include "radiationModel.H" #include "fvOptions.H" #include "coordinateSystem.H" +#include "loopControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -89,11 +90,10 @@ int main(int argc, char *argv[]) } } - // --- PIMPLE loop - for (int oCorr=0; oCorr<nOuterCorr; oCorr++) + for (int oCorr=0; oCorr<nOuterCorr; ++oCorr) { - bool finalIter = oCorr == nOuterCorr-1; + const bool finalIter = (oCorr == nOuterCorr-1); forAll(fluidRegions, i) { @@ -113,6 +113,35 @@ int main(int argc, char *argv[]) #include "solveSolid.H" } + // Additional loops for energy solution only + if (!oCorr && nOuterCorr > 1) + { + loopControl looping(runTime, pimple, "energyCoupling"); + + while (looping.loop()) + { + Info<< nl << looping << nl; + + forAll(fluidRegions, i) + { + Info<< "\nSolving for fluid region " + << fluidRegions[i].name() << endl; + #include "setRegionFluidFields.H" + #include "readFluidMultiRegionPIMPLEControls.H" + frozenFlow = true; + #include "solveFluid.H" + } + + forAll(solidRegions, i) + { + Info<< "\nSolving for solid region " + << solidRegions[i].name() << endl; + #include "setRegionSolidFields.H" + #include "readSolidMultiRegionPIMPLEControls.H" + #include "solveSolid.H" + } + } + } } runTime.write(); diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C index ea89befe12b..20aa2d59cd2 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/chtMultiRegionSimpleFoam.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2017 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -42,6 +42,7 @@ Description #include "radiationModel.H" #include "fvOptions.H" #include "coordinateSystem.H" +#include "loopControl.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -57,7 +58,6 @@ int main(int argc, char *argv[]) #include "createFields.H" #include "initContinuityErrs.H" - while (runTime.loop()) { Info<< "Time = " << runTime.timeName() << nl << endl; @@ -80,6 +80,35 @@ int main(int argc, char *argv[]) #include "solveSolid.H" } + // Additional loops for energy solution only + { + loopControl looping(runTime, "SIMPLE", "energyCoupling"); + + while (looping.loop()) + { + Info<< nl << looping << nl; + + forAll(fluidRegions, i) + { + Info<< "\nSolving for fluid region " + << fluidRegions[i].name() << endl; + #include "setRegionFluidFields.H" + #include "readFluidMultiRegionSIMPLEControls.H" + frozenFlow = true; + #include "solveFluid.H" + } + + forAll(solidRegions, i) + { + Info<< "\nSolving for solid region " + << solidRegions[i].name() << endl; + #include "setRegionSolidFields.H" + #include "readSolidMultiRegionSIMPLEControls.H" + #include "solveSolid.H" + } + } + } + runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H index 6cde0ec06bb..119c2ad7ea8 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/fluid/setRegionFluidFields.H @@ -12,6 +12,14 @@ volScalarField& p = thermo.p(); const volScalarField& psi = thermo.psi(); + volScalarField& p_rgh = p_rghFluid[i]; + + const dimensionedVector& g = gFluid[i]; + const volScalarField& gh = ghFluid[i]; + const surfaceScalarField& ghf = ghfFluid[i]; + + radiation::radiationModel& rad = radiation[i]; + IOMRFZoneList& MRF = MRFfluid[i]; fv::options& fvOptions = fluidFvOptions[i]; @@ -22,14 +30,7 @@ initialMassFluid[i] ); - radiation::radiationModel& rad = radiation[i]; + bool frozenFlow = frozenFlowFluid[i]; const label pRefCell = pRefCellFluid[i]; const scalar pRefValue = pRefValueFluid[i]; - const bool frozenFlow = frozenFlowFluid[i]; - - volScalarField& p_rgh = p_rghFluid[i]; - - const dimensionedVector& g = gFluid[i]; - const volScalarField& gh = ghFluid[i]; - const surfaceScalarField& ghf = ghfFluid[i]; diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H index 0600a1c6508..2b6306e5c2d 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/chtMultiRegionSimpleFoam/solid/solveSolid.H @@ -1,5 +1,5 @@ { - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=nNonOrthCorr; ++nonOrth) { fvScalarMatrix hEqn ( @@ -20,9 +20,9 @@ fvOptions.correct(h); } -} -thermo.correct(); + thermo.correct(); -Info<< "Min/max T:" << min(thermo.T()).value() << ' ' - << max(thermo.T()).value() << endl; + Info<< "Min/max T:" << min(thermo.T()).value() << ' ' + << max(thermo.T()).value() << endl; +} diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H index 87e372fcae3..15aba4cb27f 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/createFluidFields.H @@ -19,8 +19,8 @@ List<bool> frozenFlowFluid(fluidRegions.size(), false); PtrList<IOMRFZoneList> MRFfluid(fluidRegions.size()); PtrList<fv::options> fluidFvOptions(fluidRegions.size()); -List<label> refCellFluid(fluidRegions.size()); -List<scalar> refValueFluid(fluidRegions.size()); +List<label> pRefCellFluid(fluidRegions.size()); +List<scalar> pRefValueFluid(fluidRegions.size()); // Populate fluid field pointer lists forAll(fluidRegions, i) @@ -252,8 +252,8 @@ forAll(fluidRegions, i) turbulence[i].validate(); - refCellFluid[i] = 0; - refValueFluid[i] = 0.0; + pRefCellFluid[i] = 0; + pRefValueFluid[i] = 0.0; if (p_rghFluid[i].needReference()) { @@ -262,8 +262,8 @@ forAll(fluidRegions, i) thermoFluid[i].p(), p_rghFluid[i], pimpleDict, - refCellFluid[i], - refValueFluid[i] + pRefCellFluid[i], + pRefValueFluid[i] ); } diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H index 5edd27ac5e5..e725968af3b 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/fluid/setRegionFluidFields.H @@ -32,7 +32,8 @@ initialMassFluid[i] ); - const bool frozenFlow = frozenFlowFluid[i]; + bool frozenFlow = frozenFlowFluid[i]; + + const label pRefCell = pRefCellFluid[i]; + const scalar pRefValue = pRefValueFluid[i]; - const label pRefCell = refCellFluid[i]; - const scalar pRefValue = refValueFluid[i]; diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/createSolidMeshes.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/createSolidMeshes.H index 101d98ebe63..39644ceee7c 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/createSolidMeshes.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/createSolidMeshes.H @@ -1,10 +1,10 @@ - const wordList solidsNames(rp["solid"]); + const wordList solidNames(rp["solid"]); - PtrList<fvMesh> solidRegions(solidsNames.size()); + PtrList<fvMesh> solidRegions(solidNames.size()); - forAll(solidsNames, i) + forAll(solidNames, i) { - Info<< "Create solid mesh for region " << solidsNames[i] + Info<< "Create solid mesh for region " << solidNames[i] << " for time = " << runTime.timeName() << nl << endl; solidRegions.set @@ -14,7 +14,7 @@ ( IOobject ( - solidsNames[i], + solidNames[i], runTime.timeName(), runTime, IOobject::MUST_READ diff --git a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H index 30a670768ff..791e0d64057 100644 --- a/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H +++ b/applications/solvers/heatTransfer/chtMultiRegionFoam/solid/solveSolid.H @@ -4,7 +4,7 @@ if (finalIter) } { - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) + for (int nonOrth=0; nonOrth<=nNonOrthCorr; ++nonOrth) { fvScalarMatrix hEqn ( @@ -26,12 +26,12 @@ if (finalIter) fvOptions.correct(h); } -} -thermo.correct(); + thermo.correct(); -Info<< "Min/max T:" << min(thermo.T()).value() << ' ' - << max(thermo.T()).value() << endl; + Info<< "Min/max T:" << min(thermo.T()).value() << ' ' + << max(thermo.T()).value() << endl; +} if (finalIter) { diff --git a/src/functionObjects/field/externalCoupled/externalCoupled.C b/src/functionObjects/field/externalCoupled/externalCoupled.C index 5d18e58c335..7e702381dc9 100644 --- a/src/functionObjects/field/externalCoupled/externalCoupled.C +++ b/src/functionObjects/field/externalCoupled/externalCoupled.C @@ -127,7 +127,7 @@ void Foam::functionObjects::externalCoupled::readColumns List<scalarField> values(nColumns); // Number of rows to read for processor proci - label procNRows = globalFaces.localSize(proci); + const label procNRows = globalFaces.localSize(proci); forAll(values, columni) { @@ -195,7 +195,7 @@ void Foam::functionObjects::externalCoupled::readLines for (label proci = 0; proci < Pstream::nProcs(); ++proci) { // Number of rows to read for processor proci - label procNRows = globalFaces.localSize(proci); + const label procNRows = globalFaces.localSize(proci); UOPstream toProc(proci, pBufs); @@ -369,19 +369,17 @@ Foam::word Foam::functionObjects::externalCoupled::compositeName return regionNames[0]; } } - else - { - // Enforce lexical ordering - checkOrder(regionNames); - word composite(regionNames[0]); - for (label i = 1; i < regionNames.size(); i++) - { - composite += "_" + regionNames[i]; - } + // Enforce lexical ordering + checkOrder(regionNames); - return composite; + word composite(regionNames[0]); + for (label i = 1; i < regionNames.size(); ++i) + { + composite += "_" + regionNames[i]; } + + return composite; } @@ -418,8 +416,7 @@ void Foam::functionObjects::externalCoupled::initCoupling() UPtrList<const fvMesh> meshes(regionNames.size()); forAll(regionNames, regi) { - const word& regionName = regionNames[regi]; - meshes.set(regi, &time_.lookupObject<fvMesh>(regionName)); + meshes.set(regi, time_.lookupObjectPtr<fvMesh>(regionNames[regi])); } const labelList& groups = regionToGroups_[compName]; @@ -484,6 +481,9 @@ void Foam::functionObjects::externalCoupled::performCoupling() // Signal external source to wait (by creating the lock file) useMaster(); + // Update information about last triggering + lastTrigger_ = time_.timeIndex(); + // Process any abort information sent from slave if ( @@ -491,6 +491,9 @@ void Foam::functionObjects::externalCoupled::performCoupling() && action != Time::stopAtControls::saUnknown ) { + Info<< type() << ": slave requested action " + << Time::stopAtControlNames[action] << endl; + time_.stopAt(action); } } @@ -508,6 +511,8 @@ Foam::functionObjects::externalCoupled::externalCoupled functionObject(name), externalFileCoupler(), time_(runTime), + calcFrequency_(-1), + lastTrigger_(-1), initialisedCoupling_(false) { read(dict); @@ -523,7 +528,12 @@ Foam::functionObjects::externalCoupled::externalCoupled bool Foam::functionObjects::externalCoupled::execute() { - if (!initialisedCoupling_ || time_.timeIndex() % calcFrequency_ == 0) + // Not initialized or overdue + if + ( + !initialisedCoupling_ + || (time_.timeIndex() >= lastTrigger_ + calcFrequency_) + ) { performCoupling(); } @@ -532,6 +542,14 @@ bool Foam::functionObjects::externalCoupled::execute() } +bool Foam::functionObjects::externalCoupled::execute(const label subIndex) +{ + performCoupling(); + + return true; +} + + bool Foam::functionObjects::externalCoupled::end() { functionObject::end(); @@ -552,6 +570,8 @@ bool Foam::functionObjects::externalCoupled::read(const dictionary& dict) calcFrequency_ = dict.lookupOrDefault("calcFrequency", 1); + // Leave trigger intact + // Get names of all fvMeshes (and derived types) wordList allRegionNames(time_.lookupClass<fvMesh>().sortedToc()); @@ -613,21 +633,21 @@ bool Foam::functionObjects::externalCoupled::read(const dictionary& dict) Info<< type() << ": Communicating with regions:" << endl; for (const word& compName : regionGroupNames_) { - Info<< "Region: " << compName << endl << incrIndent; + Info<< "Region: " << compName << nl << incrIndent; const labelList& groups = regionToGroups_[compName]; for (const label groupi : groups) { const wordRe& groupName = groupNames_[groupi]; Info<< indent << "patchGroup: " << groupName << "\t" - << endl + << nl << incrIndent << indent << "Reading fields: " << groupReadFields_[groupi] - << endl + << nl << indent << "Writing fields: " << groupWriteFields_[groupi] - << endl + << nl << decrIndent; } Info<< decrIndent; @@ -671,10 +691,9 @@ void Foam::functionObjects::externalCoupled::readDataMaster() // Get the meshes for the region-group UPtrList<const fvMesh> meshes(regionNames.size()); - forAll(regionNames, j) + forAll(regionNames, regi) { - const word& regionName = regionNames[j]; - meshes.set(j, &time_.lookupObject<fvMesh>(regionName)); + meshes.set(regi, time_.lookupObjectPtr<fvMesh>(regionNames[regi])); } const labelList& groups = regionToGroups_[compName]; @@ -716,10 +735,9 @@ void Foam::functionObjects::externalCoupled::writeDataMaster() const // Get the meshes for the region-group UPtrList<const fvMesh> meshes(regionNames.size()); - forAll(regionNames, j) + forAll(regionNames, regi) { - const word& regionName = regionNames[j]; - meshes.set(j, &time_.lookupObject<fvMesh>(regionName)); + meshes.set(regi, time_.lookupObjectPtr<fvMesh>(regionNames[regi])); } const labelList& groups = regionToGroups_[compName]; diff --git a/src/functionObjects/field/externalCoupled/externalCoupled.H b/src/functionObjects/field/externalCoupled/externalCoupled.H index 516d7c4d520..1d8a0834f3a 100644 --- a/src/functionObjects/field/externalCoupled/externalCoupled.H +++ b/src/functionObjects/field/externalCoupled/externalCoupled.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2015-2016 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2015-2017 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -29,9 +29,10 @@ Group Description This functionObject provides a simple interface for explicit coupling with - an external application. The coupling is through plain text files - where OpenFOAM boundary data is read/written as one line per face - (data from all processors collated): + an external application. + + The coupling is through plain text files where OpenFOAM boundary data + is read/written as one line per face (data from all processors collated): \verbatim # Patch: <patch name> <fld1> <fld2> .. <fldn> //face0 @@ -167,7 +168,7 @@ namespace functionObjects { /*---------------------------------------------------------------------------*\ - Class externalCoupled Declaration + Class functionObjects::externalCoupled Declaration \*---------------------------------------------------------------------------*/ class externalCoupled @@ -200,6 +201,9 @@ private: //- Calculation frequency label calcFrequency_; + //- The last timeIndex when coupling was triggered + label lastTrigger_; + //- Names of (composite) regions DynamicList<word> regionGroupNames_; @@ -232,7 +236,6 @@ private: const wordRe& groupName ); - //- Read data for a single region, single field template<class Type> bool readData @@ -326,6 +329,9 @@ public: //- Called at each ++ or += of the time-loop virtual bool execute(); + //- Manual execute (sub-loop or when converged) + virtual bool execute(const label subIndex); + //- Called when Time::run() determines that the time-loop exits virtual bool end(); diff --git a/src/functionObjects/field/externalCoupled/externalCoupledMixed/externalCoupledMixedFvPatchField.H b/src/functionObjects/field/externalCoupled/externalCoupledMixed/externalCoupledMixedFvPatchField.H index bb5db25f61f..07539e1a311 100644 --- a/src/functionObjects/field/externalCoupled/externalCoupledMixed/externalCoupledMixedFvPatchField.H +++ b/src/functionObjects/field/externalCoupled/externalCoupledMixed/externalCoupledMixedFvPatchField.H @@ -28,18 +28,23 @@ Group grpGenericBoundaryConditions grpCoupledBoundaryConditions Description - This boundary condition extends the mixed boundary condition with - serialisation through + Extends the mixed boundary condition with serialisation functions. + + The serialisation functions: + - writeHeader - writeData - readData - functions. It is used for coupling to external applications in combination + + It is used for coupling to external applications in combination with the externalCoupled functionObject. The default output is one line per face, with columns - <value> <snGrad> <refValue> <refGrad> <valueFraction> + \verbatim + <value> <snGrad> <refValue> <refGrad> <valueFraction> + \endverbatim -Notes - readData,writeData are not callbacks for regIOobject (since fvPatchField +Note + readData, writeData are not callbacks for regIOobject (since fvPatchField not derived from it). They do however do exactly the same - streaming of data. diff --git a/src/functionObjects/field/externalCoupled/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.H b/src/functionObjects/field/externalCoupled/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.H index 0a9f39bd2f2..34040790571 100644 --- a/src/functionObjects/field/externalCoupled/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.H +++ b/src/functionObjects/field/externalCoupled/externalCoupledTemperatureMixed/externalCoupledTemperatureMixedFvPatchScalarField.H @@ -29,33 +29,35 @@ Group Description This boundary condition provides a temperatue interface to an external - application. Values are transferred as plain text files, where OpenFOAM - data is written as: + application. + + Values are transferred as plain text files, where OpenFOAM data are + written as follows: \verbatim - # Patch: \<patch name\> - \<magSf1\> \<value1\> \<qDot1\> \<htc1\> - \<magSf2\> \<value2\> \<qDot2\> \<htc2\> - \<magSf3\> \<value3\> \<qDot3\> \<htc2\> + # Patch: <patch name> + <magSf1> <value1> <qDot1> <htc1> + <magSf2> <value2> <qDot2> <htc2> + <magSf3> <value3> <qDot3> <htc2> ... - \<magSfN\> \<valueN\> \<qDotN\> \<htcN\> + <magSfN> <valueN> <qDotN> <htcN> \endverbatim and received as the constituent pieces of the `mixed' condition, i.e. \verbatim - # Patch: \<patch name\> - \<value1\> \<gradient1\> \<valueFracion1\> - \<value2\> \<gradient2\> \<valueFracion2\> - \<value3\> \<gradient3\> \<valueFracion3\> + # Patch: <patch name> + <value1> <gradient1> <valueFracion1> + <value2> <gradient2> <valueFracion2> + <value3> <gradient3> <valueFracion3> ... - \<valueN\> \<gradientN\> \<valueFracionN\> + <valueN> <gradientN> <valueFracionN> \endverbatim Data is sent/received as a single file for all patches from the directory \verbatim - $FOAM_CASE/\<commsDir\> + $FOAM_CASE/<commsDir> \endverbatim At start-up, the boundary creates a lock file, i.e.. @@ -68,7 +70,7 @@ Description update, boundary values are written to file, e.g. \verbatim - \<fileName\>.out + <fileName>.out \endverbatim The lock file is then removed, instructing the external source to take @@ -76,13 +78,14 @@ Description should create the return values, e.g. to file \verbatim - \<fileName\>.in + <fileName>.in \endverbatim ... and then re-instate the lock file. The boundary condition will then read the return values, and pass program execution back to OpenFOAM. - To be used in combination with the externalCoupled functionObject. + To be used in combination with the functionObjects::externalCoupled + functionObject. SeeAlso externalCoupledFunctionObject diff --git a/src/regionModels/regionModel/regionProperties/regionProperties.H b/src/regionModels/regionModel/regionProperties/regionProperties.H index 937285ace43..54e703344c8 100644 --- a/src/regionModels/regionModel/regionProperties/regionProperties.H +++ b/src/regionModels/regionModel/regionProperties/regionProperties.H @@ -28,7 +28,7 @@ Description Simple class to hold region information for coupled region simulations. Gives per physics ('fluid', 'solid') the names of the regions. There - is no assumption on this level that one region should only have one + is no assumption on this level that a region should only have a single set of physics. SourceFiles @@ -57,10 +57,10 @@ class regionProperties { //- Disallow default bitwise copy construct - regionProperties(const regionProperties&); + regionProperties(const regionProperties&) = delete; //- Disallow default bitwise assignment - void operator=(const regionProperties&); + void operator=(const regionProperties&) = delete; public: -- GitLab