Geophysical Inversion and Modelling Library v1.5.4
Loading...
Searching...
No Matches
bertMisc.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_MISC__H
20#define _BERT_BERT_MISC__H
21
22#include "bert.h"
23
24#include <vector.h>
25#include <pos.h>
26
27namespace GIMLI{
28
29DLLEXPORT double exactDCSolution(const RVector3 & pot, const RVector3 & src,
30 double k, double surfaceZ, double fallback);
31
32DLLEXPORT double exactDCSolution(const RVector3 & pot, const RVector3 & src);
33
34DLLEXPORT RVector exactDCSolution(const Mesh & mesh, const RVector3 & src,
35 double k, double surfaceZ=0.0);
36DLLEXPORT RVector exactDCSolution(const Mesh & mesh,
37 const Node * nA, const Node * nB,
38 double k, double surfaceZ=0.0);
39
42DLLEXPORT RVector exactDCSolution(const Mesh & mesh,
43 const ElectrodeShape * elec,
44 double k, double surfaceZ=0.0,
45 bool setSingValue=true);
46
47DLLEXPORT RVector exactDCSolution(const Mesh & mesh, int aID, int bID, double k,
48 double surfaceZ=0.0);
49DLLEXPORT RVector exactDCSolution(const Mesh & mesh, int aID, double k=0.0,
50 double surfaceZ=0.0);
51
52
55DLLEXPORT RVector geometricFactors(const DataContainerERT & data, int dim=3,
56 bool forceFlatEarth=false);
57
59inline RVector geometricFactor(const DataContainerERT & data, int dim=3,
60 bool forceFlatEarth=false){
61 __MS("Deprecated please use 'geometricFactors'")
62 return geometricFactors(data, dim, forceFlatEarth);
63}
64
65DLLEXPORT void initKWaveList(double rMin, double rMax,
66 int nGauLegendre, int nGauLaguerre,
67 RVector & kValues, RVector & weights);
68
69DLLEXPORT void initKWaveList(const Mesh & mesh,
70 RVector & kValues, RVector & weights,
71 const R3Vector & sources,
72 bool verbose=false);
73
74DLLEXPORT void initKWaveList(const Mesh & mesh,
75 RVector & kValues, RVector & weights,
76 bool verbose=false);
77
78DLLEXPORT int countKWave(const Mesh & mesh);
79
80DLLEXPORT void DCErrorEstimation(DataContainerERT & data,
81 double errPerc=3.0, double errVolt=100e-6,
82 double defaultCurrent=100e-3,
83 bool verbose=false);
84
85DLLEXPORT double DCParaDepth(const DataContainerERT & data);
86
89DLLEXPORT void setDefaultBERTBoundaryConditions(Mesh & mesh);
90
92DLLEXPORT void setAllNeumannBoundaryConditions(Mesh & mesh);
93
95DLLEXPORT RVector prepExportPotentialData(const RVector & data, double logdrop=1e-6);
96
97} // namespace BERT
98
99#endif // _BERT_BERT_MISC__H
100
101
Definition bertDataContainer.h:32
Abstract class for an electrode with a shape, which is required for modelling.
Definition electrode.h:58
Definition mesh.h:128
3D Node
Definition node.h:39
GIMLi main namespace for the Geophyiscal Inversion and Modelling Library.
Definition baseentity.h:24
RVector geometricFactor(const DataContainerERT &data, int dim=3, bool forceFlatEarth=false)
Definition bertMisc.h:59
void setAllNeumannBoundaryConditions(Mesh &mesh)
Definition bertMisc.cpp:341
void setDefaultBERTBoundaryConditions(Mesh &mesh)
Definition bertMisc.cpp:323
RVector prepExportPotentialData(const RVector &data, double logdrop)
Definition bertMisc.cpp:356
RVector geometricFactors(const DataContainerERT &data, int dim, bool forceFlatEarth)
Definition bertMisc.cpp:131