OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
FM3DMagnetoStaticH5Block.h
Go to the documentation of this file.
1//
2// Class FM3DMagnetoStaticH5Block
3// Class for magneto-static 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_FIELDMAP3DMAGNETOSTATICH5BLOCK_H
20#define CLASSIC_FIELDMAP3DMAGNETOSTATICH5BLOCK_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 FM3DMagnetoStaticH5Block create(const std::string& filename);
40
41 virtual void readMap (
42 );
43
44 virtual void freeMap (
45 );
46
47 virtual double getFrequency (
48 ) const;
49
50 std::vector<double> FieldstrengthBz_m;
51 std::vector<double> FieldstrengthBx_m;
52 std::vector<double> FieldstrengthBy_m;
53
54 friend class _Fieldmap;
55 friend class _FM3DH5BlockBase;
56};
57
58using FM3DMagnetoStaticH5Block = std::shared_ptr<_FM3DMagnetoStaticH5Block>;
59
60#endif
std::shared_ptr< _FM3DMagnetoStaticH5Block > FM3DMagnetoStaticH5Block
std::shared_ptr< _FM3DMagnetoStaticH5Block > FM3DMagnetoStaticH5Block
Definition Definitions.h:75
std::vector< double > FieldstrengthBz_m
_FM3DMagnetoStaticH5Block(const std::string &filename)
std::vector< double > FieldstrengthBy_m
std::vector< double > FieldstrengthBx_m
virtual bool getFieldstrength(const Vector_t &R, Vector_t &E, Vector_t &B) const
static FM3DMagnetoStaticH5Block create(const std::string &filename)
Vektor< double, 3 > Vector_t