5#include <Kokkos_Core.hpp>
15 std::fprintf(stderr, "CHECK failed: %s\n at %s:%d\n", #cond, __FILE__, __LINE__); \
26 std::vector<double> T((std::size_t)
N *
N * 4);
27 for (std::size_t i = 0; i < T.size(); ++i)
28 T[i] = 0.6 + 0.3 * std::sin(0.7 * i);
35 {1.0, 9.81, 0.1, 0.5});
43 for (std::size_t i = 0; i < T.size(); ++i) {
44 emax = std::fmax(emax, std::fabs(rho[i] - (2.0 - 0.5 * T[i])));
45 emax = std::fmax(emax, std::fabs(fy[i] - 9.81 * 0.1 * (T[i] - 0.5)));
46 emax = std::fmax(emax, std::fabs(mu2[i] - 0.01 * std::exp(0.3 * (1.0 / T[i] - 1.0))));
48 std::printf(
"closures max-err vs oracle %.2e\n", emax);
54int main(
int argc,
char** argv) {
55 Kokkos::initialize(argc, argv);
62 std::fprintf(stderr,
"%d failure(s)\n", failures);
std::vector< double > getField(const std::string &name)
void setPropertyModel(const std::string &target, ClosureKind kind, const std::string &in0, const std::string &in1, const std::vector< double > ¶ms)
void setPressureGeometry(const std::vector< double > &sdfInner)
void setField(const std::string &name, const std::vector< double > &v)
bool hasField(const std::string &name) const
void addScalar(const std::string &name, double D, int scheme, int iters)
flow — host-facing Kokkos IBM Navier-Stokes solver (drop-in flow-style API).
int main(int argc, char **argv)