Giter Site home page Giter Site logo

ptarmigan's Introduction

ptarmigan

Ponderomotive trajectories and radiation emission

Build

All of ptarmigan's default dependencies are Rust crates, which are downloaded automatically by Cargo. Building the code in this case is as simple as running:

cargo build --release [-j NUM_THREADS]

where NUM_THREADS is the number of separate threads that Cargo is allowed to spawn.

There are three optional features: with-mpi, which enables parallel processing via MPI; fits-output, which switches the output format for distribution functions from text to FITS; and hdf5-output, which switches the output format for particle arrays to HDF5. Each requires some external libraries to be installed. with-mpi needs an MPI library (ptarmigan is tested against OpenMPI, versions <= 3.1, and MPICH) and the Clang compiler. fits-output and hdf5-output require CFITSIO and libhdf5 respectively. To build with one or all of these, run:

cargo build --release --features with-mpi,fits-output,hdf5-output [-j NUM_THREADS]

The ptarmigan changelog can be found here.

Specify problem

ptarmigan takes as its single argument the path to a YAML file describing the input configuration. Output is automatically written to the same directory as this file. The inputs for some test problems can be found in examples. Starting from scratch, the input needs to contain the following sections:

  • control
  • laser
  • beam

and optionally

  • constants

The structure of the input file is described in detail here.

Run

Assuming ptarmigan has been downloaded to ptarmigan and already built,

cd ptarmigan
[mpirun -n np] ./target/release/ptarmigan path/to/input.yaml

will run the code, parallelized over np MPI tasks (if MPI support has been enabled).

ptarmigan's People

Contributors

tgblackburn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.