Geophysical Inversion and Modelling Library v1.5.4
Loading...
Searching...
No Matches
bertJacobian.h
1/******************************************************************************
2 * Copyright (C) 2006-2024 by the resistivity.net development team *
3 * Carsten Rücker carsten@resistivity.net *
4 * *
5 * Licensed under the Apache License, Version 2.0 (the "License"); *
6 * you may not use this file except in compliance with the License. *
7 * You may obtain a copy of the License at *
8 * *
9 * http://www.apache.org/licenses/LICENSE-2.0 *
10 * *
11 * Unless required by applicable law or agreed to in writing, software *
12 * distributed under the License is distributed on an "AS IS" BASIS, *
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
14 * See the License for the specific language governing permissions and *
15 * limitations under the License. *
16 * *
17 ******************************************************************************/
18
19#ifndef _BERT_BERT_JACOBIAN__H
20#define _BERT_BERT_JACOBIAN__H
21
22#include "bert.h"
23
24#include <vector.h>
25
26namespace GIMLI{
27
28/* Recommended. Need more mem than createSensitivityRow, but is extremly faster.*/
29// DLLEXPORT void createSensitivityCol(RMatrix & S, const Mesh & mesh,
30// const Container & data,
31// const RMatrix & pots, bool verbose);
32//
33// DLLEXPORT void createSensitivityCol(RMatrix & S, const Mesh & mesh,
34// const DataContainer & data,
35// const RMatrix & pots, int nThreads, bool verbose);
36//
37// DLLEXPORT void createSensitivityCol(RMatrix & S, const Mesh & mesh,
38// const DataContainer & data,
39// const RMatrix & pots,
40// const std::map< long, uint > & currPatternIdx,
41// int nThreads, bool verbose);
42
43DLLEXPORT void createSensitivityCol(RMatrix & S,
44 const Mesh & mesh,
45 const DataContainerERT & data,
46 const RMatrix & pots,
47 const RVector & weights,
48 const RVector & k,
49 std::vector < std::pair < Index, Index > > & matrixClusterIds,
50 uint nThreads, bool verbose);
51
52DLLEXPORT void createSensitivityCol(CMatrix & S,
53 const Mesh & mesh,
54 const DataContainerERT & data,
55 const CMatrix & pots,
56 const RVector & weights,
57 const RVector & k,
58 std::vector < std::pair < Index, Index > > & matrixClusterIds,
59 uint nThreads, bool verbose);
60
61DLLEXPORT void sensitivityDCFEMSingle(const std::vector < Cell * > & para,
62 const RVector & p1, const RVector & p2,
63 RVector & sens, bool verbose);
64
69DLLEXPORT RVector prepExportSensitivityData(const Mesh & mesh,
70 const RVector & data,
71 double logdrop=1e-3);
72
73DLLEXPORT void exportSensitivityVTK(const std::string & fileName,
74 const Mesh & mesh,
75 const RVector & data,
76 double logdrop=1e-3);
77
78// DLLEXPORT void exportSensMatrixDC(const std::string & filename,
79// const Mesh & mesh,
80// const RMatrix & S);
81DLLEXPORT void exportSensMatrixDC(const std::string & filename,
82 const Mesh & mesh,
83 const RMatrix & S,
84 const IVector & idx,
85 double logdrop=1e-3);
86
87DLLEXPORT RVector coverageDC(const RMatrix & S);
88
89DLLEXPORT RVector coverageDCtrans(const MatrixBase & S,
90 const RVector & dd,
91 const RVector & mm);
92
93DLLEXPORT RVector createCoverage(const MatrixBase & S, const Mesh & mesh);
94
95DLLEXPORT RVector createCoverage(const MatrixBase & S, const Mesh & mesh,
96 const RVector & response, const RVector & model);
97
98} // namespace BERT
99
100#endif //_BERT_BERT_JACOBIAN__H
Definition bertDataContainer.h:32
Interface class for matrices.
Definition matrix.h:137
Definition mesh.h:128
GIMLi main namespace for the Geophyiscal Inversion and Modelling Library.
Definition baseentity.h:24
RVector prepExportSensitivityData(const Mesh &mesh, const RVector &data, double logdrop)
Definition bertJacobian.cpp:472