-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Perpendicular flap with shell element #17
base: main
Are you sure you want to change the base?
Conversation
Crazy-Rich-Meghan
commented
Mar 20, 2025
- Use shell mid-plane to represent elasticity
- Coupled with OpenFOAM via vertex-vertex communication method
- Use volume for visualization
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are quite some left-over sections commented out, and gsDebugVar
calls left in the code. Would be nice to give it a small clean-up.
In addition, try to comment a bit more sections. Maybe we can accompany the file with a .dox
file, so that it'll be documented immediately; this is a good practice anyay.
Lastly, it would be nice to have the update of the shell volume (inside the time-loop) as just a function call,i.e. constructShellVolume(mid_surface,thickness)
(and maybe some direction to indicate which direction the thickness acts). Is this possible?
#include <gsPreCICE/gsLookupFunction.h> | ||
|
||
#include <gsAssembler/gsExprEvaluator.h> | ||
// #include <gsPreCICE/gsPreCICEVectorFunction.h> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// #include <gsPreCICE/gsPreCICEVectorFunction.h> |
#include <gsKLShell/src/gsMaterialMatrixContainer.h> | ||
#include <gsKLShell/src/gsMaterialMatrixEval.h> | ||
#include <gsKLShell/src/gsMaterialMatrixIntegrate.h> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These should not be needed. Please test
#include <gsKLShell/src/gsMaterialMatrixContainer.h> | |
#include <gsKLShell/src/gsMaterialMatrixEval.h> | |
#include <gsKLShell/src/gsMaterialMatrixIntegrate.h> |
#endif | ||
|
||
using namespace gismo; | ||
const double PI = 3.14159265; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused
const double PI = 3.14159265; |
|
||
|
||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<< "----------------------\n\n"; | ||
|
||
// 1. construction of a knot vector for each direction | ||
// 1. Construction of knot vectors for each direction |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are the comments double?
// 1. Construction of knot vectors for each direction |
|
||
gsDebugVar(quad_shell_xy); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gsDebugVar(quad_shell_xy); |
|
||
// gsMatrix<> displacementData = gsMatrix<>::Zero(3, comPt.rows()); | ||
// displacementData.setRandom(); | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// gsMatrix<> displacementData = gsMatrix<>::Zero(3, comPt.rows()); | |
// displacementData.setRandom(); | |
// gsMatrix<> points(2, 1); | ||
// points.col(0) << 0.5, 1; | ||
|
||
// gsStructuralAnalysisOutput<real_t> writer("./output/pointData.csv", points); | ||
// writer.init({"x", "y", "z"}, {"time"}); // point1 - x, point1 - y, point1 - z, time |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// gsMatrix<> points(2, 1); | |
// points.col(0) << 0.5, 1; | |
// gsStructuralAnalysisOutput<real_t> writer("./output/pointData.csv", points); | |
// writer.init({"x", "y", "z"}, {"time"}); // point1 - x, point1 - y, point1 - z, time |
|
||
// gsMatrix<> deformed_thickness(greville.cols(), 3); | ||
|
||
// for (index_t k = 0; k != quad_uv.rows(); k++) | ||
// { | ||
// N_shell.row(k) = ev.eval(sn(G_shell).normalized(), quad_uv.row(k)); | ||
// deformed_thickness.row(k) = N_shell.row(k) * T_shell(0, k); | ||
// } | ||
|
||
gsDebugVar("Got here 3"); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// gsMatrix<> deformed_thickness(greville.cols(), 3); | |
// for (index_t k = 0; k != quad_uv.rows(); k++) | |
// { | |
// N_shell.row(k) = ev.eval(sn(G_shell).normalized(), quad_uv.row(k)); | |
// deformed_thickness.row(k) = N_shell.row(k) * T_shell(0, k); | |
// } | |
gsDebugVar("Got here 3"); |
|
||
// assembler.assemble(); | ||
// F = assembler.rhs(); | ||
|
||
gsDebugVar(bcInfo); | ||
|
||
participant.readData(SolidMesh, StressData, quadPointIDs, ForceData); | ||
|
||
|
||
|
||
// Is this really an average? (maybe need to consider normal vector) | ||
gsDebugVar(ForceData.rows()); | ||
gsDebugVar(ForceData.cols()); | ||
gsDebugVar(N.rows()); | ||
gsDebugVar(N.cols()); | ||
gsDebugVar(quadPointsData.rows()); | ||
gsDebugVar(quadPointsData.cols()); | ||
gsDebugVar(quad_uv.cols()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// assembler.assemble(); | |
// F = assembler.rhs(); | |
gsDebugVar(bcInfo); | |
participant.readData(SolidMesh, StressData, quadPointIDs, ForceData); | |
// Is this really an average? (maybe need to consider normal vector) | |
gsDebugVar(ForceData.rows()); | |
gsDebugVar(ForceData.cols()); | |
gsDebugVar(N.rows()); | |
gsDebugVar(N.cols()); | |
gsDebugVar(quadPointsData.rows()); | |
gsDebugVar(quadPointsData.cols()); | |
gsDebugVar(quad_uv.cols()); |