Commit 0935c617 authored by frey_m's avatar frey_m
Browse files

File header for P3M files

parent c91a07ed
//
// File ChargedParticleFactory
// These functions are used in the P3M applications to generate the initial
// particle distribution.
//
// Copyright (c) 2016, Benjamin Ulmer, ETH Zürich
// All rights reserved
//
// Implemented as part of the Master thesis
// "The P3M Model on Emerging Computer Architectures With Application to Microbunching"
// (http://amas.web.psi.ch/people/aadelmann/ETH-Accel-Lecture-1/projectscompleted/cse/thesisBUlmer.pdf)
//
// This file is part of OPAL.
//
// OPAL is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// You should have received a copy of the GNU General Public License
// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
//
#ifndef CHARGED_PARTICLE_FACTORY_ #ifndef CHARGED_PARTICLE_FACTORY_
#define CHARGED_PARTICLE_FACTORY_ #define CHARGED_PARTICLE_FACTORY_
......
//
// File VTKFieldWriterParallel
// The functions in this file are used by the P3M applications.
//
// Copyright (c) 2016, Benjamin Ulmer, ETH Zürich
// All rights reserved
//
// Implemented as part of the Master thesis
// "The P3M Model on Emerging Computer Architectures With Application to Microbunching"
// (http://amas.web.psi.ch/people/aadelmann/ETH-Accel-Lecture-1/projectscompleted/cse/thesisBUlmer.pdf)
//
// This file is part of OPAL.
//
// OPAL is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// You should have received a copy of the GNU General Public License
// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
//
#ifndef VTK_FIELD_WRITER_ #ifndef VTK_FIELD_WRITER_
#define VTK_FIELD_WRITER_ #define VTK_FIELD_WRITER_
......
//
// -*- C++ -*- // Application p3m3d
/************************************************************************************************************************************** // Example: interaction radius
* // /
* The IPPL Framework // grid size / particles distribution
* // / | \ / / /
* This program was prepared by PSI. // ./p3m3d 16 16 16 5. 1000 [uniform|random|point] --commlib mpi --info 9 | tee field.txt
* All rights in the program are reserved by PSI. //
* Neither PSI nor the author(s) // using the "point" distribution will only place one particle
* makes any warranty, express or implied, or assumes any liability or //
* responsibility for the use of this software // Copyright (c) 2016, Benjamin Ulmer, ETH Zürich
* // All rights reserved
* //
* Example: interaction radius // Implemented as part of the Master thesis
* / // "The P3M Model on Emerging Computer Architectures With Application to Microbunching"
* grid size / particles distribution // (http://amas.web.psi.ch/people/aadelmann/ETH-Accel-Lecture-1/projectscompleted/cse/thesisBUlmer.pdf)
* / | \ / / / //
* ./p3m3d 16 16 16 5. 1000 [uniform|random|point] --commlib mpi --info 9 | tee field.txt // This file is part of OPAL.
* //
* using the "point" distribution will only place one particle // OPAL is free software: you can redistribute it and/or modify
* // it under the terms of the GNU General Public License as published by
*************************************************************************************************************************************/ // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// You should have received a copy of the GNU General Public License
// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
//
#include "Ippl.h" #include "Ippl.h"
#include <string> #include <string>
#include <vector> #include <vector>
......
// -*- C++ -*- //
/************************************************************************************************************************************** // Application p3m3dHeating
* // mpirun -np 4 ./p3m3dHeating Nx Ny Nz l_beam l_box particleDensity r_cut alpha dt
* The IPPL Framework // eps iterations charge_per_part m_part printEvery
* //
* This program was prepared by PSI. // alpha is the splitting parameter for pm and pp,
* All rights in the program are reserved by PSI. // eps is the smoothing factor and Si are the coordinates of the charged sphere center
* Neither PSI nor the author(s) //
* makes any warranty, express or implied, or assumes any liability or // Copyright (c) 2016, Benjamin Ulmer, ETH Zürich
* responsibility for the use of this software // All rights reserved
* //
* mpirun -np 4 ./p3m3dEquiPart Nx Ny Nz l_beam l_box particleDensity r_cut alpha dt eps iterations charge_per_part m_part printEvery // Implemented as part of the Master thesis
* alpha is the splitting parameter for pm and pp, eps is the smoothing factor and Si are the coordinates of the charged sphere center // "The P3M Model on Emerging Computer Architectures With Application to Microbunching"
* // (http://amas.web.psi.ch/people/aadelmann/ETH-Accel-Lecture-1/projectscompleted/cse/thesisBUlmer.pdf)
* //
*************************************************************************************************************************************/ // This file is part of OPAL.
//
// OPAL is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// You should have received a copy of the GNU General Public License
// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
//
#include "Ippl.h" #include "Ippl.h"
#include <string> #include <string>
#include <vector> #include <vector>
......
/****************************************************************************** //
* // Application p3m3dMicrobunching
* The IPPL Framework // mpirun -n 32 ./p3m3dMicrobunching ${Nx} ${Ny} ${Nz} ${r_cut} ${alpha} ${epsilon} ${Nsteps} $SeedID} ${printSteps}
* // Nx,Ny,Nx is the poisson solver grid size, r_cut is the cutoff for pp interaction, alpha is the splitting parameter,
* This program was prepared by PSI. // epsilon is the softening parameter, printSteps=10 prints every tenth step
* All rights in the program are reserved by PSI. //
* Neither PSI nor the author(s) // Copyright (c) 2016, Benjamin Ulmer, ETH Zürich
* makes any warranty, express or implied, or assumes any liability or // All rights reserved
* responsibility for the use of this software //
* // Implemented as part of the Master thesis
* mpirun -n 32 ./p3m3dMicrobunching ${Nx} ${Ny} ${Nz} ${r_cut} ${alpha} ${epsilon} ${Nsteps} $SeedID} ${printSteps} // "The P3M Model on Emerging Computer Architectures With Application to Microbunching"
* Nx,Ny,Nx is the poisson solver grid size, r_cut is the cutoff for pp interaction, alpha is the splitting parameter, // (http://amas.web.psi.ch/people/aadelmann/ETH-Accel-Lecture-1/projectscompleted/cse/thesisBUlmer.pdf)
* epsilon is the softening parameter, printSteps=10 prints every tenth step //
* // This file is part of OPAL.
* //
******************************************************************************/ // OPAL is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// You should have received a copy of the GNU General Public License
// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
//
#include "Ippl.h" #include "Ippl.h"
#include <cassert> #include <cassert>
#include <string> #include <string>
......
// -*- C++ -*- //
/************************************************************************************************************************************** // Application p3m3dRegressionTests
* // mpirun -np 4 ./p3m3dRegressionTests testcase Nx Ny Nz rcut alpha dt eps timesteps Sx Sy Sz
* The IPPL Framework // alpha is the splitting parameter for pm and pp, eps is the smoothing factor and Si are the
* // coordinates of the charged sphere center
* This program was prepared by PSI. //
* All rights in the program are reserved by PSI. // using the "point" distribution will only place one particle
* Neither PSI nor the author(s) //
* makes any warranty, express or implied, or assumes any liability or // Copyright (c) 2016, Benjamin Ulmer, ETH Zürich
* responsibility for the use of this software // All rights reserved
* //
* mpirun -np 4 ./p3m3dRegressionTests testcase Nx Ny Nz rcut alpha dt eps timesteps Sx Sy Sz // Implemented as part of the Master thesis
* alpha is the splitting parameter for pm and pp, eps is the smoothing factor and Si are the coordinates of the charged sphere center // "The P3M Model on Emerging Computer Architectures With Application to Microbunching"
* // (http://amas.web.psi.ch/people/aadelmann/ETH-Accel-Lecture-1/projectscompleted/cse/thesisBUlmer.pdf)
* //
*************************************************************************************************************************************/ // This file is part of OPAL.
//
// OPAL is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// You should have received a copy of the GNU General Public License
// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
//
#include "Ippl.h" #include "Ippl.h"
#include <string> #include <string>
#include <vector> #include <vector>
......
// -*- C++ -*- //
/************************************************************************************************************************************** // Application p3m3dTwoStreamParallel
* // ./p3m3dTwoStreamParallel 16 16 16 rc alpha dt alpha_amp eps Nsteps
* The IPPL Framework //
* // using the "point" distribution will only place one particle
* This program was prepared by PSI. //
* All rights in the program are reserved by PSI. // Copyright (c) 2016, Benjamin Ulmer, ETH Zürich
* Neither PSI nor the author(s) // All rights reserved
* makes any warranty, express or implied, or assumes any liability or //
* responsibility for the use of this software // Implemented as part of the Master thesis
* // "The P3M Model on Emerging Computer Architectures With Application to Microbunching"
* ./p3m3d 16 16 16 rc alpha dt alpha_amp eps Nsteps // (http://amas.web.psi.ch/people/aadelmann/ETH-Accel-Lecture-1/projectscompleted/cse/thesisBUlmer.pdf)
* //
* using the "point" distribution will only place one particle // This file is part of OPAL.
* //
*************************************************************************************************************************************/ // OPAL is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// You should have received a copy of the GNU General Public License
// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
//
#include "Ippl.h" #include "Ippl.h"
#include <string> #include <string>
#include <vector> #include <vector>
......
// -*- C++ -*- //
/*************************************************************************** // Class P3MPoissonSolver
* // This class contains methods for solving Poisson's equation for the
* // space charge portion of the calculation.
* P3MPoissonSolver.cc //
* // Copyright (c) 2016, Benjamin Ulmer, ETH Zürich
* // All rights reserved
* //
* // Implemented as part of the Master thesis
* // "The P3M Model on Emerging Computer Architectures With Application to Microbunching"
* // (http://amas.web.psi.ch/people/aadelmann/ETH-Accel-Lecture-1/projectscompleted/cse/thesisBUlmer.pdf)
* //
***************************************************************************/ // This file is part of OPAL.
//
// include files // OPAL is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// You should have received a copy of the GNU General Public License
// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
//
#include "Solvers/P3MPoissonSolver.h" #include "Solvers/P3MPoissonSolver.h"
#include "Algorithms/PartBunch.h" #include "Algorithms/PartBunch.h"
#include "Particle/BoxParticleCachingPolicy.h" #include "Particle/BoxParticleCachingPolicy.h"
...@@ -477,9 +484,4 @@ Inform &P3MPoissonSolver::print(Inform &os) const { ...@@ -477,9 +484,4 @@ Inform &P3MPoissonSolver::print(Inform &os) const {
os << "* nr " << nr_m << '\n'; os << "* nr " << nr_m << '\n';
os << "* *************************************************************** " << endl; os << "* *************************************************************** " << endl;
return os; return os;
} }
\ No newline at end of file
/***************************************************************************
* $RCSfile: P3MPoissonSolver.cc,v $ $Author: adelmann $
* $Revision: 1.6 $ $Date: 2001/08/16 09:36:08 $
***************************************************************************/
// -*- C++ -*- //
/*************************************************************************** // Class P3MPoissonSolver
* // This class contains methods for solving Poisson's equation for the
* // space charge portion of the calculation.
* P3MPoissonSolver.hh //
* // Copyright (c) 2016, Benjamin Ulmer, ETH Zürich
* Open BC in x,y and z. // All rights reserved
* //
* // Implemented as part of the Master thesis
* // "The P3M Model on Emerging Computer Architectures With Application to Microbunching"
* // (http://amas.web.psi.ch/people/aadelmann/ETH-Accel-Lecture-1/projectscompleted/cse/thesisBUlmer.pdf)
* //
* // This file is part of OPAL.
***************************************************************************/ //
// OPAL is free software: you can redistribute it and/or modify
//////////////////////////////////////////////////////////////////////////// // it under the terms of the GNU General Public License as published by
// This class contains methods for solving Poisson's equation for the // the Free Software Foundation, either version 3 of the License, or
// space charge portion of the calculation. // (at your option) any later version.
//////////////////////////////////////////////////////////////////////////// //
// You should have received a copy of the GNU General Public License
// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
//
#ifndef P3M_POISSON_SOLVER_H_ #ifndef P3M_POISSON_SOLVER_H_
#define P3M_POISSON_SOLVER_H_ #define P3M_POISSON_SOLVER_H_
const unsigned Dim = 3; const unsigned Dim = 3;
...@@ -144,9 +146,4 @@ inline Inform &operator<<(Inform &os, const P3MPoissonSolver &fs) { ...@@ -144,9 +146,4 @@ inline Inform &operator<<(Inform &os, const P3MPoissonSolver &fs) {
#endif #endif
\ No newline at end of file
/***************************************************************************
* $RCSfile: P3MPoissonSolver.hh,v $ $Author: adelmann $
* $Revision: 1.1.1.1 $ $Date: 2001/08/08 11:21:48 $
***************************************************************************/
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment