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=\pm 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