jouleHeatingSource Class Reference

Evolves an electrical potential equation. More...

Inheritance diagram for jouleHeatingSource:
[legend]
Collaboration diagram for jouleHeatingSource:
[legend]

Public Member Functions

 TypeName ("jouleHeatingSource")
 Runtime type information. More...
 
 jouleHeatingSource (const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from explicit source name and mesh. More...
 
virtual ~jouleHeatingSource ()
 Destructor. More...
 
virtual void addSup (const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi)
 Add explicit contribution to compressible momentum equation. More...
 
virtual bool read (const dictionary &dict)
 Read source dictionary. More...
 
template<class Type >
const Foam::GeometricField< Type, Foam::fvPatchField, Foam::volMesh > & updateSigma (const autoPtr< Function1< Type >> &sigmaVsTPtr) const
 
- Public Member Functions inherited from option
 TypeName ("option")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, option, dictionary,(const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh),(name, modelType, dict, mesh))
 
 option (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from components. More...
 
autoPtr< optionclone () const
 Return clone. More...
 
virtual ~option ()=default
 Destructor. More...
 
const wordname () const
 Return const access to the source name. More...
 
const fvMeshmesh () const
 Return const access to the mesh database. More...
 
const dictionarycoeffs () const
 Return dictionary. More...
 
bool active () const
 Return const access to the source active flag. More...
 
void setApplied (const label fieldi)
 Set the applied flag to true for field index fieldi. More...
 
Switchactive ()
 Return access to the source active flag. More...
 
virtual bool isActive ()
 Is the source active? More...
 
virtual label applyToField (const word &fieldName) const
 Return index of field name if found in fieldNames list. More...
 
virtual void checkApplied () const
 Check that the source has been applied. More...
 
virtual void addSup (fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< vector > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void correct (volScalarField &field)
 
virtual void correct (volVectorField &field)
 
virtual void correct (volSphericalTensorField &field)
 
virtual void correct (volSymmTensorField &field)
 
virtual void correct (volTensorField &field)
 
virtual void writeHeader (Ostream &) const
 Write the source header information. More...
 
virtual void writeFooter (Ostream &) const
 Write the source footer information. More...
 
virtual void writeData (Ostream &) const
 Write the source properties. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from option
static autoPtr< optionNew (const word &name, const dictionary &dict, const fvMesh &mesh)
 Return a reference to the selected fvOption model. More...
 
- Public Attributes inherited from option
bool log
 Switch write log to Info. More...
 
- Protected Attributes inherited from option
const word name_
 Source name. More...
 
const word modelType_
 Model type. More...
 
const fvMeshmesh_
 Reference to the mesh database. More...
 
dictionary dict_
 Top level source dictionary. More...
 
dictionary coeffs_
 Dictionary containing source coefficients. More...
 
Switch active_
 Source active flag. More...
 
wordList fieldNames_
 Field names to apply source to - populated by derived models. More...
 
List< boolapplied_
 Applied flag list - corresponds to each fieldNames_ entry. More...
 

Detailed Description

Evolves an electrical potential equation.

\[ \grad \left( \sigma \grad V \right) \]

where \( V \) is electrical potential and \(\sigma\) is the electrical current

To provide a Joule heating contribution according to:

Differential form of Joule heating - power per unit volume:

\[ \frac{d(P)}{d(V)} = J \cdot E \]

where \( J \) is the current density and \( E \) the electric field. If no magnetic field is present:

\[ J = \sigma E \]

The electric field given by

\[ E = \grad V \]

Therefore:

\[ \frac{d(P)}{d(V)} = J \cdot E = (sigma E) \cdot E = (sigma \grad V) \cdot \grad V \]

Usage
Isotropic (scalar) electrical conductivity
jouleHeatingSourceCoeffs
{
    anisotropicElectricalConductivity no;

    // Optionally specify the conductivity as a function of temperature
    // Note: if not supplied, this will be read from the time directory
    sigma           table
    (
        (273        1e5)
        (1000       1e5)
    );
}

Anisotropic (vectorial) electrical conductivity jouleHeatingSourceCoeffs { anisotropicElectricalConductivity yes;

coordinateSystem { origin (0 0 0); e1 (1 0 0); e3 (0 0 1); }

Optionally specify sigma as a function of temperature sigma (31900 63800 127600);

sigma table ( (0 (0 0 0)) (1000 (127600 127600 127600)) ); }

Where:

Property Description Required Default value
T Name of temperature field no T
sigma Electrical conductivity as a function of temperature no
anisotropicElectricalConductivity Anisotropic flag yes

The electrical conductivity can be specified using either:

  • If the sigma entry is present the electrical conductivity is specified as a function of temperature using a Function1 type
  • If not present the sigma field will be read from file
  • If the anisotropicElectricalConductivity flag is set to 'true', sigma should be specified as a vector quantity
Source files
See also
Foam::Function1

Definition at line 173 of file jouleHeatingSource.H.

Constructor & Destructor Documentation

◆ jouleHeatingSource()

jouleHeatingSource ( const word sourceName,
const word modelType,
const dictionary dict,
const fvMesh mesh 
)

Construct from explicit source name and mesh.

Definition at line 114 of file jouleHeatingSource.C.

References dict, dictionary::dictName(), and Foam::read().

Here is the call graph for this function:

◆ ~jouleHeatingSource()

~jouleHeatingSource ( )
virtual

Destructor.

Definition at line 157 of file jouleHeatingSource.C.

Member Function Documentation

◆ TypeName()

TypeName ( "jouleHeatingSource"  )

Runtime type information.

◆ addSup()

void addSup ( const volScalarField rho,
fvMatrix< scalar > &  eqn,
const label  fieldi 
)
virtual

Add explicit contribution to compressible momentum equation.

Reimplemented from option.

Definition at line 164 of file jouleHeatingSource.C.

References DebugInfo, Foam::endl(), Foam::fvc::grad(), Foam::fvm::laplacian(), Foam::name(), fvMatrix< Type >::psi(), fvMatrix< Type >::relax(), sigma(), and fvMatrix< Type >::solve().

Here is the call graph for this function:

◆ read()

bool read ( const dictionary dict)
virtual

Read source dictionary.

Reimplemented from option.

Definition at line 222 of file jouleHeatingSource.C.

References dict, Foam::endl(), Foam::Info, coordinateSystem::New(), and option::read().

Here is the call graph for this function:

◆ updateSigma()

const Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh>& updateSigma ( const autoPtr< Function1< Type >> &  sigmaVsTPtr) const

Definition at line 89 of file jouleHeatingSourceTemplates.C.

References forAll, Foam::isA(), sigma(), and Foam::T().

Here is the call graph for this function:

The documentation for this class was generated from the following files: