v2.0.0
Loading...
Searching...
No Matches
fwd_comp_data.h
Go to the documentation of this file.
1//=============================================================================================================
29
30#ifndef FWD_COMP_DATA_H
31#define FWD_COMP_DATA_H
32
33//=============================================================================================================
34// INCLUDES
35//=============================================================================================================
36
37#include "fwd_global.h"
38#include "fwd_types.h"
39
40//=============================================================================================================
41// EIGEN INCLUDES
42//=============================================================================================================
43
44#include <Eigen/Core>
45
46#include <memory>
47
48//=============================================================================================================
49// QT INCLUDES
50//=============================================================================================================
51
52//=============================================================================================================
53// FORWARD DECLARATIONS
54//=============================================================================================================
55
56namespace MNELIB
57{
59}
60
61//=============================================================================================================
62// DEFINE NAMESPACE FWDLIB
63//=============================================================================================================
64
65namespace FWDLIB
66{
67
68//=============================================================================================================
69// FWDLIB FORWARD DECLARATIONS
70//=============================================================================================================
71
72class FwdCoilSet;
73
74//=============================================================================================================
81{
82public:
83 //=========================================================================================================
88
89 //=========================================================================================================
94
95 //=========================================================================================================
107 static int fwd_comp_field(const Eigen::Vector3f& rd, const Eigen::Vector3f& Q, FwdCoilSet& coils, Eigen::Ref<Eigen::VectorXf> res, void* client);
108
109 //=========================================================================================================
120 FwdCoilSet* coils,
122
123 //=========================================================================================================
137 static std::unique_ptr<FwdCompData> fwd_make_comp_data(MNELIB::MNECTFCompDataSet* set,
138 FwdCoilSet* coils,
143 void* client);
144
145 //=========================================================================================================
156 static int fwd_comp_field_vec(const Eigen::Vector3f& rd, FwdCoilSet& coils, Eigen::Ref<Eigen::MatrixXf> res, void* client);
157
158 //=========================================================================================================
173 static int fwd_comp_field_grad(const Eigen::Vector3f& rd, const Eigen::Vector3f& Q, FwdCoilSet& coils,
174 Eigen::Ref<Eigen::VectorXf> res, Eigen::Ref<Eigen::VectorXf> xgrad, Eigen::Ref<Eigen::VectorXf> ygrad, Eigen::Ref<Eigen::VectorXf> zgrad,
175 void* client);
176
177public:
178 std::shared_ptr<MNELIB::MNECTFCompDataSet> set;
179 std::shared_ptr<FwdCoilSet> comp_coils;
183 void* client;
184 Eigen::VectorXf work;
185 Eigen::MatrixXf vec_work;
186};
187
188//=============================================================================================================
189// INLINE DEFINITIONS
190//=============================================================================================================
191} // NAMESPACE FWDLIB
192
193#endif // FWD_COMP_DATA_H
Symbol-visibility macro and build-info entry points for the FWDLIB (MEG/EEG forward-modelling) librar...
#define FWDSHARED_EXPORT
Definition fwd_global.h:44
std::function aliases for the generic dipole field / potential / field-gradient callbacks driving the...
std::function< int(const Eigen::Vector3f &rd, FWDLIB::FwdCoilSet &coils, Eigen::Ref< Eigen::MatrixXf > res, void *client)> fwdVecFieldFunc
Definition fwd_types.h:49
std::function< int(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FWDLIB::FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, void *client)> fwdFieldFunc
Definition fwd_types.h:47
std::function< int(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FWDLIB::FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, Eigen::Ref< Eigen::VectorXf > xgrad, Eigen::Ref< Eigen::VectorXf > ygrad, Eigen::Ref< Eigen::VectorXf > zgrad, void *client)> fwdFieldGradFunc
Definition fwd_types.h:51
Core MNE data structures (source spaces, source estimates, hemispheres).
Forward modelling — BEM solver, spherical models, sensor/coil definitions and the lead-field assembly...
Definition compute_fwd.h:85
Container of FwdCoil instances acting both as the in-memory image of the coil_def....
static int fwd_comp_field_grad(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, Eigen::Ref< Eigen::VectorXf > xgrad, Eigen::Ref< Eigen::VectorXf > ygrad, Eigen::Ref< Eigen::VectorXf > zgrad, void *client)
std::shared_ptr< FwdCoilSet > comp_coils
static int fwd_comp_field_vec(const Eigen::Vector3f &rd, FwdCoilSet &coils, Eigen::Ref< Eigen::MatrixXf > res, void *client)
fwdVecFieldFunc vec_field
Eigen::MatrixXf vec_work
static int fwd_comp_field(const Eigen::Vector3f &rd, const Eigen::Vector3f &Q, FwdCoilSet &coils, Eigen::Ref< Eigen::VectorXf > res, void *client)
fwdFieldGradFunc field_grad
static int fwd_make_ctf_comp_coils(MNELIB::MNECTFCompDataSet *set, FwdCoilSet *coils, FwdCoilSet *comp_coils)
static std::unique_ptr< FwdCompData > fwd_make_comp_data(MNELIB::MNECTFCompDataSet *set, FwdCoilSet *coils, FwdCoilSet *comp_coils, fwdFieldFunc field, fwdVecFieldFunc vec_field, fwdFieldGradFunc field_grad, void *client)
std::shared_ptr< MNELIB::MNECTFCompDataSet > set
Eigen::VectorXf work
Collection of CTF third-order gradient compensation operators.