Skip to content
Snippets Groups Projects
Commit 07b52bf9 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Merge branch 'feature/Nlr-in-2D' into 'develop'

Implement calculation of Nlr (face normal at node) in 2D

See merge request !38
parents 2002ff9b 3a0ebe2a
Branches
Tags
1 merge request!38Implement calculation of Nlr (face normal at node) in 2D
...@@ -105,7 +105,25 @@ class MeshData : public IMeshData ...@@ -105,7 +105,25 @@ class MeshData : public IMeshData
if constexpr (Dimension == 1) { if constexpr (Dimension == 1) {
static_assert(Dimension != 1, "Nlr does not make sense in 1d"); static_assert(Dimension != 1, "Nlr does not make sense in 1d");
} else if constexpr (Dimension == 2) { } else if constexpr (Dimension == 2) {
throw NotImplementedError("Nlr are not yet computed in 2d"); const NodeValue<const Rd>& xr = m_mesh.xr();
NodeValuePerFace<Rd> Nlr(m_mesh.connectivity());
const auto& face_to_node_matrix = m_mesh.connectivity().faceToNodeMatrix();
parallel_for(
m_mesh.numberOfFaces(), PUGS_LAMBDA(FaceId l) {
const auto& face_nodes = face_to_node_matrix[l];
const Rd xr0 = xr[face_nodes[0]];
const Rd xr1 = xr[face_nodes[1]];
const Rd dx = xr1 - xr0;
const Rd Nr = 0.5 * Rd{dx[1], -dx[0]};
Nlr(l, 0) = Nr;
Nlr(l, 1) = Nr;
});
m_Nlr = std::make_shared<NodeValuePerFace<const Rd>>(Nlr);
} else { } else {
const NodeValue<const Rd>& xr = m_mesh.xr(); const NodeValue<const Rd>& xr = m_mesh.xr();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment