diff options
author | herrmann <herrmann@5301f0c2-dbc4-4cee-b2f5-8d7afba4d129> | 2003-05-12 09:23:58 +0000 |
---|---|---|
committer | herrmann <herrmann@5301f0c2-dbc4-4cee-b2f5-8d7afba4d129> | 2003-05-12 09:23:58 +0000 |
commit | 7e155396eadfca19daeff52c0459d09e5574c980 (patch) | |
tree | 4891682caf72e98d0c43e6f6d91f8414da64e07b /src/D3_to_D2.F | |
parent | 98a1c9882513adf3daf0d65ba855cf590a5a1bf3 (diff) |
Added private STRING parameter Extract::interpolation_operator defaulting to
"Lagrange polynomial interpolation".
See LocalInterp for other interpolation_operator values.
At the moment LocalInterp will use
"Lagrange polynomial interpolation (tensor product)".
Changed the testsuites to use
"Lagrange polynomial interpolation (maximum degree)"
to get the same behaviour as before and the testsuites to pass again.
They didn't pass before, because the interpolator gives slightly different
answers for the "tensor product" version. The Moncrief Q's should be
zero for Schwarzschild. The result is for example 10^-6 rather than
10^-5 which was reported as a fail.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/Extract/trunk@77 5301f0c2-dbc4-4cee-b2f5-8d7afba4d129
Diffstat (limited to 'src/D3_to_D2.F')
-rw-r--r-- | src/D3_to_D2.F | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/D3_to_D2.F b/src/D3_to_D2.F index 7bc7586..da2294e 100644 --- a/src/D3_to_D2.F +++ b/src/D3_to_D2.F @@ -4,7 +4,8 @@ c ======================================================================== SUBROUTINE D3_to_D2(cctkGH,conformal_state,do_ADMmass,do_momentum,do_spin, - & Psi_power,origin,myproc,interpolation_order,Dx,Dy,Dz,Psi, + & Psi_power,origin,myproc,interpolation_operator,interpolation_order, + & Dx,Dy,Dz,Psi, & g00,gxx,gxy,gxz,gyy,gyz,gzz,hxx,hxy,hxz,hyy,hyz,hzz, & x,y,z,eta,Nt,Np,theta,phi, & Psis,g00s,gxxs,gxys,gxzs,gyys,gyzs,gzzs,dPsis,dgxxs,dgxys,dgxzs, @@ -46,6 +47,8 @@ c Input variables & Extract_temp3d LOGICAL :: & do_ADMmass(2) + CCTK_STRING,INTENT(IN) :: + & interpolation_operator c Output variables @@ -77,7 +80,9 @@ c Local variables, here only CCTK_POINTER, dimension(8) :: out_arrays CCTK_INT, dimension(8) :: out_array_type_codes - character(30) options_string + character(128) options_string + character(128) operator + CCTK_INT nchars c ------------------------------------------------------------------------ @@ -120,7 +125,9 @@ c -------------------------------------------------------------------- param_table_handle = -1 coord_system_handle = -1 - call CCTK_InterpHandle (interp_handle,"Lagrange polynomial interpolation") + + call CCTK_FortranString(nchars,interpolation_operator,operator) + call CCTK_InterpHandle (interp_handle,operator) if (interp_handle .lt. 0) then call CCTK_WARN(0,"Cannot get handle for interpolation ! Forgot to activate an implementation providing interpolation operators ??") endif |