sandialabs / compadre

Compadre (Compatible Particle Discretization and Remap)
Other
22 stars 6 forks source link

Create TriBITS Build Alongside Raw CMake Build #171

Closed jmgate closed 4 years ago

jmgate commented 4 years ago

Part of #164.

What Needs to Be Done?

We are unable to get Compadre into Trilinos without first getting it building via TriBITS. One way to do this involves inserting a TriBITS build system alongside the raw CMake build system that already exists in Compadre. This includes the following steps:

jmgate commented 4 years ago

@bartlettroscoe, Compadre includes a header-only TPL that's snapshotted into its source in src/tpl/nanoflann.hpp. How do I include that sucker in the TriBITS build? It doesn't look like including it in TRIBITS_REPOSITORY_DEFINE_TPLS() is the right thing to do. Does something still belong in TPLsList.cmake though? Alternatively, should I just treat it as one of the package's header files instead of as a TPL?

bartlettroscoe commented 4 years ago

Compadre includes a header-only TPL that's snapshotted into its source in src/tpl/nanoflann.hpp

@jmgate, For now, to make your life easy, just treat as regular header files that belong to the Compadre package.

NOTE: In general it is ill advised to unconditionally build an external TPL in a your package since it causes integration problems down the line. See the M12 "For external dependencies, allow installing, building, and linking against an outside copy of external software in the document:

In the near future, TriBITS will support building this as an either internal package or point to an external pre-installed package (i.e. TPL). This is what the work in TriBITSPub/TriBITS#63 and TriBITSPub/TriBITS#299 will allow (which I am supposed to be working on right now instead of ATDM :-( ). That will satisfy that policy M12.

jmgate commented 4 years ago

Hey @kuberry, is your examples directory really examples, or is it tests? If both, any chance we could subdivide it such that theres an examples directory along with a tests one?

kuberry commented 4 years ago

Hi @jmgate, it is both the executables for the tests as well as the test. The test adding could be done in a tests folder. So yes, they can be divided.

jmgate commented 4 years ago

Do the executables for the tests get run on their own as examples, or are they just there for the sake of the tests?

kuberry commented 4 years ago

Both. They both demonstrate the ability to solve many different PDEs and also they exercise portions of the code base. We don't have any 'gold-file' type tests. Most tests either get the exact solution using a polynomial manufactured solution or perform a convergence study and check the rates.