Go to the documentation of this file.
170 #ifndef functionObjects_externalCoupled_H
171 #define functionObjects_externalCoupled_H
189 namespace functionObjects
196 class externalCoupled
198 public functionObjects::timeFunctionObject,
199 public externalFileCoupler
205 label calcFrequency_;
211 DynamicList<word> regionGroupNames_;
214 DynamicList<wordList> regionGroupRegions_;
217 HashTable<labelList> regionToGroups_;
220 DynamicList<wordRe> groupNames_;
223 DynamicList<wordList> groupReadFields_;
226 DynamicList<wordList> groupWriteFields_;
229 bool initialisedCoupling_;
235 static fileName groupDir
237 const fileName& commsDir,
238 const word& regionsName,
239 const wordRe& groupName
246 const UPtrList<const fvMesh>&
meshes,
247 const wordRe& groupName,
248 const word& fieldName
255 const UPtrList<const fvMesh>&
meshes,
256 const wordRe& groupName,
269 const label nColumns,
292 void performCoupling();
336 virtual bool execute(
const label subIndex);
345 virtual bool write();
void operator=(const externalCoupled &)=delete
No copy assignment.
virtual void readDataMaster()
Read data files (all regions, all fields) on master (OpenFOAM)
virtual bool read(const dictionary &dict)
Read and set the function object if its data have changed.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
A class for handling words, derived from Foam::string.
A class for handling file names.
A class for managing temporary objects.
Virtual base class for function objects with a reference to Time.
Provides a simple file-based communication interface for explicit coupling with an external applicati...
virtual ~externalCoupled()=default
Destructor.
A wordRe is a Foam::word, but can contain a regular expression for matching words or strings.
Generic templated field type.
Foam::PtrList< Foam::fvMesh > meshes(regionNames.size())
A list of pointers to objects of type <T>, without allocation/deallocation management of the pointers...
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
virtual bool end()
Called when Time::run() determines that the time-loop exits.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
virtual void removeDataMaster() const
Remove data files written by master (OpenFOAM)
virtual void writeDataMaster() const
Write data files (all regions, all fields) from master (OpenFOAM)
static string patchKey
Name of patch key, e.g. '// Patch:' when looking for start of patch data.
A HashTable similar to std::unordered_map.
virtual void removeDataSlave() const
Remove data files written by slave (external code)
virtual bool write()
Write, currently a no-op.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Encapsulates the logic for coordinating between OpenFOAM and an external application.
virtual bool execute()
Called at each ++ or += of the time-loop.
const word & name() const noexcept
Return the name of this functionObject.
TypeName("externalCoupled")
Runtime type information.
Output to string buffer, using a OSstream. Always UNCOMPRESSED.
externalCoupled(const word &name, const Time &runTime, const dictionary &dict)
Construct given time and dictionary.
static void writeGeometry(const UPtrList< const fvMesh > &meshes, const fileName &commsDir, const wordRe &groupName)
Write geometry for the group as region/patch.
static word compositeName(const wordList &)
bool log
Flag to write log into Info.
Database for solution data, solver performance and other reduced data.