Skip to content.

The Cactus Code

Sections
Personal tools
You are here: Home » Wave Toy Demo » Wave Toy Development

Wave Toy Development

WaveToy Demo

Here is the standard demonstration of the wavetoy using the most current development release which includes the same tools as the normal version but using the latest development release

Note that you only need a C compiler for this, and about 50MB of free diskspace.

We are not going to describe completely here how to checkout and compile this Cactus application ... for this see the information on the Download page, the HOWTOs or the Users Guide. We assume that you are checking out Cactus using CVS, and that you know the configuration line needed, or have a configuration file, for compiling Cactus.

Demo with Web Server and Streaming IsoSurfaces

Before you start, make sure you have the following items:
  • GetCactus the perl script for easily checking a Cactus application out from our CVS server.
  • WaveDemoDev.th the ThornList for the development version of the wavetoy,
  • WaveDemoDev.par a parameter file for running the demonstration.
  • IsoView the isosurface visualization client.
  • A web browser.
  • Note that you'll need a live network connection to checkout the code, but you can run the demo on a single machine, the remote tools will look more impressive though if you use two networked machines, preferably a long way apart.

Check out and compile

Checkout the source code using something like

	  perl -s GetCactus WaveDemoDev.th

You should should answer 2 when it asks what release of cactus you want, this way you wil get the correct flesh and thorns for the development version.

Move into the Cactus directory (cd Cactus), and compile the application using either

gmake WaveDemoDev-config <configuration options>
gmake WaveDemoDev

or if you have a configuration file (this is easiest, you don't need to remember the options you use)

gmake WaveDemoDev-config options=<configuration filename> 
gmake WaveDemoDev

Hopefully that went OK, and you now have an executable, exe/cactus_WaveDemoDev. Check it really worked by running the testsuites, just type

gmake WaveDemoDev-testsuite

and use the default answers to each question.

Run the demo

Move the downloaded demo parameter file into the Cactus directory. To start the simulation, run your new executable with the demo parameter file, if you have a single processor executable

./exe/cactus_WaveDemoDev WaveDemoDev.par

If you compiled with MPI and have a multiprocessor version, you will need to use the appropriate mpi command for running.

When the simulation starts, you will see output describing for example the activated thorns and the scheduling tree.

jscullin$ ./exe/cactus_WaveDemoDev WaveDemoDev.par
--------------------------------------------------------------------------------

       10                                  
  1   0101       ************************  
  01  1010 10      The Cactus Code V4.0    
 1010 1101 011      www.cactuscode.org     
  1001 100101    ************************  
    00010101                               
     100011     (c) Copyright The Authors  
      0100      GNU Licensed. No Warranty  
      0101                                 

--------------------------------------------------------------------------------

Cactus version: 4.0.b13
Compile date:   Mar 22 2004 (16:20:23)
Run date:       Mar 23 2004 (10:56:35)
Run host:       howe-dhcp-190-126.howe.lsu.edu
Executable:     ./exe/cactus_WaveDemoDev
Parameter file: WaveDemoDev.par
--------------------------------------------------------------------------------

Activating thorn Cactus...Success -> active implementation Cactus
Activation requested for 
--->pugh pughslab pughreduce isosurfacer iojpeg jpeg6b ioutil ioascii
 iobasic time wavetoyc cartgrid3d boundary idscalarwavec wavebinarysource
  httpd httpdextra socket coordbase symbase<---
Activating thorn boundary...Success -> active implementation boundary
Activating thorn cartgrid3d...Success -> active implementation grid
Activating thorn coordbase...Success -> active implementation CoordBase
Activating thorn httpd...Success -> active implementation HTTPD
Activating thorn httpdextra...Success -> active implementation http_utils
Activating thorn idscalarwavec...Success -> active implementation idscalarwave
Activating thorn ioascii...Success -> active implementation IOASCII
Activating thorn iobasic...Success -> active implementation IOBasic
Activating thorn iojpeg...Success -> active implementation IOJpeg
Activating thorn ioutil...Success -> active implementation IO
Activating thorn isosurfacer...Success -> active implementation isosurfacer
Activating thorn jpeg6b...Success -> active implementation jpeg6b
Activating thorn pugh...Success -> active implementation Driver
Activating thorn pughreduce...Success -> active implementation Reduce
Activating thorn pughslab...Success -> active implementation Hyperslab
Activating thorn socket...Success -> active implementation Socket
Activating thorn symbase...Success -> active implementation SymBase
Activating thorn time...Success -> active implementation time
Activating thorn wavebinarysource...Success -> active implementation binarysource
Activating thorn wavetoyc...Success -> active implementation wavetoy
--------------------------------------------------------------------------------
  if (recover initial data)
    Recover parameters
  endif

  Startup routines
    [CCTK_STARTUP]
    CartGrid3D: Register GH Extension for GridSymmetry
    CoordBase: Register a GH extension to store the coordinate system handles
    GROUP HTTP_Startup: HTTP daemon startup group
      HTTPD: Start HTTP server
      GROUP HTTP_SetupPages: Group to setup stuff which needs to be done between 
      starting the server and the first time it serves pages
      HTTPD: Serve first pages at startup
    HTTPDExtra: Utils for httpd startup
    PUGH: Startup routine
    IOUtil: Startup routine
    IOJpeg: Startup routine
    IOASCII: Startup routine
    IsoSurfacer: Startup routine
    IOBasic: Startup routine
    PUGHReduce: Startup routine
    SymBase: Register GH Extension for SymBase
    WaveToyC: Register banner

  Startup routines which need an existing GH
    [CCTK_WRAGH]
    Boundary: Register boundary conditions that this thorn provides
    CartGrid3D: Register coordinates for the Cartesian grid
    GROUP SymmetryRegister: Register your symmetries here
      CartGrid3D: Register symmetry boundaries
  Parameter checking routines
    [CCTK_PARAMCHECK]
    Boundary: Check dimension of grid variables
    CartGrid3D: Check coordinates for CartGrid3D
    IDScalarWaveC: Check parameters

  Initialisation
    [CCTK_BASEGRID]
    CartGrid3D: Set up spatial 3D Cartesian coordinates on the GH
    IOASCII: Choose 1D output lines
    IOASCII: Choose 2D output planes
    IOJpeg: Choose 2D output planes
    PUGH: Report on PUGH set up
    Time: Initialise Time variables
    Time: Set timestep based on Courant condition (courant_static)
    WaveToyC: Schedule symmetries
    if (NOT (recover initial data AND recovery_mode is 'strict'))
      [CCTK_INITIAL]
      IDScalarWaveC: Initial data for 3D wave equation
      IOBasic: Initialisation routine
      [CCTK_POSTINITIAL]
      [CCTK_POSTSTEP]
      HTTPD: Working routine
      HTTPD: Content Working routine
      IsoSurfacer: Polling routine
    endif
    if (recover initial data)
      [CCTK_RECOVER_VARIABLES]
      [CCTK_POST_RECOVER_VARIABLES]
    endif
    if (checkpoint initial data)
      [CCTK_CPINITIAL]
    endif
    if (analysis)
      [CCTK_ANALYSIS]
    endif
    Do periodic output of grid variables

  do loop over timesteps
    Rotate timelevels
    iteration = iteration + 1
    t = t+dt
    [CCTK_PRESTEP]
    [CCTK_EVOL]
    WaveToyC: Evolution of 3D wave equation
    WaveBinarySource: Provide binary source during evolution (C)
    WaveToyC: Boundaries of 3D wave equation
    GROUP WaveToyC_ApplyBCs: Apply boundary conditions
      GROUP BoundaryConditions: Execute all boundary conditions
        Boundary: Apply all requested local physical boundary conditions
        CartGrid3D: Apply symmetry boundary conditions
      Boundary: Unselect all grid variables for boundary conditions
    [CCTK_POSTSTEP]
    HTTPD: Working routine
    HTTPD: Content Working routine
    IsoSurfacer: Polling routine
    if (checkpoint)
      [CCTK_CHECKPOINT]
    endif
    if (analysis)
      [CCTK_ANALYSIS]
    endif
    Do periodic output of grid variables
  enddo

  Termination routines
    [CCTK_TERMINATE]
    IsoSurfacer: Termination routine
    PUGH: Termination routine

  Shutdown routines
    [CCTK_SHUTDOWN]
    HTTPD: HTTP daemon shutdown
--------------------------------------------------------------------------------
Server started on http://howe-dhcp-190-126.howe.lsu.edu:5555/
--------------------------------------------------------------------------------
Driver provided by PUGH
--------------------------------------------------------------------------------
WaveToyC: Evolutions of a Scalar Field
--------------------------------------------------------------------------------

INFO (IOJpeg): I/O Method 'IOJpeg' registered
INFO (IOJpeg): IOJpeg: Output of 2D jpeg images of grid functions/arrays
INFO (IOASCII): I/O Method 'IOASCII_1D' registered
INFO (IOASCII): IOASCII_1D: Output of 1D lines of grid functions/arrays to ASCII files
INFO (IOASCII): I/O Method 'IOASCII_2D' registered
INFO (IOASCII): IOASCII_2D: Output of 2D planes of grid functions/arrays to ASCII files
INFO (IOASCII): I/O Method 'IOASCII_3D' registered
INFO (IOASCII): IOASCII_3D: Output of 3D grid functions/arrays to ASCII files
INFO (IOBasic): I/O Method 'Scalar' registered
INFO (IOBasic): Scalar: Output of scalar quantities (grid scalars, reductions) to ASCII files
INFO (IOBasic): I/O Method 'Info' registered
INFO (IOBasic): Info: Output of scalar quantities (grid scalars, reductions) to screen
INFO (IsoSurfacer): Isosurfacer listening for connections
                   host 'howe-dhcp-190-126.howe.lsu.edu' control port 7050 data port 7051
INFO (CartGrid3D): Grid Spacings:
INFO (CartGrid3D): dx=>5.1282051e-02  dy=>5.1282051e-02  dz=>5.1282051e-02
INFO (CartGrid3D): Computational Coordinates:
INFO (CartGrid3D): x=>[-1.000, 1.000]  y=>[-1.000, 1.000]  z=>[-1.000, 1.000]
INFO (CartGrid3D): Indices of Physical Coordinates:
INFO (CartGrid3D): x=>[0,39]  y=>[0,39]  z=>[0,39]
INFO (PUGH): Single processor evolution
INFO (PUGH): 3-dimensional grid functions
INFO (PUGH):   Size: 40 40 40
INFO (Time): Timestep set to 0.0128205 (courant_static)
INFO (IOJpeg): IOJpeg: Periodic output every 10 iterations
INFO (IOJpeg): IOJpeg: Periodic output requested for 'WAVETOY::phi'
INFO (IOASCII): IOASCII_1D: Periodic output every 10 iterations
INFO (IOASCII): IOASCII_1D: Periodic output requested for 'WAVETOY::phi'
INFO (IOASCII): IOASCII_2D: Periodic output every 10 iterations
INFO (IOASCII): IOASCII_2D: Periodic output requested for 'WAVETOY::phi'
INFO (IOASCII): IOASCII_3D: Periodic output turned off
INFO (IOBasic): Scalar: Periodic output requested for 'WAVETOY::phi'
INFO (IOBasic): Info: Periodic output requested for 'WAVETOY::phi'
-------------------------------------------------
   it  |          | WAVETOY::phi                |
       |    t     | minimum      | maximum      |
-------------------------------------------------
     0 |    0.000 | 5.148200e-131 |   0.82099467 |
    10 |    0.128 |  -0.36112555 |   0.43829744 |
    20 |    0.256 |-1.296535e-12 |   0.43130301 |
    30 |    0.385 |  -0.00000003 |   0.58396953 |
    

Now you should be able to use all of the tools with the standard release of the Wavetoy demo.

Created by jeffd
Last modified 2006-06-29 12:46 PM
 

Powered by Plone

This site conforms to the following standards: