Browse Source

Cleaning up kernel file

master
Trevor Irons 7 years ago
parent
commit
56bca80f3b
1 changed files with 35 additions and 31 deletions
  1. 35
    31
      include/KernelV0.h

+ 35
- 31
include/KernelV0.h View File

@@ -54,8 +54,9 @@ namespace Lemma {
54 54
 
55 55
     /**
56 56
      * \ingroup Merlin
57
-     * \brief
58
-     * \details
57
+     * \brief  Calculated the initial amplitude imaging kernel of a sNMR experiment
58
+     * \details This class calculates the imaging kernel for a free induction decay
59
+     *          pulse. The methodology follows from Weichman et al., 2000.
59 60
      */
60 61
     class KernelV0 : public LemmaObject {
61 62
 
@@ -108,7 +109,7 @@ namespace Lemma {
108 109
          */
109 110
         virtual YAML::Node Serialize() const;
110 111
 
111
-        /*
112
+        /**
112 113
          *  Factory method for generating concrete class.
113 114
          *  @return a std::shared_ptr of type KernelV0
114 115
          */
@@ -125,6 +126,32 @@ namespace Lemma {
125 126
         // ====================  OPERATIONS    =======================
126 127
 
127 128
         /**
129
+         *   Calculates a single imaging kernel, however, phased arrays are supported
130
+         *   so that more than one transmitter and/or receiver can be specified.
131
+         *   @param[in] tx is the list of transmitters to use for a kernel, use the same labels as
132
+         *              used in PushCoil.
133
+         *   @param[in] rx is the list of receivers to use for a kernel, use the same labels as
134
+         *              used in PushCoil. @see PushCoil
135
+         *   @param[in] vtkOutput generates a VTK hyperoctree file as well, useful for visualization.
136
+         *              requires compilation of Lemma with VTK. The VTK files can become very large.
137
+         */
138
+        void CalculateK0 (const std::vector< std::string >& tx, const std::vector< std::string >& rx,
139
+                bool vtkOutput=false );
140
+
141
+        /**
142
+         *  Aligns the kernel settings with an Akvo Processed dataset.
143
+         */
144
+        void AlignWithAkvoDataset( const YAML::Node& node ) ;
145
+
146
+        /**
147
+         *   Assign transmiter coils
148
+         */
149
+        inline void PushCoil( const std::string& label, std::shared_ptr<PolygonalWireAntenna> ant ) {
150
+            TxRx[label] = ant;
151
+        }
152
+
153
+        // ====================  INQUIRY       =======================
154
+        /**
128 155
          * @return std::shared_ptr<LayeredEarthEM>
129 156
          */
130 157
         inline std::shared_ptr<LayeredEarthEM> GetSigmaModel (  ) {
@@ -171,31 +198,6 @@ namespace Lemma {
171 198
         }		// -----  end of method KernelV0::SetIntegrationOrigin  -----
172 199
 
173 200
         /**
174
-         *  Aligns the kernel settings with an Akvo Processed dataset.
175
-         */
176
-        void AlignWithAkvoDataset( const YAML::Node& node ) ;
177
-
178
-        /**
179
-         *   Assign transmiter coils
180
-         */
181
-        inline void PushCoil( const std::string& label, std::shared_ptr<PolygonalWireAntenna> ant ) {
182
-            TxRx[label] = ant;
183
-        }
184
-
185
-        /**
186
-         *   Calculates a single imaging kernel, however, phased arrays are supported
187
-         *   so that more than one transmitter and/or receiver can be specified.
188
-         *   @param[in] tx is the list of transmitters to use for a kernel, use the same labels as
189
-         *              used in PushCoil.
190
-         *   @param[in] rx is the list of receivers to use for a kernel, use the same labels as
191
-         *              used in PushCoil. @see PushCoil
192
-         *   @param[in] vtkOutput generates a VTK hyperoctree file as well, useful for visualization.
193
-         *              requires compilation of Lemma with VTK. The VTK files can become very large.
194
-         */
195
-        void CalculateK0 (const std::vector< std::string >& tx, const std::vector< std::string >& rx,
196
-                bool vtkOutput=false );
197
-
198
-        /**
199 201
          *  Sets the temperature, which has implications in calculation of \f$ M_N^{(0)}\f$. Units in
200 202
          *  Kelvin.
201 203
          */
@@ -205,12 +207,15 @@ namespace Lemma {
205 207
 
206 208
         /**
207 209
          *  Sets the tolerance to use for making the adaptive mesh
208
-         *
210
+         *  @param[in] ttol is the tolerance to use
209 211
          */
210 212
         inline void SetTolerance(const Real& ttol) {
211 213
             tol = ttol;
212 214
         }
213 215
 
216
+        /**
217
+         *  @param[in] taup sets the pulse duration
218
+         */
214 219
         inline void SetPulseDuration(const Real& taup) {
215 220
             Taup = taup;
216 221
         }
@@ -223,7 +228,6 @@ namespace Lemma {
223 228
             Interfaces = iface;
224 229
         }
225 230
 
226
-        // ====================  INQUIRY       =======================
227 231
         /**
228 232
          *  Returns the name of the underlying class, similiar to Python's type
229 233
          *  @return string of class name
@@ -302,7 +306,7 @@ namespace Lemma {
302 306
         MatrixXcr   Kern;
303 307
 
304 308
         std::shared_ptr< LayeredEarthEM >         SigmaModel = nullptr;
305
-        std::shared_ptr< FieldPoints >            cpoints;
309
+        std::shared_ptr< FieldPoints >            cpoints = nullptr;
306 310
 
307 311
         std::map< std::string , std::shared_ptr< PolygonalWireAntenna > >  TxRx;
308 312
         std::map< std::string , std::shared_ptr< EMEarth1D > >             EMEarths;

Loading…
Cancel
Save