Geophysical Inversion and Modelling Library v1.5.4
Loading...
Searching...
No Matches
inversionBase.h
1/******************************************************************************
2 * Copyright (C) 2006-2024 by the GIMLi development team *
3 * Carsten Rücker carsten@resistivity.net *
4 * Thomas Günther thomas@resistivity.net *
5 * *
6 * Licensed under the Apache License, Version 2.0 (the "License"); *
7 * you may not use this file except in compliance with the License. *
8 * You may obtain a copy of the License at *
9 * *
10 * http://www.apache.org/licenses/LICENSE-2.0 *
11 * *
12 * Unless required by applicable law or agreed to in writing, software *
13 * distributed under the License is distributed on an "AS IS" BASIS, *
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
15 * See the License for the specific language governing permissions and *
16 * limitations under the License. *
17 * *
18 ******************************************************************************/
19
20#ifndef _GIMLI_INVERSIONBASE__H
21#define _GIMLI_INVERSIONBASE__H
22
23#include "gimli.h"
24
25namespace GIMLI{
26
28
29template < class ModelValType > class InversionBase {
30public:
31
32 typedef Vector < ModelValType > ModelVector;
33
37
39 virtual ~InversionBase(){
40 }
41
43 virtual const ModelVector & run() = 0;
44
45 virtual void setModel(const ModelVector & model) = 0;
46
47 virtual void setReferenceModel(const ModelVector & model) = 0;
48
50 virtual const ModelVector & model() const = 0;
51
52 virtual void setData(const ModelVector & data) = 0;
53
54 virtual void setError(const ModelVector & err, bool isRelative=true) = 0;
55
56 virtual void setTransData(Trans< ModelVector > & t) = 0;
57
58 virtual void setTransModel(Trans< ModelVector > & t) = 0;
59
60 virtual void setLambda(double l) = 0;
61
62 virtual void setMaxIter(int maxiter) = 0;
63
64 virtual ModellingBase * forwardOperator() = 0;
65
66 virtual void setForwardOperator(ModellingBase & fop) = 0;
67
68 virtual const ModelVector & cWeight() const = 0;
69
70 virtual void abort() = 0;
71
72 virtual uint iter() const = 0;
73
74 virtual double chi2() const = 0;
75
76 virtual bool isRunning() const = 0;
77
78
79protected:
80
81};
82
83} // namespace GIMLI
84
85#endif // _GIMLI_INVERSIONBASE__H
virtual const ModelVector & run()=0
InversionBase()
Definition inversionBase.h:35
virtual const ModelVector & model() const =0
virtual ~InversionBase()
Definition inversionBase.h:39
Definition modellingbase.h:31
Definition trans.h:33
GIMLi main namespace for the Geophyiscal Inversion and Modelling Library.
Definition baseentity.h:24