From 35bbee5b6c922e3ac31184d75212ae5a5b557d4b Mon Sep 17 00:00:00 2001 From: Matthias Frey <matthias.frey@psi.ch> Date: Wed, 8 Apr 2020 10:16:49 +0200 Subject: [PATCH] add header to optimiser classes --- optimizer/Comm/CommSplitter.h | 52 ++++++++++------ optimizer/Comm/MasterGraph/NDimMesh.h | 20 +++++++ optimizer/Comm/MasterGraph/NoMasterGraph.h | 22 ++++++- .../Comm/MasterGraph/SocialNetworkGraph.h | 56 ++++++++++++------ optimizer/Comm/MasterNode.h | 43 ++++++++++---- optimizer/Comm/types.h | 20 +++++++ optimizer/Expression/Expression.h | 39 ++++++++---- optimizer/Expression/FromFile.cpp | 25 ++++++++ optimizer/Expression/FromFile.h | 33 ++++++++--- optimizer/Expression/GlobalFunctions.h | 22 +++++++ optimizer/Expression/ProbeVariable.h | 20 +++++++ optimizer/Expression/PythonExpr.h | 50 +++++++++++----- optimizer/Expression/SDDSVariable.h | 34 ++++++++--- optimizer/Expression/SumErrSq.h | 36 ++++++++--- optimizer/Optimizer/EA/BlendCrossover.h | 38 ++++++++---- optimizer/Optimizer/EA/FixedPisaNsga2.h | 48 ++++++++++----- optimizer/Optimizer/EA/FixedPisaNsga2.tcc | 32 ++++++++++ .../Optimizer/EA/IndependentBitMutation.h | 22 ++++++- optimizer/Optimizer/EA/Individual.h | 31 +++++++--- .../Optimizer/EA/NaiveOnePointCrossover.h | 20 +++++++ .../Optimizer/EA/NaiveUniformCrossover.h | 22 ++++++- optimizer/Optimizer/EA/OneBitMutation.h | 22 ++++++- optimizer/Optimizer/EA/Population.h | 36 +++++++---- .../Optimizer/EA/SimulatedBinaryCrossover.h | 28 +++++++-- optimizer/Optimizer/EA/Variator.h | 20 +++++++ optimizer/Optimizer/Optimizer.h | 27 +++++++-- optimizer/Pilot/Pilot.h | 59 ++++++++++++------- optimizer/Pilot/Poller.h | 37 ++++++++---- optimizer/Pilot/Worker.h | 41 +++++++++---- optimizer/Simulation/GenerateOpalSimulation.h | 47 ++++++++++----- optimizer/Simulation/Simulation.h | 43 ++++++++++---- optimizer/Tests/CmdArgumentsTest.cpp | 20 +++++++ optimizer/Tests/ExpressionTest.cpp | 20 +++++++ optimizer/Tests/FromFileExpressionTest.cpp | 20 +++++++ optimizer/Tests/HashNameGeneratorTest.cpp | 20 +++++++ optimizer/Tests/IndividualTest.cpp | 20 +++++++ optimizer/Tests/MPIHelperTest.cpp | 20 +++++++ optimizer/Tests/ManagedIDsTest.cpp | 20 +++++++ optimizer/Tests/PopulationTest.cpp | 20 +++++++ optimizer/Tests/PythonExprTest.cpp | 20 +++++++ optimizer/Tests/SDDSParserTest.cpp | 21 ++++++- optimizer/Tests/SumErrSqExpressionTest.cpp | 20 +++++++ optimizer/Util/AsyncSendBuffers.h | 20 +++++++ optimizer/Util/CmdArguments.cpp | 27 +++++++++ optimizer/Util/CmdArguments.h | 37 ++++++++---- optimizer/Util/MPIHelper.cpp | 20 +++++++ optimizer/Util/MPIHelper.h | 20 +++++++ optimizer/Util/ManagedIDs.h | 28 +++++++-- optimizer/Util/NativeHashGenerator.h | 27 +++++++-- optimizer/Util/OptPilotException.h | 20 +++++++ optimizer/Util/ProbeReader.cpp | 21 +++++++ optimizer/Util/ProbeReader.h | 26 ++++++-- optimizer/Util/SDDSParser.cpp | 17 ++++++ optimizer/Util/SDDSParser.h | 17 +++++- .../Util/SDDSParser/SDDSParserException.h | 16 +++++ optimizer/Util/SDDSParser/array.cpp | 17 +++++- optimizer/Util/SDDSParser/array.hpp | 20 +++++-- optimizer/Util/SDDSParser/array_def.hpp | 20 +++++-- optimizer/Util/SDDSParser/associate.cpp | 16 ++++- optimizer/Util/SDDSParser/associate.hpp | 20 +++++-- optimizer/Util/SDDSParser/associate_def.hpp | 20 +++++-- optimizer/Util/SDDSParser/ast.cpp | 16 ++++- optimizer/Util/SDDSParser/ast.hpp | 20 +++++-- optimizer/Util/SDDSParser/ast_def.hpp | 20 +++++-- optimizer/Util/SDDSParser/column.cpp | 16 ++++- optimizer/Util/SDDSParser/column.hpp | 20 +++++-- optimizer/Util/SDDSParser/column_def.hpp | 20 +++++-- optimizer/Util/SDDSParser/data.cpp | 16 ++++- optimizer/Util/SDDSParser/data.hpp | 20 +++++-- optimizer/Util/SDDSParser/data_def.hpp | 20 +++++-- optimizer/Util/SDDSParser/description.cpp | 16 ++++- optimizer/Util/SDDSParser/description.hpp | 20 +++++-- optimizer/Util/SDDSParser/description_def.hpp | 20 +++++-- optimizer/Util/SDDSParser/error_handler.hpp | 20 +++++-- optimizer/Util/SDDSParser/file.cpp | 16 ++++- optimizer/Util/SDDSParser/file.hpp | 20 +++++-- optimizer/Util/SDDSParser/file_def.hpp | 20 +++++-- optimizer/Util/SDDSParser/include.cpp | 16 ++++- optimizer/Util/SDDSParser/include.hpp | 20 +++++-- optimizer/Util/SDDSParser/include_def.hpp | 20 +++++-- optimizer/Util/SDDSParser/parameter.cpp | 16 ++++- optimizer/Util/SDDSParser/parameter.hpp | 20 +++++-- optimizer/Util/SDDSParser/parameter_def.hpp | 20 +++++-- optimizer/Util/SDDSParser/skipper.hpp | 20 +++++-- optimizer/Util/SDDSParser/version.cpp | 16 ++++- optimizer/Util/SDDSParser/version.hpp | 20 +++++-- optimizer/Util/SDDSParser/version_def.hpp | 20 +++++-- optimizer/Util/Statistics.h | 20 +++++++ optimizer/Util/Trace/CoutSink.h | 20 +++++++ optimizer/Util/Trace/FileSink.h | 20 +++++++ optimizer/Util/Trace/MyPid.h | 20 +++++++ optimizer/Util/Trace/Timestamp.h | 20 +++++++ optimizer/Util/Trace/Trace.h | 20 +++++++ optimizer/Util/Trace/TraceComponent.h | 20 +++++++ optimizer/Util/Types.h | 20 +++++++ 95 files changed, 1914 insertions(+), 409 deletions(-) diff --git a/optimizer/Comm/CommSplitter.h b/optimizer/Comm/CommSplitter.h index dd223dced..4e891598e 100644 --- a/optimizer/Comm/CommSplitter.h +++ b/optimizer/Comm/CommSplitter.h @@ -1,3 +1,37 @@ +// +// Class CommSplitter +// Role assignment according to strategy (that might use hardware +// network information). +// +// The CommSplitter splits the passed (usually MPI_COMM_WORLD) communicator +// into several comm groups using the colors provided by the splitting +// strategy. +// After construction each processor has an assigned role (optimizer, worker +// or pilot) and a set of communicators to send and receive tasks. +// The expected colors have the following meaning: +// - color[0] is shared by all my co-workers +// - color[1] is shared by the optimizer leader and the pilot +// - color[2] is shared by the worker leader and the pilot +// - color[3] is shared by all processors with the same role (used for +// broadcasts) +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __COMM_SPLITTER__ #define __COMM_SPLITTER__ @@ -10,24 +44,6 @@ //TODO: what is the performance difference between using MPI_COMM_WORLD and // p2p communication vs. communicator groups?? -/** - * \brief Role assignment according to strategy (that might use hardware - * network information). - * - * The CommSplitter splits the passed (usually MPI_COMM_WORLD) communicator - * into several comm groups using the colors provided by the splitting - * strategy. - * After construction each processor has an assigned role (optimizer, worker - * or pilot) and a set of communicators to send and receive tasks. - * The expected colors have the following meaning: - * - * - color[0] is shared by all my co-workers - * - color[1] is shared by the optimizer leader and the pilot - * - color[2] is shared by the worker leader and the pilot - * - color[3] is shared by all processors with the same role (used for - * broadcasts) - * - */ template< class Strategy_t > class CommSplitter : public Strategy_t { diff --git a/optimizer/Comm/MasterGraph/NDimMesh.h b/optimizer/Comm/MasterGraph/NDimMesh.h index b594c86c4..3bcb2b19e 100644 --- a/optimizer/Comm/MasterGraph/NDimMesh.h +++ b/optimizer/Comm/MasterGraph/NDimMesh.h @@ -1,3 +1,23 @@ +// +// Class NDimMesh +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __NDIM_MESH__ #define __NDIM_MESH__ diff --git a/optimizer/Comm/MasterGraph/NoMasterGraph.h b/optimizer/Comm/MasterGraph/NoMasterGraph.h index dfbd37648..9a6a235da 100644 --- a/optimizer/Comm/MasterGraph/NoMasterGraph.h +++ b/optimizer/Comm/MasterGraph/NoMasterGraph.h @@ -1,9 +1,29 @@ +// +// Class NoMasterGraph +// A simple empty master graph (no neighbors, every island works isolated). +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __NO_MASTER_GRAPH__ #define __NO_MASTER_GRAPH__ #include <set> -/// A simple empty master graph (no neighbors, every island works isolated). template < class TopoDiscoveryStrategy_t > class NoMasterGraph : public TopoDiscoveryStrategy_t { diff --git a/optimizer/Comm/MasterGraph/SocialNetworkGraph.h b/optimizer/Comm/MasterGraph/SocialNetworkGraph.h index 70225420d..3294190d1 100644 --- a/optimizer/Comm/MasterGraph/SocialNetworkGraph.h +++ b/optimizer/Comm/MasterGraph/SocialNetworkGraph.h @@ -1,3 +1,40 @@ +// +// Class SocialNetworkGraph +// Modeling social graph (Cartesian neighbors plus additional random +// link) as underlaying master network. +// +// @see MasterNode +// +// Due to its nice rumor spreading properties this master network is mimicking +// a social network graph (augmented grid) and solution states are distributed +// in a rumor fashion. +// +// Here, we use a simple mapping from processor ID's to 2D grid +// (determining neigborhood) assuming the total number of masters: +// +// n_m = n_g * n_g +// +// This is fine, because if we have topology info the masters are numbered +// in ascending order (done in comm splitter) and we can map them from 1D to +// 2D by index calculations. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __SOCIAL_NETWORK_GRAPH__ #define __SOCIAL_NETWORK_GRAPH__ @@ -7,25 +44,6 @@ #include <boost/random/mersenne_twister.hpp> #include <boost/random/discrete_distribution.hpp> -// Here, we use a simple mapping from processor ID's to 2D grid -// (determining neigborhood) assuming the total number of masters: -// -// n_m = n_g * n_g -// -// This is fine, because if we have topology info the masters are numbered -// in ascending order (done in comm splitter) and we can map them from 1D to -// 2D by index calculations. - -/** - * \brief Modeling social graph (Cartesian neighbors plus additional random - * link) as underlaying master network. - * - * @see MasterNode - * - * Due to its nice rumor spreading properties this master network is mimicking - * a social network graph (augmented grid) and solution states are distributed - * in a rumor fashion. - */ template < class TopoDiscoveryStrategy_t > class SocialNetworkGraph : public TopoDiscoveryStrategy_t { diff --git a/optimizer/Comm/MasterNode.h b/optimizer/Comm/MasterNode.h index 295bd5b40..bdbff0ced 100644 --- a/optimizer/Comm/MasterNode.h +++ b/optimizer/Comm/MasterNode.h @@ -1,3 +1,33 @@ +// +// Class MasterNode +// Implements a node in the network of all pilots, exposing store and +// collect operations on a specific set of neighbors. +// +// Using the neighbor strategy a set of neighbors we collect solution state +// from (and they collect from us) is defined. Using this set of neighbors the +// solution states propagate throughout the network. The store and collect +// operations are implemented using one sided MPI communication methods +// (simulating shared memory). +// A revision number is used to prevent receiving previously collected +// solution states from neighbors. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __MASTER_NODE__ #define __MASTER_NODE__ @@ -18,19 +48,6 @@ //XXX: SolutionState_t must be serializable! (call // SerializableSolutionState_t?) -/** - * \brief Implements a node in the network of all pilots, exposing store and - * collect operations on a specific set of neighbors. - * - * Using the neighbor strategy a set of neighbors we collect solution state - * from (and they collect from us) is defined. Using this set of neighbors the - * solution states propagate throughout the network. The store and collect - * operations are implemented using one sided MPI communication methods - * (simulating shared memory). - * A revision number is used to prevent receiving previously collected - * solution states from neighbors. - * - */ template < class SolutionState_t , class NeighborStrategy_t diff --git a/optimizer/Comm/types.h b/optimizer/Comm/types.h index be9df1e42..64b6f5e51 100644 --- a/optimizer/Comm/types.h +++ b/optimizer/Comm/types.h @@ -1,3 +1,23 @@ +// +// Types in namespace Comm +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __COMM_TYPES__ #define __COMM_TYPES__ diff --git a/optimizer/Expression/Expression.h b/optimizer/Expression/Expression.h index bb3be06eb..90ca052ac 100644 --- a/optimizer/Expression/Expression.h +++ b/optimizer/Expression/Expression.h @@ -1,3 +1,32 @@ +// +// Class Expression +// Expression to be evaluated in the framework. +// +// @see GlobalFunctions.h +// +// This class uses the Boost Spirit parser to parse and evaluate string +// expressions (objectives or constraints). +// Custom functions called in the expression should be registered by the +// driver. A collection of C math default functions is always included. +// For constraints the operator type can be queried. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __EXPRESSION_H__ #define __EXPRESSION_H__ @@ -62,16 +91,6 @@ namespace Expressions { #include "Expression/GlobalFunctions.h" -/** - * \brief Expression to be evaluated in the framework. - * @see GlobalFunctions.h - * - * This class uses the Boost Spirit parser to parse and evaluate string - * expressions (objectives or constraints). - * Custom functions called in the expression should be registered by the - * driver. A collection of C math default functions is always included. - * For constraints the operator type can be queried. - */ class Expression { public: diff --git a/optimizer/Expression/FromFile.cpp b/optimizer/Expression/FromFile.cpp index 12cbc5d6b..fc5f4fc8d 100644 --- a/optimizer/Expression/FromFile.cpp +++ b/optimizer/Expression/FromFile.cpp @@ -1,3 +1,28 @@ +// +// Struct FromFile +// Simple functor that reads vector data from a file. If the file contains +// more than one value the sum is returned. +// \f[ +// result = \sum_{i=0}^n value_i +// \f] +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "Expression/FromFile.h" /// reads a simple list of double values diff --git a/optimizer/Expression/FromFile.h b/optimizer/Expression/FromFile.h index 9d142352c..0f8f67a98 100644 --- a/optimizer/Expression/FromFile.h +++ b/optimizer/Expression/FromFile.h @@ -1,3 +1,28 @@ +// +// Struct FromFile +// Simple functor that reads vector data from a file. If the file contains +// more than one value the sum is returned. +// \f[ +// result = \sum_{i=0}^n value_i +// \f] +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __FROMFILE_H__ #define __FROMFILE_H__ @@ -16,14 +41,6 @@ #include "Util/OptPilotException.h" #include "Expression/Parser/function.hpp" - -/** - * Simple functor that reads vector data from a file. If the file contains - * more than one value the sum is returned. - * \f[ - * result = \sum_{i=0}^n value_i - * \f] - */ struct FromFile { static const std::string name; diff --git a/optimizer/Expression/GlobalFunctions.h b/optimizer/Expression/GlobalFunctions.h index 6faccdba0..b8d50bafb 100644 --- a/optimizer/Expression/GlobalFunctions.h +++ b/optimizer/Expression/GlobalFunctions.h @@ -1,3 +1,25 @@ +// +// Namespace GlobalFunctions +// Defines multiple expressions to be evaluated in +// objectives. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __GLOBAL_FUNCTIONS_H__ #define __GLOBAL_FUNCTIONS_H__ diff --git a/optimizer/Expression/ProbeVariable.h b/optimizer/Expression/ProbeVariable.h index dbcfde3f9..853c903cd 100644 --- a/optimizer/Expression/ProbeVariable.h +++ b/optimizer/Expression/ProbeVariable.h @@ -1,3 +1,23 @@ +// +// Struct ProbeVariable +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __PROBEVARIABLE_H__ #define __PROBEVARIABLE_H__ diff --git a/optimizer/Expression/PythonExpr.h b/optimizer/Expression/PythonExpr.h index ea01e9a3f..40225967c 100644 --- a/optimizer/Expression/PythonExpr.h +++ b/optimizer/Expression/PythonExpr.h @@ -1,3 +1,37 @@ +// +// Struct PythonExpression +// Execute a python script using all given arguments (except for the first +// being the script name) and return the value of the "result" variable in +// the python script. +// Expression arguments can be accessed in the Python script using the vector +// variable "arguments", like i.e. in file "test.py": +// \verbatim +// result = 2.0 * arguments[0] +// \endverbatim +// to double the value passed as second argument to the Python expression. +// For example the expression +// \verbatim +// EXPR="python("test.py", 15.0)"; +// \endverbatim +// evaluates to a value of 30.0 (test.py contains the line shown above). +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __PYTHON_EXPR_H__ #define __PYTHON_EXPR_H__ @@ -15,22 +49,6 @@ using namespace boost::python; -/** - * Execute a python script using all given arguments (except for the first - * being the script name) and return the value of the "result" variable in - * the python script. - * Expression arguments can be accessed in the Python script using the vector - * variable "arguments", like i.e. in file "test.py": - * \verbatim - result = 2.0 * arguments[0] - \endverbatim - * to double the value passed as second argument to the Python expression. - * For example the expression - * \verbatim - EXPR="python("test.py", 15.0)"; - \endverbatim - * evaluates to a value of 30.0 (test.py contains the line shown above). - */ struct PythonExpression { Expressions::Result_t operator()(client::function::arguments_t args) { diff --git a/optimizer/Expression/SDDSVariable.h b/optimizer/Expression/SDDSVariable.h index 0222f0e64..12ad779ee 100644 --- a/optimizer/Expression/SDDSVariable.h +++ b/optimizer/Expression/SDDSVariable.h @@ -1,3 +1,29 @@ +// +// Struct SDDSVariable +// A simple expression to get SDDS (filename) value near a +// specific position (ref_val, default: spos) of a reference +// variable (ref_name) for a variable (var_name). Possible +// argument orders: +// args = [var_name, ref_val, filename] +// args = [var_name, ref_name, ref_val, filename] +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __SDDSVARIABLE_H__ #define __SDDSVARIABLE_H__ @@ -13,14 +39,6 @@ #include "Expression/Parser/function.hpp" -/** - * A simple expression to get SDDS (filename) value near a - * specific position (ref_val, default: spos) of a reference - * variable (ref_name) for a variable (var_name). Possible - * argument orders: - * args = [var_name, ref_val, filename] - * args = [var_name, ref_name, ref_val, filename] - */ struct SDDSVariable { static const std::string name; diff --git a/optimizer/Expression/SumErrSq.h b/optimizer/Expression/SumErrSq.h index 583119577..fc18bf83e 100644 --- a/optimizer/Expression/SumErrSq.h +++ b/optimizer/Expression/SumErrSq.h @@ -1,3 +1,29 @@ +// +// Struct SumErrSq +// A simple expression computing the sum of all measurement errors (given as +// first and third argument) for a variable (second argument) according to +// +// \f[ +// result = \frac{1}{n} * \sqrt{\sum_{i=0}^n (measurement_i - value_i)^2} +// \f] +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __SUMERRSQ_H__ #define __SUMERRSQ_H__ @@ -23,15 +49,7 @@ public: friend std::istream & operator>>(std::istream & stream, Measurement & measurement); }; -/** - * A simple expression computing the sum of all measurement errors (given as - * first and third argument) for a variable (second argument) according to - * - * \f[ - * result = \frac{1}{n} * \sqrt{\sum_{i=0}^n (measurement_i - value_i)^2} - * \f] - * - */ + struct SumErrSq { static const std::string name; diff --git a/optimizer/Optimizer/EA/BlendCrossover.h b/optimizer/Optimizer/EA/BlendCrossover.h index 43ed9255b..ebb19b668 100644 --- a/optimizer/Optimizer/EA/BlendCrossover.h +++ b/optimizer/Optimizer/EA/BlendCrossover.h @@ -1,17 +1,35 @@ +// +// Struct BlendCrossover +// BLX-alpha (interval schemata) +// Eshelman and Schaffer (1993) +// Pick random solution in interval +// +// [ x_i^(1,t) - \alpha(x_i^(2,t) - x_i^(1,t)), +// x_i^(2,t) + \alpha((x_i^(2,t) - x_i^(1,t)) ] +// +// at generation t. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "boost/smart_ptr.hpp" #include "Util/CmdArguments.h" #include <cmath> -/** - * BLX-alpha (interval schemata) - * Eshelman and Schaffer (1993) - * Pick random solution in interval - * - * [ x_i^(1,t) - \alpha(x_i^(2,t) - x_i^(1,t)), - * x_i^(2,t) + \alpha((x_i^(2,t) - x_i^(1,t)) ] - * - * at generation t. - */ template <class T> struct BlendCrossover { diff --git a/optimizer/Optimizer/EA/FixedPisaNsga2.h b/optimizer/Optimizer/EA/FixedPisaNsga2.h index f08211da8..a26731c62 100644 --- a/optimizer/Optimizer/EA/FixedPisaNsga2.h +++ b/optimizer/Optimizer/EA/FixedPisaNsga2.h @@ -1,3 +1,35 @@ +// +// Class FixedPisaNsga2 +// Implementing the Variator for the PISA state machine. +// +// @see http://www.tik.ee.ethz.ch/pisa/ +// +// The convergence behavior of the optimizer can be steered in 3 ways, +// corresponding command line arguments are given in brackets: +// - limit the number of generations (maxGenerations), +// - specify a target hypervolume (expected-hypervol) and tolerance +// (epsilon) +// - specify a minimal hypervolume progress (conv-hvol-prog), relative to +// the last generation, ((prev - new)/prev) that has to be attained to +// continue optimizing. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __FIXED_PISA_NSGA2_H__ #define __FIXED_PISA_NSGA2_H__ @@ -29,21 +61,7 @@ #include "Util/Trace/Trace.h" -/** - * \class FixedPisaNsga2 - * \brief Implementing the Variator for the PISA state machine. - * - * @see http://www.tik.ee.ethz.ch/pisa/ - * - * The convergence behavior of the optimizer can be steered in 3 ways, - * corresponding command line arguments are given in brackets: - * - limit the number of generations (maxGenerations), - * - specify a target hypervolume (expected-hypervol) and tolerance - * (epsilon) - * - specify a minimal hypervolume progress (conv-hvol-prog), relative to - * the last generation, ((prev - new)/prev) that has to be attained to - * continue optimizing. - */ + template< template <class> class CrossoverOperator , template <class> class MutationOperator diff --git a/optimizer/Optimizer/EA/FixedPisaNsga2.tcc b/optimizer/Optimizer/EA/FixedPisaNsga2.tcc index 0fec7f514..d0f3be0e3 100644 --- a/optimizer/Optimizer/EA/FixedPisaNsga2.tcc +++ b/optimizer/Optimizer/EA/FixedPisaNsga2.tcc @@ -1,3 +1,35 @@ +// +// Class FixedPisaNsga2 +// Implementing the Variator for the PISA state machine. +// +// @see http://www.tik.ee.ethz.ch/pisa/ +// +// The convergence behavior of the optimizer can be steered in 3 ways, +// corresponding command line arguments are given in brackets: +// - limit the number of generations (maxGenerations), +// - specify a target hypervolume (expected-hypervol) and tolerance +// (epsilon) +// - specify a minimal hypervolume progress (conv-hvol-prog), relative to +// the last generation, ((prev - new)/prev) that has to be attained to +// continue optimizing. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 <iostream> #include <sstream> #include <cmath> diff --git a/optimizer/Optimizer/EA/IndependentBitMutation.h b/optimizer/Optimizer/EA/IndependentBitMutation.h index d42ea64bf..ff40bbf25 100644 --- a/optimizer/Optimizer/EA/IndependentBitMutation.h +++ b/optimizer/Optimizer/EA/IndependentBitMutation.h @@ -1,7 +1,27 @@ +// +// Struct IndependentBitMutation +// Mutate each gene with probability p +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "boost/smart_ptr.hpp" #include "Util/CmdArguments.h" -/// Mutate each gene with probability p template <class T> struct IndependentBitMutation { void mutate(boost::shared_ptr<T> ind, CmdArguments_t args) { diff --git a/optimizer/Optimizer/EA/Individual.h b/optimizer/Optimizer/EA/Individual.h index 26a918ff9..f5ea39138 100644 --- a/optimizer/Optimizer/EA/Individual.h +++ b/optimizer/Optimizer/EA/Individual.h @@ -1,3 +1,27 @@ +// +// Class Individual +// Structure for an individual in the population holding genes and objective +// values. +// +// @see Types.h +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __INDIVIDUAL_H__ #define __INDIVIDUAL_H__ @@ -11,13 +35,6 @@ #include "boost/smart_ptr.hpp" -/** - * \class Individual - * Structure for an individual in the population holding genes and objective - * values. - * - * @see Types.h - */ class Individual { public: diff --git a/optimizer/Optimizer/EA/NaiveOnePointCrossover.h b/optimizer/Optimizer/EA/NaiveOnePointCrossover.h index fe4c3786a..acedd85af 100644 --- a/optimizer/Optimizer/EA/NaiveOnePointCrossover.h +++ b/optimizer/Optimizer/EA/NaiveOnePointCrossover.h @@ -1,3 +1,23 @@ +// +// Struct NaiveOnePointCrossover +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "boost/smart_ptr.hpp" #include "Util/CmdArguments.h" diff --git a/optimizer/Optimizer/EA/NaiveUniformCrossover.h b/optimizer/Optimizer/EA/NaiveUniformCrossover.h index a2dfe6d4d..08af2096a 100644 --- a/optimizer/Optimizer/EA/NaiveUniformCrossover.h +++ b/optimizer/Optimizer/EA/NaiveUniformCrossover.h @@ -1,7 +1,27 @@ +// +// Struct NaiveUniformCrossover +// Decide for each gene if swapped with other gene. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "boost/smart_ptr.hpp" #include "Util/CmdArguments.h" -/// decide for each gene if swapped with other gene template <class T> struct NaiveUniformCrossover { void crossover(boost::shared_ptr<T> ind1, boost::shared_ptr<T> ind2, diff --git a/optimizer/Optimizer/EA/OneBitMutation.h b/optimizer/Optimizer/EA/OneBitMutation.h index 12301fc17..2f3055b91 100644 --- a/optimizer/Optimizer/EA/OneBitMutation.h +++ b/optimizer/Optimizer/EA/OneBitMutation.h @@ -1,7 +1,27 @@ +// +// Struct OneBitMutation +// Mutate exactly one gene of an individual. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "boost/smart_ptr.hpp" #include "Util/CmdArguments.h" -/// Mutate exactly one gene of an individual. template <class T> struct OneBitMutation { void mutate(boost::shared_ptr<T> ind, CmdArguments_t /*args*/) { diff --git a/optimizer/Optimizer/EA/Population.h b/optimizer/Optimizer/EA/Population.h index 87d352225..e9d6ab611 100644 --- a/optimizer/Optimizer/EA/Population.h +++ b/optimizer/Optimizer/EA/Population.h @@ -1,3 +1,29 @@ +// +// Class Population +// Managing a population of individuals. We maintain two sets: a set of all +// (evaluated) individuals in the population and a set of new potential +// individuals (the selector decides which individuals join the population), +// called 'stagingArea'. +// Most operations work on the 'stagingArea', population is kept for +// visualization purposes. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __POPULATION_H__ #define __POPULATION_H__ @@ -15,16 +41,6 @@ #include "extlib/wfgHypervolume/hypervolume.h" -/** - * \class Population - * - * Managing a population of individuals. We maintain two sets: a set of all - * (evaluated) individuals in the population and a set of new potential - * individuals (the selector decides which individuals join the population), - * called 'stagingArea'. - * Most operations work on the 'stagingArea', population is kept for - * visualization purposes. - */ template< class Individual_t > class Population { diff --git a/optimizer/Optimizer/EA/SimulatedBinaryCrossover.h b/optimizer/Optimizer/EA/SimulatedBinaryCrossover.h index 592156f90..d72def5f5 100644 --- a/optimizer/Optimizer/EA/SimulatedBinaryCrossover.h +++ b/optimizer/Optimizer/EA/SimulatedBinaryCrossover.h @@ -1,13 +1,31 @@ +// +// Struct SimulatedBinaryCrossover +// Deb (1995) Simulated Binary Crossover (SBX) +// Respects interval schemata. +// Offspring are symmetric around parent solutions. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 <cmath> #include "boost/smart_ptr.hpp" #include "Util/CmdArguments.h" -/** - * Deb (1995) Simulated Binary Crossover (SBX) - * Respects interval schemata. - * Offspring are symmetric around parent solutions. - */ template <class T> struct SimulatedBinaryCrossover { diff --git a/optimizer/Optimizer/EA/Variator.h b/optimizer/Optimizer/EA/Variator.h index 7a8e0bf89..ee4c04859 100644 --- a/optimizer/Optimizer/EA/Variator.h +++ b/optimizer/Optimizer/EA/Variator.h @@ -1,3 +1,23 @@ +// +// Class Variator +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __VARIATOR_H__ #define __VARIATOR_H__ diff --git a/optimizer/Optimizer/Optimizer.h b/optimizer/Optimizer/Optimizer.h index af797f5b5..e77caf099 100644 --- a/optimizer/Optimizer/Optimizer.h +++ b/optimizer/Optimizer/Optimizer.h @@ -1,3 +1,25 @@ +// +// Class Optimizer +// An abstract class defining the interface for all optimizer +// components. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __OPTIMIZER_H__ #define __OPTIMIZER_H__ @@ -6,11 +28,6 @@ #include "Util/Types.h" #include "Pilot/Poller.h" -/** - * \class Optimizer - * \brief An abstract class defining the interface for all optimizer - * components. - */ class Optimizer : protected Poller { public: diff --git a/optimizer/Pilot/Pilot.h b/optimizer/Pilot/Pilot.h index d17817eb7..6f32d3e8c 100644 --- a/optimizer/Pilot/Pilot.h +++ b/optimizer/Pilot/Pilot.h @@ -1,3 +1,41 @@ +// +// Class Pilot +// The Optimization Pilot (Master): Coordinates requests by optimizer +// to workers and reports results back on a given communicator. +// +// Every worker thread notifies the master here if idle or not. When +// available the master dispatches one of the pending simulations to the +// worker who will run the specified simulation and report results back to +// the master. The Optimizer class will poll the scheduler to check if some +// (or all) results are available and continue to optimize and request new +// simulation results. +// +// @see Worker +// @see Optimizer +// +// @tparam Opt_t type of the optimizer +// @tparam Sim_t type of the simulation +// @tparam SolPropagationGraph_t strategy to distribute solution between +// master islands +// @tparam Comm_t comm splitter strategy +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __PILOT_H__ #define __PILOT_H__ @@ -55,27 +93,6 @@ -/** - * \class Pilot - * \brief The Optimization Pilot (Master): Coordinates requests by optimizer - * to workers and reports results back on a given communicator. - * - * Every worker thread notifies the master here if idle or not. When - * available the master dispatches one of the pending simulations to the - * worker who will run the specified simulation and report results back to - * the master. The Optimizer class will poll the scheduler to check if some - * (or all) results are available and continue to optimize and request new - * simulation results. - * - * @see Worker - * @see Optimizer - * - * @tparam Opt_t type of the optimizer - * @tparam Sim_t type of the simulation - * @tparam SolPropagationGraph_t strategy to distribute solution between - * master islands - * @tparam Comm_t comm splitter strategy - */ template < class Opt_t , class Sim_t diff --git a/optimizer/Pilot/Poller.h b/optimizer/Pilot/Poller.h index 231d1b516..672e090f8 100644 --- a/optimizer/Pilot/Poller.h +++ b/optimizer/Pilot/Poller.h @@ -1,3 +1,30 @@ +// +// Class Poller +// An interface implementing the basics of a poll loop, posting an +// MPI_Irecv and waiting for new requests on a specific communicator. +// +// @see Pilot +// @see Worker +// @see Optimizer +// @see MPIHelper.h +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __POLLER_H__ #define __POLLER_H__ @@ -5,16 +32,6 @@ #include "Util/MPIHelper.h" -/** - * \class Poller - * \brief An interface implementing the basics of a poll loop, posting an - * MPI_Irecv and waiting for new requests on a specific communicator. - * - * @see Pilot - * @see Worker - * @see Optimizer - * @see MPIHelper.h - */ class Poller { public: diff --git a/optimizer/Pilot/Worker.h b/optimizer/Pilot/Worker.h index eaeaba50c..ce5bf1276 100644 --- a/optimizer/Pilot/Worker.h +++ b/optimizer/Pilot/Worker.h @@ -1,3 +1,32 @@ +// +// Class Worker +// A worker MPI entity consists of a processor group that runs a +// simulation of type Sim_t. The main loop in run() accepts new jobs from the +// master process runs the simulation and reports back the results. +// +// @see Pilot +// @see Poller +// @see MPIHelper.h +// +// @tparam Sim_T type of simulation to run +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __WORKER_H__ #define __WORKER_H__ @@ -12,18 +41,6 @@ #include "Util/MPIHelper.h" #include "Util/CmdArguments.h" -/** - * \class Worker - * \brief A worker MPI entity consists of a processor group that runs a - * simulation of type Sim_t. The main loop in run() accepts new jobs from the - * master process runs the simulation and reports back the results. - * - * @see Pilot - * @see Poller - * @see MPIHelper.h - * - * @tparam Sim_T type of simulation to run - */ template <class Sim_t> class Worker : protected Poller { diff --git a/optimizer/Simulation/GenerateOpalSimulation.h b/optimizer/Simulation/GenerateOpalSimulation.h index dd435cb57..9d5b770d6 100644 --- a/optimizer/Simulation/GenerateOpalSimulation.h +++ b/optimizer/Simulation/GenerateOpalSimulation.h @@ -1,3 +1,35 @@ +// +// Class GenerateOpalSimulation +// Generates an OPAL input file from data and template file. +// +// When running the optimizer with the OPAL forward solvers this utility +// class helps generating OPAL input files corresponding to the design +// variable values of the requested evaluation. +// Using the data file we start by generating the dictionary of known +// templates. +// When the input file is requested, all template variables in the template +// input file are replaced with values found in the dictionary. +// +// TODO: +// - pass stream directly to opal (detour over file not necessary) +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __GENERATE_SIMULATION_H__ #define __GENERATE_SIMULATION_H__ @@ -14,21 +46,6 @@ #include "Util/OptPilotException.h" -/** - * \class GenerateOpalSimulation - * \brief Generates an OPAL input file from data and template file. - * - * When running the optimizer with the OPAL forward solvers this utility - * class helps generating OPAL input files corresponding to the design - * variable values of the requested evaluation. - * Using the data file we start by generating the dictionary of known - * templates. - * When the input file is requested, all template variables in the template - * input file are replaced with values found in the dictionary. - * - * TODO: - * - pass stream directly to opal (detour over file not necessary) - */ class GenerateOpalSimulation { public: diff --git a/optimizer/Simulation/Simulation.h b/optimizer/Simulation/Simulation.h index 4cf9398a5..1629bbf65 100644 --- a/optimizer/Simulation/Simulation.h +++ b/optimizer/Simulation/Simulation.h @@ -1,22 +1,39 @@ +// +// Class Simulation +// Abstract class every simulation has to implement to be able to +// work with the optimization pilot. +// +// To be supported the simulation code has to be called as a library taking +// as an argument an MPI communicator specifying on which processors the +// simulation runs. +// +// TODO: +// - formulate the 'simulation' part as a pipeline.. workers can simply put +// together their own pipelines situation-dependent. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __SIMULATION_H__ #define __SIMULATION_H__ #include "Util/Types.h" #include "Util/CmdArguments.h" -/** - * \class Simulation - * \brief Abstract class every simulation has to implement to be able to - * work with the optimization pilot. - * - * To be supported the simulation code has to be called as a library taking - * as an argument an MPI communicator specifying on which processors the - * simulation runs. - * - * TODO: - * - formulate the 'simulation' part as a pipeline.. workers can simply put - * together their own pipelines situation-dependent. - */ class Simulation { public: diff --git a/optimizer/Tests/CmdArgumentsTest.cpp b/optimizer/Tests/CmdArgumentsTest.cpp index 0ac6f3bcb..a940ab338 100644 --- a/optimizer/Tests/CmdArgumentsTest.cpp +++ b/optimizer/Tests/CmdArgumentsTest.cpp @@ -1,3 +1,23 @@ +// +// Test CmdArgumentsTest +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "Util/CmdArguments.h" #include "gtest/gtest.h" #include "boost/smart_ptr.hpp" diff --git a/optimizer/Tests/ExpressionTest.cpp b/optimizer/Tests/ExpressionTest.cpp index fb741d136..d3dda9fc8 100644 --- a/optimizer/Tests/ExpressionTest.cpp +++ b/optimizer/Tests/ExpressionTest.cpp @@ -1,3 +1,23 @@ +// +// Test ExpressionTest +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 <set> #include <string> diff --git a/optimizer/Tests/FromFileExpressionTest.cpp b/optimizer/Tests/FromFileExpressionTest.cpp index 3f34f8c8f..33a44c69b 100644 --- a/optimizer/Tests/FromFileExpressionTest.cpp +++ b/optimizer/Tests/FromFileExpressionTest.cpp @@ -1,3 +1,23 @@ +// +// Test FromFileExpressionTest +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 <set> #include <string> diff --git a/optimizer/Tests/HashNameGeneratorTest.cpp b/optimizer/Tests/HashNameGeneratorTest.cpp index f18b4a19b..f3fa95948 100644 --- a/optimizer/Tests/HashNameGeneratorTest.cpp +++ b/optimizer/Tests/HashNameGeneratorTest.cpp @@ -1,3 +1,23 @@ +// +// Test HashNameGeneratorTest +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "Util/NativeHashGenerator.h" #include "gtest/gtest.h" #include <fstream> diff --git a/optimizer/Tests/IndividualTest.cpp b/optimizer/Tests/IndividualTest.cpp index 76125fbac..abb622430 100644 --- a/optimizer/Tests/IndividualTest.cpp +++ b/optimizer/Tests/IndividualTest.cpp @@ -1,3 +1,23 @@ +// +// Test IndividualTest +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "Optimizer/EA/Individual.h" #include "Optimizer/EA/Individual.h" #include "gtest/gtest.h" diff --git a/optimizer/Tests/MPIHelperTest.cpp b/optimizer/Tests/MPIHelperTest.cpp index dcdf553af..745d37582 100644 --- a/optimizer/Tests/MPIHelperTest.cpp +++ b/optimizer/Tests/MPIHelperTest.cpp @@ -1,3 +1,23 @@ +// +// Test MPIHelperTest +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "Util/MPIHelper.h" #include "gtest/gtest.h" diff --git a/optimizer/Tests/ManagedIDsTest.cpp b/optimizer/Tests/ManagedIDsTest.cpp index 34f8b3c37..2b899bd03 100644 --- a/optimizer/Tests/ManagedIDsTest.cpp +++ b/optimizer/Tests/ManagedIDsTest.cpp @@ -1,3 +1,23 @@ +// +// Test ManagedIDsTest +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "Util/ManagedIDs.h" #include "gtest/gtest.h" #include "boost/smart_ptr.hpp" diff --git a/optimizer/Tests/PopulationTest.cpp b/optimizer/Tests/PopulationTest.cpp index 3f9edf39a..2ea29fd85 100644 --- a/optimizer/Tests/PopulationTest.cpp +++ b/optimizer/Tests/PopulationTest.cpp @@ -1,3 +1,23 @@ +// +// Test PopulationTest +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "Optimizer/EA/Population.h" #include "Optimizer/EA/Individual.h" #include "gtest/gtest.h" diff --git a/optimizer/Tests/PythonExprTest.cpp b/optimizer/Tests/PythonExprTest.cpp index 5828e96ac..8c67e9644 100644 --- a/optimizer/Tests/PythonExprTest.cpp +++ b/optimizer/Tests/PythonExprTest.cpp @@ -1,3 +1,23 @@ +// +// Test PythonExprTest +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 <set> #include <string> diff --git a/optimizer/Tests/SDDSParserTest.cpp b/optimizer/Tests/SDDSParserTest.cpp index 2604dbb9b..182f751b3 100644 --- a/optimizer/Tests/SDDSParserTest.cpp +++ b/optimizer/Tests/SDDSParserTest.cpp @@ -1,4 +1,23 @@ - +// +// Test SDDSParserTest +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "Util/SDDSReader.h" #include "gtest/gtest.h" diff --git a/optimizer/Tests/SumErrSqExpressionTest.cpp b/optimizer/Tests/SumErrSqExpressionTest.cpp index 20a6c23af..6396cfd10 100644 --- a/optimizer/Tests/SumErrSqExpressionTest.cpp +++ b/optimizer/Tests/SumErrSqExpressionTest.cpp @@ -1,3 +1,23 @@ +// +// Test SumErrSqExpressionTest +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 <set> #include <string> diff --git a/optimizer/Util/AsyncSendBuffers.h b/optimizer/Util/AsyncSendBuffers.h index 1cf3dfeef..4541e94c9 100644 --- a/optimizer/Util/AsyncSendBuffers.h +++ b/optimizer/Util/AsyncSendBuffers.h @@ -1,3 +1,23 @@ +// +// Class AsyncSendBuffer and AsyncSendBuffers +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 <vector> #include <algorithm> #include <string.h> diff --git a/optimizer/Util/CmdArguments.cpp b/optimizer/Util/CmdArguments.cpp index d54a14312..14a2e1b1d 100644 --- a/optimizer/Util/CmdArguments.cpp +++ b/optimizer/Util/CmdArguments.cpp @@ -1,3 +1,30 @@ +// +// Class CmdArguments +// Parsing command line arguments +// +// In order to have a flexible framework, each component implementation gets +// access to all command line arguments. +// All command line options have the form: +// --name=value +// Spaces before and after the "=" will be trimmed. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "Util/CmdArguments.h" void CmdArguments::addArguments(int argc, char **argv) { diff --git a/optimizer/Util/CmdArguments.h b/optimizer/Util/CmdArguments.h index 80861f7b0..e90f58896 100644 --- a/optimizer/Util/CmdArguments.h +++ b/optimizer/Util/CmdArguments.h @@ -1,3 +1,30 @@ +// +// Class CmdArguments +// Parsing command line arguments +// +// In order to have a flexible framework, each component implementation gets +// access to all command line arguments. +// All command line options have the form: +// --name=value +// Spaces before and after the "=" will be trimmed. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __CMD_ARGUMENTS__ #define __CMD_ARGUMENTS__ @@ -13,16 +40,6 @@ #include "Util/OptPilotException.h" -/** - * \class CmdArguments - * \brief Parsing command line arguments - * - * In order to have a flexible framework, each component implementation gets - * access to all command line arguments. - * All command line options have the form: - * --name=value - * Spaces before and after the "=" will be trimmed. - */ class CmdArguments { public: diff --git a/optimizer/Util/MPIHelper.cpp b/optimizer/Util/MPIHelper.cpp index 4dfe6a779..4199d7c89 100644 --- a/optimizer/Util/MPIHelper.cpp +++ b/optimizer/Util/MPIHelper.cpp @@ -1,3 +1,23 @@ +// +// Global functions MPIHelper +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 <string.h> #include <boost/static_assert.hpp> diff --git a/optimizer/Util/MPIHelper.h b/optimizer/Util/MPIHelper.h index f0446dc9d..79d8e4c2f 100644 --- a/optimizer/Util/MPIHelper.h +++ b/optimizer/Util/MPIHelper.h @@ -1,3 +1,23 @@ +// +// Global functions MPIHelper +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __MPIHELPER_H__ #define __MPIHELPER_H__ diff --git a/optimizer/Util/ManagedIDs.h b/optimizer/Util/ManagedIDs.h index add88f3a9..4c5494ef7 100644 --- a/optimizer/Util/ManagedIDs.h +++ b/optimizer/Util/ManagedIDs.h @@ -1,11 +1,29 @@ +// +// Class ManagedIDs +// Simple class to manage an ID pool. +// +// Previously freed ID's are redistributed on following requests. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 <cstddef> #include <queue> -/** - * \brief Simple class to manage an ID pool. - * - * Previously freed ID's are redistributed on following requests. - */ class ManagedIDs { public: diff --git a/optimizer/Util/NativeHashGenerator.h b/optimizer/Util/NativeHashGenerator.h index 51af7f04b..91b196d37 100644 --- a/optimizer/Util/NativeHashGenerator.h +++ b/optimizer/Util/NativeHashGenerator.h @@ -1,14 +1,31 @@ +// +// Class NativeHashGenerator +// Generates a hash name. +// Concatenates and hashes a vector of strings. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 <vector> #include <string> #include <sstream> #include <functional> #include <algorithm> -/** - * \brief Generates a hash name. - * - * Concatenates and hashes a vector of strings. - */ class NativeHashGenerator { public: diff --git a/optimizer/Util/OptPilotException.h b/optimizer/Util/OptPilotException.h index cbc3b1c6d..3c14b83ba 100644 --- a/optimizer/Util/OptPilotException.h +++ b/optimizer/Util/OptPilotException.h @@ -1,3 +1,23 @@ +// +// Class OptPilotException +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __OPTPILOTEXCEPTION_H__ #define __OPTPILOTEXCEPTION_H__ diff --git a/optimizer/Util/ProbeReader.cpp b/optimizer/Util/ProbeReader.cpp index e95da06ec..b211e147a 100644 --- a/optimizer/Util/ProbeReader.cpp +++ b/optimizer/Util/ProbeReader.cpp @@ -1,3 +1,24 @@ +// +// Class ProbeReader +// Implements a parser and value extractor for Probe loss files. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "ProbeReader.h" #include "Util/OptPilotException.h" diff --git a/optimizer/Util/ProbeReader.h b/optimizer/Util/ProbeReader.h index 7800344e9..84d631cae 100644 --- a/optimizer/Util/ProbeReader.h +++ b/optimizer/Util/ProbeReader.h @@ -1,15 +1,31 @@ +// +// Class ProbeReader +// Implements a parser and value extractor for Probe loss files. +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __PROBEREADER_H__ #define __PROBEREADER_H__ #include <string> #include <vector> #include <map> -// #include <locale> -/** - * \class SDDSReader - * \brief Implements a parser and value extractor for Probe loss files - */ class ProbeReader { public: diff --git a/optimizer/Util/SDDSParser.cpp b/optimizer/Util/SDDSParser.cpp index 30dc9fc75..e1cef724d 100644 --- a/optimizer/Util/SDDSParser.cpp +++ b/optimizer/Util/SDDSParser.cpp @@ -1,3 +1,20 @@ +// +// Class SDDSParser +// This class writes column entries of SDDS files. +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "SDDSParser.h" #include <boost/algorithm/string.hpp> diff --git a/optimizer/Util/SDDSParser.h b/optimizer/Util/SDDSParser.h index 7143cacde..38b5ce28d 100644 --- a/optimizer/Util/SDDSParser.h +++ b/optimizer/Util/SDDSParser.h @@ -1,7 +1,20 @@ // -// Copyright & License: See Copyright.readme in src directory +// Class SDDSParser +// This class writes column entries of SDDS files. +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "Util/SDDSParser/ast.hpp" #include "Util/SDDSParser/file.hpp" #include "Util/SDDSParser/skipper.hpp" diff --git a/optimizer/Util/SDDSParser/SDDSParserException.h b/optimizer/Util/SDDSParser/SDDSParserException.h index 7fb023c5a..81d187864 100644 --- a/optimizer/Util/SDDSParser/SDDSParserException.h +++ b/optimizer/Util/SDDSParser/SDDSParserException.h @@ -1,3 +1,19 @@ +// +// Class SDDSParserException +// +// Copyright (c) 2018, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 __SDDSPARSEREXCEPTION_H__ #define __SDDSPARSEREXCEPTION_H__ diff --git a/optimizer/Util/SDDSParser/array.cpp b/optimizer/Util/SDDSParser/array.cpp index 782114951..87e1600cf 100644 --- a/optimizer/Util/SDDSParser/array.cpp +++ b/optimizer/Util/SDDSParser/array.cpp @@ -1,8 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct array +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "array_def.hpp" typedef std::string::const_iterator iterator_t; diff --git a/optimizer/Util/SDDSParser/array.hpp b/optimizer/Util/SDDSParser/array.hpp index 0d61f9767..79a386545 100644 --- a/optimizer/Util/SDDSParser/array.hpp +++ b/optimizer/Util/SDDSParser/array.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct array +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef ARRAY_HPP_ #define ARRAY_HPP_ diff --git a/optimizer/Util/SDDSParser/array_def.hpp b/optimizer/Util/SDDSParser/array_def.hpp index 7c9c3ac66..ab75e648f 100644 --- a/optimizer/Util/SDDSParser/array_def.hpp +++ b/optimizer/Util/SDDSParser/array_def.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct array +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef ARRAY_DEF_HPP_ #define ARRAY_DEF_HPP_ diff --git a/optimizer/Util/SDDSParser/associate.cpp b/optimizer/Util/SDDSParser/associate.cpp index 9cf0fcc7d..6a6607514 100644 --- a/optimizer/Util/SDDSParser/associate.cpp +++ b/optimizer/Util/SDDSParser/associate.cpp @@ -1,7 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct associate +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "associate_def.hpp" typedef std::string::const_iterator iterator_t; diff --git a/optimizer/Util/SDDSParser/associate.hpp b/optimizer/Util/SDDSParser/associate.hpp index 9d79ece79..82c24ae56 100644 --- a/optimizer/Util/SDDSParser/associate.hpp +++ b/optimizer/Util/SDDSParser/associate.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct associate +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef ASSOCIATE_HPP_ #define ASSOCIATE_HPP_ diff --git a/optimizer/Util/SDDSParser/associate_def.hpp b/optimizer/Util/SDDSParser/associate_def.hpp index 5114b2d9d..9158bbdc9 100644 --- a/optimizer/Util/SDDSParser/associate_def.hpp +++ b/optimizer/Util/SDDSParser/associate_def.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct associate +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef ASSOCIATE_DEF_HPP_ #define ASSOCIATE_DEF_HPP_ diff --git a/optimizer/Util/SDDSParser/ast.cpp b/optimizer/Util/SDDSParser/ast.cpp index d1e4a515c..0c2a20812 100644 --- a/optimizer/Util/SDDSParser/ast.cpp +++ b/optimizer/Util/SDDSParser/ast.cpp @@ -1,7 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Namespace ast +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "ast_def.hpp" #include "skipper.hpp" diff --git a/optimizer/Util/SDDSParser/ast.hpp b/optimizer/Util/SDDSParser/ast.hpp index 9d6dc1d17..915b98431 100644 --- a/optimizer/Util/SDDSParser/ast.hpp +++ b/optimizer/Util/SDDSParser/ast.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Namespace ast +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef AST_HPP_ #define AST_HPP_ diff --git a/optimizer/Util/SDDSParser/ast_def.hpp b/optimizer/Util/SDDSParser/ast_def.hpp index abe755ed9..dacfd936c 100644 --- a/optimizer/Util/SDDSParser/ast_def.hpp +++ b/optimizer/Util/SDDSParser/ast_def.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Namespace ast +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef AST_DEF_HPP_ #define AST_DEF_HPP_ diff --git a/optimizer/Util/SDDSParser/column.cpp b/optimizer/Util/SDDSParser/column.cpp index b4ec46edb..c8048678e 100644 --- a/optimizer/Util/SDDSParser/column.cpp +++ b/optimizer/Util/SDDSParser/column.cpp @@ -1,7 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct column +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "column_def.hpp" unsigned int SDDS::column::count_m = 0; diff --git a/optimizer/Util/SDDSParser/column.hpp b/optimizer/Util/SDDSParser/column.hpp index 033123c20..b6ddb1cec 100644 --- a/optimizer/Util/SDDSParser/column.hpp +++ b/optimizer/Util/SDDSParser/column.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct column +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef COLUMN_HPP_ #define COLUMN_HPP_ diff --git a/optimizer/Util/SDDSParser/column_def.hpp b/optimizer/Util/SDDSParser/column_def.hpp index 754ab636b..6561815e9 100644 --- a/optimizer/Util/SDDSParser/column_def.hpp +++ b/optimizer/Util/SDDSParser/column_def.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct column +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef COLUMN_DEF_HPP_ #define COLUMN_DEF_HPP_ diff --git a/optimizer/Util/SDDSParser/data.cpp b/optimizer/Util/SDDSParser/data.cpp index 3c69bd377..d20f37c0f 100644 --- a/optimizer/Util/SDDSParser/data.cpp +++ b/optimizer/Util/SDDSParser/data.cpp @@ -1,7 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct data +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "data.hpp" #include "data_def.hpp" diff --git a/optimizer/Util/SDDSParser/data.hpp b/optimizer/Util/SDDSParser/data.hpp index 3d22510f2..cf3bafd6c 100644 --- a/optimizer/Util/SDDSParser/data.hpp +++ b/optimizer/Util/SDDSParser/data.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct data +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef DATA_HPP_ #define DATA_HPP_ diff --git a/optimizer/Util/SDDSParser/data_def.hpp b/optimizer/Util/SDDSParser/data_def.hpp index 3270a0c5a..8b497b8af 100644 --- a/optimizer/Util/SDDSParser/data_def.hpp +++ b/optimizer/Util/SDDSParser/data_def.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct data +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef DATA_DEF_HPP_ #define DATA_DEF_HPP_ diff --git a/optimizer/Util/SDDSParser/description.cpp b/optimizer/Util/SDDSParser/description.cpp index cb13b5552..0437b9598 100644 --- a/optimizer/Util/SDDSParser/description.cpp +++ b/optimizer/Util/SDDSParser/description.cpp @@ -1,7 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct description +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "description_def.hpp" typedef std::string::const_iterator iterator_t; diff --git a/optimizer/Util/SDDSParser/description.hpp b/optimizer/Util/SDDSParser/description.hpp index 59f5e5e97..d4dd8ee9d 100644 --- a/optimizer/Util/SDDSParser/description.hpp +++ b/optimizer/Util/SDDSParser/description.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct description +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef DESCRIPTION_HPP_ #define DESCRIPTION_HPP_ diff --git a/optimizer/Util/SDDSParser/description_def.hpp b/optimizer/Util/SDDSParser/description_def.hpp index 8ce6c586f..03659bebb 100644 --- a/optimizer/Util/SDDSParser/description_def.hpp +++ b/optimizer/Util/SDDSParser/description_def.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct description +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef DESCRIPTION_DEF_HPP_ #define DESCRIPTION_DEF_HPP_ diff --git a/optimizer/Util/SDDSParser/error_handler.hpp b/optimizer/Util/SDDSParser/error_handler.hpp index f0871eb55..e5fe9a68b 100644 --- a/optimizer/Util/SDDSParser/error_handler.hpp +++ b/optimizer/Util/SDDSParser/error_handler.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct error_handler +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef ERROR_HANDLER_HPP_ #define ERROR_HANDLER_HPP_ diff --git a/optimizer/Util/SDDSParser/file.cpp b/optimizer/Util/SDDSParser/file.cpp index 323dd988e..41267c21e 100644 --- a/optimizer/Util/SDDSParser/file.cpp +++ b/optimizer/Util/SDDSParser/file.cpp @@ -1,7 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct file +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "file_def.hpp" typedef std::string::const_iterator iterator_t; diff --git a/optimizer/Util/SDDSParser/file.hpp b/optimizer/Util/SDDSParser/file.hpp index 6335ddd3d..14d482e31 100644 --- a/optimizer/Util/SDDSParser/file.hpp +++ b/optimizer/Util/SDDSParser/file.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct file +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef FILE_HPP_ #define FILE_HPP_ diff --git a/optimizer/Util/SDDSParser/file_def.hpp b/optimizer/Util/SDDSParser/file_def.hpp index 521bae433..96734b21a 100644 --- a/optimizer/Util/SDDSParser/file_def.hpp +++ b/optimizer/Util/SDDSParser/file_def.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct file +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef FILE_DEF_HPP_ #define FILE_DEF_HPP_ diff --git a/optimizer/Util/SDDSParser/include.cpp b/optimizer/Util/SDDSParser/include.cpp index a6c84c49d..80d8ca346 100644 --- a/optimizer/Util/SDDSParser/include.cpp +++ b/optimizer/Util/SDDSParser/include.cpp @@ -1,7 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct include +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "include_def.hpp" typedef std::string::const_iterator iterator_t; diff --git a/optimizer/Util/SDDSParser/include.hpp b/optimizer/Util/SDDSParser/include.hpp index dec789e42..06d8becd9 100644 --- a/optimizer/Util/SDDSParser/include.hpp +++ b/optimizer/Util/SDDSParser/include.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct include +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef INCLUDE_HPP_ #define INCLUDE_HPP_ diff --git a/optimizer/Util/SDDSParser/include_def.hpp b/optimizer/Util/SDDSParser/include_def.hpp index 65da1f624..31daf4360 100644 --- a/optimizer/Util/SDDSParser/include_def.hpp +++ b/optimizer/Util/SDDSParser/include_def.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct include +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef INCLUDE_DEF_HPP_ #define INCLUDE_DEF_HPP_ diff --git a/optimizer/Util/SDDSParser/parameter.cpp b/optimizer/Util/SDDSParser/parameter.cpp index 8bb963d86..56fd1ecf8 100644 --- a/optimizer/Util/SDDSParser/parameter.cpp +++ b/optimizer/Util/SDDSParser/parameter.cpp @@ -1,7 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct parameter +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "parameter_def.hpp" unsigned int SDDS::parameter::count_m = 0; diff --git a/optimizer/Util/SDDSParser/parameter.hpp b/optimizer/Util/SDDSParser/parameter.hpp index 427aecbff..969a99d68 100644 --- a/optimizer/Util/SDDSParser/parameter.hpp +++ b/optimizer/Util/SDDSParser/parameter.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct parameter +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef PARAMETER_HPP_ #define PARAMETER_HPP_ diff --git a/optimizer/Util/SDDSParser/parameter_def.hpp b/optimizer/Util/SDDSParser/parameter_def.hpp index 80ab52ed1..cbad87aa5 100644 --- a/optimizer/Util/SDDSParser/parameter_def.hpp +++ b/optimizer/Util/SDDSParser/parameter_def.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct parameter +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef PARAMETER_DEF_HPP_ #define PARAMETER_DEF_HPP_ diff --git a/optimizer/Util/SDDSParser/skipper.hpp b/optimizer/Util/SDDSParser/skipper.hpp index 56b0fca19..a73b256f6 100644 --- a/optimizer/Util/SDDSParser/skipper.hpp +++ b/optimizer/Util/SDDSParser/skipper.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct skipper +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef SKIPPER_HPP_ #define SKIPPER_HPP_ diff --git a/optimizer/Util/SDDSParser/version.cpp b/optimizer/Util/SDDSParser/version.cpp index 8d59641e4..850aff196 100644 --- a/optimizer/Util/SDDSParser/version.cpp +++ b/optimizer/Util/SDDSParser/version.cpp @@ -1,7 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct version +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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 "version_def.hpp" typedef std::string::const_iterator iterator_t; diff --git a/optimizer/Util/SDDSParser/version.hpp b/optimizer/Util/SDDSParser/version.hpp index 7a8c09f3b..152533d17 100644 --- a/optimizer/Util/SDDSParser/version.hpp +++ b/optimizer/Util/SDDSParser/version.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct version +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef VERSION_HPP_ #define VERSION_HPP_ diff --git a/optimizer/Util/SDDSParser/version_def.hpp b/optimizer/Util/SDDSParser/version_def.hpp index 7c3c0d557..43708a9a0 100644 --- a/optimizer/Util/SDDSParser/version_def.hpp +++ b/optimizer/Util/SDDSParser/version_def.hpp @@ -1,11 +1,19 @@ // -// Copyright & License: See Copyright.readme in src directory +// Struct version +// +// Copyright (c) 2017, Christof Metzger-Kraus, Open Sourcerer +// All rights reserved +// +// 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/>. // - -/*! - Class documentation -*/ - #ifndef VERSION_DEF_HPP_ #define VERSION_DEF_HPP_ diff --git a/optimizer/Util/Statistics.h b/optimizer/Util/Statistics.h index 32971b2a3..bf2001e14 100644 --- a/optimizer/Util/Statistics.h +++ b/optimizer/Util/Statistics.h @@ -1,3 +1,23 @@ +// +// Class Statistics +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __STATISTICS_H__ #define __STATISTICS_H__ diff --git a/optimizer/Util/Trace/CoutSink.h b/optimizer/Util/Trace/CoutSink.h index d6e6e10e8..746511e92 100644 --- a/optimizer/Util/Trace/CoutSink.h +++ b/optimizer/Util/Trace/CoutSink.h @@ -1,3 +1,23 @@ +// +// Class CoutSink +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __TRACE_COUT_SINK_H__ #define __TRACE_COUT_SINK_H__ diff --git a/optimizer/Util/Trace/FileSink.h b/optimizer/Util/Trace/FileSink.h index 96d3258b0..d844a5428 100644 --- a/optimizer/Util/Trace/FileSink.h +++ b/optimizer/Util/Trace/FileSink.h @@ -1,3 +1,23 @@ +// +// Class FileSink +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __TRACE_FILE_SINK_H__ #define __TRACE_FILE_SINK_H__ diff --git a/optimizer/Util/Trace/MyPid.h b/optimizer/Util/Trace/MyPid.h index 13a6c3673..70931647a 100644 --- a/optimizer/Util/Trace/MyPid.h +++ b/optimizer/Util/Trace/MyPid.h @@ -1,3 +1,23 @@ +// +// Class MyPid +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 "Util/Trace/TraceComponent.h" #include "mpi.h" diff --git a/optimizer/Util/Trace/Timestamp.h b/optimizer/Util/Trace/Timestamp.h index eed9e4623..4a0d4c7e7 100644 --- a/optimizer/Util/Trace/Timestamp.h +++ b/optimizer/Util/Trace/Timestamp.h @@ -1,3 +1,23 @@ +// +// Class Timestamp +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __TIMESTAMP_H__ #define __TIMESTAMP_H__ diff --git a/optimizer/Util/Trace/Trace.h b/optimizer/Util/Trace/Trace.h index 804da10c8..8286fbb1a 100644 --- a/optimizer/Util/Trace/Trace.h +++ b/optimizer/Util/Trace/Trace.h @@ -1,3 +1,23 @@ +// +// Class Trace +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __TRACE_H__ #define __TRACE_H__ diff --git a/optimizer/Util/Trace/TraceComponent.h b/optimizer/Util/Trace/TraceComponent.h index a89378ee6..cd1c8bef2 100644 --- a/optimizer/Util/Trace/TraceComponent.h +++ b/optimizer/Util/Trace/TraceComponent.h @@ -1,3 +1,23 @@ +// +// Class TraceComponent +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __TRACE_COMPONENT_H__ #define __TRACE_COMPONENT_H__ diff --git a/optimizer/Util/Types.h b/optimizer/Util/Types.h index 7d196fce3..a972d5765 100644 --- a/optimizer/Util/Types.h +++ b/optimizer/Util/Types.h @@ -1,3 +1,23 @@ +// +// File Types +// +// Copyright (c) 2010 - 2013, Yves Ineichen, ETH Zürich +// All rights reserved +// +// Implemented as part of the PhD thesis +// "Toward massively parallel multi-objective optimization withapplication to +// particle accelerators" (https://doi.org/10.3929/ethz-a-009792359) +// +// 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 __TYPES_H__ #define __TYPES_H__ -- GitLab