added subdomain indexing for outer edges, for use in robin BC
This commit is contained in:
parent
db7bd92b2d
commit
99b46ad7ec
5 changed files with 143 additions and 33 deletions
|
|
@ -761,24 +761,25 @@ const std::vector<int> Mesh::BoundaryEdges() const
|
|||
|
||||
|
||||
// Only the outer edges for Robin BC
|
||||
const std::vector<int> Mesh::OuterEdges() const
|
||||
void Mesh::InitializeOuterEdges()
|
||||
{
|
||||
vector<int> outerEdges;
|
||||
|
||||
for (int k = 0; k < _ebedges.size()/2; ++k)
|
||||
assert(EdgeSubdomains.size() == 2*_ebedges.size());
|
||||
for (size_t k = 0; k < _ebedges.size(); ++k) // loop over all boundary edges
|
||||
{
|
||||
if (EdgeSubdomains[k] == 0 || EdgeSubdomains[k + 1] == 0)
|
||||
outerEdges.push_back(_ebedges[k]);
|
||||
if (EdgeSubdomains[2*k] == 0)
|
||||
{
|
||||
OuterEdges.push_back(_ebedges[k]);
|
||||
OuterEdgesSubdomains.push_back(EdgeSubdomains[2*k + 1]);
|
||||
}
|
||||
if (EdgeSubdomains[2*k + 1] == 0)
|
||||
{
|
||||
OuterEdges.push_back(_ebedges[k]);
|
||||
OuterEdgesSubdomains.push_back(EdgeSubdomains[2*k]);
|
||||
}
|
||||
}
|
||||
|
||||
cout << "All boundary edges: " << _ebedges.size() << endl;
|
||||
cout << "Outer boundary edges: " << outerEdges.size() << endl;
|
||||
|
||||
// cout << _ebedges;
|
||||
// cout << endl;
|
||||
// cout << outerEdges << endl;
|
||||
|
||||
return outerEdges;
|
||||
cout << "Outer boundary edges: " << OuterEdges.size() << endl;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1017,6 +1018,7 @@ Mesh::Mesh(std::string const &fname)
|
|||
Mesh::Mesh(std::string const &filename, std::string const &subdomain_filename) : Mesh(filename)
|
||||
{
|
||||
ElementSubdomains = ReadElementSubdomains(subdomain_filename);
|
||||
InitializeOuterEdges();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue