Library API and Coupling

Include the installed public header and initialize MPI and Kokkos in the caller. The caller must keep both runtimes alive for the entire Condor call.

Standalone library call

#include <Condor_Core.hpp>
#include <Kokkos_Core.hpp>
#include <mpi.h>

int main(int argc, char** argv) {
  MPI_Init(&argc, &argv);
  Kokkos::initialize(argc, argv);
  {
    Condor::Run::Classic<double>(argc, argv);
  }
  Kokkos::finalize();
  MPI_Finalize();
}

Classic reads argv[1], or ParamInput.json when it is absent, and dispatches the selected run mode.

Produce RDF in memory

Stork::Structs::RDF_Dual<double> rdf;
Condor::Run::Coupled<double>(rdf, "ParamInput.json");

The input must select Interface. The caller-owned RDF receives solidification events for downstream interpolation or microstructure simulation. Melting updates the melt time and melt count associated with the next solidification; it does not add a standalone molten-marker event to the RDF.

Produce SRDF in memory

Stork::Structs::SRDF_Dual<double> srdf;
Condor::Run::Coupled<double>(srdf, "ParamInput.json");

SRDF stores sparse interface snapshots. Stork can interpolate the resulting container to RDF for downstream consumers.

Ownership and behavior

  • Condor does not initialize or finalize MPI/Kokkos in these entry points.
  • Coupled overloads fill a container supplied by the caller.
  • Coupled mode disables normal CSV output and user JSON hooks.
  • float and double paths are instantiated.
  • The source currently exposes only the two Stork container overloads as the public thermal-data coupling contract.

Condor is distributed under the BSD 3-Clause License.

This site uses Just the Docs, a documentation theme for Jekyll.