6#ifndef PICURV_TEST_SUPPORT_H
7#define PICURV_TEST_SUPPORT_H
36 PetscBool z_periodic);
43 PetscBool enable_particles,
71PetscErrorCode
PicurvAssertRealNear(PetscReal expected, PetscReal actual, PetscReal tol,
const char *context);
PetscErrorCode PicurvMakeTempDir(char *path, size_t path_len)
Creates a unique temporary directory path and materializes the directory.
PetscErrorCode PicurvCreateMinimalContexts(SimCtx **simCtx_out, UserCtx **user_out, PetscInt mx, PetscInt my, PetscInt mz)
Creates minimal PETSc/solver contexts used by isolated kernel tests.
PetscErrorCode PicurvEnsureDir(const char *path)
Ensures a directory exists, creating it if required.
PetscErrorCode PicurvAssertRealNear(PetscReal expected, PetscReal actual, PetscReal tol, const char *context)
Asserts two real values are within tolerance for test validation.
PetscErrorCode PicurvDestroyMinimalContexts(SimCtx **simCtx, UserCtx **user)
Destroys contexts previously created by PicurvCreateMinimalContexts.
PetscErrorCode PicurvCreateMinimalContextsWithPeriodicity(SimCtx **simCtx_out, UserCtx **user_out, PetscInt mx, PetscInt my, PetscInt mz, PetscBool x_periodic, PetscBool y_periodic, PetscBool z_periodic)
Creates minimal PETSc/solver contexts with optional periodic DM boundaries.
PetscErrorCode(* PicurvTestFn)(void)
Signature for a single C unit-test entry point.
PetscErrorCode PicurvCreateSwarmPair(UserCtx *user, PetscInt nlocal, const char *post_field_name)
Creates paired runtime/post swarms with optional extra post-processing field registration.
PetscErrorCode PicurvDestroyRuntimeContext(SimCtx **simCtx_ptr)
Finalizes and frees a runtime context built by PicurvBuildTinyRuntimeContext.
PetscErrorCode PicurvRunTests(const char *suite_name, const PicurvTestCase *cases, size_t case_count)
Executes a table of unit tests and reports aggregated pass/fail status.
PetscErrorCode PicurvBuildTinyRuntimeContext(const char *bcs_contents, PetscBool enable_particles, SimCtx **simCtx_out, UserCtx **user_out, char *tmpdir, size_t tmpdir_len)
Builds a tiny runtime context through the real setup path for behavior-level tests.
PetscErrorCode PicurvPopulateUniformCellCenters(UserCtx *user)
Populates cell center coordinates for a uniform grid on [0,1]^3.
PetscErrorCode PicurvAssertFileExists(const char *path, const char *context)
Asserts a filesystem path exists.
PetscErrorCode PicurvAssertVecConstant(Vec vec, PetscScalar expected, PetscReal tol, const char *context)
Asserts every entry of a vector equals a constant within tolerance.
PetscErrorCode PicurvAssertIntEqual(PetscInt expected, PetscInt actual, const char *context)
Asserts two integer values are exactly equal for test validation.
PetscErrorCode PicurvPopulateIdentityMetrics(UserCtx *user)
Fills metric vectors with identity metrics for Cartesian-reference tests.
PetscErrorCode PicurvAssertBool(PetscBool value, const char *context)
Asserts a boolean condition is true for test validation.
PetscErrorCode PicurvRemoveTempDir(const char *path)
Recursively removes a temporary directory created by PicurvMakeTempDir.
Named test case descriptor consumed by PicurvRunTests.
Main header file for a complex fluid dynamics solver.
The master context for the entire simulation.
User-defined context containing data specific to a single computational grid level.