diff --git a/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/laserDTRM/laserDTRM.C b/applications/solvers/multiphase/icoReactingMultiphaseInterFoam/laserDTRM/laserDTRM.C index 1969704f5c130d285c69a1db883ba35d73844be7..3a1236fa0a1727c8677c0ffd57127980db96e434 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 b7da83d879adb81ab5b6d29f71f16cd03cb829c3..4bdc470adec6705d8ce832830148145c97ba819d 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_;