Using the Noise thorn

Denis Pollney

April 2002

Abstract

The Noise thorn can be used to place random values on Cactus grid functions at initial data and at the boundaries during evolution. This can be used to carry out “robust stability” tests, such as those proposed by Jeff Winicour.

1 Initial data

To apply a random perturbation to initial data, set noise::apply_id_noise="yes". Then each grid function listed in the parameter noise::id_vars will be adjusted by a random factor. The maximum size of the random perturbation is controlled by the parameter noise::amplitude. The perturbations are applied during the CCTK_POSTINITIAL time bin.

2 Boundary conditions

A random number will be added to each point on the boundary of grid functions listed in the noise::bc_vars parameter if the flag noise::apply_bc_noise="yes" is set. As with the initial data, the maximum size of the perturbation is given by the noise::amplitude parameter. The adjustments are applied at each CCTK_POSTSTEP.

3 Example

The following parameters can be used to apply a random adjustment of size A = ±0.0005 to the initial data and boundaries of the metric variables.

  ActiveThorns = "... Noise ..."  
 
  noise::apply_id_noise = "yes"  
  noise::id_vars        = "admbase::metric"  
 
  noise::apply_bc_noise = "yes"  
  noise::bc_vars        = "admbase::metric"  
 
  noise::amplitude      = 0.001

4 Parameters




amplitude
Scope: private  REAL



Description: Maximum absolute value of random data



Range   Default: 0.000001
0:
Positive number






apply_bc_noise
Scope: private  BOOLEAN



Description: Add random noise to initial data



  Default: no






apply_id_noise
Scope: private  BOOLEAN



Description: Add random noise to initial data



  Default: no






bc_vars
Scope: private  STRING



Description: Variables to modify with noise at boundary



Range   Default: (none)
.*
A regex which matches everything






id_vars
Scope: private  STRING



Description: Initial data variables to modify with noise



Range   Default: (none)
.*
A regex which matches everything






noise_boundaries
Scope: private  BOOLEAN



Description: At which boundaries to apply noise



  Default: yes






noise_stencil
Scope: private  INT



Description: Number of boundary points



Range   Default: 1
0:*
0:*



5 Interfaces

General

Implements:

noise

Inherits:

grid

Uses header:

Symmetry.h

6 Schedule

This section lists all the variables which are assigned storage by thorn CactusNumerical/Noise. 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

NONE

Scheduled Functions

CCTK_INITIAL (conditional)

  id_noise

  add noise to initial data

 

 After: admbase_initialdata
   
   admbase_initialgauge
  
    hydrobase_initial
 Before: admbase_postinitial
  
   hydrobase_prim2coninitial
 Language:c
 Type: function

CCTK_POSTSTEP (conditional)

  bc_noise

  add noise to boundary condition

 

 Language:c
 Type: function

CCTK_POSTRESTRICT (conditional)

  bc_noise

  add noise to boundary condition

 

 Language:c
 Type: function