Y.Z. <yosef@raven.phyast.pitt.edu>

January 09 2003

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




dissip_fudge
Scope: private  INT



Description: do we want to fudge around the inner boundary



Range   Default: (none)
0:1
0 no fudging, 1 fudging






dissip_fudge_maxx
Scope: private  REAL



Description: where in x to stop fudging



Range   Default: .53
.5:.56






dissip_j
Scope: private  REAL



Description: dissipation factor for the J equation (time-integration)



Range   Default: 0.0
0.0:*
positive






dissip_jx
Scope: private  REAL



Description: dissipation factor for the J equation (radial marching)



Range   Default: 0.0
0.0:*
positive






dissip_mask_type
Scope: private  KEYWORD



Description: type of dissipation mask



Range   Default: one
one
set dissipation mask to ’one’ everywhere
see [1] below
”set 2B=1-(p2̂+q2̂)+—1-(p 2̂+q2̂)—”
see [1] below
”set 2B=rD0-(p2̂+q2̂)+—rD 0-(p2̂+q2̂)—”
see [1] below
”set 2B=min(1, (rD0-(p2̂+q2̂)+—rD0- (p2̂+q2̂)—) / (rD0-1) )”
see [1] below
”set 2B=min(1, (rD0-(p2̂+q2̂)+—rD0- (p2̂+q2̂)—) / (rD0-rD1) )”



[1]

zero at eq, one at pole

[1]

zero at rD0, one at pole

[1]

zero at rD0, one at eq

[1]

zero at rD0, one at rD1




dissip_q
Scope: private  REAL



Description: dissipation factor for the Q equation (the auxiliary of U)



Range   Default: 0.0
0.0:*
positive






dissip_w
Scope: private  REAL



Description: dissipation factor for the W equation



Range   Default: 0.0
0.0:*
positive






id_amp
Scope: private  REAL



Description: Amplitude of compact J pulse



Range   Default: .00001
0.:*
An y positive number






id_l
Scope: private  INT



Description: l mode



Range   Default: 2
2:*
2 or larger






id_m
Scope: private  INT



Description: m mode



Range   Default: (none)
-100:100
-l to l






id_power
Scope: private  INT



Description: related to order of polynomial in compact J pulse



Range   Default: 3
3:6
best to choose between 3 and 6






jcoeff_r0
Scope: private  REAL



Description: real part of constant for fitted linearized J initial data



Range   Default: (none)
*:*
any value obtained from Nigel’s fitting script






jcoeff_r0i
Scope: private  REAL



Description: imag part of constant for fitted linearized J initial data



Range   Default: (none)
*:*
any value obtained from Nigel’s fitting script






jcoeff_r0r
Scope: private  REAL



Description: real part of constant for fitted linearized J initial data



Range   Default: (none)
*:*
any value obtained from Nigel’s fitting script






jcoeff_r1
Scope: private  REAL



Description: imag part of constant for fitted linearized J initial data



Range   Default: (none)
*:*
any value obtained from Nigel’s fitting script






jcoeff_r1i
Scope: private  REAL



Description: imag part of constant for fitted linearized J initial data



Range   Default: (none)
*:*
any value obtained from Nigel’s fitting script






jcoeff_r1r
Scope: private  REAL



Description: real part of constant for fitted linearized J initial data



Range   Default: (none)
*:*
any value obtained from Nigel’s fitting script






jcoeff_r3
Scope: private  REAL



Description: real part of constant for fitted linearized J initial data



Range   Default: (none)
*:*
any value obtained from Nigel’s fitting script






jcoeff_r3i
Scope: private  REAL



Description: imag part of constant for fitted linearized J initial data



Range   Default: (none)
*:*
any value obtained from Nigel’s fitting script






jcoeff_r3r
Scope: private  REAL



Description: real part of constant for fitted linearized J initial data



Range   Default: (none)
*:*
any value obtained from Nigel’s fitting script






n_dissip_one_outside_eq
Scope: private  REAL



Description: determines dissipation radius rD1 = 1 + dd*N_dissip_one_outside_eq



Range   Default: (none)
*:*
any value






n_dissip_zero_outside_eq
Scope: private  REAL



Description: determines dissipation radius rD0 = 1 + dd*N_dissip_zero_outside_eq



Range   Default: 1
0:*
non-negative






null_dissip
Scope: private  REAL



Description: dissipation factor for the radial evolution stencil



Range   Default: 0.05
0.0:1.0
postive less than 1






psmax
Scope: private  REAL



Description: outer p bdry of CS pulse



Range   Default: 1.0
*:*
be reasonable though






psmin
Scope: private  REAL



Description: inner p bdry of CS pulse



Range   Default: -1.0
*:*
be reasonable though






qsmax
Scope: private  REAL



Description: outer q bdry of CS pulse



Range   Default: 1.0
*:*
be reasonable though






qsmin
Scope: private  REAL



Description: inner q bdry of CS pulse



Range   Default: -1.0
*:*
be reasonable though






use_rsylm
Scope: private  BOOLEAN



Description: do we use real spherical harmonics for compact pulse initial data



  Default: yes






wrot
Scope: private  REAL



Description: frequency of CS pule



Range   Default: 7.5
*:*
be reasonable though






xmax
Scope: private  REAL



Description: right boundary of CS pulse



Range   Default: .8
.5:1
choose .5 < xmin < xmax < 1






xmin
Scope: private  REAL



Description: left boundary of CS pulse



Range   Default: .56
.5:1
choose .5 < xmin < xmax < 1






boundary_data
Scope: restricted  KEYWORD



Description: Choose boundary data type



Range   Default: flat
whitehole
White hole boundary data
flat
flat boundary data
randomJ
random number boundary data






debug_skip_b_update
Scope: restricted  BOOLEAN



Description: Should the update of B be turned off?



  Default: no






debug_skip_cb_update
Scope: restricted  BOOLEAN



Description: Should the update of CB be turned off?



  Default: no






debug_skip_ck_update
Scope: restricted  BOOLEAN



Description: Should the update of CK be turned off?



  Default: no






debug_skip_evolution
Scope: restricted  BOOLEAN



Description: Should the evolution be turned off?



  Default: no






debug_skip_j_update
Scope: restricted  BOOLEAN



Description: Should the update of J be turned off?



  Default: no






debug_skip_nu_update
Scope: restricted  BOOLEAN



Description: Should the update of NU be turned off?



  Default: no






debug_skip_q_update
Scope: restricted  BOOLEAN



Description: Should the update of Q be turned off?



  Default: no






debug_skip_u_update
Scope: restricted  BOOLEAN



Description: Should the update of U be turned off?



  Default: no






debug_skip_w_update
Scope: restricted  BOOLEAN



Description: Should the update of W be turned off?



  Default: no






debug_verbose
Scope: restricted  BOOLEAN



Description: should debugging messages be printed?



  Default: no






diagnostics_coord_x
Scope: restricted  REAL



Description: the coordinate x at which diagnostics are to be measured



Range   Default: 0.0
0:1
will test only for x >= NullGrid::null_xin.






first_order_scheme
Scope: restricted  BOOLEAN



Description: Should the first order (angular) scheme be used?



  Default: yes






initial_j_data
Scope: restricted  KEYWORD



Description: What kind of initial data for J shall we pick?



Range   Default: vanishing_J_scri
vanishing_J
vanishing J
vanishing_J_scri
vanishing J at scri
rotating_pulse
rotating pulse
compact_J
compact suport J
smooth_J
smoothly vanishing J
extracted_J
J as given by extraction
polynomial_J
J as third power polynomial to vanish J_xx at scri
see [1] below
linearized fitted J based on some previous run



[1]

fitted\_linearized\_J




old_j_xderiv
Scope: restricted  BOOLEAN



Description: should we compute the x derivative of J with the old values?



  Default: no






timestep_method
Scope: shared from TIME KEYWORD



7 Interfaces

General

Implements:

nullevolve

Inherits:

nullinterp

nullgrid

nullvars

time

Grid Variables

7.0.1 PRIVATE GROUPS




  Group Names    Variable Names    Details   




distmp   compact0
distmp_F   descriptiontemporaries used for dissipation
distmp_d2F   dimensions2
distmp_d4F   distributionDEFAULT
  ghostsizeNULLGRID::N_ANG_GHOST_PTS
    ghostsizeNULLGRID::N_ANG_GHOST_PTS
  group typeARRAY
  size(NULLGRID::N_ANG_PTS_INSIDE_EQ+2*(NULLGRID::N_ANG_EV_OUTSIDE_EQ+NULLGRID::N_ANG_STENCIL_SIZE))
    size(NULLGRID::N_ANG_PTS_INSIDE_EQ+2*(NULLGRID::N_ANG_EV_OUTSIDE_EQ+NULLGRID::N_ANG_STENCIL_SIZE))
  timelevels1
 vararray_size2
 variable typeCOMPLEX




dissip_mask   compact0
dissip_mask   descriptiondissipation mask
  dimensions2
  distributionDEFAULT
  ghostsizeNULLGRID::N_ANG_GHOST_PTS
    ghostsizeNULLGRID::N_ANG_GHOST_PTS
  group typeARRAY
  size(NULLGRID::N_ANG_PTS_INSIDE_EQ+2*(NULLGRID::N_ANG_EV_OUTSIDE_EQ+NULLGRID::N_ANG_STENCIL_SIZE))
    size(NULLGRID::N_ANG_PTS_INSIDE_EQ+2*(NULLGRID::N_ANG_EV_OUTSIDE_EQ+NULLGRID::N_ANG_STENCIL_SIZE))
  timelevels1
 variable typeREAL




diagtmp   compact0
diagtmp   descriptiontemporaries used for diagnostics
  dimensions2
  distributionDEFAULT
  ghostsizeNULLGRID::N_ANG_GHOST_PTS
    ghostsizeNULLGRID::N_ANG_GHOST_PTS
  group typeARRAY
  size(NULLGRID::N_ANG_PTS_INSIDE_EQ+2*(NULLGRID::N_ANG_EV_OUTSIDE_EQ+NULLGRID::N_ANG_STENCIL_SIZE))
    size(NULLGRID::N_ANG_PTS_INSIDE_EQ+2*(NULLGRID::N_ANG_EV_OUTSIDE_EQ+NULLGRID::N_ANG_STENCIL_SIZE))
  timelevels1
 vararray_size2
 variable typeCOMPLEX




aux_mask   compact0
auxiliary_maskn   descriptionauxiliary evolution masks
auxiliary_masks   dimensions2
  distributionDEFAULT
  ghostsizeNULLGRID::N_ANG_GHOST_PTS
    ghostsizeNULLGRID::N_ANG_GHOST_PTS
  group typeARRAY
  size(NULLGRID::N_ANG_PTS_INSIDE_EQ+2*(NULLGRID::N_ANG_EV_OUTSIDE_EQ+NULLGRID::N_ANG_STENCIL_SIZE))
    size(NULLGRID::N_ANG_PTS_INSIDE_EQ+2*(NULLGRID::N_ANG_EV_OUTSIDE_EQ+NULLGRID::N_ANG_STENCIL_SIZE))
  timelevels1
 variable typeINT




eth4_mask   compact0
eth4_maskn   descriptiondissipation masks
    descriptionto protect the startup from taking eth4
eth4_masks   dimensions2
  distributionDEFAULT
  ghostsizeNULLGRID::N_ANG_GHOST_PTS
    ghostsizeNULLGRID::N_ANG_GHOST_PTS
  group typeARRAY
  size(NULLGRID::N_ANG_PTS_INSIDE_EQ+2*(NULLGRID::N_ANG_EV_OUTSIDE_EQ+NULLGRID::N_ANG_STENCIL_SIZE))
    size(NULLGRID::N_ANG_PTS_INSIDE_EQ+2*(NULLGRID::N_ANG_EV_OUTSIDE_EQ+NULLGRID::N_ANG_STENCIL_SIZE))
  timelevels1
 variable typeINT




jrad   compact0
jcn_rad   dimensions1
jcs_rad   distributionCONSTANT
  group typeARRAY
  sizeNULLGRID::N_RADIAL_PTS
  timelevels1
 variable typeCOMPLEX








  Group Names    Variable Names    Details   




dxjrad   compact0
dxjcn_rad   dimensions1
dxjcs_rad   distributionCONSTANT
  group typeARRAY
  sizeNULLGRID::N_RADIAL_PTS
  timelevels1
 variable typeCOMPLEX




8 Schedule

This section lists all the variables which are assigned storage by thorn PITTNullCode/NullEvolve. 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: Conditional:
NullVars::realcharfuncs[2] NullVars::cmplxcharfuncs_aux[2]
NullVars::cmplxcharfuncs_basic[2]  
NullVars::null_mask  
NullGrid::EG_mask NullGrid::EQ_mask NullGrid::EV_mask 
eth4_mask  
dissip_mask  
diagtmp  
aux_mask  
Jrad  
dxJrad  
   

Scheduled Functions

CCTK_POSTINITIAL (conditional)

  nullevol_initial

  null init data

 

 After: harmidata_init_to_adm
    harmidata_pinit_to_adm
   mol_fillalllevels
   adm_bssn_init
 Options:global
 Type: group

CCTK_INITIAL (conditional)

  nullevol_initializearrays

  initialize all arrays to large values

 

 Before: nullevol_initial
  Language:fortran
 Type: function

NullEvol_BoundaryInit (conditional)

  nullevol_bdry_flat

  give flat boundary conditions for the null metric

 

 Language:fortran
 Options: global
 Type: function

NullEvol_BoundaryInit (conditional)

  nullevol_bdry_whitehole

  give white hole boundary conditions for the null metric

 

 Language:fortran
 Options: global
 Type: function

NullEvol_BoundaryInit (conditional)

  nullevol_bdry_randomj

  give random j boundary conditions for the null metric

 

 Language:fortran
 Options: global
 Type: function

NullEvol_Boundary (conditional)

  nullevol_bdry_flat

  give flat boundary conditions for the null metric

 

 Language:fortran
 Options: global
 Type: function

NullEvol_Boundary (conditional)

  nullevol_bdry_whitehole

  give white hole boundary conditions for the null metric

 

 Language:fortran
 Options: global
 Type: function

NullEvol_Boundary (conditional)

  nullevol_bdry_randomj

  give random j boundary conditions for the null metric

 

 Language:fortran
 Options: global
 Type: function

CCTK_EVOL (conditional)

  nullevol_resettop

  reset top values

 

 Before: nullevol_boundary
 Language:fortran
 Options: global
 Type: function

CCTK_EVOL (conditional)

  nullevol_boundary

  boundary data

 

 After: harmevol_to_adm
    mol_evolution
 Options:global
 Type: group

CCTK_EVOL (conditional)

  nullevol_step

  evolution

 

 After: nullevol_boundary
 Language:fortran
 Options: global
 Storage: distmp
 Type: function

NullEvol_Initial (conditional)

  nullevol_initialdata

  give j on the initial null hypersurface

 

 After: nullevol_boundaryinit
 Language:fortran
 Options: global
 Type: function

NullEvol_Initial (conditional)

  nullevol_boundaryinit

  boundary data for the characteristic data

 

 Before:nullevol_initialdata
    nullevol_initialslice
 Type: group

NullEvol_Initial (conditional)

  nullevol_initialslice

  construct null metric on the initial null hypersurface

 

 After: nullevol_boundaryinit
   nullevol_initialdata
  Language:fortran
 Options: global
 Type: function

NullEvol_Initial (conditional)

  nullevol_diag

  diagnostics of the characteristic code

 

 After: nullevol_initialslice
  Language:fortran
 Options: global
 Storage: diagtmp
 Type: function

CCTK_EVOL (conditional)

  nullevol_diag

  diagnostics of the characteristic code

 

 After: nullevol_step
 Language:fortran
 Options: global
 Storage: diagtmp
 Type: function