Ver código fonte

Fix MSVC warnings regarding unsigned integer comparisons, and DipoleSource::Serialize infinite recursion.

add-code-of-conduct-1
Trevor Irons 6 anos atrás
pai
commit
a25a93d59c

+ 1
- 1
Modules/DCIP/CMakeLists.txt Ver arquivo

@@ -38,7 +38,7 @@ install ( FILES  ${PROJECT_BINARY_DIR}/include/EMSchur3DConfig.h   DESTINATION $
38 38
 
39 39
 	# Install
40 40
 	install ( TARGETS dcip DESTINATION ${CMAKE_INSTALL_PREFIX}/lib )
41
-	install ( FILES include/EMSchur3D  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/Lemma ) 
41
+	install ( FILES include/DCIP  DESTINATION ${CMAKE_INSTALL_PREFIX}/include/Lemma ) 
42 42
 	install ( DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/Lemma  FILES_MATCHING PATTERN "*.h")
43 43
 
44 44
 	#install ( DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/Lemma/  FILES_MATCHING PATTERN "FDEM1D")

+ 11
- 0
Modules/DCIP/include/DCIP Ver arquivo

@@ -0,0 +1,11 @@
1
+#ifndef  DCIP_INC
2
+#define  DCIP_INC
3
+
4
+#include "DCSurvey.h"
5
+#include "DCIPElectrode.h"
6
+
7
+#endif   // ----- #ifndef DCIP_INC  -----
8
+
9
+/* vim: set tabstop=4 expandtab: */
10
+/* vim: set filetype=cpp: */
11
+

+ 5
- 0
Modules/FDEM1D/examples/CMakeLists.txt Ver arquivo

@@ -26,6 +26,10 @@ add_executable( Hantenna Hantenna.cpp  )
26 26
 target_link_libraries(  Hantenna  "lemmacore" "fdem1d")
27 27
 set_property(TARGET Hantenna PROPERTY CXX_STANDARD 14)
28 28
 
29
+add_executable( DipoleSource DipoleSource.cpp  )
30
+target_link_libraries(  DipoleSource  "lemmacore" "fdem1d")
31
+set_property(TARGET DipoleSource PROPERTY CXX_STANDARD 14)
32
+
29 33
 INSTALL_TARGETS( "/share/FDEM1D/"
30 34
 	LayeredEarthEM 
31 35
 	FieldPoints
@@ -33,6 +37,7 @@ INSTALL_TARGETS( "/share/FDEM1D/"
33 37
 	EMDipEarth1D
34 38
     CircularLoop
35 39
 	Hantenna
40
+	DipoleSource
36 41
 )
37 42
 
38 43
 install (DIRECTORY inp  DESTINATION "${CMAKE_INSTALL_PREFIX}/share/FDEM1D/" )

+ 39
- 0
Modules/FDEM1D/examples/DipoleSource.cpp Ver arquivo

@@ -0,0 +1,39 @@
1
+/* This file is part of Lemma, a geophysical modelling and inversion API.
2
+ * More information is available at http://lemmasoftware.org
3
+ */
4
+
5
+/* This Source Code Form is subject to the terms of the Mozilla Public
6
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
7
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
+ */
9
+
10
+/**
11
+ * @file
12
+ * @date      10/25/2018 12:41:37 PM
13
+ * @version   $Id$
14
+ * @author    Trevor Irons (ti)
15
+ * @email     Trevor.Irons@utah.edu
16
+ * @copyright Copyright (c) 2018, University of Utah
17
+ * @copyright Copyright (c) 2018, Lemma Software, LLC
18
+ */
19
+
20
+#include "FDEM1D"
21
+
22
+using namespace Lemma;
23
+
24
+int main() {
25
+    auto dip = DipoleSource::NewSP();
26
+    dip->SetLocation( Vector3r(1.,2.,3.) );
27
+    std::cout << "Dipole 1: " << dip << "\n" << *dip << std::endl;
28
+
29
+    auto dip2 = dip->Clone(); // literal copy of pointer
30
+    dip2->SetLocation( Vector3r(1.,2.,3.) );
31
+    std::cout << "Dipole 2: " << dip2 << "\n" << *dip2 << std::endl;
32
+
33
+//    if (*dip == *dip2) {
34
+//        std::cout << "equal" << std::endl;
35
+//    } else {
36
+//        std::cout << "not equal" << std::endl;
37
+//    }
38
+}
39
+

+ 28
- 23
Modules/FDEM1D/include/DipoleSource.h Ver arquivo

@@ -8,7 +8,6 @@
8 8
   @file
9 9
   @author   Trevor Irons
10 10
   @date     12/02/2009
11
-  @version  $Id: dipolesource.h 203 2015-01-09 21:19:04Z tirons $
12 11
  **/
13 12
 
14 13
 #ifndef __DIPOLESOURCE_H
@@ -47,8 +46,12 @@ namespace Lemma {
47 46
 
48 47
         friend std::ostream &operator<<(std::ostream &stream, const DipoleSource &ob);
49 48
 
49
+        friend class EMEarth1D;
50
+
50 51
         public:
51 52
 
53
+            //bool operator==(DipoleSource& rhs)const;
54
+
52 55
             // ====================  LIFECYCLE     ======================
53 56
 
54 57
             /** Default locked constructor. */
@@ -86,19 +89,6 @@ namespace Lemma {
86 89
 
87 90
             // ====================  OPERATORS     ======================
88 91
 
89
-            // ====================  OPERATIONS    ======================
90
-
91
-            /** Determines if kernels have been loaded already, and if so if they can be reused
92
-             */
93
-            void SetKernels(const int& ifreq,  const FIELDCALCULATIONS&  Fields, std::shared_ptr<FieldPoints> Receivers, const int& irec,
94
-                    std::shared_ptr<LayeredEarthEM> Earth );
95
-
96
-            /** resets the kernels if they cannot be reused */
97
-            virtual void ReSetKernels(const int& ifreq,  const FIELDCALCULATIONS&  Fields, std::shared_ptr<FieldPoints> Receivers,
98
-                    const int& irec, std::shared_ptr<LayeredEarthEM> Earth );
99
-
100
-            /** Updates the receiver fields */
101
-            virtual void UpdateFields(const int& ifreq, HankelTransform* Hankel, const Real& wavef);
102 92
 
103 93
             // ====================  ACCESS        ======================
104 94
 
@@ -133,7 +123,7 @@ namespace Lemma {
133 123
             /// Sets the dipole source type
134 124
             /// @param[in] stype is one of the enerated values taking either
135 125
             /// ELECTRICDIPOLE or MAGNETICDIPOLE
136
-            void SetType(const DipoleSourceType &stype);
126
+            void SetType(const DIPOLESOURCETYPE &stype);
137 127
 
138 128
             /// Sets the dipole moment
139 129
             void SetMoment(const Real &moment);
@@ -157,7 +147,6 @@ namespace Lemma {
157 147
             /// number of frequencies
158 148
             void SetFrequencies(const VectorXr& freqs);
159 149
 
160
-
161 150
             // ====================  INQUIRY       ======================
162 151
 
163 152
             /**  Accessor to polarisation vector.
@@ -172,11 +161,11 @@ namespace Lemma {
172 161
             /// @param coordinate 0=x, 1=y, 2=z
173 162
             Real  GetLocation(const int &coordinate);
174 163
 
175
-            /// Returns enumerated of DipoleSourceType
176
-            DipoleSourceType GetDipoleSourceType();
164
+            /// Returns enumerated of DIPOLESOURCETYPE
165
+            DIPOLESOURCETYPE GetDipoleSourceType();
177 166
 
178 167
             /// Returns the dipole type
179
-            DipoleSourceType GetType();
168
+            DIPOLESOURCETYPE GetType();
180 169
 
181 170
             /// Returns pointer to KernelEM1DManager
182 171
             std::shared_ptr<KernelEM1DManager>  GetKernelManager();
@@ -212,12 +201,28 @@ namespace Lemma {
212 201
             /** Returns the name of the underlying class, similiar to Python's type */
213 202
             virtual std::string GetName() const ;
214 203
 
204
+        protected:
205
+
206
+            // ====================  OPERATIONS    ======================
207
+
208
+            /** Determines if kernels have been loaded already, and if so if they can be reused
209
+             */
210
+            void SetKernels(const int& ifreq,  const FIELDCALCULATIONS&  Fields, std::shared_ptr<FieldPoints> Receivers, const int& irec,
211
+                    std::shared_ptr<LayeredEarthEM> Earth );
212
+
213
+            /** resets the kernels if they cannot be reused */
214
+            virtual void ReSetKernels(const int& ifreq,  const FIELDCALCULATIONS&  Fields, std::shared_ptr<FieldPoints> Receivers,
215
+                    const int& irec, std::shared_ptr<LayeredEarthEM> Earth );
216
+
217
+            /** Updates the receiver fields */
218
+            virtual void UpdateFields(const int& ifreq, HankelTransform* Hankel, const Real& wavef);
219
+
215 220
         private:
216 221
 
217 222
             // ====================  DATA MEMBERS  ======================
218 223
 
219 224
             /// Defines the type of source (magnetic or electric)
220
-            DipoleSourceType             Type;
225
+            DIPOLESOURCETYPE             Type;
221 226
 
222 227
             // Polarization of the dipole, (x, y or z)
223 228
             //DipoleSourcePolarisation     Polarisation;
@@ -253,13 +258,13 @@ namespace Lemma {
253 258
             VectorXi                     ik;
254 259
 
255 260
             /// Central location of the dipole
256
-            Vector3r                     Location;
261
+            Vector3r                                    Location;
257 262
 
258 263
             /// Unit vector defining directionality of the dipole
259
-            Vector3r                     Phat;
264
+            Vector3r                                    Phat;
260 265
 
261 266
             /// Freqencies of the source, in Hz
262
-            VectorXr                     Freqs;
267
+            VectorXr                                    Freqs;
263 268
 
264 269
             /// Storage of the EM1D kernels used by this dipole
265 270
             std::shared_ptr<KernelEM1DManager>          KernelManager;

+ 39
- 17
Modules/FDEM1D/src/DipoleSource.cpp Ver arquivo

@@ -24,11 +24,18 @@ namespace Lemma {
24 24
 
25 25
 
26 26
     // ====================    FRIENDS     ======================
27
+
27 28
     std::ostream &operator<<(std::ostream &stream, const DipoleSource &ob) {
28 29
         stream << ob.Serialize()  << "\n";
29 30
         return stream;
30 31
     }
31 32
 
33
+/*
34
+    bool DipoleSource::operator == (DipoleSource& rhs) const {
35
+        if (Location != rhs.Location) return false;
36
+        return true;
37
+    }
38
+*/
32 39
 
33 40
     // ====================  LIFECYCLE     ======================
34 41
 
@@ -45,6 +52,21 @@ namespace Lemma {
45 52
         this->Phat.setZero();
46 53
     }
47 54
 
55
+    DipoleSource::DipoleSource( const YAML::Node& node, const ctor_key& key ) : LemmaObject( node, key ),
56
+                    Type(NOSOURCETYPE),
57
+                    irec(-1),
58
+                    Phase(0),
59
+                    Moment(1),
60
+                    KernelManager(nullptr),
61
+                    Receivers(nullptr),
62
+                    Earth(nullptr)
63
+    {
64
+        Type = string2Enum<DIPOLESOURCETYPE>(node["Type"].as<std::string>());
65
+        this->Location = node["Location"].as<Vector3r>();
66
+        this->Phat.setZero();
67
+    }
68
+
69
+
48 70
     DipoleSource::~DipoleSource() {
49 71
     }
50 72
 
@@ -53,24 +75,24 @@ namespace Lemma {
53 75
     }
54 76
 
55 77
     YAML::Node DipoleSource::Serialize() const {
56
-        YAML::Node node = DipoleSource::Serialize();
78
+        YAML::Node node = LemmaObject::Serialize();
57 79
         node.SetTag( GetName() );
58
-        /*
59
-        node["LayerConductivity"] = LayerConductivity;
60
-        node["LayerSusceptibility"] = LayerSusceptibility;
61
-        node["LayerLowFreqSusceptibility"] = LayerLowFreqSusceptibility;
62
-        node["LayerHighFreqSusceptibility"] = LayerHighFreqSusceptibility;
63
-        node["LayerTauSusceptibility"] = LayerTauSusceptibility;
64
-        node["LayerBreathSusceptibility"] = LayerBreathSusceptibility;
65
-        node["LayerPermitivity"] = LayerPermitivity;
66
-        node["LayerLowFreqPermitivity"] = LayerLowFreqPermitivity;
67
-        node["LayerHighFreqPermitivity"] = LayerHighFreqPermitivity;
68
-        node["LayerTauPermitivity"] = LayerTauPermitivity;
69
-        node["LayerBreathPermitivity"] = LayerBreathPermitivity;
70
-        */
80
+        node["Type"] = enum2String(Type);
81
+        node["Location"] = Location;
82
+        node["Phat"] = Phat;
83
+        node["Freqs"] = Freqs;
84
+        node["Phase"] = Phase;
85
+        node["Moment"] = Moment;
71 86
         return node;
72 87
     }
73 88
 
89
+    std::shared_ptr< DipoleSource > DipoleSource::DeSerialize(const YAML::Node& node) {
90
+        if (node.Tag() != "DipoleSource") {
91
+            throw  DeSerializeTypeMismatch( "DipoleSource", node.Tag());
92
+        }
93
+        return std::make_shared<DipoleSource> ( node, ctor_key() );
94
+    }
95
+
74 96
     std::shared_ptr<DipoleSource> DipoleSource::Clone() {
75 97
 
76 98
         auto Obj = DipoleSource::NewSP();
@@ -152,7 +174,7 @@ namespace Lemma {
152 174
 //         };
153 175
     }
154 176
 
155
-    void DipoleSource::SetType(const DipoleSourceType & stype) {
177
+    void DipoleSource::SetType(const DIPOLESOURCETYPE & stype) {
156 178
 
157 179
         switch (stype) {
158 180
             case (GROUNDEDELECTRICDIPOLE):
@@ -182,7 +204,7 @@ namespace Lemma {
182 204
         return Phat;
183 205
     }
184 206
 
185
-    DipoleSourceType DipoleSource::GetType() {
207
+    DIPOLESOURCETYPE DipoleSource::GetType() {
186 208
         return Type;
187 209
     }
188 210
 
@@ -1236,7 +1258,7 @@ namespace Lemma {
1236 1258
         }
1237 1259
     }
1238 1260
 
1239
-    DipoleSourceType DipoleSource::GetDipoleSourceType() {
1261
+    DIPOLESOURCETYPE DipoleSource::GetDipoleSourceType() {
1240 1262
         return this->Type;
1241 1263
     }
1242 1264
 

+ 6
- 6
Modules/FDEM1D/src/EMEarth1D.cpp Ver arquivo

@@ -320,7 +320,7 @@ namespace Lemma {
320 320
                     for (int irec=0; irec<Receivers->GetNumberOfPoints(); ++irec) {
321 321
                         if (!Receivers->GetMask(irec)) {
322 322
                             AntCopy->ApproximateWithElectricDipoles(Receivers->GetLocation(irec));
323
-                            for (int idip=0; idip<AntCopy->GetNumberOfDipoles(); ++idip) {
323
+                            for (unsigned int idip=0; idip<AntCopy->GetNumberOfDipoles(); ++idip) {
324 324
                                 auto tDipole = AntCopy->GetDipoleSource(idip);
325 325
                                 //#ifdef LEMMAUSEOMP
326 326
                                 //#pragma omp for schedule(static, 1)
@@ -381,7 +381,7 @@ namespace Lemma {
381 381
                             #pragma omp for schedule(static, 1)
382 382
                             #endif
383 383
                             for (int ifreq=0; ifreq<Antenna->GetNumberOfFrequencies(); ++ifreq) {
384
-                                for (int idip=0; idip<Antenna->GetNumberOfDipoles(); ++idip) {
384
+                                for (unsigned int idip=0; idip<Antenna->GetNumberOfDipoles(); ++idip) {
385 385
                                     auto tDipole = Antenna->GetDipoleSource(idip);
386 386
                                     // Propogation constant in free space
387 387
                                     Real wavef   = tDipole->GetAngularFrequency(ifreq) *
@@ -445,7 +445,7 @@ namespace Lemma {
445 445
                                 #ifdef LEMMAUSEOMP
446 446
                                 #pragma omp for schedule(static, 1)
447 447
                                 #endif
448
-                                for (int idip=0; idip<Antenna->GetNumberOfDipoles(); ++idip) {
448
+                                for (unsigned int idip=0; idip<Antenna->GetNumberOfDipoles(); ++idip) {
449 449
                                     //#pragma omp critical
450 450
                                     //{
451 451
                                     //cout << "idip=" << idip << "\tthread num=" << omp_get_thread_num() << '\n';
@@ -473,7 +473,7 @@ namespace Lemma {
473 473
             // TODO, getting wrong answer, curiously worKernel->GetKs() with MakeCalc, maybe
474 474
             // a threading issue, use SolveSingleTxRxPair maype instead of call
475 475
             // to MakeCalc3? !!!
476
-            for (int idip=0; idip<Antenna->GetNumberOfDipoles(); ++idip) {
476
+            for (unsigned int idip=0; idip<Antenna->GetNumberOfDipoles(); ++idip) {
477 477
                 this->Dipole = Antenna->GetDipoleSource(idip);
478 478
                 MakeCalc3();
479 479
                 //++disp;
@@ -782,7 +782,7 @@ namespace Lemma {
782 782
         // Determine the min and max arguments
783 783
         Real rhomin = 1e9;
784 784
         Real rhomax = 1e-9;
785
-        for (int idip=0; idip<antenna->GetNumberOfDipoles(); ++idip) {
785
+        for (unsigned int idip=0; idip<antenna->GetNumberOfDipoles(); ++idip) {
786 786
             auto tDipole = antenna->GetDipoleSource(idip);
787 787
             Real rho = (Receivers->GetLocation(irec).head<2>() - tDipole->GetLocation().head<2>()).norm();
788 788
             rhomin = std::min(rhomin, rho);
@@ -804,7 +804,7 @@ namespace Lemma {
804 804
         Hankel->ComputeLaggedRelated( 1.0*rhomax, nlag, tDipole->GetKernelManager() );
805 805
 
806 806
         // Sort the dipoles by rho
807
-        for (int idip=0; idip<antenna->GetNumberOfDipoles(); ++idip) {
807
+        for (unsigned int idip=0; idip<antenna->GetNumberOfDipoles(); ++idip) {
808 808
             auto tDipole = antenna->GetDipoleSource(idip);
809 809
             tDipole->SetKernels(ifreq, FieldsToCalculate, Receivers, irec, Earth);
810 810
             // Pass Hankel2 a message here so it knows which one to return in Zgauss!

+ 10
- 0
Modules/FDEM1D/testing/SerializeCheck.h Ver arquivo

@@ -100,5 +100,15 @@ class MyTestSuite : public CxxTest::TestSuite
100 100
             TS_ASSERT_EQUALS( Obj->GetLocationZ(ip), Obj->GetLocation(ip)(2) );
101 101
         }
102 102
     }
103
+
104
+    void testDipoleSource(void)
105
+    {
106
+        auto Obj = DipoleSource::NewSP();
107
+        YAML::Node node = Obj->Serialize();
108
+        auto Obj2 = DipoleSource::DeSerialize(node);
109
+        TS_ASSERT_EQUALS( Obj->GetName(), Obj2->GetName() );
110
+    }
111
+
112
+
103 113
 };
104 114
 

+ 3
- 1
Modules/LemmaCore/include/helper.h Ver arquivo

@@ -64,6 +64,8 @@ namespace Lemma {
64 64
     std::string enum2String(const FIELDCALCULATIONS& Htype);
65 65
     /// convert enums to string saves repeated code useful for YAML serializing
66 66
     std::string enum2String(const WINDOWTYPE& Wtype);
67
+    /// convert enums to string saves repeated code useful for YAML serializing
68
+    std::string enum2String(const DIPOLESOURCETYPE& Wtype);
67 69
 
68 70
     // other way around is a template, where template argument lets us know
69 71
     // which specialisation to use.
@@ -120,7 +122,7 @@ namespace Lemma {
120 122
 } // end namespace Lemma
121 123
 
122 124
 ///////////////////////////////////////////////////////
123
-// YAML Serializing helper functions. Can we move this into helper.h
125
+// YAML Serializing helper functions.
124 126
 namespace YAML {
125 127
 
126 128
 template<>

+ 5
- 4
Modules/LemmaCore/include/lemma.h Ver arquivo

@@ -214,8 +214,8 @@
214 214
         typedef Eigen::Matrix<Real, 3, 1> Vector3r;
215 215
 
216 216
         typedef Eigen::Matrix<Real, Eigen::Dynamic, 1>::Index Index;
217
-        
218
-	/// A 3 X Dynamic Component Eigen matrix of Reals
217
+
218
+	    /// A 3 X Dynamic Component Eigen matrix of Reals
219 219
         typedef Eigen::Matrix<Real, 3, Eigen::Dynamic> Vector3Xr;
220 220
 
221 221
         /// Variable length Eigen vector of Reals
@@ -299,10 +299,11 @@
299 299
 
300 300
         /** Enum is OK because these are the only physically possible sources.
301 301
          @param NOSOURCETYPE is default.
302
-         @param ELECTRICDIPOLE is an electric dipole
302
+         @param GROUNDEDELECTRICDIPOLE is an grounded electric dipole
303
+         @param UNGROUNDEDELECTRICDIPOLE is an ungrounded electric dipole
303 304
          @param MAGNETICDIPOLE is a magnetic dipole
304 305
         */
305
-        enum DipoleSourceType {NOSOURCETYPE, GROUNDEDELECTRICDIPOLE, UNGROUNDEDELECTRICDIPOLE, MAGNETICDIPOLE};
306
+        enum DIPOLESOURCETYPE {NOSOURCETYPE, GROUNDEDELECTRICDIPOLE, UNGROUNDEDELECTRICDIPOLE, MAGNETICDIPOLE};
306 307
 
307 308
         /// Only three polarizations are supported. They may be summed to
308 309
         /// approximate others

+ 26
- 0
Modules/LemmaCore/src/helper.cpp Ver arquivo

@@ -177,6 +177,21 @@ std::string enum2String( const WINDOWTYPE& Type ) {
177 177
     }
178 178
 }
179 179
 
180
+std::string enum2String( const DIPOLESOURCETYPE& Type ) {
181
+    switch (Type) {
182
+        case NOSOURCETYPE:
183
+            return std::string("NOSOURCETYPE");
184
+        case GROUNDEDELECTRICDIPOLE:
185
+            return std::string("GROUNDEDELECTRICDIPOLE");
186
+        case UNGROUNDEDELECTRICDIPOLE:
187
+            return std::string("UNGROUNDEDELECTRICDIPOLE");
188
+        case MAGNETICDIPOLE:
189
+            return std::string("MAGNETICDIPOLE");
190
+        default:
191
+            throw( std::runtime_error( "In enum2String DIPOLESOURCETYPE, type not identified" ) );
192
+    }
193
+}
194
+
180 195
 template<>
181 196
 FREQUENCYUNITS string2Enum<FREQUENCYUNITS>( const std::string& str ) {
182 197
     if       (str ==  "HZ") return   HZ;
@@ -238,5 +253,16 @@ WINDOWTYPE string2Enum<WINDOWTYPE>( const std::string& str ) {
238 253
     }
239 254
 }
240 255
 
256
+template<>
257
+DIPOLESOURCETYPE string2Enum<DIPOLESOURCETYPE>( const std::string& str ) {
258
+    if      (str == "NOSOURCETYPE")              return NOSOURCETYPE;
259
+    if      (str == "GROUNDEDELECTRICDIPOLE")    return GROUNDEDELECTRICDIPOLE;
260
+    if      (str == "UNGROUNDEDELECTRICDIPOLE")  return UNGROUNDEDELECTRICDIPOLE;
261
+    if      (str == "MAGNETICDIPOLE")            return MAGNETICDIPOLE;
262
+    else {
263
+        throw std::runtime_error("string not recognized as DipoleSource");
264
+    }
265
+}
266
+
241 267
 }		// -----  end of Lemma  name  -----
242 268
 

+ 3
- 3
vim/c.vim Ver arquivo

@@ -1,15 +1,15 @@
1 1
 "highlight cComment ctermfg=Green guifg=Green
2 2
 highlight cType ctermfg=Green guifg=Green
3
-syn keyword cType Real Complex VectorXr VectorXcr Vector3r Vector3Xr VectorXi Vector3cr Vector3Xcr MatrixXr MatrixXi MatrixXcr shared_ptr make_shared
3
+syn keyword cType string Real Complex VectorXr VectorXcr Vector3r Vector3Xr VectorXi Vector3cr Vector3Xcr MatrixXr MatrixXi MatrixXcr shared_ptr make_shared
4 4
 
5 5
 highlight constType ctermfg=Red guifg=Red
6 6
 syn keyword constType  PI EPSILON0 MU0 QPI  
7 7
 
8 8
 highlight eType ctermfg=Magenta guifg=Magenta
9
-syn keyword eType  MAGUNITS  TEMPUNITS  TIMEUNITS FREQUENCYUNITS FEMCOILORIENTATION ORIENTATION FIELDTYPE FIELDCOMPONENT SPATIALCOORDINANT HANKELTRANSFORMTYPE FIELDCALCULATIONS WINDOWTYPE 
9
+syn keyword eType  MAGUNITS  TEMPUNITS  TIMEUNITS FREQUENCYUNITS FEMCOILORIENTATION ORIENTATION FIELDTYPE FIELDCOMPONENT SPATIALCOORDINANT HANKELTRANSFORMTYPE FIELDCALCULATIONS WINDOWTYPE DIPOLESOURCETYPE 
10 10
 
11 11
 highlight eeType ctermfg=Cyan guifg=Cyan
12
-syn keyword eeType  TESLA NANOTESLA GAUSS CELCIUS KELVIN SEC MILLISEC MICROSEC NANOSEC PICOSEC HZ KHZ MHZ GHZ COAXIAL COPLANAR HFIELDREAL HFIELDIMAG EFIELDREAL EFIELDIMAG XCOMPONENT YCOMPONENT ZCOMPONENT XCOORD YCOORD ZCOORD X Y Z NX  NY  NZ ANDERSON801 CHAVE FHTKEY201 FHTKEY101 FHTKEY51 FHTKONG241 FHTKONG121 FHTKONG61 QWEKEY E H BOTH HAMMING HANNING RECTANGULAR
12
+syn keyword eeType  TESLA NANOTESLA GAUSS CELCIUS KELVIN SEC MILLISEC MICROSEC NANOSEC PICOSEC HZ KHZ MHZ GHZ COAXIAL COPLANAR HFIELDREAL HFIELDIMAG EFIELDREAL EFIELDIMAG XCOMPONENT YCOMPONENT ZCOMPONENT XCOORD YCOORD ZCOORD X Y Z NX  NY  NZ ANDERSON801 CHAVE FHTKEY201 FHTKEY101 FHTKEY51 FHTKONG241 FHTKONG121 FHTKONG61 QWEKEY E H BOTH HAMMING HANNING RECTANGULAR NOSOURCETYPE GROUNDEDELECTRICDIPOLE UNGROUNDEDELECTRICDIPOLE MAGNETICDIPOLE
13 13
 
14 14
 " Namespaces
15 15
 highlight nspace ctermfg=Red guifg=Red

Carregando…
Cancelar
Salvar