- Notifications
You must be signed in to change notification settings - Fork6
The Arbitrary Linear Plasma Solver
License
danielver02/ALPS
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is the ALPS code: the Arbitrary Linear Plasma Solver.
Kristopher Klein (kgklein@arizona.edu)
Daniel Verscharen (d.verscharen@ucl.ac.uk)
- What is ALPS?
- Acknowledgements
- Installing the ALPS Code
- Running the ALPS Code
- License
ALPS is a parallelised numerical code that solves the Vlasov-Maxwell dispersionrelation in hot (even relativistic) magnetised plasma. ALPS allows for anynumber of particle species with arbitrary gyrotropic background distributionfunctions supporting waves with any direction of propagation with respect tothe background magnetic field.
If you use the code for a science publication,
- please provide the code websitegithub.com/danielver02/ALPS in the acknowledgements,
- cite the DOI of the code:
@software{alps_2023_8075682, author = {{Klein}, K. G. and {Verscharen}, D. and {Koskela}, T. and {Stansby}, D.}, title = {danielver02/ALPS: Zenodo release}, month = jun, year = 2023, publisher = {Zenodo}, version = {v1.0.1}, doi = {10.5281/zenodo.8075682}, url = {https://doi.org/10.5281/zenodo.8075682}}
- and cite the code paper:
The documentation of the code can be found onalps.space.
The development of the ALPS code was supported by NASA Grant NNX16AG81G. The code developers appreciate support from the UK Scienceand Technology Facilities Council (STFC) Ernest Rutherford Fellowship ST/P003826/1,STFC Consolidated Grants ST/S000240/1 and ST/W001004/1, and the Open SourceSoftware Sustainability Funding programme from UCL's Advanced Research ComputingCentre and UCL's eResearch Domain. We appreciate software engineering support byDavid Stansby and Tuomas Koskela from UCL.
For advice on the installation of the code, please checkINSTALL.md
ALPS works with input files that specify the plasma and numerical parameters forthe calculation. We recommend that you start by checking out the provided testcases as a guidance for the creation of input files. These test cases are listedin the scriptsrun_test.sh
andrun_test_suite.sh
in the subfolder./tests
. All associated input files havea name starting withtest_
.
You can execute the ALPS code through the following command:
mpirun -np <NP> ./src/ALPS <input_file.in>
where<NP>
is the number of processors you want to use. This number must be greaterthan or equal to 4, and it must be an even number.<input_file.in>
is the input filethat includes all parameters for your run.
On some systems, depending on the MPI configuration, the oversubscribe flag isrequired. In this case, the above command must be replaced with
mpirun -np <NP> --oversubscribe ./src/ALPS <input_file.in>
For first-time users, we recommend working through ourALPS Tutorial. The key input parameters for ALPS are described on theALPS Input page. The output format of ALPS is described on theALPS Output page.
BSD 2-Clause License
Copyright (c) 2023, Kristopher G. Klein and Daniel VerscharenAll rights reserved.
Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, thislist of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice,this list of conditions and the following disclaimer in the documentationand/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THEIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AREDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLEFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIALDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ORSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVERCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USEOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
About
The Arbitrary Linear Plasma Solver