38namespace functionObjects
49Foam::functionObjects::electricPotential::operandField()
51 if (!foundObject<volScalarField>(fieldName_))
65 store(fieldName_, tfldPtr);
68 return lookupObjectRef<volScalarField>(fieldName_);
73Foam::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];
113Foam::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];
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
259 phaseNames_[
phasei] = key;
275 if (writeDerivedFields_)
321 for (label i = 1; i <= nCorr_; ++i)
347 if (writeDerivedFields_)
355 mesh_.time().timeName(),
378 mesh_.time().timeName(),
401 mesh_.time().timeName(),
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
void correctBoundaryConditions()
Correct boundary field.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & name() const noexcept
Return the object name.
static word scopedName(const std::string &scope, const word &name)
Create scope:name or scope_name string.
static MinMax< scalar > ge(const scalar &minVal)
A semi-infinite range from minVal to the type max.
virtual bool write(const token &tok)=0
Write token to stream or otherwise handle it.
virtual bool read()
Re-read model coefficients if they have changed.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
static word timeName(const scalar t, const int precision=precision_)
This boundary condition is not designed to be evaluated; it is assmued that the value is assigned via...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
T getCheck(const word &keyword, const Predicate &pred, enum keyType::option matchOpt=keyType::REGEX) const
A keyword and a list of tokens is an 'entry'.
Abstract base-class for Time/database function objects.
Computes the steady-state equation of charge conservation to obtain the electric potential by strictl...
virtual bool read(const dictionary &dict)
Read the function object data.
virtual bool execute()
Calculate the function object.
virtual bool write()
Write the function object output.
Specialization of Foam::functionObject for an Foam::fvMesh, providing a reference to the Foam::fvMesh...
const fvMesh & mesh_
Reference to the fvMesh.
bool store(word &fieldName, const tmp< ObjectType > &tfield, bool cacheable=false)
Store the field in the (sub) objectRegistry under the given name.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
void relax(const scalar alpha)
Relax matrix (for steady-state solution).
SolverPerformance< Type > solve(const dictionary &)
Solve returning the solution statistics.
const Time & time() const
Return the top-level database.
virtual bool write(const bool valid=true) const
Write using setting from DB.
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.
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
const dimensionedScalar epsilon0
Electric constant: default SI units: [F/m].
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh > > grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
const dimensionSet dimless
Dimensionless.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
dimensionedScalar pow3(const dimensionedScalar &ds)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const dimensionSet dimCurrent(0, 0, 0, 0, 0, 1, 0)
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensionedScalar pow4(const dimensionedScalar &ds)
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
errorManipArg< error, int > exit(error &err, const int errNo=1)
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
constexpr char nl
The newline '\n' character (0x0a)
constexpr char tab
The tab '\t' character(0x09)
#define forAll(list, i)
Loop across all elements in list.
static const char *const typeName
The type name used in ensight case files.