Commit 9818d889 authored by frey_m's avatar frey_m
Browse files

Merge branch '499-file-header-to-ippl-classes' into 'master'

Resolve "File  header to Ippl classes"

Closes #499

See merge request !317
parents 35d94f34 86ca6635
//
// File DataTypes
// Definition of MPI types following the implementation of Boost.MPI.
//
// Copyright (c) 2017, Matthias Frey, Paul Scherrer Institut, Villigen PSI, Switzerland
// All rights reserved
//
// Implemented as part of the PhD thesis
// "Precise Simulations of Multibunches in High Intensity Cyclotrons"
//
// 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 IPPL_MPI_DATATYPES_H #ifndef IPPL_MPI_DATATYPES_H
#define IPPL_MPI_DATATYPES_H #define IPPL_MPI_DATATYPES_H
/*
* Implementation like Boost.MPI
*/
#include <mpi.h> #include <mpi.h>
template<typename> struct is_ippl_mpi_datatype: std::false_type {}; template<typename> struct is_ippl_mpi_datatype: std::false_type {};
......
//
// File Operations
// Definition of MPI operations following the implementation of Boost.MPI.
//
// Copyright (c) 2017, Matthias Frey, Paul Scherrer Institut, Villigen PSI, Switzerland
// All rights reserved
//
// Implemented as part of the PhD thesis
// "Precise Simulations of Multibunches in High Intensity Cyclotrons"
//
// 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 IPPL_MPI_OPERATIONS_H #ifndef IPPL_MPI_OPERATIONS_H
#define IPPL_MPI_OPERATIONS_H #define IPPL_MPI_OPERATIONS_H
......
// -*- C++ -*- //
/*************************************************************************** // Class IpplMemoryUsage
* // A simple singleton class which lets the user watch the memory consumption of a program.
* The IPPL Framework // ATTENTION: We use following memory convention
* //
* This program was prepared by PSI. // 8 bit = 1 byte = 1e-3 kB = 1e-6 MB
* All rights in the program are reserved by PSI. // = 1e-3 / 1.024 KiB (KibiByte)
* Neither PSI nor the author(s) // = 1e-3 / 1.024 / 1.024 MiB (MebiByte)
* makes any warranty, express or implied, or assumes any liability or //
* responsibility for the use of this software // instead of the usually taken but wrong relation 1024 kB = 1 MB.
* //
* Visit www.amas.web.psi for more details // General usage
* // 1) create the instance using IpplMemoryUsage::getInstance(unit, reset).
***************************************************************************/ // The reset boolean indicates wether the memory at creation should be
// subtracted from the measurements later on.
// -*- C++ -*- // The class is based on t getrusage() that returns the memory
/*************************************************************************** // consumption in kB (KiloByte). You can specify the return value of
* // IpplMemoryUsage by the first argument.
* The IPPL Framework // Although one can use those input parameters they are only applied
* // at the first call. Additional calls with different input do NOT
* // modify the instance.
* Visit http://people.web.psi.ch/adelmann/ for more details // 2) At any point in the program you can call IpplMemoryUsage::sample()
* // to collect the data.
***************************************************************************/ //
// Copyright (c) 2017 - 2018, Matthias Frey, Paul Scherrer Institut, Villigen PSI, Switzerland
// include files // All rights reserved
//
// Implemented as part of the PhD thesis
// "Precise Simulations of Multibunches in High Intensity Cyclotrons"
//
// 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 "Utility/IpplMemoryUsage.h" #include "Utility/IpplMemoryUsage.h"
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
......
// -*- C++ -*- //
/*************************************************************************** // Class IpplMemoryUsage
* // A simple singleton class which lets the user watch the memory consumption of a program.
* The IPPL Framework // ATTENTION: We use following memory convention
* //
* // 8 bit = 1 byte = 1e-3 kB = 1e-6 MB
* Visit http://people.web.psi.ch/adelmann/ for more details // = 1e-3 / 1.024 KiB (KibiByte)
* // = 1e-3 / 1.024 / 1.024 MiB (MebiByte)
***************************************************************************/ //
// instead of the usually taken but wrong relation 1024 kB = 1 MB.
//
// General usage
// 1) create the instance using IpplMemoryUsage::getInstance(unit, reset).
// The reset boolean indicates wether the memory at creation should be
// subtracted from the measurements later on.
// The class is based on t getrusage() that returns the memory
// consumption in kB (KiloByte). You can specify the return value of
// IpplMemoryUsage by the first argument.
// Although one can use those input parameters they are only applied
// at the first call. Additional calls with different input do NOT
// modify the instance.
// 2) At any point in the program you can call IpplMemoryUsage::sample()
// to collect the data.
//
// Copyright (c) 2017 - 2018, Matthias Frey, Paul Scherrer Institut, Villigen PSI, Switzerland
// All rights reserved
//
// Implemented as part of the PhD thesis
// "Precise Simulations of Multibunches in High Intensity Cyclotrons"
//
// 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 IPPL_MEMPRYUSAGE_H #ifndef IPPL_MEMPRYUSAGE_H
#define IPPL_MEMPRYUSAGE_H #define IPPL_MEMPRYUSAGE_H
/*************************************************************************
* IpplMemoryUsage - a simple singleton class which lets the user watch the
* memory consumption of a program.
*
* ATTENTION: We use following memory convention
*
* 8 bit = 1 byte = 1e-3 kB = 1e-6 MB
* = 1e-3 / 1.024 KiB (KibiByte)
* = 1e-3 / 1.024 / 1.024 MiB (MebiByte)
*
* instead of the usually taken but wrong relation 1024 kB = 1 MB.
*
* General usage
* 1) create the instance using IpplMemoryUsage::getInstance(unit, reset).
* The reset boolean indicates wether the memory at creation should be
* subtracted from the measurements later on.
* The class is based on t getrusage() that returns the memory
* consumption in kB (KiloByte). You can specify the return value of
* IpplMemoryUsage by the first argument.
* Although one can use those input parameters they are only applied
* at the first call. Additional calls with different input do NOT
* modify the instance.
* 2) At any point in the program you can call IpplMemoryUsage::sample()
* to collect the data.
*************************************************************************/
// include files
#include "Ippl.h" #include "Ippl.h"
#include <memory> #include <memory>
......
//
// Class Timer
// This class is used in IpplTimings.
// https://www.boost.org/doc/libs/1_70_0/libs/timer/doc/cpu_timers.html
//
// Copyright (c) 2019, Matthias Frey, Paul Scherrer Institut, Villigen PSI, Switzerland
// All rights reserved
//
// Implemented as part of the PhD thesis
// "Precise Simulations of Multibunches in High Intensity Cyclotrons"
//
// 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 "Timer.h" #include "Timer.h"
Timer::Timer() { Timer::Timer() {
......
//
// Class Timer
// This class is used in IpplTimings.
// https://www.boost.org/doc/libs/1_70_0/libs/timer/doc/cpu_timers.html
//
// Copyright (c) 2019, Matthias Frey, Paul Scherrer Institut, Villigen PSI, Switzerland
// All rights reserved
//
// Implemented as part of the PhD thesis
// "Precise Simulations of Multibunches in High Intensity Cyclotrons"
//
// 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 TIMER_H #ifndef TIMER_H
#define TIMER_H #define TIMER_H
#include <boost/timer/timer.hpp> #include <boost/timer/timer.hpp>
// https://www.boost.org/doc/libs/1_70_0/libs/timer/doc/cpu_timers.html
class Timer class Timer
{ {
public: public:
......
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