diff options
author | schnetter <schnetter@e296648e-0e4f-0410-bd07-d597d9acff87> | 2007-04-26 02:32:44 +0000 |
---|---|---|
committer | schnetter <schnetter@e296648e-0e4f-0410-bd07-d597d9acff87> | 2007-04-26 02:32:44 +0000 |
commit | 315e93586c7e10ee26fac62894391de470134856 (patch) | |
tree | 77ca485ecfe665823375a00c61bc90ca3d85f449 /src | |
parent | e2532ba53e40049637acb338c4c47584f1c741f9 (diff) |
Implement higher-order smoothing
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/Exact/trunk@248 e296648e-0e4f-0410-bd07-d597d9acff87
Diffstat (limited to 'src')
-rw-r--r-- | src/metrics/Kerr_KerrSchild.F77 | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/metrics/Kerr_KerrSchild.F77 b/src/metrics/Kerr_KerrSchild.F77 index 11b6ce1..139f271 100644 --- a/src/metrics/Kerr_KerrSchild.F77 +++ b/src/metrics/Kerr_KerrSchild.F77 @@ -87,7 +87,19 @@ C Use a power law to avoid the singularity r0 = (r0**power + eps**power)**(1.0d0/power) else if (r0 .lt. eps) then - r0 = (eps + r0**2 / eps) / 2 + if (power .eq. 0) then + r0 = eps + else if (power .eq. 2) then + r0 = eps/2 + r0**2 * 1/(2*eps) + else if (power .eq. 4) then + r0 = 3*eps/8 + r0**2 * (3/(4*eps) - r0**2 * 1/(8*eps**3)) + else if (power .eq. 6) then + r0 = 5*eps/16 + r0**2 * (15/(16*eps) + r0**2 * (-5/(16*eps**3) + r0**2 * 1/(16*eps**5))) + else if (power .eq. 8) then + r0 = 35*eps/128 + r0**2 * (35/(32*eps) + r0**2 * (-35/(64*eps**3) + r0**2 * (7/(32*eps**5) - r0**2 * 5/(128*eps**7)))) + else + call CCTK_WARN (CCTK_WARN_ABORT, "Unsupported value of parameter Kerr_KerrSchild__power") + end if end if end if C Another idea: |