Patch System Description

std::unique_ptr<PatchSystem> CapyrX::MultiPatch::g_patch_system = {nullptr}
constexpr std::size_t CapyrX::MultiPatch::dim = {3}
struct PatchSystem

Describes a patch system, that is, a collection of patches and patch transformations

Public Members

const char *name = {"No System"}

String repreentation of the name of the patch system

PatchSystems id_tag = {PatchSystems::none}

ID tag of the patch system

std::vector<Patch> patches = {}

A vector containing all patches in the system.

struct Patch

Describes a patch in the patch system

Public Members

const char *name = {"Patch"}

String representation of the name of the patch.

ivec_t ncells = {0, 0, 0}

The number of cells in the logical x, y and z dimentions that the patch wil contain.

rvec_t xmin = {0, 0, 0}

Lower coordinate boundary for each logical x, y, z dimention in the patch

rvec_t xmax = {0, 0, 0}

Upper coordinate boundary for each logical x, y, z dimention in the patch

bool is_cartesian = {false}

Wether or not a patch is cartesian. If true, this flag is used to save time during Jacobian calculations.

faces_t faces = {}

Store the 6 faces of a patch, repreenting its connection with other patches

struct PatchFace

Describes the connections of one patch with another patch.

The interface between two patches is called a patch face. This struct describes such interfaces wherever two patches meet.

Public Members

bool is_outer_boundary = {false}

True if the face connects with the exterior of the simulation domain.

int other_patch = {0}

The index of the neighbouring patch, or -1 if the face is the outer boundary.