58 return "points0MotionSolver " +
name();
64 redirectMotionSolverPtr_.reset(
nullptr);
93 <<
"compile " << name_ <<
" sha1: " << context.
sha1() <<
endl;
100 "-I$(LIB_SRC)/finiteVolume/lnInclude \\\n"
101 "-I$(LIB_SRC)/meshTools/lnInclude \\\n"
102 "-I$(LIB_SRC)/dynamicMesh/lnInclude \\\n"
103 "-I$(LIB_SRC)/fvMotionSolvers/lnInclude \\\n"
105 +
"\n\nLIB_LIBS = \\\n"
106 " -lfiniteVolume \\\n"
108 " -ldynamicMesh \\\n"
109 " -lfvMotionSolvers \\\n"
125 name_(
dict.getCompat<
word>(
"name", {{
"redirectType", 1706}})),
126 redirectMotionSolverPtr_(
nullptr)
128 updateLibrary(name_);
129 redirectMotionSolver();
138 if (!redirectMotionSolverPtr_)
144 constructDict.
set(
"solver", name_);
145 constructDict.
set(
"motionSolver", name_);
157 return *redirectMotionSolverPtr_;
163 updateLibrary(name_);
164 return redirectMotionSolver().curPoints();
170 updateLibrary(name_);
171 redirectMotionSolver().solve();
177 updateLibrary(name_);
178 return redirectMotionSolver().movePoints(
fld);
184 updateLibrary(name_);
185 return redirectMotionSolver().updateMesh(mpm);
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
Info<< nl<< "Wrote faMesh in vtk format: "<< writer.output().name()<< nl;}{ vtk::lineWriter writer(aMesh.points(), aMesh.edges(), fileName(aMesh.mesh().time().globalPath()/"finiteArea-edges"));writer.writeGeometry();writer.beginCellData(4);writer.writeProcIDs();{ Field< scalar > fld(faMeshTools::flattenEdgeField(aMesh.magLe(), true))
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
readOption readOpt() const noexcept
The read option.
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
dlLibraryTable & libs() const
Mutable access to the loaded dynamic libraries.
Base class for function objects and boundary conditions using dynamic code that provides methods for ...
Provides a general interface to enable dynamic code compilation of mesh motion solvers.
virtual tmp< pointField > curPoints() const
Return point location obtained from the current motion field.
virtual void prepare(dynamicCode &, const dynamicCodeContext &) const
Adapt the context for the current object.
motionSolver & redirectMotionSolver() const
Dynamically compiled motionSolver.
virtual const dictionary & codeDict() const
virtual void clearRedirect() const
Clear redirected object(s)
virtual dlLibraryTable & libs() const
Mutable access to the loaded dynamic libraries.
virtual void solve()
Solve for motion.
virtual string description() const
Description (type + name) for the output.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
entry * set(entry *entryPtr)
Assign a new entry, overwriting any existing entry.
A table of dynamically loaded libraries.
Encapsulation of dynamic code dictionaries.
const string & libs() const noexcept
The code libs (LIB_LIBS)
const SHA1 & sha1() const noexcept
The SHA1 calculated from options, libs, include, code, etc.
const string & options() const noexcept
The code options (Make/options)
Tools for handling dynamic code compilation.
void addCopyFile(const fileName &name)
Add a file template name, which will be found and filtered.
void setFilterVariable(const word &key, const std::string &value)
Define a filter variable.
void addCompileFile(const fileName &name)
Add a file template name, which will be found and filtered.
void setMakeOptions(const std::string &content)
Define contents for Make/options.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
void movePoints()
Update for new mesh geometry.
void updateMesh()
Update for new mesh topology.
Virtual base class for mesh motion solver.
const polyMesh & mesh() const
Return reference to mesh.
const dictionary & coeffDict() const
Const access to the coefficients dictionary.
const Time & time() const noexcept
Return time registry.
Mesh consisting of general polyhedral cells.
A class for handling character strings derived from std::string.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, false)
Ostream & endl(Ostream &os)
Add newline and flush stream.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.