Computes the steady-state equation of charge conservation to obtain the electric potential by strictly assuming a quasi-static electrostatic field for single-phase and multiphase applications. More...
Public Member Functions | |
TypeName ("electricPotential") | |
electricPotential (const word &name, const Time &runTime, const dictionary &dict) | |
virtual | ~electricPotential ()=default |
virtual bool | read (const dictionary &dict) |
virtual bool | execute () |
virtual bool | write () |
![]() | |
TypeName ("fvMeshFunctionObject") | |
fvMeshFunctionObject (const word &name, const Time &runTime, const dictionary &dict) | |
fvMeshFunctionObject (const word &name, const objectRegistry &obr, const dictionary &dict) | |
virtual | ~fvMeshFunctionObject ()=default |
![]() | |
TypeName ("regionFunctionObject") | |
regionFunctionObject (const word &name, const Time &runTime, const dictionary &dict) | |
regionFunctionObject (const word &name, const objectRegistry &obr, const dictionary &dict) | |
virtual | ~regionFunctionObject ()=default |
template<class ObjectType > | |
const ObjectType * | lookupObjectPtr (const word &fieldName) const |
template<class ObjectType > | |
ObjectType * | lookupObjectRefPtr (const word &fieldName) const |
![]() | |
stateFunctionObject (const word &name, const Time &runTime) | |
virtual | ~stateFunctionObject ()=default |
dictionary & | propertyDict () |
bool | foundProperty (const word &entryName) const |
void | clearTrigger () |
label | getTrigger () const |
bool | setTrigger (const label triggeri, bool increaseOnly=true) |
bool | getDict (const word &entryName, dictionary &dict) const |
bool | getObjectDict (const word &objectName, const word &entryName, dictionary &dict) const |
template<class Type > | |
Type | getProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const |
template<class Type > | |
bool | getProperty (const word &entryName, Type &value) const |
template<class Type > | |
void | setProperty (const word &entryName, const Type &value) |
template<class Type > | |
Type | getObjectProperty (const word &objectName, const word &entryName, const Type &defaultValue=Type(Zero)) const |
template<class Type > | |
bool | getObjectProperty (const word &objectName, const word &entryName, Type &value) const |
template<class Type > | |
void | setObjectProperty (const word &objectName, const word &entryName, const Type &value) |
template<class Type > | |
void | setResult (const word &entryName, const Type &value) |
template<class Type > | |
void | setObjectResult (const word &objectName, const word &entryName, const Type &value) |
template<class Type > | |
Type | getResult (const word &entryName, const Type &defaultValue=Type(Zero)) const |
template<class Type > | |
Type | getObjectResult (const word &objectName, const word &entryName, const Type &defaultValue=Type(Zero)) const |
template<class Type > | |
bool | getObjectResult (const word &objectName, const word &entryName, Type &value) const |
word | resultType (const word &entryName) const |
word | objectResultType (const word &objectName, const word &entryName) const |
wordList | objectResultEntries () const |
wordList | objectResultEntries (const word &objectName) const |
void | writeResultEntries (Ostream &os) const |
void | writeResultEntries (const word &objectName, Ostream &os) const |
void | writeAllResultEntries (Ostream &os) const |
![]() | |
timeFunctionObject (const word &name, const Time &runTime) | |
virtual | ~timeFunctionObject ()=default |
const Time & | time () const |
objectRegistry & | storedObjects () |
const objectRegistry & | storedObjects () const |
![]() | |
declareRunTimeSelectionTable (autoPtr, functionObject, dictionary,(const word &name, const Time &runTime, const dictionary &dict),(name, runTime, dict)) | |
functionObject (const word &name, const bool withNamePrefix=defaultUseNamePrefix) | |
autoPtr< functionObject > | clone () const |
virtual | ~functionObject ()=default |
virtual const word & | type () const =0 |
const word & | name () const noexcept |
bool | useNamePrefix () const noexcept |
bool | useNamePrefix (bool on) noexcept |
virtual bool | execute (const label subIndex) |
virtual bool | end () |
virtual bool | adjustTimeStep () |
virtual bool | filesModified () const |
virtual void | updateMesh (const mapPolyMesh &mpm) |
virtual void | movePoints (const polyMesh &mesh) |
Additional Inherited Members | |
![]() | |
static autoPtr< functionObject > | New (const word &name, const Time &runTime, const dictionary &dict) |
![]() | |
bool | log |
![]() | |
static int | debug |
static bool | postProcess |
static bool | defaultUseNamePrefix |
static word | outputPrefix |
![]() | |
fvMeshFunctionObject (const fvMeshFunctionObject &)=delete | |
void | operator= (const fvMeshFunctionObject &)=delete |
![]() | |
virtual const objectRegistry & | obr () const |
template<class ObjectType > | |
bool | foundObject (const word &fieldName) const |
template<class ObjectType > | |
const ObjectType * | cfindObject (const word &fieldName) const |
template<class ObjectType > | |
const ObjectType * | findObject (const word &fieldName) const |
template<class ObjectType > | |
ObjectType * | findObject (const word &fieldName) |
template<class ObjectType > | |
ObjectType * | getObjectPtr (const word &fieldName) const |
template<class ObjectType > | |
const ObjectType & | lookupObject (const word &fieldName) const |
template<class ObjectType > | |
ObjectType & | lookupObjectRef (const word &fieldName) const |
template<class ObjectType > | |
bool | store (word &fieldName, const tmp< ObjectType > &tfield, bool cacheable=false) |
template<class ObjectType > | |
bool | storeInDb (const word &fieldName, const tmp< ObjectType > &tfield, const objectRegistry &obr) |
bool | writeObject (const word &fieldName) |
bool | clearObject (const word &fieldName) |
void | clearObjects (const wordList &objNames) |
regionFunctionObject (const regionFunctionObject &)=delete | |
void | operator= (const regionFunctionObject &)=delete |
![]() | |
const functionObjects::properties & | stateDict () const |
functionObjects::properties & | stateDict () |
stateFunctionObject (const stateFunctionObject &)=delete | |
void | operator= (const stateFunctionObject &)=delete |
![]() | |
void | clearOutputObjects (const wordList &objNames) |
timeFunctionObject (const timeFunctionObject &)=delete | |
void | operator= (const timeFunctionObject &)=delete |
![]() | |
word | scopedName (const word &name) const |
![]() | |
const fvMesh & | mesh_ |
![]() | |
word | subRegistryName_ |
const objectRegistry & | obr_ |
const objectRegistry * | obrPtr_ |
![]() | |
const Time & | time_ |
Computes the steady-state equation of charge conservation to obtain the electric potential by strictly assuming a quasi-static electrostatic field for single-phase and multiphase applications.
The steady-state equation of the charge conservation:
where
![]() | = | Electric potential [volt = kg m^2/(A s^3)] |
![]() | = | Isotropic conductivity of mixture [S/m = A^2 s^3/(kg m^3)] |
Optionally, electric field, current density and free-charge density fields can be written out by using the following equations:
where
![]() | = | Electric field [m kg/(s^3 A)] |
![]() | = | Current density [A/m^2] |
![]() | = | Volume charge density [C/m^3 = A s/m^3] |
![]() | = | Isotropic permittivity of mixture [F/m = A^2 s^4/(kg m^3)] |
![]() | = | Isotropic vacuum permittivity [F/m = A^2 s^4/(kg m^3)] |
![]() | = | Isotropic relative permittivity of mixture [-] |
For multiphase applications, sigma
and epsilonr
are blended (to consider their interface values) by using the simple weighted arithmetic mean interpolation, for example:
system/controlDict.functions
: electricPotential1 { // Mandatory entries type electricPotential; libs (solverFunctionObjects); // Conditional entries // Option-1: single-phase sigma <scalar>; epsilonr <scalar>; // Option-2: multiphase phases { alpha.air { sigma <scalar>; epsilonr <scalar>; } alpha.water { sigma <scalar>; epsilonr <scalar>; } alpha.mercury { sigma <scalar>; epsilonr <scalar>; } ... } // Optional entries nCorr <label>; writeDerivedFields <bool>; fieldName <word>; // Inherited entries ... }
where the entries mean:
Property | Description | Type | Reqd | Deflt |
---|---|---|---|---|
type | Type name: electricPotential | word | yes | - |
libs | Library name: solverFunctionObjects | word | yes | - |
sigma | Isotropic electrical conductivity of phase | scalar | yes | - |
epsilonr | Isotropic relative permittivity of phase | scalar | no | - |
nCorr | Number of corrector iterations | label | no | 1 |
writeDerivedFields | Flag to write extra fields | bool | no | false |
fieldName | Name of operand field | word | no | electricPotential:V |
The inherited entries are elaborated in:
Fields written out when the writeDerivedFields
entry is true:
Operand | Type | Location |
---|---|---|
Electric field | volVectorField | <time>/electricPotential:E |
Current density | volVectorField | <time>/electricPotential:J |
Charge density | volScalarField | <time>/electricPotential:rho |
Definition at line 266 of file electricPotential.H.
electricPotential | ( | const word & | name, |
const Time & | runTime, | ||
const dictionary & | dict | ||
) |
Definition at line 155 of file electricPotential.C.
References GeometricField::correctBoundaryConditions(), dict, and Foam::read().
|
virtualdefault |
TypeName | ( | "electricPotential" | ) |
|
virtual |
Reimplemented from regionFunctionObject.
Definition at line 215 of file electricPotential.C.
References dict, Foam::dimCurrent, Foam::dimLength, Foam::dimless, Foam::dimMass, Foam::dimTime, Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, forAll, MinMax::ge(), dictionary::getCheck(), Foam::glTF::key(), Log, Foam::name(), Foam::nl, phasei, Foam::pow3(), regionFunctionObject::read(), Foam::sqr(), and Foam::type().
|
virtual |
Implements functionObject.
Definition at line 305 of file electricPotential.C.
References Foam::endl(), Foam::fvm::laplacian(), Log, Foam::name(), fvMatrix::relax(), sigma(), fvMatrix::solve(), and Foam::type().
|
virtual |
Implements functionObject.
Definition at line 332 of file electricPotential.C.
References Foam::fvc::div(), Foam::endl(), Foam::fvc::grad(), Log, Foam::name(), tmp::New(), Foam::nl, IOobject::NO_READ, IOobject::NO_WRITE, IOobject::scopedName(), sigma(), Foam::tab, Foam::type(), and Ostream::write().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.