|
|
(One intermediate revision by one other user not shown) |
Line 1: |
Line 1: |
− | = Software Required to Build GridPACK =
| + | [[Software Required to Build GridPACK]] |
− | | + | [[How to Build GridPACK]] |
− | == CMake/CTest ==
| |
− | | |
− | GridPACK uses the [http://www.cmake.org/ CMake] cross-platform build system. A reasonably modern version is required. Currently, version 2.6 or newer is required.
| |
− | | |
− | [http://www.cmake.org/ CMake] projects are designed to be built outside of the source code location. If the entire GridPACK <code>trunk</code> repository is checked out, the top of the the [http://www.cmake.org/ CMake] project is <code>.../src</code>. Make a subdirectory there called <code>build</code> or something. Configure and build GridPACK in that subdirectory.
| |
− | | |
− | == MPI ==
| |
− | | |
− | A working MPI implementation is required. [http://www.open-mpi.org/ OpenMPI] has been used successfully. There is no reason to think other implementations would not work. The GridPACK configuration can deal with MPI compiler wrappers (e.g. <code>mpicc</code>), but can also understand other installations.
| |
− | | |
− | Identify the compilers and <code>mpiexec</code> to the configuration by including <code>cmake</code> options like:
| |
− | | |
− | -D MPI_CXX_COMPILER:STRING='openmpicxx'
| |
− | -D MPI_C_COMPILER:STRING='openmpicc'
| |
− | -D MPIEXEC:STRING='openmpiexec'
| |
− | | |
− | Other options may be needed to specify the MPI environment. See the documentation [http://www.cmake.org/cmake/help/v2.8.8/cmake.html#module:FindMPI here].
| |
− | | |
− | == Boost ==
| |
− | | |
− | The [http://www.boost.org/ Boost C++ Library] is used heavily throughout the GridPACK framework, and a relatively recent version is required. The configuration requires version 1.52 or later, but older versions may work. The [http://www.boost.org/ Boost] installation must include [http://www.boost.org/doc/libs/1_53_0/doc/html/mpi.html Boost::MPI] which must have been built with the same MPI compiler used for GridPACK.
| |
− | | |
− | To configure GridPACK one need only specify where [http://www.boost.org/ Boost] is installed, like this
| |
− | | |
− | -D Boost_DIR:STRING='/opt/local'
| |
− | | |
− |
| |
− | == PETSc ==
| |
− | | |
− | GridPACK currently relies on the [http://www.mcs.anl.gov/petsc/index.html Portable, Extensible Toolkit for Scientific Computation (PETSc)] for parallel linear algebra, and linear and nonlinear system solvers. PETSc is a complicated package with numerous options. PETSc needs to be built with MPI enabled and using the same MPI implementation used for GridPACK. It also needs to be configured for complex support and to use C++ as the base language. Refer to the [http://www.mcs.anl.gov/petsc/documentation/installation.html PETSc installation documentation] for hints on how this is done.
| |
− | | |
− | The GridPACK configuration must know where [http://www.mcs.anl.gov/petsc/index.html PETSc] is installed. This is specified by two options as shown below.
| |
− | | |
− | -D PETSC_DIR:STRING='/Users/d3g096/ProjectStuff/petsc-3.4.0'
| |
− | -D PETSC_ARCH:STRING='arch-darwin-cxx-opt'
| |
− | | |
− | | |
− | == ParMETIS ==
| |
− | | |
− | GridPACK uses [http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview ParMETIS] to (re)distribute an electrical grid network over several processors. It needs to be built with the same MPI configuration as [http://www.boost.org/ Boost] and [http://www.mcs.anl.gov/petsc/index.html PETSc]. In most cases, the GridPACK configuration just needs to know where [http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview ParMETIS] was installed, which is specified by
| |
− | | |
− | -D PARMETIS_DIR:STRING="/pic/projects/gridpack/software"
| |
− | | |
− | GridPACK requires version ParMETIS version 4.0. Older versions will not work.
| |
− | | |
− | == Doxygen ==
| |
− | | |
− | GridPACK uses [http://www.doxygen.org/ Doxygen] to help document code. [http://www.doxygen.org/ Doxygen] documentation can optionally be prepared during the build process. This is enabled if [http://www.doxygen.org/ Doxygen] is found. [http://www.graphviz.org/ Graphviz] is necessary for full documentation features. | |