123 |
__problem = (*givenProblem) * u; |
__problem = (*givenProblem) * u; |
124 |
ffout(2) << "done\n"; |
ffout(2) << "done\n"; |
125 |
|
|
126 |
|
Vector<bool> insideVertices(mesh().numberOfVertices()); |
127 |
|
|
128 |
|
const Domain& domain = (*(*givenProblem).domain()); |
129 |
|
|
130 |
|
for (size_t i=0; i<mesh().numberOfVertices(); ++i) { |
131 |
|
insideVertices[i] = domain.inside(mesh().vertex(i)); |
132 |
|
} |
133 |
|
|
134 |
switch (mesh().type()) { |
switch (mesh().type()) { |
135 |
case Mesh::cartesianHexahedraMesh: { |
case Mesh::cartesianHexahedraMesh: { |
136 |
|
Structured3DMesh& m = static_cast<Structured3DMesh&>(*__mesh); |
137 |
|
for (size_t i=0; i<m.numberOfCells();++i) { |
138 |
|
CartesianHexahedron& h = m.cell(i); |
139 |
|
unsigned numberIn = 0; |
140 |
|
for (unsigned j=0; j<h.numberOfVertices(); ++j) { |
141 |
|
numberIn += (insideVertices(m.vertexNumber(h(j))))?1:0; |
142 |
|
} |
143 |
|
h.isFictitious() = (numberIn == 0); |
144 |
|
} |
145 |
|
|
146 |
this->__discretize<Structured3DMesh>(); |
this->__discretize<Structured3DMesh>(); |
147 |
break; |
break; |
148 |
} |
} |