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.
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"
}
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.
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
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.
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".