Browse Source

Clean up SuperBuild of mandatory dependencies

lagkey
T-bone 6 years ago
parent
commit
a880b42e65

+ 8
- 6
CMakeLists.txt View File

17
 
17
 
18
 ## Options--what do you want to do
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
 ## Hard Dependencies
26
 ## Hard Dependencies
27
 find_package (Eigen3 3.3  NO_MODULE QUIET)   # Matrix/Vector & Math
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
 if (LEMMA_BUILD_DOCUMENTATION)
32
 if (LEMMA_BUILD_DOCUMENTATION)
31
     find_package(Doxygen REQUIRED)
33
     find_package(Doxygen REQUIRED)

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

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

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

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

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

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

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

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

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

23
 
23
 
24
 // ==========================================================================
24
 // ==========================================================================
25
 //        Class:  FHTAnderson801
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
              and related convolutions.
28
              and related convolutions.
28
     \details A rewrite of work by Anderson who wrote a FORTRAN program
29
     \details A rewrite of work by Anderson who wrote a FORTRAN program
29
              that he released while working at the USGS:
30
              that he released while working at the USGS:

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

24
 namespace Lemma {
24
 namespace Lemma {
25
 
25
 
26
     /**
26
     /**
27
+      \ingroup FDEM1D
27
       \brief   Impliments the fast Hankel transform as outlines by Key 2011
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
                 kernel arguments. This algorithm is a port of code carrying the following copyright and
30
                 kernel arguments. This algorithm is a port of code carrying the following copyright and
30
                 restriction:
31
                 restriction:
31
                 %------------------------------------------------------------------%
32
                 %------------------------------------------------------------------%

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

24
 namespace Lemma {
24
 namespace Lemma {
25
 
25
 
26
     /**
26
     /**
27
+      \ingroup FDEM1D
27
       \brief   Impliments the fast Hankel transform as outlines by Key 2011
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 51, 101, or 201 filter points and supports both lagged and related
29
                 kernel arguments. This algorithm is a port of code carrying the following copyright and
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
 namespace Lemma {
24
 namespace Lemma {
25
 
25
 
26
     /**
26
     /**
27
+      \ingroup FDEM1D
27
       \brief   Impliments the fast Hankel transform as outlines by Key 2011
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 51, 101, or 201 filter points and supports both lagged and related
29
                 kernel arguments. This algorithm is a port of code carrying the following copyright and
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
     // =======================================================================
38
     // =======================================================================
39
     //        Class:  FieldPoints
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
      *  \details These are the points where Hankel transform calculations are
43
      *  \details These are the points where Hankel transform calculations are
43
      *           made.
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
     class FieldPoints : public LemmaObject {
50
     class FieldPoints : public LemmaObject {

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

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

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

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

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

22
 
22
 
23
         // ===================================================================
23
         // ===================================================================
24
         //        Class:  HankelTransform
24
         //        Class:  HankelTransform
25
+        /// \ingroup FDEM1D
25
         /// \brief   Abstract class for hankel transforms
26
         /// \brief   Abstract class for hankel transforms
26
         /// \details
27
         /// \details
27
         // ===================================================================
28
         // ===================================================================

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

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

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

26
     //  Class:  KernelEM1DManager
26
     //  Class:  KernelEM1DManager
27
     /**
27
     /**
28
       @class
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
     class KernelEM1DManager : public LemmaObject {
36
     class KernelEM1DManager : public LemmaObject {

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

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

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

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

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

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

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

26
 namespace Lemma {
26
 namespace Lemma {
27
 
27
 
28
     /**
28
     /**
29
+      \ingroup FDEM1D
29
       \brief Reads ASCII representation of LayeredEarth, similiar to UBC format.
30
       \brief Reads ASCII representation of LayeredEarth, similiar to UBC format.
30
       \details Largely superceded by YAML serialisation, this class remains for legacy purposes.
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
 
26
 
27
 /**
27
 /**
28
   @class
28
   @class
29
+  \ingroup FDEM1D
29
   \brief   Magnetic Dipole
30
   \brief   Magnetic Dipole
30
   \details Used to model an idealised magnetic dipole of arbitrary
31
   \details Used to model an idealised magnetic dipole of arbitrary
31
            polarisation.
32
            polarisation.

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

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

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

36
     enum sZeroType{J0, J1, NPI};
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
       \details Details of the algorithm can be found in Key2011. This code is a port
41
       \details Details of the algorithm can be found in Key2011. This code is a port
41
                of the published algorithm, which contains the following notice:
42
                of the published algorithm, which contains the following notice:
42
         %------------------------------------------------------------------%
43
         %------------------------------------------------------------------%

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

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

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

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

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

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

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

11
   @version  $Id: lemma.h 203 2015-01-09 21:19:04Z tirons $
11
   @version  $Id: lemma.h 203 2015-01-09 21:19:04Z tirons $
12
  **/
12
  **/
13
 
13
 
14
+//  \image html lemma.png
14
 /** \mainpage Lemma is an ElectroMagnetics Modelling API
15
 /** \mainpage Lemma is an ElectroMagnetics Modelling API
15
-    \image html lemma.png
16
 
16
 
17
     \authors Trevor Irons and M. Andrew Kass and others
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
     - In mathematics a Lemma is a proven proposition which is used as a
27
     - In mathematics a Lemma is a proven proposition which is used as a
29
     stepping stone to a larger result rather than as a statement in-and-of
28
     stepping stone to a larger result rather than as a statement in-and-of
35
     We feel that this is a partucularily approprate name, as Lemma's
34
     We feel that this is a partucularily approprate name, as Lemma's
36
     API can be leveraged create powerful applications such as forward
35
     API can be leveraged create powerful applications such as forward
37
     modelling and inverting frequency and time-domain
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
     \section Motivation
39
     \section Motivation
41
     Why another Geophysical EM project? For starters, there
40
     Why another Geophysical EM project? For starters, there
126
 
125
 
127
     The 1D EM solver was derived (but updated heavily) from a Fortran
126
     The 1D EM solver was derived (but updated heavily) from a Fortran
128
     programme written by Ki Ha Lee in 1984. We have communicated with Ki Ha,
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
     A Gaussian quadrature hankel transform originally written by Alan Chave was
130
     A Gaussian quadrature hankel transform originally written by Alan Chave was
132
     ported to C++. This code is in the public domain, and the source code was
131
     ported to C++. This code is in the public domain, and the source code was

Loading…
Cancel
Save