37 namespace functionObjects
69 mesh_.objectRegistry::store(ptr);
77 Foam::functionObjects::electricPotential::sigma()
const 79 const IOobject sigmaIO
82 mesh_.time().timeName(),
91 tmp<volScalarField> tsigma = phases_[0]*sigmas_[0];
93 for (label i = 1; i < phases_.size(); ++i)
95 tsigma.ref() += phases_[i]*sigmas_[i];
117 Foam::functionObjects::electricPotential::epsilonm()
const 126 const IOobject epsilonrIO
129 mesh_.time().timeName(),
138 tmp<volScalarField> tepsilonr = phases_[0]*epsilonrs_[0];
140 for (label i = 1; i < phases_.size(); ++i)
142 tepsilonr.ref() += phases_[i]*epsilonrs_[i];
165 Foam::functionObjects::electricPotential::electricPotential
173 phasesDict_(
dict.subOrEmptyDict(
"phases")),
182 dict.getCheckOrDefault<scalar>
196 dict.getCheckOrDefault<scalar>
221 writeDerivedFields_(false),
222 electricField_(false)
233 auto* ptr = getObjectPtr<volVectorField>(Ename_);
249 mesh_.objectRegistry::store(ptr);
266 dict.readIfPresent(
"sigma", sigma_);
267 dict.readIfPresent(
"epsilonr", epsilonr_);
268 dict.readIfPresent(
"nCorr", nCorr_);
269 dict.readIfPresent(
"writeDerivedFields", writeDerivedFields_);
270 dict.readIfPresent(
"electricField", electricField_);
273 if (!phasesDict_.empty())
275 phaseNames_.setSize(phasesDict_.size());
276 phases_.setSize(phasesDict_.size());
277 sigmas_.setSize(phasesDict_.size());
279 if (writeDerivedFields_)
281 epsilonrs_.setSize(phasesDict_.size());
285 for (
const entry& dEntry : phasesDict_)
287 const word&
key = dEntry.keyword();
289 if (!dEntry.isDict())
292 <<
"Entry " <<
key <<
" is not a dictionary" <<
nl 296 const dictionary& subDict = dEntry.dict();
306 subDict.getCheck<scalar>
314 if (writeDerivedFields_)
322 subDict.getCheck<scalar>
352 tmp<volScalarField> tsigma = this->
sigma();
353 const auto&
sigma = tsigma();
357 for (
int i = 1; i <= nCorr_; ++i)
371 auto& E = lookupObjectRef<volVectorField>(Ename_);
391 const auto& E = lookupObject<volVectorField>(Ename_);
398 if (writeDerivedFields_)
408 mesh_.time().timeName(),
431 mesh_.time().timeName(),
virtual bool write()
Write the function object output.
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh >> grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
defineTypeNameAndDebug(ObukhovLength, 0)
fvMatrix< scalar > fvScalarMatrix
errorManipArg< error, int > exit(error &err, const int errNo=1)
A list of keyword definitions, which are a keyword followed by a number of values (eg...
dimensionedSymmTensor sqr(const dimensionedVector &dv)
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
constexpr char nl
The newline '\n' character (0x0a)
Ostream & endl(Ostream &os)
Add newline and flush stream.
constexpr char tab
The tab '\t' character(0x09)
Ignore writing from objectRegistry::writeObject()
const dimensionSet dimless
Dimensionless.
const Time & time() const
Return the top-level database.
GeometricField< vector, fvPatchField, volMesh > volVectorField
const dimensionedScalar epsilon0
Electric constant: default SI units: [F/m].
dimensionedScalar sigma("sigma", dimMass/sqr(dimTime), transportProperties)
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
Macros for easy insertion into run-time selection tables.
virtual bool read(const dictionary &dict)
Read the function object data.
#define forAll(list, i)
Loop across all elements in list.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
static word scopedName(const std::string &scope, const word &name)
Create scope:name or scope_name string.
const dimensionedScalar e
Elementary charge.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
A class for handling words, derived from Foam::string.
Type * getObjectPtr(const word &name, const bool recursive=false) const
Return non-const pointer to the object of the given Type, using a const-cast to have it behave like a...
static MinMax< scalar > ge(const scalar &minVal)
A semi-infinite range from minVal to the type max.
virtual bool write(const bool writeOnProc=true) const
Write using setting from DB.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
virtual bool write(const token &tok)=0
Write token to stream or otherwise handle it.
virtual bool execute()
Calculate the function object.
static word timeName(const scalar t, const int precision=precision_)
Return time name of given scalar time formatted with the given precision.
addToRunTimeSelectionTable(functionObject, ObukhovLength, dictionary)
dimensionedScalar pow3(const dimensionedScalar &ds)
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
auto key(const Type &t) -> typename std::enable_if< std::is_enum< Type >::value, typename std::underlying_type< Type >::type >::type
const dimensionSet dimCurrent(0, 0, 0, 0, 0, 1, 0)
dimensionedScalar pow4(const dimensionedScalar &ds)
static const word & calculatedType() noexcept
The type name for calculated patch fields.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
void correctBoundaryConditions()
Correct boundary field.
virtual bool read(const dictionary &dict)
Read optional controls.
Specialization of Foam::functionObject for an Foam::fvMesh, providing a reference to the Foam::fvMesh...
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
A class for managing temporary objects.
Defines the attributes of an object for which implicit objectRegistry management is supported...
Request registration (bool: true)
const fvMesh & mesh_
Reference to the fvMesh.
Do not request registration (bool: false)
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...