28 template <
typename MATRIX>
29 Matrix
linsolve(
const SymMatrix& H,
const MATRIX& S) {
30 Matrix res(S.nlin(),H.nlin());
31 Jacobi<SymMatrix> M(H);
33 #pragma omp parallel for
34 #ifdef OPENMP_UNSIGNED
35 for (
unsigned i=0; i<S.nlin(); ++i) {
37 for (
int i=0; i<static_cast<int>(S.nlin()); ++i) {
40 Vector vtemp(H.nlin());
41 GMRes(H,M,vtemp,S.getlin(i),1000,1e-7,H.nlin());
44 PROGRESSBAR(i,S.nlin());
51 template <
typename SelectionMatrix>
55 return res.transpose();
61 using Matrix::operator=;
70 using Matrix::operator=;
80 using Matrix::operator=;
93 using Matrix::operator=;
129 size_t nlin()
const {
return MEGleadfield.
nlin() + EEGleadfield.
nlin(); }
139 using Matrix::operator=;
147 using Matrix::operator=;
Various helper functions for assembling matrices.
GainEEGMEGadjoint(const Geometry &geo, const Matrix &dipoles, const SymMatrix &HeadMat, const SparseMatrix &Head2EEGMat, const Matrix &Head2MEGMat, const Matrix &Source2MEGMat)
void saveMEG(const std::string filename) const
void saveEEG(const std::string filename) const
GainEEG(const Matrix &GainMat)
GainEEG(const SymMatrix &HeadMatInv, const Matrix &SourceMat, const SparseMatrix &Head2EEGMat)
GainEEGadjoint(const Geometry &geo, const Matrix &dipoles, const SymMatrix &HeadMat, const SparseMatrix &Head2EEGMat)
GainEITInternalPot(const SymMatrix &HeadMatInv, const Matrix &SourceMat, const Matrix &Head2IPMat)
GainInternalPot(const SymMatrix &HeadMatInv, const Matrix &SourceMat, const Matrix &Head2IPMat, const Matrix &Source2IPMat)
GainMEG(const SymMatrix &HeadMatInv, const Matrix &SourceMat, const Matrix &Head2MEGMat, const Matrix &Source2MEGMat)
GainMEG(const Matrix &GainMat)
GainMEGadjoint(const Geometry &geo, const Matrix &dipoles, const SymMatrix &HeadMat, const Matrix &Head2MEGMat, const Matrix &Source2MEGMat)
Geometry contains the electrophysiological model Vertices, meshes and domains are stored in this geom...
virtual Dimension ncol() const
Matrix class Matrix class.
void save(const char *filename) const
Save Matrix to file (Format set using file name extension)
Vector getcol(const Index j) const
Vector getlin(const Index i) const
void setcol(const Index j, const Vector &v)
Vector getlin(const size_t i) const
SymMatrix HeadMat(const Geometry &geo, const Integrator &integrator=Integrator(3, 0, 0.005))
Matrix linsolve(const SymMatrix &H, const SelectionMatrix &S)
unsigned GMRes(const T &A, const P &M, Vector &x, const Vector &b, int max_iter, double tol, unsigned m)
Matrix DipSourceMat(const Geometry &geo, const Matrix &dipoles, const Integrator &integrator, const std::string &domain_name)
SparseMatrix Head2EEGMat(const Geometry &geo, const Sensors &electrodes)
Matrix Head2MEGMat(const Geometry &geo, const Sensors &sensors)