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 compact 0
nes_mask description mask for smoothing
dimensions 3
distribution DEFAULT
group type GF
tags tensortypealias=”scalar” Prolongation=”None”
timelevels 1
variable type INT




reduction_mask compact 0
red_mask description Copy of the weight grid function from CarpetReduce
dimensions 3
distribution DEFAULT
group type GF
tags Prolongation=”None” InterpNumTimelevels=1 checkpoint=”no”
timelevels 1
variable type REAL




cg_res_metric compact 0
resgxx description Conjugate Gradient residual for the metric
resgxy dimensions 3
resgxz distribution DEFAULT
resgyy group type GF
resgyz tags tensortypealias=”dd_sym” Prolongation=”None”
resgzz timelevels 1
variable type REAL




cg_res_curv compact 0
reskxx description Conjugate Gradient residual for the extrinsic curvature
reskxy dimensions 3
reskxz distribution DEFAULT
reskyy group type GF
reskyz tags tensortypealias=”dd_sym” Prolongation=”None”
reskzz timelevels 1
variable type REAL




cg_res_shift compact 0
resx description Conjugate Gradient residual for the shift
resy dimensions 3
resz distribution DEFAULT
group type GF
tags tensortypealias=”u” Prolongation=”None”
timelevels 1
variable type REAL




cg_res_lapse compact 0
res description Conjugate Gradient residual for the lapse
dimensions 3
distribution DEFAULT
group type GF
tags tensortypealias=”scalar” Prolongation=”None”
timelevels 1
variable type REAL








  Group Names     Variable Names   Details    




cg_d_metric compact 0
dgxx description Conjugate Gradient d for the metric
dgxy dimensions 3
dgxz distribution DEFAULT
dgyy group type GF
dgyz tags tensortypealias=”dd_sym” Prolongation=”None”
dgzz timelevels 1
variable type REAL




cg_d_curv compact 0
dkxx description Conjugate Gradient d for the extrinsic curvature
dkxy dimensions 3
dkxz distribution DEFAULT
dkyy group type GF
dkyz tags tensortypealias=”dd_sym” Prolongation=”None”
dkzz timelevels 1
variable type REAL




cg_d_shift compact 0
dx description Conjugate Gradient d for the shift
dy dimensions 3
dz distribution DEFAULT
group type GF
tags tensortypealias=”u” Prolongation=”None”
timelevels 1
variable type REAL




cg_d_lapse compact 0
d description Conjugate Gradient d for the lapse
dimensions 3
distribution DEFAULT
group type GF
tags tensortypealias=”scalar” Prolongation=”None”
timelevels 1
variable type REAL




cg_q_metric compact 0
qgxx description Conjugate Gradient q for the metric
qgxy dimensions 3
qgxz distribution DEFAULT
qgyy group type GF
qgyz tags tensortypealias=”dd_sym” Prolongation=”None”
qgzz timelevels 1
variable type REAL




cg_q_curv compact 0
qkxx description Conjugate Gradient q for the extrinsic curvature
qkxy dimensions 3
qkxz distribution DEFAULT
qkyy group type GF
qkyz tags tensortypealias=”dd_sym” Prolongation=”None”
qkzz timelevels 1
variable type REAL








  Group Names     Variable Names   Details    




cg_q_shift compact 0
qx description Conjugate Gradient q for the shift
qy dimensions 3
qz distribution DEFAULT
group type GF
tags tensortypealias=”u” Prolongation=”None”
timelevels 1
variable type REAL




cg_q_lapse compact 0
q description Conjugate Gradient q for the lapse
dimensions 3
distribution DEFAULT
group type GF
tags tensortypealias=”scalar” Prolongation=”None”
timelevels 1
variable type REAL




cg_red_all compact 0
redgxx description Conjugate Gradient red for all variables
redgxy dimensions 3
redgxz distribution DEFAULT
redgyy group type GF
redgyz tags tensortypealias=”scalar” Prolongation=”None”
redgzz timelevels 1
redkxx variable type REAL




loop_control loop_control compact 0
dimensions 0
distribution CONSTANT
group type SCALAR
timelevels 1
variable type INT




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_CGApplySym NoExcision_CGApplySym_p1