From 25b37ae30d5985bcbf61c7fceba2089cff509932 Mon Sep 17 00:00:00 2001 From: sergio <sergio> Date: Mon, 1 Apr 2019 08:29:56 -0700 Subject: [PATCH] ENH: Adding new Gaussian power profile for laser --- .../laserDTRM/laserDTRM.C | 14 ++++++++++++++ .../laserDTRM/laserDTRM.H | 6 +++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/laserDTRM/laserDTRM.C b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/laserDTRM/laserDTRM.C index 1969704f5c1..3a1236fa0a1 100644 --- a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/laserDTRM/laserDTRM.C +++ b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/laserDTRM/laserDTRM.C @@ -63,6 +63,7 @@ Foam::radiation::laserDTRM::powerDistNames_ { powerDistributionMode::pdGaussian, "Gaussian" }, { powerDistributionMode::pdManual, "manual" }, { powerDistributionMode::pdUniform, "uniform" }, + { powerDistributionMode::pdGaussianPeak, "GaussianPeak" }, }; @@ -74,6 +75,11 @@ Foam::scalar Foam::radiation::laserDTRM::calculateIp(scalar r, scalar theta) const scalar power = laserPower_->value(t); switch (mode_) { + case pdGaussianPeak: + { + return I0_*exp(-2.0*sqr(r)/sqr(sigma_)); + break; + } case pdGaussian: { scalar I0 = power/(mathematical::twoPi*sqr(sigma_)); @@ -196,6 +202,12 @@ void Foam::radiation::laserDTRM::initialise() switch (mode_) { + case pdGaussianPeak: + { + I0_ = get<scalar>("I0"); + sigma_ = get<scalar>("sigma"); + break; + } case pdGaussian: { sigma_ = get<scalar>("sigma"); @@ -346,6 +358,7 @@ Foam::radiation::laserDTRM::laserDTRM(const volScalarField& T) ), sigma_(0), + I0_(0), laserPower_(Function1<scalar>::New("laserPower", *this)), powerDistribution_(), @@ -442,6 +455,7 @@ Foam::radiation::laserDTRM::laserDTRM ), sigma_(0), + I0_(0), laserPower_(Function1<scalar>::New("laserPower", *this)), powerDistribution_(), diff --git a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/laserDTRM/laserDTRM.H b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/laserDTRM/laserDTRM.H index b7da83d879a..4bdc470adec 100644 --- a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/laserDTRM/laserDTRM.H +++ b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/laserDTRM/laserDTRM.H @@ -87,7 +87,8 @@ public: { pdGaussian, pdManual, - pdUniform + pdUniform, + pdGaussianPeak }; @@ -153,6 +154,9 @@ private: //- Sigma deviation scalar sigma_; + //- Peak flux for GaussianPeak mode + scalar I0_; + //- Power autoPtr<Function1<scalar>> laserPower_; -- GitLab