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
#define IPPL_MPI_DATATYPES_H
/*
* Implementation like Boost.MPI
*/
#include <mpi.h>
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
#define IPPL_MPI_OPERATIONS_H
......
// -*- C++ -*-
/***************************************************************************
*
* The IPPL Framework
*
* This program was prepared by PSI.
* All rights in the program are reserved by PSI.
* Neither PSI nor the author(s)
* makes any warranty, express or implied, or assumes any liability or
* responsibility for the use of this software
*
* Visit www.amas.web.psi for more details
*
***************************************************************************/
// -*- C++ -*-
/***************************************************************************
*
* The IPPL Framework
*
*
* Visit http://people.web.psi.ch/adelmann/ for more details
*
***************************************************************************/
// include files
//
// Class 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.
//
// 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/>.
//
#include "Utility/IpplMemoryUsage.h"
//////////////////////////////////////////////////////////////////////
......
// -*- C++ -*-
/***************************************************************************
*
* The IPPL Framework
*
*
* Visit http://people.web.psi.ch/adelmann/ for more details
*
***************************************************************************/
//
// Class 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.
//
// 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
#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 <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"
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
#define TIMER_H
#include <boost/timer/timer.hpp>
// https://www.boost.org/doc/libs/1_70_0/libs/timer/doc/cpu_timers.html
class Timer
{
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