Browse Source

Clean up SuperBuild of mandatory dependencies

lagkey
T-bone 6 years ago
parent
commit
a880b42e65

+ 8
- 6
CMakeLists.txt View File

@@ -17,15 +17,17 @@ set(LEMMA_VERSION_NOQUOTES "${LEMMA_VERSION_MAJOR}.${LEMMA_VERSION_MINOR}.${LEMM
17 17
 
18 18
 ## Options--what do you want to do
19 19
 
20
-option ( BUILD_SHARED_LIBS         "Shared or static libraries"  OFF ) 
21
-option ( LEMMA_ENABLE_TESTING      "Turn on unit testing" OFF )
22
-option ( LEMMA_BUILD_EXAMPLES      "Compile example Lemma applications" OFF )
23
-option ( LEMMA_USE_OPENMP          "Use OpenMP in Lemma" OFF )
24
-option ( LEMMA_BUILD_DOCUMENTATION "Build Doxygen man pages" OFF )
20
+option ( BUILD_SHARED_LIBS          "Shared or static libraries"  OFF ) 
21
+option ( LEMMA_ENABLE_TESTING       "Turn on unit testing" OFF )
22
+option ( LEMMA_BUILD_EXAMPLES       "Compile example Lemma applications" OFF )
23
+option ( LEMMA_USE_OPENMP           "Use OpenMP in Lemma" OFF )
24
+option ( LEMMA_BUILD_DOCUMENTATION  "Build Doxygen man pages" OFF )
25 25
 
26 26
 ## Hard Dependencies
27 27
 find_package (Eigen3 3.3  NO_MODULE QUIET)   # Matrix/Vector & Math
28
-find_package (yaml-cpp 0.6 QUIET)           # Serialisation of classes 
28
+find_package (yaml-cpp 0.6 QUIET)            # Serialisation of classes 
29
+
30
+INCLUDE_DIRECTORIES(${YAML_CPP_INCLUDE_DIR})
29 31
 
30 32
 if (LEMMA_BUILD_DOCUMENTATION)
31 33
     find_package(Doxygen REQUIRED)

+ 1
- 0
Modules/FDEM1D/include/AEMSurvey.h View File

@@ -26,6 +26,7 @@
26 26
 namespace Lemma {
27 27
 
28 28
 /**
29
+  \ingroup FDEM1D
29 30
   \brief   Contains pertinant information about an AEM survey
30 31
   \details All important details about an AEM survey are stored here, but
31 32
            nothing about the underlying earth model.

+ 1
- 0
Modules/FDEM1D/include/AEMSurveyReader.h View File

@@ -27,6 +27,7 @@
27 27
 namespace Lemma {
28 28
 
29 29
     /**
30
+      \ingroup FDEM1D
30 31
       \brief   Reads an ASCII description of an AEM survey
31 32
       \details The file format is described as follows.
32 33
      */

+ 1
- 0
Modules/FDEM1D/include/DipoleSource.h View File

@@ -36,6 +36,7 @@ namespace Lemma {
36 36
 
37 37
     // ==========================================================================
38 38
     //        Class:  DipoleSource
39
+    /// \ingroup  FDEM1D
39 40
     /// \brief    Dipole sources form the backbone of Lemma.
40 41
     /// \details  More complex sources are constructed from a superposition of
41 42
     ///           dipoles.

+ 2
- 1
Modules/FDEM1D/include/EMEarth1D.h View File

@@ -46,7 +46,8 @@ namespace Lemma {
46 46
 
47 47
     // =======================================================================
48 48
     //        Class:  EmEarth1D
49
-    /// \brief  Implimentation of 1D EM solution.
49
+    /// \ingroup  FDEM1D
50
+    /// \brief    Implimentation of 1D EM solution.
50 51
     /// \details  We've done a lot of different things.
51 52
     // =======================================================================
52 53
     class EMEarth1D : public LemmaObject {

+ 2
- 1
Modules/FDEM1D/include/FHTAnderson801.h View File

@@ -23,7 +23,8 @@ namespace Lemma {
23 23
 
24 24
 // ==========================================================================
25 25
 //        Class:  FHTAnderson801
26
-/** \brief   Computes the Hankel transform of orders 0 and 1 using lagged
26
+/** \ingroup FDEM1D
27
+    \brief   Computes the Hankel transform of orders 0 and 1 using lagged
27 28
              and related convolutions.
28 29
     \details A rewrite of work by Anderson who wrote a FORTRAN program
29 30
              that he released while working at the USGS:

+ 2
- 1
Modules/FDEM1D/include/FHTKey101.h View File

@@ -24,8 +24,9 @@
24 24
 namespace Lemma {
25 25
 
26 26
     /**
27
+      \ingroup FDEM1D
27 28
       \brief   Impliments the fast Hankel transform as outlines by Key 2011
28
-      \details This filter uses 51, 101, or 201 filter points and supports both lagged and related
29
+      \details This filter uses 101 filter points and supports both lagged and related
29 30
                 kernel arguments. This algorithm is a port of code carrying the following copyright and
30 31
                 restriction:
31 32
                 %------------------------------------------------------------------%

+ 1
- 0
Modules/FDEM1D/include/FHTKey201.h View File

@@ -24,6 +24,7 @@
24 24
 namespace Lemma {
25 25
 
26 26
     /**
27
+      \ingroup FDEM1D
27 28
       \brief   Impliments the fast Hankel transform as outlines by Key 2011
28 29
       \details This filter uses 51, 101, or 201 filter points and supports both lagged and related
29 30
                 kernel arguments. This algorithm is a port of code carrying the following copyright and

+ 1
- 0
Modules/FDEM1D/include/FHTKey51.h View File

@@ -24,6 +24,7 @@
24 24
 namespace Lemma {
25 25
 
26 26
     /**
27
+      \ingroup FDEM1D
27 28
       \brief   Impliments the fast Hankel transform as outlines by Key 2011
28 29
       \details This filter uses 51, 101, or 201 filter points and supports both lagged and related
29 30
                 kernel arguments. This algorithm is a port of code carrying the following copyright and

+ 5
- 4
Modules/FDEM1D/include/FieldPoints.h View File

@@ -38,12 +38,13 @@ namespace Lemma {
38 38
     // =======================================================================
39 39
     //        Class:  FieldPoints
40 40
     /**
41
-     *  \brief  Points in the subsurface where 1D EM calculations are made
41
+     *  \ingroup FEM1D
42
+     *  \brief   Points in the subsurface where 1D EM calculations are made
42 43
      *  \details These are the points where Hankel transform calculations are
43 44
      *           made.
44
-     *  \note In previous versions of Lemma, this class was called ReceiverPoints,
45
-     *        the functionality remains roughly the same, but the name is more
46
-     *        appropriate.
45
+     *  \note    In previous versions of Lemma, this class was called ReceiverPoints,
46
+     *           the functionality remains roughly the same, but the name is more
47
+     *           appropriate.
47 48
      */
48 49
     // =======================================================================
49 50
     class FieldPoints : public LemmaObject {

+ 2
- 1
Modules/FDEM1D/include/GQChave.h View File

@@ -24,7 +24,8 @@ namespace Lemma {
24 24
 
25 25
 	// =======================================================================
26 26
 	//        Class:  GQChave
27
-	/// \brief  Calculates hankel transform using gaussian quadrature.
27
+    /// \ingroup  FDEM1D
28
+	/// \brief    Calculates hankel transform using gaussian quadrature.
28 29
 	/// \details  Accurate but slow, this is a port of Alan Chave's public domain
29 30
     /// fortran code
30 31
 	// =======================================================================

+ 1
- 0
Modules/FDEM1D/include/GroundedElectricDipole.h View File

@@ -26,6 +26,7 @@
26 26
 namespace Lemma {
27 27
 
28 28
     /**
29
+      \ingroup FDEM1D
29 30
       \brief   Grounded electric dipole
30 31
       \details Used to model an idealised grounded electrid dipole of arbitrary
31 32
                polarisation.

+ 1
- 0
Modules/FDEM1D/include/HankelTransform.h View File

@@ -22,6 +22,7 @@ namespace Lemma {
22 22
 
23 23
         // ===================================================================
24 24
         //        Class:  HankelTransform
25
+        /// \ingroup FDEM1D
25 26
         /// \brief   Abstract class for hankel transforms
26 27
         /// \details
27 28
         // ===================================================================

+ 1
- 0
Modules/FDEM1D/include/KernelEM1DBase.h View File

@@ -25,6 +25,7 @@ namespace Lemma {
25 25
     //  Class:  KernelEM1DBase
26 26
     /**
27 27
       @class
28
+      \ingroup FDEM1D
28 29
       \brief   Pure virtual base class of KernelEm1D
29 30
       \details Defines interface for HankelTransform classes
30 31
      */

+ 5
- 2
Modules/FDEM1D/include/KernelEM1DManager.h View File

@@ -26,8 +26,11 @@ namespace Lemma {
26 26
     //  Class:  KernelEM1DManager
27 27
     /**
28 28
       @class
29
-      \brief
30
-      \details
29
+      \ingroup FDEM1D
30
+      \brief   Keeps track of Kernels for EM1D
31
+      \details This class keeps track of the various types of kernel terms
32
+               which can be shared between permutations of sources. Care is
33
+               taken to avoid duplicate calculations
31 34
      */
32 35
     // ===================================================================
33 36
     class KernelEM1DManager : public LemmaObject {

+ 1
- 0
Modules/FDEM1D/include/KernelEM1DReflBase.h View File

@@ -30,6 +30,7 @@ namespace Lemma {
30 30
     //  Class:  KernelEM1DReflBase
31 31
     /**
32 32
       @class
33
+      \ingroup FDEM1D
33 34
       \brief   Abstract class defining EM1DRefl class.
34 35
       \details Derived classes are template specialized for optimal performance.
35 36
      */

+ 1
- 0
Modules/FDEM1D/include/KernelEM1DReflSpec.h View File

@@ -27,6 +27,7 @@ namespace Lemma {
27 27
     //  Class:  KernelEM1DReflSpec
28 28
     /**
29 29
       @class
30
+      \ingroup FDEM1D
30 31
       \brief   Specialized version of KernelEM1DReflBase
31 32
       \details Through use of template specialisations, this KernelEm1D
32 33
                class delivers much better performance. This class is internal

+ 1
- 0
Modules/FDEM1D/include/KernelEM1DSpec.h View File

@@ -28,6 +28,7 @@ namespace Lemma {
28 28
     //  Class:  KernelEM1DSpec
29 29
     /**
30 30
       @class
31
+      \ingroup FDEM1D
31 32
       \brief   Optimized version of KernelEm1D
32 33
       \details Through use of template specialisations, this KernelEm1D
33 34
                class delivers much better performance.

+ 1
- 0
Modules/FDEM1D/include/LayeredEarthEMReader.h View File

@@ -26,6 +26,7 @@
26 26
 namespace Lemma {
27 27
 
28 28
     /**
29
+      \ingroup FDEM1D
29 30
       \brief Reads ASCII representation of LayeredEarth, similiar to UBC format.
30 31
       \details Largely superceded by YAML serialisation, this class remains for legacy purposes.
31 32
      */

+ 1
- 0
Modules/FDEM1D/include/MagneticDipole.h View File

@@ -26,6 +26,7 @@ namespace Lemma {
26 26
 
27 27
 /**
28 28
   @class
29
+  \ingroup FDEM1D
29 30
   \brief   Magnetic Dipole
30 31
   \details Used to model an idealised magnetic dipole of arbitrary
31 32
            polarisation.

+ 1
- 0
Modules/FDEM1D/include/PolygonalWireAntenna.h View File

@@ -20,6 +20,7 @@ namespace Lemma {
20 20
 
21 21
     // ===================================================================
22 22
     //        Class:  PolygonalWireAntenna
23
+    /// \ingroup FDEM1D
23 24
     /// \brief   Class representing polygonal wire antennae.
24 25
     /// \details For EM calculations, dipoles representing this loop are
25 26
     ///    created dynamically, depending on receiver location.

+ 2
- 1
Modules/FDEM1D/include/QWEKey.h View File

@@ -36,7 +36,8 @@ namespace Lemma {
36 36
     enum sZeroType{J0, J1, NPI};
37 37
 
38 38
     /**
39
-      \brief  Port of Key's quadrature with extrapolation Hankel transform algorithm.
39
+      \ingroup FDEM1D
40
+      \brief   Port of Key's quadrature with extrapolation Hankel transform algorithm.
40 41
       \details Details of the algorithm can be found in Key2011. This code is a port
41 42
                of the published algorithm, which contains the following notice:
42 43
         %------------------------------------------------------------------%

+ 2
- 1
Modules/FDEM1D/include/UngroundedElectricDipole.h View File

@@ -26,7 +26,8 @@
26 26
 namespace Lemma {
27 27
 
28 28
     /**
29
-      \brief  Ungrounded electric dipole
29
+      \ingroup FDEM1D
30
+      \brief   Ungrounded electric dipole
30 31
       \details Used to model an idealised ungrounded electric dipole. Used primarily in integrating
31 32
                 around current sources.
32 33
      */

+ 1
- 0
Modules/FDEM1D/include/costransintegrationkernel.h View File

@@ -23,6 +23,7 @@ namespace Lemma {
23 23
     //  Class:  CosTransIntegrationKernel
24 24
     /**
25 25
       @class
26
+      \ingroup  FDEM1D
26 27
       \brief    Integration kernel for testing cosine transform.
27 28
       \details  Evaluates cosine at the argument, using lagged convolution.
28 29
                 all of these kernels have exact solutions.

+ 4
- 1
Modules/LemmaCore/CMakeLists.txt View File

@@ -20,6 +20,9 @@ if (LEMMA_MATIO_SUPPORT)
20 20
 	add_dependencies(lemmacore MATIO)
21 21
 endif()
22 22
 
23
+target_link_libraries (lemmacore Eigen3::Eigen)
24
+target_link_libraries (lemmacore ${YAML_CPP_LIBRARIES}) 
25
+
23 26
 # Linking
24 27
 if ( LEMMA_VTK6_SUPPORT OR LEMMA_VTK7_SUPPORT OR LEMMA_VTK8_SUPPORT ) 
25 28
 	target_link_libraries(lemmacore ${VTK_LIBRARIES})
@@ -29,7 +32,7 @@ endif()
29 32
 
30 33
 # find_package(yaml-cpp) does not seem to properly define library names...
31 34
 # a better solution than this is welcome 
32
-#target_link_libraries(lemmacore ${YAML_CPP_LIBRARIES}) 
35
+
33 36
 #if (WIN32)
34 37
 #	target_link_libraries(lemmacore "libyaml-cppmdd") 
35 38
 #else()

+ 10
- 11
Modules/LemmaCore/include/lemma.h View File

@@ -11,19 +11,18 @@
11 11
   @version  $Id: lemma.h 203 2015-01-09 21:19:04Z tirons $
12 12
  **/
13 13
 
14
+//  \image html lemma.png
14 15
 /** \mainpage Lemma is an ElectroMagnetics Modelling API
15
-    \image html lemma.png
16 16
 
17 17
     \authors Trevor Irons and M. Andrew Kass and others
18 18
 
19
-    Lemma is a recursive acronym that stands for <B>L</B>emma is an
20
-    <B>E</B>lectro<B>M</B>agnetics <B>M</B>odelling <B>A</B>PI.
21
-    Lemma is a cross-platform library delivering an expressive API that
22
-    can be used to easily create versatile programs.
23
-    We are building a powerful, flexible, expresive framework that allows
24
-    for the straightforward creation of geophysical EM applications.
25
-    Lemma is not itself a program, instead it is a collection of building
26
-    blocks to make applications. We chose this name because:
19
+    Originally Lemma was intended as a recursive acronym standing for
20
+    <B>L</B>emma is an <B>E</B>lectro<B>M</B>agnetics <B>M</B>odelling <B>A</B>PI.
21
+    As the breadth of the project has expanded, the name has remained
22
+    appropriate in a more liteal sense. Lemma is a flexible cross-platform
23
+    library delivering an expressive API that can be used to easily create
24
+    versatile programs. Lemma is not itself a program, instead it is a
25
+    collection of building blocks to make applications. We retain this name because:
27 26
 
28 27
     - In mathematics a Lemma is a proven proposition which is used as a
29 28
     stepping stone to a larger result rather than as a statement in-and-of
@@ -35,7 +34,7 @@
35 34
     We feel that this is a partucularily approprate name, as Lemma's
36 35
     API can be leveraged create powerful applications such as forward
37 36
     modelling and inverting frequency and time-domain
38
-    surveys of arbitrary survey design, SNMR surveys, CSAMT and more.
37
+    surveys of arbitrary survey design, sNMR surveys, CSAMT and more.
39 38
 
40 39
     \section Motivation
41 40
     Why another Geophysical EM project? For starters, there
@@ -126,7 +125,7 @@
126 125
 
127 126
     The 1D EM solver was derived (but updated heavily) from a Fortran
128 127
     programme written by Ki Ha Lee in 1984. We have communicated with Ki Ha,
129
-    and he assured us that this code is in the public domian.
128
+    and he assured us that this code is in the public domain.
130 129
 
131 130
     A Gaussian quadrature hankel transform originally written by Alan Chave was
132 131
     ported to C++. This code is in the public domain, and the source code was

Loading…
Cancel
Save