Open mrp089 opened 1 year ago
I have a first prototype running in this branch (i.e. a "literal translation of implementation from svFSI
"), containing the new test case struct/gr_equilibrated
. Note that this relies on PETSc
as this material model has a minor-only symmetry stiffness matrix that I could only solve successfully with a (parallel) direct solver (MUMPS).
I couldn't confirm if the results match with svFSI
due to #148, but so far, they look similar. Once I can confirm that the results are identical (and keep running my test case during development), my steps toward a pull request are:
febio
tensor classes with our own, add missing functions to Vector, Array, Tensor4
, remove Code/ThirdParty/febio
foldergr_equilibrated
from the input filegr_equilibrated
: no switch cases for pre-loading vs. G&RWhile working on the steps above, there are still modifications I need to make to the material model itself to improve its stability (as discussed in the lab meeting on 11-28-2023). My first step is smoothing the internal growth variables in every Newton iteration via the vtkAttributeSmoothingFilter. For that, I need to have the current simulation data (mesh + internal growth variables stored on nodes) as a vtkUnstructuredGrid
object. I've seen functionality like this in VtkData
for file IO, but I'm unsure how to call that during the Newton loop without any actual file IO and getting access to vtk_ugrid
. @ktbolt, can you show me how to do this best? Thank you!
@mrp089 VtkData
was implemented to just read/write VTK files with the intent to isolate VTK from the solver so in future we could eliminate needing to build with VTK, perhaps create a plugin VTK file reader for backwards compatibility (there are still VTK calls in vtk_xml_parser.cpp
which we should remove).
You can create a vtkUnstructuredGrid
object using VtkData
(see write_vtu() in vtk_xml.cpp), just need to add a method to return the object rather than write it, I can do that.
I would recommend as a longer-term goal not use any VTK functions in the code if you can, svSolver suffers from this.
Add the material model from
svFSI
branch https://github.com/mrp089/svFSI/tree/add_equilibrated_grSteps:
Steps 3 and 4 are also required for #2 and #33 (I will coordinate).