OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
FM3DH5Block_nonscale.h
Go to the documentation of this file.
1//
2// Class FM3DH5Block_nonscale
3// Class for dynamic non-scaled 3D field-maps stored in H5hut files.
4//
5// Copyright (c) 2020, Achim Gsell, Paul Scherrer Institut, Villigen PSI, Switzerland
6// All rights reserved.
7//
8// This file is part of OPAL.
9//
10// OPAL is free software: you can redistribute it and/or modify
11// it under the terms of the GNU General Public License as published by
12// the Free Software Foundation, either version 3 of the License, or
13// (at your option) any later version.
14//
15// You should have received a copy of the GNU General Public License
16// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
17//
18
19#ifndef CLASSIC_FIELDMAP3DH5BLOCK_NONSCALE_H
20#define CLASSIC_FIELDMAP3DH5BLOCK_NONSCALE_H
21
23
24#include <vector>
25
27
28public:
29 virtual bool getFieldstrength (
30 const Vector_t &R, Vector_t &E, Vector_t &B) const;
31
33 );
34
35private:
37 const std::string& filename);
38
39 static FM3DH5Block_nonscale create(const std::string& filename);
40
41 virtual void readMap (
42 );
43
44 virtual void freeMap (
45 );
46
47 std::vector<double> FieldstrengthHz_m;
48 std::vector<double> FieldstrengthHx_m;
49 std::vector<double> FieldstrengthHy_m;
50
51 friend class _Fieldmap;
52 friend class _FM3DH5BlockBase;
53};
54
55using FM3DH5Block_nonscale = std::shared_ptr<_FM3DH5Block_nonscale>;
56
57#endif
std::shared_ptr< _FM3DH5Block_nonscale > FM3DH5Block_nonscale
std::shared_ptr< _FM3DH5Block_nonscale > FM3DH5Block_nonscale
Definition Definitions.h:66
std::vector< double > FieldstrengthHz_m
_FM3DH5Block_nonscale(const std::string &filename)
std::vector< double > FieldstrengthHx_m
std::vector< double > FieldstrengthHy_m
virtual bool getFieldstrength(const Vector_t &R, Vector_t &E, Vector_t &B) const
static FM3DH5Block_nonscale create(const std::string &filename)
Vektor< double, 3 > Vector_t