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

Static "time integration" #124

Open
1 task done
mrp089 opened this issue Oct 24, 2023 · 3 comments
Open
1 task done

Static "time integration" #124

mrp089 opened this issue Oct 24, 2023 · 3 comments
Labels
enhancement New feature or request
Milestone

Comments

@mrp089
Copy link
Member

mrp089 commented Oct 24, 2023

Problem

We currently treat all problems with generalized-alpha time integration. However, there are cases where we would like to solve a (quasi)static problem (e.g. G&R).

Currently, I set density = spectral radius = 0. However, @yuecheng-yu and I are unsure if that actually solves a static problem in svFSI.

Solution

  1. Let the user choose between different time integration schemes
  2. Implement a (quasi)static "time integration":
  • Velocity and acceleration are always zero when evaluating the problem
  • Displacements are predicted based on previous solutions
  • The current solution should not depend on any previous solutions

This might be tricky since svFSI is solving for accelerations by default. @MatteoSalvador, any thoughts on this?

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct and Contributing Guidelines
@mrp089 mrp089 added the enhancement New feature or request label Oct 24, 2023
@MatteoSalvador
Copy link
Collaborator

I agree that this is a very important topic @mrp089. By taking sv_struct.cpp as an example, I would say that also the Damping parameter should be set to zero (in addition to Density), in order to remove first and second order time derivatives.

However, given the structure of the generalized-alpha scheme, I am not 100% confident this is perfectly equivalent to solving the quasi-static problem. The safest (and probably smoothest) way would be to create a new physics (e.g. static_struct) that solves quasi-static mechanics in the displacement variable and does not use the generalized-alpha parameters at all. I would not make a generic interface because some physics (such as CEP) do not require solving a quasi-static problem.

Happy to discuss this further!

@menon-karthik
Copy link
Member

This would also be useful for the Darcy solver that @zasexton and I want to use! I am currently doing the same "hack" Martin mentioned above.

@mrp089 mrp089 added this to the G&R milestone Jan 31, 2024
@mrp089
Copy link
Member Author

mrp089 commented Feb 8, 2024

I tried a static "time integration" for the equilibrated G&R model (#49). I needed to touch the following files:

  1. Initializer and corrector in pic.ccp: everything depends only on displacements
  2. The physics I'm solving (structural mechanics in my case): remove all terms depending on acceleration and velocity

Upsides of this:

  • Only relevant stuff gets assembled
  • Truly static

Downsides:

  • More if/else statements in pic.cpp
  • We would need to do this for every physics that we want to solve statically

There's probably also a way of "faking" the gen-alpha parameters into a static formulation (maybe by renaming the parameters into something more universal). This would make it more applicable to other physics, but we'd also be multiplying a bunch of zeros.

It would be nice if we had a more modular way of dealing with time integration. For that, we probably would need to split up all terms in all physics by their time-dependency. Ideas welcome!

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

3 participants