38 namespace functionObjects
49 Foam::functionObjects::electricPotential::operandField()
51 if (!foundObject<volScalarField>(fieldName_))
65 store(fieldName_, tfldPtr);
68 return lookupObjectRef<volScalarField>(fieldName_);
73 Foam::functionObjects::electricPotential::sigma()
const 75 const IOobject sigmaIO
78 mesh_.time().timeName(),
87 tmp<volScalarField> tsigma = phases_[0]*sigmas_[0];
89 for (label i = 1; i < phases_.size(); ++i)
91 tsigma.ref() += phases_[i]*sigmas_[i];
113 Foam::functionObjects::electricPotential::epsilonm()
const 122 const IOobject epsilonrIO
125 mesh_.time().timeName(),
134 tmp<volScalarField> tepsilonr = phases_[0]*epsilonrs_[0];
136 for (label i = 1; i < phases_.size(); ++i)
138 tepsilonr.ref() += phases_[i]*epsilonrs_[i];
161 Foam::functionObjects::electricPotential::electricPotential
169 phasesDict_(
dict.subOrEmptyDict(
"phases")),
178 dict.getCheckOrDefault<scalar>
192 dict.getCheckOrDefault<scalar>
209 writeDerivedFields_(false)
228 dict.readIfPresent(
"sigma", sigma_);
229 dict.readIfPresent(
"epsilonr", epsilonr_);
230 dict.readIfPresent(
"nCorr", nCorr_);
231 dict.readIfPresent(
"writeDerivedFields", writeDerivedFields_);
234 if (!phasesDict_.empty())
236 phaseNames_.setSize(phasesDict_.size());
237 phases_.setSize(phasesDict_.size());
238 sigmas_.setSize(phasesDict_.size());
240 if (writeDerivedFields_)
242 epsilonrs_.setSize(phasesDict_.size());
246 for (
const entry& dEntry : phasesDict_)
248 const word&
key = dEntry.keyword();
250 if (!dEntry.isDict())
253 <<
"Entry " <<
key <<
" is not a dictionary" <<
nl 257 const dictionary& subDict = dEntry.dict();
267 subDict.getCheck<scalar>
275 if (writeDerivedFields_)
283 subDict.getCheck<scalar>
321 for (label i = 1; i <= nCorr_; ++i)
347 if (writeDerivedFields_)
355 mesh_.time().timeName(),
378 mesh_.time().timeName(),
401 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.
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
static const char *const typeName
Typename for Field.
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.
bool store(word &fieldName, const tmp< ObjectType > &tfield, bool cacheable=false)
Store the field in the (sub) objectRegistry under the given name.
static MinMax< scalar > ge(const scalar &minVal)
A semi-infinite range from minVal to the type max.
This boundary condition is not designed to be evaluated; it is assmued that the value is assigned via...
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 time name of given scalar time 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)
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.
virtual bool write(const bool valid=true) const
Write using setting from DB.
Defines the attributes of an object for which implicit objectRegistry management is supported...
const fvMesh & mesh_
Reference to the fvMesh.
A keyword and a list of tokens is an 'entry'.
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...