Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove dimension template parameter from BoundaryEnum #112

Merged
merged 2 commits into from
Feb 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ CPMAddPackage(

CPMFindPackage(
NAME ViennaHRLE
VERSION 0.4.0
VERSION 0.5.0
GIT_REPOSITORY "https://github.com/ViennaTools/ViennaHRLE"
EXCLUDE_FROM_ALL ${VIENNALS_BUILD_PYTHON})

Expand Down Expand Up @@ -250,4 +250,4 @@ packageProject(
INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include/viennals
INCLUDE_DESTINATION include/viennals-${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
DEPENDENCIES "VTK 9.0.0;ViennaHRLE 0.4.0")
DEPENDENCIES "VTK 9.0.0;ViennaHRLE 0.5.0")
6 changes: 3 additions & 3 deletions examples/VolumeToLevelSets/VolumeToLevelSets.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ int main(int argc, char *argv[]) {
ls::VTKWriter(mesh, ls::FileFormatEnum::VTU, "ReadVolumeMesh.vtu").apply();

double bounds[2 * D] = {-6, 6, 1e-10, 0.078, -0.034, 0.034};
ls::BoundaryConditionEnum<D> boundaryCons[D];
ls::BoundaryConditionEnum boundaryCons[D];
for (unsigned i = 0; i < D; ++i) {
boundaryCons[i] = ls::BoundaryConditionEnum<D>::REFLECTIVE_BOUNDARY;
boundaryCons[i] = ls::BoundaryConditionEnum::REFLECTIVE_BOUNDARY;
}
boundaryCons[0] = ls::BoundaryConditionEnum<D>::INFINITE_BOUNDARY;
boundaryCons[0] = ls::BoundaryConditionEnum::INFINITE_BOUNDARY;

auto domain = ls::SmartPointer<ls::Domain<NumericType, D>>::New(
bounds, boundaryCons, gridDelta);
Expand Down
5 changes: 2 additions & 3 deletions include/viennals/lsDomain.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ namespace viennals {
using namespace viennacore;

// Boundary condition alias for easier access
template <int D>
using BoundaryConditionEnum = typename hrleGrid<D>::boundaryType;
using BoundaryConditionEnum = hrleBoundaryType;

/// Class containing all information about the level set, including
/// the dimensions of the domain, boundary conditions and all data.
Expand All @@ -31,7 +30,7 @@ template <class T, int D> class Domain {
typedef T ValueType;
typedef hrleGrid<D> GridType;
typedef hrleDomain<T, D> DomainType;
typedef BoundaryConditionEnum<D> BoundaryType;
typedef BoundaryConditionEnum BoundaryType;
typedef typename std::vector<std::pair<hrleVectorType<hrleIndexType, D>, T>>
PointValueVectorType;
typedef typename std::vector<std::array<T, D>> NormalVectorType;
Expand Down
8 changes: 4 additions & 4 deletions include/viennals/lsExtrude.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ template <class T> class Extrude {
SmartPointer<Domain<T, 3>> outputLevelSet = nullptr;
Vec2D<T> extent = {0., 0.};
int extrudeDim = 0;
std::array<BoundaryConditionEnum<3>, 3> boundaryConds;
std::array<BoundaryConditionEnum, 3> boundaryConds;

public:
Extrude() {}
Extrude(SmartPointer<Domain<T, 2>> passedInputLS,
SmartPointer<Domain<T, 3>> passedOutputLS, Vec2D<T> passedExtent,
const int passedExtrudeDim,
std::array<BoundaryConditionEnum<3>, 3> passedBoundaryConds)
std::array<BoundaryConditionEnum, 3> passedBoundaryConds)
: inputLevelSet(passedInputLS), outputLevelSet(passedOutputLS),
extent(passedExtent), extrudeDim(passedExtrudeDim),
boundaryConds(passedBoundaryConds) {}
Expand All @@ -46,11 +46,11 @@ template <class T> class Extrude {
}

void setBoundaryConditions(
std::array<BoundaryConditionEnum<3>, 3> passedBoundaryConds) {
std::array<BoundaryConditionEnum, 3> passedBoundaryConds) {
boundaryConds = passedBoundaryConds;
}

void setBoundaryConditions(BoundaryConditionEnum<3> passedBoundaryConds[3]) {
void setBoundaryConditions(BoundaryConditionEnum passedBoundaryConds[3]) {
for (int i = 0; i < 3; i++)
boundaryConds[i] = passedBoundaryConds[i];
}
Expand Down
3 changes: 2 additions & 1 deletion include/viennals/lsFromMesh.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,8 @@ template <class T, int D> class FromMesh {
// if boundary conditions are infinite always set the point
// if not, check, whether it is inside of domain
for (unsigned i = 0; i < D; ++i) {
if (grid.getBoundaryConditions(i) != hrleGrid<D>::INFINITE_BOUNDARY) {
if (grid.getBoundaryConditions(i) !=
hrleBoundaryType::INFINITE_BOUNDARY) {
if (currentIndex[i] > grid.getMaxBounds(i) ||
currentIndex[i] < grid.getMinBounds(i)) {
setPoint = false;
Expand Down
2 changes: 1 addition & 1 deletion include/viennals/lsMakeGeometry.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ template <class T, int D> class MakeGeometry {
bool infDimSet = false;
for (unsigned n = 0; n < D; ++n) {
if (grid.getBoundaryConditions(n) ==
hrleGrid<D>::boundaryType::INFINITE_BOUNDARY) {
hrleBoundaryType::INFINITE_BOUNDARY) {
if (!infDimSet) {
i = n;
infDimSet = true;
Expand Down
13 changes: 6 additions & 7 deletions python/pyWrap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -436,15 +436,14 @@ PYBIND11_MODULE(VIENNALS_MODULE_NAME, module) {
}, pybind11::arg("stream") = pybind11::module::import("sys").attr("stdout"));

// enums
pybind11::enum_<BoundaryConditionEnum<D>>(module, "BoundaryConditionEnum")
.value("REFLECTIVE_BOUNDARY",
BoundaryConditionEnum<D>::REFLECTIVE_BOUNDARY)
.value("INFINITE_BOUNDARY", BoundaryConditionEnum<D>::INFINITE_BOUNDARY)
.value("PERIODIC_BOUNDARY", BoundaryConditionEnum<D>::PERIODIC_BOUNDARY)
pybind11::enum_<BoundaryConditionEnum>(module, "BoundaryConditionEnum")
.value("REFLECTIVE_BOUNDARY", BoundaryConditionEnum::REFLECTIVE_BOUNDARY)
.value("INFINITE_BOUNDARY", BoundaryConditionEnum::INFINITE_BOUNDARY)
.value("PERIODIC_BOUNDARY", BoundaryConditionEnum::PERIODIC_BOUNDARY)
.value("POS_INFINITE_BOUNDARY",
BoundaryConditionEnum<D>::POS_INFINITE_BOUNDARY)
BoundaryConditionEnum::POS_INFINITE_BOUNDARY)
.value("NEG_INFINITE_BOUNDARY",
BoundaryConditionEnum<D>::NEG_INFINITE_BOUNDARY);
BoundaryConditionEnum::NEG_INFINITE_BOUNDARY);

// GeometricAdvect
pybind11::class_<GeometricAdvect<T, D>, SmartPointer<GeometricAdvect<T, D>>>(
Expand Down
6 changes: 3 additions & 3 deletions tests/AdvectionPlane/AdvectionPlane.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ int main() {
double gridDelta = 1;

double bounds[2 * D] = {-extent, extent, -extent, extent};
ls::BoundaryConditionEnum<D> boundaryCons[D];
boundaryCons[0] = ls::BoundaryConditionEnum<D>::REFLECTIVE_BOUNDARY;
boundaryCons[1] = ls::BoundaryConditionEnum<D>::INFINITE_BOUNDARY;
ls::BoundaryConditionEnum boundaryCons[D];
boundaryCons[0] = ls::BoundaryConditionEnum::REFLECTIVE_BOUNDARY;
boundaryCons[1] = ls::BoundaryConditionEnum::INFINITE_BOUNDARY;

auto plane = ls::SmartPointer<ls::Domain<double, D>>::New(
bounds, boundaryCons, gridDelta);
Expand Down
8 changes: 4 additions & 4 deletions tests/Extrude/Extrude.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,10 @@ int main() {
}

std::array<double, 2> extrudeExtent = {-5., 5.};
std::array<ls::BoundaryConditionEnum<3>, 3> boundaryConds{
ls::BoundaryConditionEnum<3>::REFLECTIVE_BOUNDARY,
ls::BoundaryConditionEnum<3>::INFINITE_BOUNDARY,
ls::BoundaryConditionEnum<3>::REFLECTIVE_BOUNDARY};
std::array<ls::BoundaryConditionEnum, 3> boundaryConds{
ls::BoundaryConditionEnum::REFLECTIVE_BOUNDARY,
ls::BoundaryConditionEnum::INFINITE_BOUNDARY,
ls::BoundaryConditionEnum::REFLECTIVE_BOUNDARY};
auto trench_3D = ls::SmartPointer<ls::Domain<double, 3>>::New();
ls::Extrude<double>(trench, trench_3D, extrudeExtent, 2, boundaryConds)
.apply();
Expand Down
2 changes: 1 addition & 1 deletion tests/FileWriter/FileWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ int main() {
for (unsigned i = 0; i < D; ++i) {
boundaryCons[i] = ls::Domain<double, D>::BoundaryType::REFLECTIVE_BOUNDARY;
}
boundaryCons[D - 1] = ls::BoundaryConditionEnum<D>::INFINITE_BOUNDARY;
boundaryCons[D - 1] = ls::BoundaryConditionEnum::INFINITE_BOUNDARY;

auto levelSet = ls::SmartPointer<ls::Domain<double, D>>::New(
bounds, boundaryCons, gridDelta);
Expand Down
6 changes: 3 additions & 3 deletions tests/MarkVoidPoints/MarkVoidPoints.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ int main() {
NumericType gridDelta = 1;

double bounds[2 * D] = {-extent, extent, -extent, extent};
ls::BoundaryConditionEnum<D> boundaryCons[D];
boundaryCons[0] = ls::BoundaryConditionEnum<D>::REFLECTIVE_BOUNDARY;
boundaryCons[1] = ls::BoundaryConditionEnum<D>::INFINITE_BOUNDARY;
ls::BoundaryConditionEnum boundaryCons[D];
boundaryCons[0] = ls::BoundaryConditionEnum::REFLECTIVE_BOUNDARY;
boundaryCons[1] = ls::BoundaryConditionEnum::INFINITE_BOUNDARY;

auto domain = ls::SmartPointer<ls::Domain<NumericType, D>>::New(
bounds, boundaryCons, gridDelta);
Expand Down
Loading