OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
FM3DH5Block.h
Go to the documentation of this file.
1//
2// Class FM3DH5Block
3// Class for dynamic 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_H
20#define CLASSIC_FIELDMAP3DH5BLOCK_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
32 virtual ~_FM3DH5Block (
33 );
34
35private:
37 const std::string& filename);
38
39 static FM3DH5Block 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 = std::shared_ptr<_FM3DH5Block>;
56
57#endif
std::shared_ptr< _FM3DH5Block > FM3DH5Block
Definition FM3DH5Block.h:55
std::shared_ptr< _FM3DH5Block > FM3DH5Block
Definition Definitions.h:63
friend class _Fieldmap
Definition FM3DH5Block.h:51
virtual ~_FM3DH5Block()
virtual bool getFieldstrength(const Vector_t &R, Vector_t &E, Vector_t &B) const
std::vector< double > FieldstrengthHy_m
Definition FM3DH5Block.h:49
_FM3DH5Block(const std::string &filename)
virtual void freeMap()
friend class _FM3DH5BlockBase
Definition FM3DH5Block.h:52
std::vector< double > FieldstrengthHz_m
Definition FM3DH5Block.h:47
static FM3DH5Block create(const std::string &filename)
std::vector< double > FieldstrengthHx_m
Definition FM3DH5Block.h:48
virtual void readMap()
Vektor< double, 3 > Vector_t