Skip to content

jwgcarlson/Copter

Repository files navigation

Welcome to Copter!

Introduction
------------
Copter is a software package for doing calculations in cosmological
perturbation theory.  Specifically, Copter includes code for computing
statistical observables in the large-scale structure of matter using various
forms of perturbation theory, including linear theory, standard perturbation
theory, renormalized perturbation theory, and many others.  For a fuller
description of the various theories, see arXiv:0905.0479 and references
therein.


Requirements
------------
Copter is written in C++, so you'll need a relatively modern C++ compiler (e.g.
g++).  Copter makes use of the Boost C++ library headers, so you will need to
have these installed somewhere on your system.  (Note that Copter only uses
boost::bind and boost::cref, both of which are defined purely in header files,
so there is no need to link against boost.  Also, these particular functions
have now been included in the standardize TR1 library, so the dependence on
Boost will go away in the future.)

To build the optional Python bindings, you'll need
  1) a recent version of SWIG (usually located at /usr/bin/swig).
  2) Python development headers (usually found in /usr/include/pythonM.N),
  3) Numpy development headers (usually found in /usr/include/numpy)
The configure script (described below) should find the relevant files
automagically.


Building and Installing
-----------------------
Copter should compile on any standard Unix-like system (including Linux and OS
X).  It makes use of GNU Autotools, which is the standard build system for most
open source software today.  For you, the user, installation is as simple as
entering the three commands
  $ ./configure [OPTION]... [VAR=VALUE]...
  $ make
  $ make install

The installation directory is determined by the options you pass to the
'configure' script.  The most important options are:
  --prefix=PREFIX   top-level installation directory (defaults to /usr/local,
                      so you probably want to specify this option)
  --enable-openmp   use OpenMP to parallelize expensive loops (default yes)
  --enable-python   build Python bindings (default no)
By default 'make' will use the standard system compiler.  To use a different
compiler, append 'CXX=<preferred C++ compiler>' to your configure command.
Try `./configure --help' to see a full list of options.

Running 'make install' will install the library 'libcopter.so' to 'PREFIX/lib',
the corresponding C++ header files to 'PREFIX/include/Copter', and some
standard data files to 'PREFIX/share/Copter'.  If Python bindings are enabled,
they will be installed to 'PREFIX/lib/pythonM.N/site-packages'.

For example, to install Copter to your home directory (~/lib, ~/include, etc.)
using the Intel compiler, you would run
  $ ./configure --prefix=$HOME --enable-openmp CXX=icpc
  $ make
  $ make install

About

A software package for cosmological perturbation theory

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published