NoExcision

Erik Schnetter <schnetter@aei.mpg.de>

June 17 2004

Abstract

1 Introduction

2 Physical System

3 Numerical Implementation

4 Using This Thorn

4.1 Obtaining This Thorn

4.2 Basic Usage

4.3 Special Behaviour

4.4 Interaction With Other Thorns

4.5 Examples

4.6 Support and Feedback

5 History

5.1 Thorn Source Code

5.2 Thorn Documentation

5.3 Acknowledgements

References

6 Parameters




centre_x
Scope: private  REAL



Description: x-coordinate of the centre of the region



Range   Default: 0.0
(*:*)






centre_y
Scope: private  REAL



Description: y-coordinate of the centre of the region



Range   Default: 0.0
(*:*)






centre_z
Scope: private  REAL



Description: z-coordinate of the centre of the region



Range   Default: 0.0
(*:*)






lapse_scale
Scope: private  REAL



Description: Scaling factor for lapse



Range   Default: 1.0
(*:*)
Choose 1 for geodesic slicing, 0 to halt evolution






method
Scope: private  KEYWORD



Description: Method to use



Range   Default: old
old
Use old method
new
Use new method






minkowski_scale
Scope: private  REAL



Description: Scaling factor for Minkowski



Range   Default: 1.0
(*:*)
Choose 1 for true Minkowski






num_regions
Scope: private  INT



Description: Number of no-excision regions



Range   Default: (none)
0:10






overwrite_geometry
Scope: private  BOOLEAN



Description: Set the geometry to Minkowski



  Default: yes






overwrite_lapse
Scope: private  BOOLEAN



Description: Set the lapse to one



  Default: yes






overwrite_shift
Scope: private  BOOLEAN



Description: Set the shift to zero



  Default: yes






radius
Scope: private  REAL



Description: Radius of the region



Range   Default: 1.0
0.0:*)






radius_x
Scope: private  REAL



Description: x-radius of the region



Range   Default: 1.0
0.0:*)






radius_y
Scope: private  REAL



Description: y-radius of the region



Range   Default: 1.0
0.0:*)






radius_z
Scope: private  REAL



Description: z-radius of the region



Range   Default: 1.0
0.0:*)






reduce_rhs
Scope: private  BOOLEAN



Description: Reduce RHS



  Default: no






reduction_factor
Scope: private  REAL



Description: Reduction factor for RHS (0=complete, 1=no reduction)



Range   Default: 0.0
*:*






region_shape
Scope: private  KEYWORD



Description: Shape of the region



Range   Default: sphere
sphere
use radius
ellipsoid
use radius_x, radius_y, and radius_z
surface
use a spherical surface shape






smooth_regions
Scope: private  BOOLEAN



Description: Smooth overwritten regions?



  Default: no






smoothing_eps
Scope: private  REAL



Description: CG smoothing stop criteria



Range   Default: 1e-6
(0.0:*






smoothing_factor
Scope: private  REAL



Description: Initial moothing factor



Range   Default: 1.2
(0:2)






smoothing_function
Scope: private  KEYWORD



Description: Smoothing function



Range   Default: linear
linear
linear ramp
spline
cubic spline ramp
cosine
cosine ramp






smoothing_iterations
Scope: private  INT



Description: Smoothing iterations



Range   Default: 10
0:*






smoothing_order
Scope: private  INT



Description: Order of the derivatives used for CG smoothing



Range   Default: 6
2:6:2






smoothing_zone_width
Scope: private  REAL



Description: Relative width of smoothing zone inside the region



Range   Default: 0.0
0.0:1.0






surface_index
Scope: private  INT



Description: Spherical surface index



Range   Default: (none)
0:*
must be an index of a spherical surface






use_user_regions
Scope: private  BOOLEAN



Description: Use user defined regions for the smoothing regions



  Default: no






verbose
Scope: private  BOOLEAN



Description: Produce some screen output



  Default: no



7 Interfaces

General

Implements:

noexcision

Inherits:

admbase

staticconformal

grid

sphericalsurface

boundary

Grid Variables

7.0.1 PRIVATE GROUPS




  Group Names    Variable Names    Details   




smask   compact0
nes_mask   descriptionmask for smoothing
  dimensions3
  distributionDEFAULT
  group typeGF
  tagstensortypealias=”scalar” Prolongation=”None”
  timelevels1
 variable typeINT




reduction_mask   compact0
red_mask   descriptionCopy of the weight grid function from CarpetReduce
  dimensions3
  distributionDEFAULT
  group typeGF
  tagsProlongation=”None” InterpNumTimelevels=1 checkpoint=”no”
  timelevels1
 variable typeREAL




cg_res_metric   compact0
resgxx   descriptionConjugate Gradient residual for the metric
resgxy   dimensions3
resgxz   distributionDEFAULT
resgyy   group typeGF
resgyz   tagstensortypealias=”dd_sym” Prolongation=”None”
resgzz   timelevels1
 variable typeREAL




cg_res_curv   compact0
reskxx   descriptionConjugate Gradient residual for the extrinsic curvature
reskxy   dimensions3
reskxz   distributionDEFAULT
reskyy   group typeGF
reskyz   tagstensortypealias=”dd_sym” Prolongation=”None”
reskzz   timelevels1
 variable typeREAL




cg_res_shift   compact0
resx   descriptionConjugate Gradient residual for the shift
resy   dimensions3
resz   distributionDEFAULT
  group typeGF
  tagstensortypealias=”u” Prolongation=”None”
  timelevels1
 variable typeREAL




cg_res_lapse   compact0
res   descriptionConjugate Gradient residual for the lapse
  dimensions3
  distributionDEFAULT
  group typeGF
  tagstensortypealias=”scalar” Prolongation=”None”
  timelevels1
 variable typeREAL








  Group Names    Variable Names    Details   




cg_d_metric   compact0
dgxx   descriptionConjugate Gradient d for the metric
dgxy   dimensions3
dgxz   distributionDEFAULT
dgyy   group typeGF
dgyz   tagstensortypealias=”dd_sym” Prolongation=”None”
dgzz   timelevels1
 variable typeREAL




cg_d_curv   compact0
dkxx   descriptionConjugate Gradient d for the extrinsic curvature
dkxy   dimensions3
dkxz   distributionDEFAULT
dkyy   group typeGF
dkyz   tagstensortypealias=”dd_sym” Prolongation=”None”
dkzz   timelevels1
 variable typeREAL




cg_d_shift   compact0
dx   descriptionConjugate Gradient d for the shift
dy   dimensions3
dz   distributionDEFAULT
  group typeGF
  tagstensortypealias=”u” Prolongation=”None”
  timelevels1
 variable typeREAL




cg_d_lapse   compact0
d   descriptionConjugate Gradient d for the lapse
  dimensions3
  distributionDEFAULT
  group typeGF
  tagstensortypealias=”scalar” Prolongation=”None”
  timelevels1
 variable typeREAL




cg_q_metric   compact0
qgxx   descriptionConjugate Gradient q for the metric
qgxy   dimensions3
qgxz   distributionDEFAULT
qgyy   group typeGF
qgyz   tagstensortypealias=”dd_sym” Prolongation=”None”
qgzz   timelevels1
 variable typeREAL




cg_q_curv   compact0
qkxx   descriptionConjugate Gradient q for the extrinsic curvature
qkxy   dimensions3
qkxz   distributionDEFAULT
qkyy   group typeGF
qkyz   tagstensortypealias=”dd_sym” Prolongation=”None”
qkzz   timelevels1
 variable typeREAL








  Group Names    Variable Names    Details   




cg_q_shift   compact0
qx   descriptionConjugate Gradient q for the shift
qy   dimensions3
qz   distributionDEFAULT
  group typeGF
  tagstensortypealias=”u” Prolongation=”None”
  timelevels1
 variable typeREAL




cg_q_lapse   compact0
q   descriptionConjugate Gradient q for the lapse
  dimensions3
  distributionDEFAULT
  group typeGF
  tagstensortypealias=”scalar” Prolongation=”None”
  timelevels1
 variable typeREAL




cg_red_all   compact0
redgxx   descriptionConjugate Gradient red for all variables
redgxy   dimensions3
redgxz   distributionDEFAULT
redgyy   group typeGF
redgyz   tagstensortypealias=”scalar” Prolongation=”None”
redgzz   timelevels1
redkxx  variable typeREAL




loop_control loop_control   compact0
  dimensions0
  distributionCONSTANT
  group typeSCALAR
  timelevels1
 variable typeINT




Uses header:

Boundary.h

carpet.hh

8 Schedule

This section lists all the variables which are assigned storage by thorn EinsteinInitialData/NoExcision. Storage can either last for the duration of the run (Always means that if this thorn is activated storage will be assigned, Conditional means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.

Storage

 

Always:  
reduction_mask 
   

Scheduled Functions

ADMBase_PostInitial (conditional)

  noexcision_overwrite

  overwrite regions with minkowski

 

 Language:fortran
 Type: function
 Writes: admbase::metric(everywhere)
   admbase::curv(everywhere)

CCTK_BASEGRID (conditional)

  noexcision_setsym

  register the symmetries for the conjugate gradient functions.

 

 Language:fortran
 Type: function
 Writes: admbase::metric(everywhere)
   admbase::curv(everywhere)

NoExcision_CGSmoothing (conditional)

  noexcision_smoothing

  smooth regions

 

 After: noexcision_cginit_2
 Type: group
 While:noexcision::loop_control

NoExcision_Smoothing (conditional)

  noexcision_cg_1

  conjugate gradients step 1

 

 Language:fortran
 Type: function

NoExcision_Smoothing (conditional)

  noexcision_cgapplysym

  select variables for boundary conditions 2

 

 After: noexcision_cg_1
 Language:fortran
 Sync: cg_q_metric
   cg_q_curv
   cg_q_shift
   cg_q_lapse
   cg_red_all
 Type: function

NoExcision_Smoothing (conditional)

  applybcs

  apply boundary conditions (symmetries) 2

 

 After:noexcision_cgapplysym_p2
 Type:group

NoExcision_Smoothing (conditional)

  noexcision_cg_2

  conjugate gradients step 2

 

 After: noexcision_cg_1
 Language:fortran
 Options: level
 Type: function

NoExcision_Smoothing (conditional)

  noexcision_cg_3

  conjugate gradients step 3

 

 Language:fortran
 Type: function

NoExcision_Smoothing (conditional)

  noexcision_cgapplysym

  select variables for boundary conditions 3

 

 After: noexcision_cg_3
 Language:fortran
 Sync: cg_res_metric
   cg_res_curv
   cg_res_shift
   cg_res_lapse
   metric
   curv
   shift
   lapse
   cg_red_all
 Type: function

NoExcision_Smoothing (conditional)

  applybcs

  apply boundary conditions (symmetries) 3

 

 After:noexcision_cgapplysym_p3
 Type:group

NoExcision_Smoothing (conditional)

  noexcision_cg_4

  conjugate gradients step 4

 

 After: noexcision_cg_1
 Language:fortran
 Options: level
 Type: function

NoExcision_Smoothing (conditional)

  noexcision_cg_5

  conjugate gradients step 5

 

 Language:fortran
 Type: function

ADMBase_PostInitial (conditional)

  noexcision_smooth

  smooth regions

 

 After: noexcision_overwrite
  Language:fortran
 Type: function

NoExcision_CGSmoothing (conditional)

  noexcision_cgapplysym

  select variables for boundary conditions 4

 

 After: noexcision_cg_5
 Language:fortran
 Sync: cg_d_metric
   cg_d_curv
   cg_d_shift
   cg_d_lapse
 Type: function

NoExcision_CGSmoothing (conditional)

  applybcs

  apply boundary conditions (symmetries) 4

 

 After:noexcision_cgapplysym_p4
 Type:group

MoL_PostRHS

  noexcision_reduce

  reduce rhs

 

 Language:c
 Type: function

ADMBase_PostInitial (conditional)

  noexcision_set_zero

  set variables to zero in user defined regions

 

 Before: noexcision_cgsmoothing
 Language:fortran
 Type: function

ADMBase_PostInitial (conditional)

  noexcision_cgsmoothing

  conjugate gradient smoothing

 

 Storage:cg_res_metric
   cg_res_curv
   cg_res_shift
   cg_res_lapse
   cg_d_metric
   cg_d_curv
   cg_d_shift
   cg_d_lapse
   cg_q_metric
   cg_q_curv
   cg_q_shift
   cg_q_lapse
   cg_red_all
   smask
   loop_control
 Type: group

NoExcision_CGSmoothing (conditional)

  copymask

  copy the weight function from carpetreduce

 

 Language:c
 Options: global
   loop-local
 Type: function

NoExcision_CGSmoothing (conditional)

  noexcision_cginit_1

  initialise the conjugate gradient method 1

 

 After: copymask
 Language:fortran
 Reads: admbase::metric
    admbase::curv
   admbase::alp
   admbase::shift
    red_mask
 Type: function
 Writes: cg_res_shift(everywhere)
   cg_res_lapse(everywhere)
   cg_d_metric(everywhere)
   cg_d_curv(everywhere)
   cg_red_all(everywhere)
   cg_d_lapse(everywhere)
   cg_d_shift(everywhere)
   cg_q_metric(everywhere)
   cg_q_shift(everywhere)
   cg_q_curv(everywhere)
   cg_q_lapse(everywhere)
   loop_control
   nes_mask(everywhere)
   cg_res_metric(everywhere)
   cg_res_curv(everywhere)

NoExcision_CGSmoothing (conditional)

  noexcision_cgapplysym

  select variables for boundary conditions 1

 

 After: noexcision_cginit_1
 Language:fortran
 Sync: cg_d_metric
   cg_d_curv
   cg_d_shift
   cg_d_lapse
   cg_res_metric
   cg_res_curv
   cg_res_shift
   cg_res_lapse
   cg_red_all
 Type: function

NoExcision_CGSmoothing (conditional)

  applybcs

  apply boundary conditions (symmetries) 1

 

 After:noexcision_cgapplysym_p1
 Type:group

NoExcision_CGSmoothing (conditional)

  noexcision_cginit_2

  initialise the conjugate gradient method 2

 

 After: noexcision_cgapplysym_p1
 Language:fortran
 Options: level
 Reads: admbase::alp(everywhere)
   admbase::gxx(everywhere)
 Type: function

Aliased Functions

 

Alias Name:         Function Name:
ApplyBCs NoExcision_CGApplyBCs_p1
NoExcision_CGApplySymNoExcision_CGApplySym_p1