Skip to content
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

Add equilibrated constrained mixture model #49

Open
4 tasks
mrp089 opened this issue May 3, 2023 · 2 comments
Open
4 tasks

Add equilibrated constrained mixture model #49

mrp089 opened this issue May 3, 2023 · 2 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@mrp089
Copy link
Member

mrp089 commented May 3, 2023

Add the material model from svFSI branch https://github.com/mrp089/svFSI/tree/add_equilibrated_gr

Steps:

  • Add material model
  • Add FEBio tensor classes
  • Read in nodally distributed values
  • Store information on the Gauss points

Steps 3 and 4 are also required for #2 and #33 (I will coordinate).

@mrp089 mrp089 self-assigned this May 3, 2023
@mrp089 mrp089 added the enhancement New feature or request label May 3, 2023
This was referenced Nov 27, 2023
@mrp089
Copy link
Member Author

mrp089 commented Dec 8, 2023

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:

  • replace febio tensor classes with our own, add missing functions to Vector, Array, Tensor4, remove Code/ThirdParty/febio folder
  • pass (currently hard-coded) material parameters in gr_equilibrated from the input file
  • better structure in gr_equilibrated: no switch cases for pre-loading vs. G&R
  • migrate to an interface for distributed material parameters (Add spatially distributed material parameters #77)
  • migrate to a linear solver interface (Add interface to linear solvers #30)

While 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!

@ktbolt
Copy link
Collaborator

ktbolt commented Dec 8, 2023

@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.

@mrp089 mrp089 added this to the G&R milestone Jan 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants