NullEvolve

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-(pˆ
2  +qˆ
2  )+—1-(p ˆ
2  +qˆ
2  )—”
see [1] below
”set 2B=rD0-(pˆ
2  +qˆ
2  )+—rD 0-(pˆ
2  +qˆ
2  )—”
see [1] below
”set 2B=min(1, (rD0-(pˆ
2  +qˆ
2  )+—rD0- (pˆ
2  +qˆ
2  )—) / (rD0-1) )”
see [1] below
”set 2B=min(1, (rD0-(pˆ
2  +qˆ
2  )+—rD0- (pˆ
2  +qˆ
2  )—) / (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 TIMEKEYWORD



7 Interfaces

General

Implements:

nullevolve

Inherits:

nullinterp

nullgrid

nullvars

time

Grid Variables

7.0.1 PRIVATE GROUPS





  Group Names     Variable Names   Details    




distmp compact 0
distmp_F description temporaries used for dissipation
distmp_d2F dimensions 2
distmp_d4F distribution DEFAULT
ghostsize NULLGRID::N_ANG_GHOST_PTS
  ghostsize NULLGRID::N_ANG_GHOST_PTS
group type ARRAY
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))
timelevels 1
vararray_size 2
variable type COMPLEX




dissip_mask dissip_mask compact 0
description dissipation mask
dimensions 2
distribution DEFAULT
ghostsize NULLGRID::N_ANG_GHOST_PTS
  ghostsize NULLGRID::N_ANG_GHOST_PTS
group type ARRAY
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))
timelevels 1
variable type REAL




diagtmp diagtmp compact 0
description temporaries used for diagnostics
dimensions 2
distribution DEFAULT
ghostsize NULLGRID::N_ANG_GHOST_PTS
  ghostsize NULLGRID::N_ANG_GHOST_PTS
group type ARRAY
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))
timelevels 1
vararray_size 2
variable type COMPLEX




aux_mask compact 0
auxiliary_maskn description auxiliary evolution masks
auxiliary_masks dimensions 2
distribution DEFAULT
ghostsize NULLGRID::N_ANG_GHOST_PTS
  ghostsize NULLGRID::N_ANG_GHOST_PTS
group type ARRAY
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))
timelevels 1
variable type INT




eth4_mask compact 0
eth4_maskn description dissipation masks
  description to protect the startup from taking eth4
eth4_masks dimensions 2
distribution DEFAULT
ghostsize NULLGRID::N_ANG_GHOST_PTS
  ghostsize NULLGRID::N_ANG_GHOST_PTS
group type ARRAY
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))
timelevels 1
variable type INT




jrad compact 0
jcn_rad dimensions 1
jcs_rad distribution CONSTANT
group type ARRAY
size NULLGRID::N_RADIAL_PTS
timelevels 1
variable type COMPLEX








  Group Names     Variable Names   Details    




dxjrad compact 0
dxjcn_rad dimensions 1
dxjcs_rad distribution CONSTANT
group type ARRAY
size NULLGRID::N_RADIAL_PTS
timelevels 1
variable type COMPLEX




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