From 813b876ade8580e31b9b58f9b1baad1854d14ed4 Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 24 Nov 2022 18:37:34 +0500 Subject: [PATCH] Solver for eikonal equation --- .../solvers/eikonalFoam/createFields.H | 28 +++++-- .../solvers/eikonalFoam/eikonalFoam.C | 27 ++++++- tests/eikonal/cylinders2D/0.orig/alpha | 74 +++++++++++++++++++ tests/eikonal/cylinders2D/Allclean | 2 +- tests/eikonal/cylinders2D/Allrun | 19 ++++- .../cylinders2D/system/decomposeParDict | 2 +- .../eikonal/cylinders2D/system/setFieldsDict | 46 ++++++++++++ 7 files changed, 182 insertions(+), 16 deletions(-) create mode 100644 tests/eikonal/cylinders2D/0.orig/alpha create mode 100644 tests/eikonal/cylinders2D/system/setFieldsDict diff --git a/applications/solvers/eikonalFoam/createFields.H b/applications/solvers/eikonalFoam/createFields.H index ae915ee..e2c5e7e 100644 --- a/applications/solvers/eikonalFoam/createFields.H +++ b/applications/solvers/eikonalFoam/createFields.H @@ -27,19 +27,27 @@ volScalarField alpha "alpha", runTime.timeName(), mesh, - IOobject::NO_READ, + IOobject::MUST_READ, IOobject::AUTO_WRITE ), - mesh, - dimensionedScalar(dimless, 0) + mesh ); -surfaceScalarField deltaf +volVectorField gradAlpha ( - "deltaf", - fvc::snGrad(alpha) + IOobject + ( + "gradAlpha", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + fvc::grad(alpha) ); +gradAlpha.write(); + Info<< "Creation distance field d\n" << endl; volScalarField d @@ -56,7 +64,13 @@ volScalarField d ); d = dimensionedScalar(dimLength, 1.0); -// d = (mag(deltaf) > small) ? dimensionedScalar(dimLength, small) : dimensionedScalar(dimLength, 1.0); +forAll(d, celli) +{ + if (mag(gradAlpha[celli]) > small) + { + d[celli] = small; + } +} Info<< "Creation field gradd\n" << endl; volVectorField gradd diff --git a/applications/solvers/eikonalFoam/eikonalFoam.C b/applications/solvers/eikonalFoam/eikonalFoam.C index cddbb21..1caf269 100644 --- a/applications/solvers/eikonalFoam/eikonalFoam.C +++ b/applications/solvers/eikonalFoam/eikonalFoam.C @@ -97,6 +97,24 @@ int main(int argc, char *argv[]) dPsi.write(); graddPsi.write(); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + List