added basic functionality to Grid and Boundary
This commit is contained in:
parent
470ebbd2ab
commit
2ab924a162
@ -1,4 +1,5 @@
|
|||||||
#include <Eigen/Core>
|
#include <Eigen/Core>
|
||||||
|
#include "Grid.hpp"
|
||||||
|
|
||||||
using namespace Eigen;
|
using namespace Eigen;
|
||||||
|
|
||||||
@ -20,24 +21,10 @@ class Boundary {
|
|||||||
/**
|
/**
|
||||||
* @brief Construct a new Boundary object
|
* @brief Construct a new Boundary object
|
||||||
*
|
*
|
||||||
* @param dim
|
* @param grid
|
||||||
|
* @param type
|
||||||
*/
|
*/
|
||||||
Boundary(int dim);
|
Boundary(Grid grid, BC_TYPE type);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Construct a new Boundary object
|
|
||||||
*
|
|
||||||
* @param dim
|
|
||||||
* @param type
|
|
||||||
*/
|
|
||||||
Boundary(int dim, BC_TYPE type);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Set the Boundary Condition Type object
|
|
||||||
*
|
|
||||||
* @param type
|
|
||||||
*/
|
|
||||||
void setBoundaryConditionType(BC_TYPE type);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the Boundary Condition Type object
|
* @brief Get the Boundary Condition Type object
|
||||||
@ -65,7 +52,7 @@ class Boundary {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
int dim;
|
Grid grid;
|
||||||
BC_TYPE type;
|
BC_TYPE type;
|
||||||
VectorXd left, right, top, bottom;
|
VectorXd left, right, top, bottom;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -8,17 +8,17 @@ class Grid {
|
|||||||
/**
|
/**
|
||||||
* @brief Construct a new Grid object
|
* @brief Construct a new Grid object
|
||||||
*
|
*
|
||||||
* @param n
|
* @param col
|
||||||
*/
|
*/
|
||||||
Grid(int n);
|
Grid(int col);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Construct a new Grid object
|
* @brief Construct a new Grid object
|
||||||
*
|
*
|
||||||
* @param n
|
* @param row
|
||||||
* @param m
|
* @param col
|
||||||
*/
|
*/
|
||||||
Grid(int n, int m);
|
Grid(int row, int col);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set the Concentrations object
|
* @brief Set the Concentrations object
|
||||||
@ -49,12 +49,18 @@ class Grid {
|
|||||||
*/
|
*/
|
||||||
void setAlpha(Matrix2d alpha_x, Matrix2d alpha_y);
|
void setAlpha(Matrix2d alpha_x, Matrix2d alpha_y);
|
||||||
|
|
||||||
|
auto getDim();
|
||||||
|
|
||||||
|
auto getRow();
|
||||||
|
|
||||||
|
auto getCol();
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
int dim;
|
int dim;
|
||||||
int n;
|
int row;
|
||||||
int m;
|
int col;
|
||||||
Matrix2d concentrations;
|
Matrix2d concentrations;
|
||||||
Matrix2d alpha_x;
|
Matrix2d alpha_x;
|
||||||
Matrix2d alpha_y;
|
Matrix2d alpha_y;
|
||||||
|
|||||||
@ -0,0 +1,20 @@
|
|||||||
|
#include <tug/Boundary.hpp>
|
||||||
|
#include <stdexcept>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
Boundary::Boundary(Grid grid, BC_TYPE type) {
|
||||||
|
this->type = type;
|
||||||
|
|
||||||
|
if (type == BC_TYPE_CONSTANT) {
|
||||||
|
if (grid.getDim() == 1) {
|
||||||
|
this->left = VectorXd::Constant(1, 1, 1);
|
||||||
|
this->right = VectorXd::Constant(1, 1, 1);
|
||||||
|
} else if (grid.getDim() == 2) {
|
||||||
|
this->left = VectorXd::Constant(1, 1, 1);
|
||||||
|
this->right = VectorXd::Constant(1, 1, 1);
|
||||||
|
} else {
|
||||||
|
throw invalid_argument("Dimension must be 1 or 2!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
48
src/Grid.cpp
48
src/Grid.cpp
@ -0,0 +1,48 @@
|
|||||||
|
#include <tug/Grid.hpp>
|
||||||
|
|
||||||
|
Grid::Grid(int col) {
|
||||||
|
this->col = col;
|
||||||
|
|
||||||
|
this->dim = 1;
|
||||||
|
this->concentrations = Matrix2d::Constant(1, col, 1);
|
||||||
|
this->alpha_x = Matrix2d::Constant(1, col, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
Grid::Grid(int row, int col) {
|
||||||
|
this->row = row;
|
||||||
|
this->col = col;
|
||||||
|
|
||||||
|
this->dim = 2;
|
||||||
|
this->concentrations = Matrix2d::Constant(row, col, 1);
|
||||||
|
this->alpha_x = Matrix2d::Constant(row, col, 1);
|
||||||
|
this->alpha_y = Matrix2d::Constant(row, col, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Grid::setConcentrations(Matrix2d concentrations) {
|
||||||
|
this->concentrations = concentrations;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto Grid::getConcentrations() {
|
||||||
|
return this->concentrations;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Grid::setAlpha(Matrix2d alpha) {
|
||||||
|
this->alpha_x = alpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Grid::setAlpha(Matrix2d alpha_x, Matrix2d alpha_y) {
|
||||||
|
this->alpha_x = alpha_x;
|
||||||
|
this->alpha_y = alpha_y;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto Grid::getDim() {
|
||||||
|
return dim;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto Grid::getRow() {
|
||||||
|
return row;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto Grid::getCol() {
|
||||||
|
return col;
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user