Skip to content
Snippets Groups Projects
Commit b215986d authored by Elias Pipping's avatar Elias Pipping
Browse files

[Extend] Report on surface behaviour

parent d695e7e9
No related branches found
No related tags found
No related merge requests found
...@@ -201,6 +201,11 @@ int main(int argc, char *argv[]) { ...@@ -201,6 +201,11 @@ int main(int argc, char *argv[]) {
Dune::BitSetVector<1> frictionalNodes(fineVertexCount); Dune::BitSetVector<1> frictionalNodes(fineVertexCount);
frictionalBoundary.getVertices(frictionalNodes); frictionalBoundary.getVertices(frictionalNodes);
// Surface
BoundaryPatch<GridView> const &surface = myFaces.upper;
Dune::BitSetVector<1> surfaceNodes(fineVertexCount);
surface.getVertices(surfaceNodes);
// Dirichlet Boundary // Dirichlet Boundary
Dune::BitSetVector<dims> noNodes(fineVertexCount); Dune::BitSetVector<dims> noNodes(fineVertexCount);
Dune::BitSetVector<dims> dirichletNodes(fineVertexCount); Dune::BitSetVector<dims> dirichletNodes(fineVertexCount);
...@@ -353,17 +358,28 @@ int main(int argc, char *argv[]) { ...@@ -353,17 +358,28 @@ int main(int argc, char *argv[]) {
vertexCoordinates[vertexMapper.map(*it)] = geometry.corner(0); vertexCoordinates[vertexMapper.map(*it)] = geometry.corner(0);
} }
} }
FrictionWriter<ScalarVector, Vector> frictionWriter( FrictionWriter<ScalarVector, Vector> frictionWriter(
vertexCoordinates, frictionalNodes, "friction", vertexCoordinates, frictionalNodes, "friction",
[](LocalVector const &x) { return x[0]; }); [](LocalVector const &x) { return x[0]; });
auto const reportFriction = [&](Vector const &_u, Vector const &_v, BoundaryWriter<ScalarVector, Vector> verticalSurfaceWriter(
ScalarVector const &_alpha) { vertexCoordinates, surfaceNodes, "verticalSurface",
MyGeometry::verticalProjection);
BoundaryWriter<ScalarVector, Vector> horizontalSurfaceWriter(
vertexCoordinates, surfaceNodes, "horizontalSurface",
MyGeometry::horizontalProjection);
auto const report = [&](Vector const &_u, Vector const &_v,
ScalarVector const &_alpha) {
horizontalSurfaceWriter.writeKinetics(_u, _v);
verticalSurfaceWriter.writeKinetics(_u, _v);
ScalarVector c; ScalarVector c;
myGlobalNonlinearity->coefficientOfFriction(_v, c); myGlobalNonlinearity->coefficientOfFriction(_v, c);
frictionWriter.writeKinetics(_u, _v); frictionWriter.writeKinetics(_u, _v);
frictionWriter.writeOther(c, _alpha); frictionWriter.writeOther(c, _alpha);
}; };
reportFriction(u_initial, v_initial, alpha_initial); report(u_initial, v_initial, alpha_initial);
MyVTKWriter<typename MyAssembler::VertexBasis, MyVTKWriter<typename MyAssembler::VertexBasis,
typename MyAssembler::CellBasis> const typename MyAssembler::CellBasis> const
...@@ -510,7 +526,7 @@ int main(int argc, char *argv[]) { ...@@ -510,7 +526,7 @@ int main(int argc, char *argv[]) {
if (printProgress) if (printProgress)
std::cout << std::endl; std::cout << std::endl;
reportFriction(u, v, alpha); report(u, v, alpha);
iterationWriter << std::endl; iterationWriter << std::endl;
relaxationWriter << std::endl; relaxationWriter << std::endl;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment