refactor: rename BoundaryCondition class

This commit is contained in:
Max Lübke 2022-08-17 12:05:16 +02:00
parent bdd56bec82
commit 1822bcd98d
6 changed files with 31 additions and 31 deletions

View File

@ -100,7 +100,7 @@ public:
* \return Time in seconds [s] used to simulate one iteration.
*/
auto simulate(double *c, double *alpha,
const tug::boundary_condition::BTCSBoundaryCondition &bc)
const tug::boundary_condition::BoundaryCondition &bc)
-> double;
/*!
@ -125,15 +125,15 @@ private:
void simulate1D(Eigen::Map<DVectorRowMajor> &c,
Eigen::Map<const DVectorRowMajor> &alpha,
const tug::boundary_condition::BTCSBoundaryCondition &bc);
const tug::boundary_condition::BoundaryCondition &bc);
void simulate2D(Eigen::Map<DMatrixRowMajor> &c,
Eigen::Map<const DMatrixRowMajor> &alpha,
const tug::boundary_condition::BTCSBoundaryCondition &bc);
const tug::boundary_condition::BoundaryCondition &bc);
static auto
calc_d_ortho(const DMatrixRowMajor &c, const DMatrixRowMajor &alpha,
const tug::boundary_condition::BTCSBoundaryCondition &bc,
const tug::boundary_condition::BoundaryCondition &bc,
bool transposed, double time_step, double dx) -> DMatrixRowMajor;
static void fillMatrixFromRow(Eigen::SparseMatrix<double> &A_matrix,

View File

@ -49,7 +49,7 @@ typedef std::vector<boundary_condition> bc_vec;
/**
* Class to define the boundary condition of a grid.
*/
class BTCSBoundaryCondition {
class BoundaryCondition {
public:
/**
* Creates a new instance with two elements. Used when defining boundary
@ -57,7 +57,7 @@ public:
*
* \param x Number of grid cells in x-direction
*/
BTCSBoundaryCondition(int x);
BoundaryCondition(int x);
/**
* Creates a new instance with 4 * max(x,y) elements. Used to describe the
@ -69,7 +69,7 @@ public:
* \param y Number of grid cells in y-direction
*
*/
BTCSBoundaryCondition(int x, int y);
BoundaryCondition(int x, int y);
/**
* Sets the boundary condition for a specific side of the grid.

View File

@ -8,7 +8,7 @@
constexpr uint8_t DIM_1D = 2;
constexpr uint8_t DIM_2D = 4;
tug::boundary_condition::BTCSBoundaryCondition::BTCSBoundaryCondition(int x) {
tug::boundary_condition::BoundaryCondition::BoundaryCondition(int x) {
this->bc_internal.resize(DIM_1D, {0, 0});
this->special_cells.resize(x, {BC_UNSET, 0});
this->dim = 1;
@ -21,7 +21,7 @@ tug::boundary_condition::BTCSBoundaryCondition::BTCSBoundaryCondition(int x) {
this->maxindex = x - 1;
}
tug::boundary_condition::BTCSBoundaryCondition::BTCSBoundaryCondition(int x,
tug::boundary_condition::BoundaryCondition::BoundaryCondition(int x,
int y) {
this->maxsize = (x >= y ? x : y);
this->bc_internal.resize(DIM_2D * maxsize, {0, 0});
@ -34,7 +34,7 @@ tug::boundary_condition::BTCSBoundaryCondition::BTCSBoundaryCondition(int x,
this->maxindex = (x * y) - 1;
}
void tug::boundary_condition::BTCSBoundaryCondition::setSide(
void tug::boundary_condition::BoundaryCondition::setSide(
uint8_t side, tug::boundary_condition::boundary_condition &input_bc) {
if (this->dim == 1) {
throw_invalid_argument("setSide requires at least a 2D grid");
@ -53,7 +53,7 @@ void tug::boundary_condition::BTCSBoundaryCondition::setSide(
}
}
void tug::boundary_condition::BTCSBoundaryCondition::setSide(
void tug::boundary_condition::BoundaryCondition::setSide(
uint8_t side,
std::vector<tug::boundary_condition::boundary_condition> &input_bc) {
if (this->dim == 1) {
@ -77,7 +77,7 @@ void tug::boundary_condition::BTCSBoundaryCondition::setSide(
}
}
auto tug::boundary_condition::BTCSBoundaryCondition::getSide(uint8_t side)
auto tug::boundary_condition::BoundaryCondition::getSide(uint8_t side)
-> std::vector<tug::boundary_condition::boundary_condition> {
if (this->dim == 1) {
throw_invalid_argument("getSide requires at least a 2D grid");
@ -100,7 +100,7 @@ auto tug::boundary_condition::BTCSBoundaryCondition::getSide(uint8_t side)
return out;
}
auto tug::boundary_condition::BTCSBoundaryCondition::col_boundary(
auto tug::boundary_condition::BoundaryCondition::col_boundary(
uint32_t i) const -> tug::boundary_condition::bc_tuple {
if (this->dim == 1) {
throw_invalid_argument("Access of column requires at least 2D grid");
@ -113,7 +113,7 @@ auto tug::boundary_condition::BTCSBoundaryCondition::col_boundary(
this->bc_internal[BC_SIDE_BOTTOM * this->maxsize + i]};
}
auto tug::boundary_condition::BTCSBoundaryCondition::row_boundary(
auto tug::boundary_condition::BoundaryCondition::row_boundary(
uint32_t i) const -> tug::boundary_condition::bc_tuple {
if (i >= this->sizes[X_DIM]) {
throw_out_of_range("Index out of range");
@ -123,7 +123,7 @@ auto tug::boundary_condition::BTCSBoundaryCondition::row_boundary(
this->bc_internal[BC_SIDE_RIGHT * this->maxsize + i]};
}
auto tug::boundary_condition::BTCSBoundaryCondition::getInnerRow(
auto tug::boundary_condition::BoundaryCondition::getInnerRow(
uint32_t i) const -> bc_vec {
if (i >= this->sizes[X_DIM]) {
throw_out_of_range("Index is out of range");
@ -137,7 +137,7 @@ auto tug::boundary_condition::BTCSBoundaryCondition::getInnerRow(
return row;
}
auto tug::boundary_condition::BTCSBoundaryCondition::getInnerCol(
auto tug::boundary_condition::BoundaryCondition::getInnerCol(
uint32_t i) const -> bc_vec {
if (this->dim != 2) {
throw_invalid_argument("getInnerCol is only applicable for 2D grids");

View File

@ -122,7 +122,7 @@ void tug::diffusion::BTCSDiffusion::simulate_base(
void tug::diffusion::BTCSDiffusion::simulate1D(
Eigen::Map<DVectorRowMajor> &c, Eigen::Map<const DVectorRowMajor> &alpha,
const tug::boundary_condition::BTCSBoundaryCondition &bc) {
const tug::boundary_condition::BoundaryCondition &bc) {
int size = this->grid_cells[0];
double dx = this->deltas[0];
@ -138,7 +138,7 @@ void tug::diffusion::BTCSDiffusion::simulate1D(
void tug::diffusion::BTCSDiffusion::simulate2D(
Eigen::Map<DMatrixRowMajor> &c, Eigen::Map<const DMatrixRowMajor> &alpha,
const tug::boundary_condition::BTCSBoundaryCondition &bc) {
const tug::boundary_condition::BoundaryCondition &bc) {
int n_rows = this->grid_cells[1];
int n_cols = this->grid_cells[0];
@ -172,7 +172,7 @@ void tug::diffusion::BTCSDiffusion::simulate2D(
auto tug::diffusion::BTCSDiffusion::calc_d_ortho(
const DMatrixRowMajor &c, const DMatrixRowMajor &alpha,
const tug::boundary_condition::BTCSBoundaryCondition &bc, bool transposed,
const tug::boundary_condition::BoundaryCondition &bc, bool transposed,
double time_step, double dx) -> DMatrixRowMajor {
uint8_t upper = (transposed ? tug::boundary_condition::BC_SIDE_LEFT
@ -332,7 +332,7 @@ void tug::diffusion::BTCSDiffusion::setTimestep(double time_step) {
auto tug::diffusion::BTCSDiffusion::simulate(
double *c, double *alpha,
const tug::boundary_condition::BTCSBoundaryCondition &bc) -> double {
const tug::boundary_condition::BoundaryCondition &bc) -> double {
std::chrono::high_resolution_clock::time_point start =
std::chrono::high_resolution_clock::now();

View File

@ -7,7 +7,7 @@ using namespace tug::boundary_condition;
TEST_CASE("1D Boundary Condition") {
BTCSBoundaryCondition bc(5);
BoundaryCondition bc(5);
boundary_condition bc_set = {BC_TYPE_CONSTANT, BC_CONST_VALUE};
SUBCASE("valid get") { CHECK_EQ(bc(BC_SIDE_LEFT).value, 0); }
@ -44,7 +44,7 @@ TEST_CASE("1D Boundary Condition") {
TEST_CASE("2D Boundary Condition") {
BTCSBoundaryCondition bc(5, 5);
BoundaryCondition bc(5, 5);
boundary_condition bc_set = {BC_TYPE_CONSTANT, BC_CONST_VALUE};
SUBCASE("valid get") { CHECK_EQ(bc(BC_SIDE_LEFT, 0).value, 0); }
@ -87,7 +87,7 @@ TEST_CASE("Boundary Condition helpers") {
boundary_condition bc_set = {BC_TYPE_CONSTANT, BC_CONST_VALUE};
SUBCASE("return boundary condition skeleton") {
boundary_condition bc_test = BTCSBoundaryCondition::returnBoundaryCondition(
boundary_condition bc_test = BoundaryCondition::returnBoundaryCondition(
bc_set.type, bc_set.value);
CHECK_EQ(bc_test.value, bc_set.value);
CHECK_EQ(bc_test.type, bc_set.type);
@ -95,7 +95,7 @@ TEST_CASE("Boundary Condition helpers") {
}
TEST_CASE("1D special inner grid cells") {
BTCSBoundaryCondition bc(5);
BoundaryCondition bc(5);
boundary_condition bc_set = {BC_TYPE_CONSTANT, BC_CONST_VALUE};
SUBCASE("valid set") {
@ -136,7 +136,7 @@ TEST_CASE("1D special inner grid cells") {
}
TEST_CASE("2D special inner grid cells") {
BTCSBoundaryCondition bc(5,5);
BoundaryCondition bc(5,5);
boundary_condition bc_set = {BC_TYPE_CONSTANT, BC_CONST_VALUE};
SUBCASE("valid set") {

View File

@ -31,7 +31,7 @@ TEST_CASE("closed boundaries - 1 concentration to 1 - rest 0") {
field[MID] = 1;
BTCSDiffusion diffu = setupDiffu(N, M);
BTCSBoundaryCondition bc(N, M);
BoundaryCondition bc(N, M);
uint32_t iterations = 1000;
double sum = 0;
@ -60,7 +60,7 @@ TEST_CASE("constant boundaries (0) - 1 concentration to 1 - rest 0") {
field[MID] = 1;
BTCSDiffusion diffu = setupDiffu(N, M);
BTCSBoundaryCondition bc(N, M);
BoundaryCondition bc(N, M);
boundary_condition input = {BC_TYPE_CONSTANT, 0};
@ -96,12 +96,12 @@ TEST_CASE(
std::vector<double> field(N * M, 0);
BTCSDiffusion diffu = setupDiffu(N, M);
BTCSBoundaryCondition bc(N, M);
BoundaryCondition bc(N, M);
boundary_condition top =
BTCSBoundaryCondition::returnBoundaryCondition(BC_TYPE_CONSTANT, 1);
BoundaryCondition::returnBoundaryCondition(BC_TYPE_CONSTANT, 1);
boundary_condition bottom =
BTCSBoundaryCondition::returnBoundaryCondition(BC_TYPE_CONSTANT, 0);
BoundaryCondition::returnBoundaryCondition(BC_TYPE_CONSTANT, 0);
bc.setSide(BC_SIDE_TOP, top);
bc.setSide(BC_SIDE_BOTTOM, bottom);
@ -130,7 +130,7 @@ TEST_CASE("2D closed boundaries, 1 constant cell in the middle") {
double val = 1e-2;
BTCSDiffusion diffu = setupDiffu(N, M);
BTCSBoundaryCondition bc(N, M);
BoundaryCondition bc(N, M);
field[MID] = val;
bc(BC_INNER, MID) = {BC_TYPE_CONSTANT, val};