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
 
54
 
55
     /**
55
     /**
56
      * \ingroup Merlin
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
     class KernelV0 : public LemmaObject {
61
     class KernelV0 : public LemmaObject {
61
 
62
 
108
          */
109
          */
109
         virtual YAML::Node Serialize() const;
110
         virtual YAML::Node Serialize() const;
110
 
111
 
111
-        /*
112
+        /**
112
          *  Factory method for generating concrete class.
113
          *  Factory method for generating concrete class.
113
          *  @return a std::shared_ptr of type KernelV0
114
          *  @return a std::shared_ptr of type KernelV0
114
          */
115
          */
125
         // ====================  OPERATIONS    =======================
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
          * @return std::shared_ptr<LayeredEarthEM>
155
          * @return std::shared_ptr<LayeredEarthEM>
129
          */
156
          */
130
         inline std::shared_ptr<LayeredEarthEM> GetSigmaModel (  ) {
157
         inline std::shared_ptr<LayeredEarthEM> GetSigmaModel (  ) {
171
         }		// -----  end of method KernelV0::SetIntegrationOrigin  -----
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
          *  Sets the temperature, which has implications in calculation of \f$ M_N^{(0)}\f$. Units in
201
          *  Sets the temperature, which has implications in calculation of \f$ M_N^{(0)}\f$. Units in
200
          *  Kelvin.
202
          *  Kelvin.
201
          */
203
          */
205
 
207
 
206
         /**
208
         /**
207
          *  Sets the tolerance to use for making the adaptive mesh
209
          *  Sets the tolerance to use for making the adaptive mesh
208
-         *
210
+         *  @param[in] ttol is the tolerance to use
209
          */
211
          */
210
         inline void SetTolerance(const Real& ttol) {
212
         inline void SetTolerance(const Real& ttol) {
211
             tol = ttol;
213
             tol = ttol;
212
         }
214
         }
213
 
215
 
216
+        /**
217
+         *  @param[in] taup sets the pulse duration
218
+         */
214
         inline void SetPulseDuration(const Real& taup) {
219
         inline void SetPulseDuration(const Real& taup) {
215
             Taup = taup;
220
             Taup = taup;
216
         }
221
         }
223
             Interfaces = iface;
228
             Interfaces = iface;
224
         }
229
         }
225
 
230
 
226
-        // ====================  INQUIRY       =======================
227
         /**
231
         /**
228
          *  Returns the name of the underlying class, similiar to Python's type
232
          *  Returns the name of the underlying class, similiar to Python's type
229
          *  @return string of class name
233
          *  @return string of class name
302
         MatrixXcr   Kern;
306
         MatrixXcr   Kern;
303
 
307
 
304
         std::shared_ptr< LayeredEarthEM >         SigmaModel = nullptr;
308
         std::shared_ptr< LayeredEarthEM >         SigmaModel = nullptr;
305
-        std::shared_ptr< FieldPoints >            cpoints;
309
+        std::shared_ptr< FieldPoints >            cpoints = nullptr;
306
 
310
 
307
         std::map< std::string , std::shared_ptr< PolygonalWireAntenna > >  TxRx;
311
         std::map< std::string , std::shared_ptr< PolygonalWireAntenna > >  TxRx;
308
         std::map< std::string , std::shared_ptr< EMEarth1D > >             EMEarths;
312
         std::map< std::string , std::shared_ptr< EMEarth1D > >             EMEarths;

Loading…
Cancel
Save