Docs:  FAQ

General

  • Where should I send HAD bug reports and questions?
  • Why is HAD programmed in F77, instead of Fortran 90 or C++?
  • Where can I find a list of publications which use HAD?
  • How should I cite HAD?
  • Does HAD have an adaptive multigrid solver?
  • Does HAD support subcycling in time?
  • Does HAD support cell-centered AMR?
  • How does the shadow hierarchy work?
  • How well does HAD scale?
  • Who paid for the development of HAD?
  • Does HAD support excision with AMR?
  • Installation

  • How do I install HAD?
  • How can I change the memory arena of HAD?
  • What libraries do I need to install HAD?
  • What compilers has HAD been tested with?
  • When I compile, I get an error saying that f_file_processor.pl is not found.
  • Execution

    Debugging

  • How do I debug in HAD?
  • I get the error "mem_alloc: Size cannot be negative".

  • General

    Where should I send HAD bug reports and questions?

    Send all maintenance requests to Steve Liebling

    Why is HAD programmed in Fortran 77, instead of Fortran90 or C++?

    HAD is written in Fortran77 and is fully interoperable with Fortran90/95, C, and C++. F77 is portable, simple, and efficient.

    Where can I find a list of publications which use HAD?

    A list of publications which have used HAD along with movies is found here. If you use HAD in a publication, please send us the reference.

    How should I cite HAD?

    If you cite HAD in a publication:
    @Article{HAD,
    author = "Liebling, S L",
    title = "The singularity threshold of the nonlinear sigma model using 3D adaptive mesh refinement",
    journal = "Phys. Rev. D",
    volume = "66",
    year = "2002",
    pages = "041703",
    }

    Does HAD have an adaptive multigrid solver?

    HAD comes with a parallel adaptive multigrid solver. An example and documentation will be forthcoming.

    Does HAD support subcycling in time?

    HAD supports subcycling in time. It also allows flexibility in choosing your own timesteps for different meshes.

    Does HAD support cell-centered AMR?

    HAD supports both cell-centered and vertex-centered AMR. The example provided with the source code is a vertex-centered AMR example; a cell-centered example will be forthcoming. HAD supports hybrid cell-centered and vertex-centered AMR also.

    How does the shadow hierarchy work?

    The shadow hierarchy creates an coarse mesh for truncation error estimation. Details of the shadow hierarchy implementation are found in:
    @phdthesis{shadow_hierarchy,
    author = "Pretorius, F",
    title = "Numerical simulations of gravitational collapse",
    school = "The University of British Columbia",
    year = "2002"
    }

    How well does HAD scale?

    HAD scales well and has been tested on over hundreds of processors both with and without AMR. Scaling results are found in Anderson et al., Class. Quantum Grav. 23 (2006) 6503-6524

    Who paid for the development of HAD?

    The development of HAD was paid for by the National Science Foundation through grants PHY-0326311 and PHY-0244699 to Louisiana State University, PHY-0326378 and PHY-0502218 to Brigham Young University, and PHY-0325224 to Long Island University.

    Does HAD support excision with AMR?

    HAD supports cubical excision with AMR for up to two excision regions. Excision is frequently used in numerical relativity to remove a singularity from the computational domain.

     


    Installation

    How do I install HAD?

    Check the installation instructions.

    How can I change the memory arena of HAD?

    F77 does not allow for dynamic memory allocation, so HAD allocates a memory arena of fixed size for simulations. The default is 721 MB. To change this, modify "include/mem.inc" and recompile.

    What libraries do I need to install HAD?

    The rnpl library bbhutil is required. Download and installation instructions are found here.

    What compilers has HAD been tested with?

    HAD has been highly tested with the intel compilers. It has also been tested using pgf90, xlf90, and gfortran..

    When I compile, I get an error saying that f_file_processor.pl is not found.

    The perl parser script f_file_processor.pl is located in the had/sbin directory and needs to be in your PATH for the compile process to work. You can either add directory had/sbin to your path or copy had/sbin/f_file_processor.pl to some directory that is already in your path.
    Example:  export PATH=~/had/sbin:$PATH

     


    Execution

    How do I run HAD?

    HAD expects a parameter file to be given as a command line argument. If running with MPI, invoke it as usual:
      mpirun -np < number of processors > < executable name > < parameter file name >

    I run HAD, but I get nonsensical grid structure output. What's wrong?

    Check the grid size in the parameter file. HAD requires that the number of points in each dimension be odd. So if you ask for, say, 32 points in the x direction for a coarse grid, you will get nonsensical answer. In this example, you would need to request 31 or 33 points in the x direction instead of 32.


    Debugging

    How do I debug in HAD?

    HAD routines contain ltrace statements which activate debugging options. Some of these can be activated as runtime parameters; others require the code to be recompiled. HAD also works perfectly well with the gnu and intel debuggers; simply specify the -g flag and recompile. HAD has also been tested with TotalView.

    I get the error "mem_alloc: Size cannot be negative".

    This indicates an invalid memory allocation request, almost certainly due to changing include files with recompiling necessary dependencies. To fix, run "make clean" and then "make".