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>
222 writeDerivedFields_(false),
223 electricField_(false)
234 auto* ptr = getObjectPtr<volVectorField>(Ename_);
250 mesh_.objectRegistry::store(ptr);
267 dict.readIfPresent(
"sigma", sigma_);
268 dict.readIfPresent(
"epsilonr", epsilonr_);
269 dict.readIfPresent(
"nCorr", nCorr_);
270 dict.readIfPresent(
"writeDerivedFields", writeDerivedFields_);
271 dict.readIfPresent(
"electricField", electricField_);
274 if (!phasesDict_.empty())
276 phaseNames_.setSize(phasesDict_.size());
277 phases_.setSize(phasesDict_.size());
278 sigmas_.setSize(phasesDict_.size());
280 if (writeDerivedFields_)
282 epsilonrs_.setSize(phasesDict_.size());
286 for (
const entry& dEntry : phasesDict_)
288 const word&
key = dEntry.keyword();
290 if (!dEntry.isDict())
293 <<
"Entry " <<
key <<
" is not a dictionary" <<
nl 307 subDict.getCheck<scalar>
315 if (writeDerivedFields_)
323 subDict.getCheck<scalar>
345 if (
const dictionary* dictptr =
dict.findDict(
"fvOptions"))
347 fvOptions_.reset(*dictptr);
359 const auto&
sigma = tsigma();
363 for (
int i = 1; i <= nCorr_; ++i)
372 fvOptions_.constrain(eVEqn);
379 auto& E = lookupObjectRef<volVectorField>(Ename_);
399 const auto& E = lookupObject<volVectorField>(Ename_);
406 if (writeDerivedFields_)
416 mesh_.time().timeName(),
439 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)
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 expressions::valueTypeCode::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.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
virtual bool execute()
Calculate the function object.
SolverPerformance< Type > solve(const dictionary &)
Solve returning the solution statistics.
static word timeName(const scalar t, const int precision=precision_)
Return a time name for the given scalar time value formatted with the given precision.
addToRunTimeSelectionTable(functionObject, ObukhovLength, dictionary)
void relax(const scalar alpha)
Relax matrix (for steady-state solution).
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 ...