Skip to content

Commit

Permalink
make interface type an enum class
Browse files Browse the repository at this point in the history
  • Loading branch information
XzzX committed Jan 31, 2025
1 parent ca285c3 commit 029ae48
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions mrmd/weighting_function/Slab.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,19 @@ namespace weighting_function
{
class Slab
{
public:
enum class InterfaceType
{
SMOOTH,
ABRUPT
};

private:
const Point3D center_;
const real_t atomisticRegionHalfDiameter_;
const real_t hybridRegionDiameter_;
const idx_t exponent_;
const idx_t interfaceType_;
const InterfaceType interfaceType_;

public:
KOKKOS_INLINE_FUNCTION
Expand Down Expand Up @@ -73,12 +80,12 @@ class Slab
{
switch (interfaceType_)
{
case 0:
case InterfaceType::SMOOTH:
// smooth interface
setSmoothWeightInHY(
dx, absDx, lambda, modulatedLambda, gradLambdaX, gradLambdaY, gradLambdaZ);
break;
case 1:
case InterfaceType::ABRUPT:
// abrupt interface
setAbruptWeightInHY(lambda, modulatedLambda, gradLambdaX, gradLambdaY, gradLambdaZ);
break;
Expand Down Expand Up @@ -166,26 +173,23 @@ class Slab
if (absDx < atomisticRegionHalfDiameter_)
{
setWeightInAT(lambda, modulatedLambda, gradLambdaX, gradLambdaY, gradLambdaZ);
return;
}
else if (absDx > atomisticRegionHalfDiameter_ + hybridRegionDiameter_)
{
setWeightInCG(lambda, modulatedLambda, gradLambdaX, gradLambdaY, gradLambdaZ);
return;
}
else
{
setWeightInHY(
dx, absDx, lambda, modulatedLambda, gradLambdaX, gradLambdaY, gradLambdaZ);
return;
}
}

Slab(const Point3D& center,
const real_t atomisticRegionDiameter,
const real_t hybridRegionDiameter,
const idx_t nu,
const idx_t interfaceType = 0)
const InterfaceType interfaceType = InterfaceType::SMOOTH)
: center_(center),
atomisticRegionHalfDiameter_(0.5_r * atomisticRegionDiameter),
hybridRegionDiameter_(hybridRegionDiameter),
Expand Down

0 comments on commit 029ae48

Please sign in to comment.