avoid numerical noise
This commit is contained in:
parent
ff2c950d20
commit
8509b13f16
|
@ -1779,7 +1779,7 @@ function math_sampleGaussOri(center,FWHM)
|
||||||
real(pReal), dimension(3,3) :: R
|
real(pReal), dimension(3,3) :: R
|
||||||
|
|
||||||
if (FWHM < 0.1_pReal*INRAD) then
|
if (FWHM < 0.1_pReal*INRAD) then
|
||||||
R = math_I3
|
math_sampleGaussOri = center
|
||||||
else
|
else
|
||||||
GaussConvolution: do
|
GaussConvolution: do
|
||||||
rnd = halton([8_pInt,3_pInt,6_pInt,11_pInt])
|
rnd = halton([8_pInt,3_pInt,6_pInt,11_pInt])
|
||||||
|
@ -1791,9 +1791,9 @@ function math_sampleGaussOri(center,FWHM)
|
||||||
angle = math_EulerMisorientation([0.0_pReal,0.0_pReal,0.0_pReal],math_RtoEuler(R))
|
angle = math_EulerMisorientation([0.0_pReal,0.0_pReal,0.0_pReal],math_RtoEuler(R))
|
||||||
if (rnd(4) <= exp(-4.0_pReal*log(2.0_pReal)*(angle/FWHM)**2_pReal)) exit ! rejection sampling (Gaussian)
|
if (rnd(4) <= exp(-4.0_pReal*log(2.0_pReal)*(angle/FWHM)**2_pReal)) exit ! rejection sampling (Gaussian)
|
||||||
enddo GaussConvolution
|
enddo GaussConvolution
|
||||||
|
math_sampleGaussOri = math_RtoEuler(math_mul33x33(R,math_EulerToR(center)))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
math_sampleGaussOri = math_RtoEuler(math_mul33x33(R,math_EulerToR(center)))
|
|
||||||
|
|
||||||
end function math_sampleGaussOri
|
end function math_sampleGaussOri
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue