PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
Loading...
Searching...
No Matches
test_install_check.c
Go to the documentation of this file.
1/**
2 * @file test_install_check.c
3 * @brief C test module for PICurv.
4 */
5
6#include "test_support.h"
7
8#include <stdlib.h>
9
10#ifdef PETSC_ERR_ENVIRONMENT
11#define PICURV_TEST_ERR_ENVIRONMENT PETSC_ERR_ENVIRONMENT
12#else
13#define PICURV_TEST_ERR_ENVIRONMENT PETSC_ERR_USER_INPUT
14#endif
15/**
16 * @brief Test-local routine.
17 */
18
19static PetscErrorCode TestEnvironmentVisible(void)
20{
21 const char *petsc_dir = getenv("PETSC_DIR");
22
23 PetscFunctionBeginUser;
24 PetscCheck(petsc_dir && petsc_dir[0] != '\0', PETSC_COMM_SELF, PICURV_TEST_ERR_ENVIRONMENT,
25 "PETSC_DIR is not set in the environment.");
26 PetscFunctionReturn(0);
27}
28/**
29 * @brief Test-local routine.
30 */
31
32static PetscErrorCode TestBasicPetscObjects(void)
33{
34 DM da = NULL, swarm = NULL;
35 Vec vec = NULL;
36
37 PetscFunctionBeginUser;
38 PetscCall(DMDACreate3d(PETSC_COMM_WORLD,
39 DM_BOUNDARY_NONE, DM_BOUNDARY_NONE, DM_BOUNDARY_NONE,
40 DMDA_STENCIL_BOX,
41 3, 3, 3,
42 PETSC_DECIDE, PETSC_DECIDE, PETSC_DECIDE,
43 1, 1,
44 NULL, NULL, NULL,
45 &da));
46 PetscCall(DMSetUp(da));
47 PetscCall(DMCreateGlobalVector(da, &vec));
48
49 PetscCall(DMCreate(PETSC_COMM_WORLD, &swarm));
50 PetscCall(DMSetType(swarm, DMSWARM));
51 PetscCall(DMSetDimension(swarm, 3));
52 PetscCall(DMSwarmSetType(swarm, DMSWARM_BASIC));
53 PetscCall(DMSwarmSetCellDM(swarm, da));
54 PetscCall(DMSwarmRegisterPetscDatatypeField(swarm, "position", 3, PETSC_REAL));
55 PetscCall(DMSwarmFinalizeFieldRegister(swarm));
56 PetscCall(DMSwarmSetLocalSizes(swarm, 1, 0));
57
58 PetscCall(VecDestroy(&vec));
59 PetscCall(DMDestroy(&swarm));
60 PetscCall(DMDestroy(&da));
61 PetscFunctionReturn(0);
62}
63/**
64 * @brief Entry point for this unit-test binary.
65 */
66
67int main(int argc, char **argv)
68{
69 PetscErrorCode ierr;
70 const PicurvTestCase cases[] = {
71 {"environment-visible", TestEnvironmentVisible},
72 {"basic-petsc-objects", TestBasicPetscObjects},
73 };
74
75 ierr = PetscInitialize(&argc, &argv, NULL, "PICurv installation validation");
76 if (ierr) {
77 return (int)ierr;
78 }
79
80 ierr = PicurvRunTests("doctor", cases, sizeof(cases) / sizeof(cases[0]));
81 if (ierr) {
82 PetscFinalize();
83 return (int)ierr;
84 }
85
86 ierr = PetscFinalize();
87 return (int)ierr;
88}
int main(int argc, char **argv)
Entry point for this unit-test binary.
#define PICURV_TEST_ERR_ENVIRONMENT
static PetscErrorCode TestBasicPetscObjects(void)
Test-local routine.
static PetscErrorCode TestEnvironmentVisible(void)
Test-local routine.
PetscErrorCode PicurvRunTests(const char *suite_name, const PicurvTestCase *cases, size_t case_count)
Shared test-support routine.
C test module for PICurv.
Named test case descriptor consumed by PicurvRunTests.