From 2746e92165f66bf7ad057f2e3d7efca1f851a5e4 Mon Sep 17 00:00:00 2001 From: ignis Date: Sun, 12 Aug 2018 23:13:02 -0400 Subject: [PATCH] electric fields and Poisson's equation --- PhiEqn.H | 17 +++++++++ createElectricField.H | 82 +++++++++++++++++++++++++++++++++++++++++++ createFields.H | 2 ++ eReactingFoam.C | 2 ++ 4 files changed, 103 insertions(+) create mode 100644 PhiEqn.H create mode 100644 createElectricField.H diff --git a/PhiEqn.H b/PhiEqn.H new file mode 100644 index 0000000..ed56072 --- /dev/null +++ b/PhiEqn.H @@ -0,0 +1,17 @@ +{ + solve + ( + fvm::laplacian(Phi) + rho * thermo.composition().Qc() /epsilon0 + ); + + E = -fvc::grad(Phi); + snE = -fvc::snGrad(Phi); + + // tmp tMagE (mag(E)); + // const volScalarField &magE = tMagE(); + + // magE.writeMinMax(Info); + + // En = magE / (ng); + +} diff --git a/createElectricField.H b/createElectricField.H new file mode 100644 index 0000000..ef8c7e5 --- /dev/null +++ b/createElectricField.H @@ -0,0 +1,82 @@ +Info<< "Reading physicalProperties\n" << endl; + +IOdictionary physicalProperties +( + IOobject + ( + "physicalProperties", + runTime.constant(), + mesh, + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ) +); + +dimensionedScalar epsilon0 +( + physicalProperties.lookup("epsilon0") +); + +dimensionedScalar k +( + physicalProperties.lookup("k") +); + + +Info<< "Reading field Phi\n" << endl; +volScalarField Phi +( + IOobject + ( + "Phi", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh +); + + +Info<< "Reading field rhoc\n" << endl; +volScalarField rhoc +( + IOobject + ( + "rhoc", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh +); + + +Info<< "Creating field electric field\n" << endl; +volVectorField E +( + IOobject + ( + "E", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + -fvc::grad(Phi) +); + +surfaceScalarField snE +( + IOobject + ( + "snE", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + -fvc::snGrad(Phi) +); + diff --git a/createFields.H b/createFields.H index b69d6a9..5bd9265 100644 --- a/createFields.H +++ b/createFields.H @@ -1,3 +1,5 @@ +#include "createElectricField.H" + Info<< "Creating reaction model\n" << endl; autoPtr reaction diff --git a/eReactingFoam.C b/eReactingFoam.C index 7234f2a..23097d0 100644 --- a/eReactingFoam.C +++ b/eReactingFoam.C @@ -94,6 +94,8 @@ int main(int argc, char *argv[]) while (pimple.loop()) { + #include "PhiEqn.H" + diff.correct(); #include "UEqn.H"