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

Sampling combined velocity basis #241

Closed
JacobLotz opened this issue Oct 10, 2023 · 0 comments
Closed

Sampling combined velocity basis #241

JacobLotz opened this issue Oct 10, 2023 · 0 comments

Comments

@JacobLotz
Copy link
Collaborator

Hi all,

I am working on a reduced order model of the Navier Stokes equations. In this model I want to use a combined velocity basis, i.e. one basis for all velocity variables at once. (An alternative would be to have a separate basis for all velocity directions separately.) So in the case of the Navier-Stokes equations I will have two basis: one for all velocity variables and one for all pressure variables. The advantage is that: 1) I will have some sort of mass conservation in my basis. It is not exact, but it might contribute. 2) I will have a smaller number of ROM variables for the velocity.

Problem
The height of the velocity basis is therefore two or three times the size of the number of variables in the Finite Element Space, depending on the number of spatial variables. This induces a problem upon creating the sample mesh.

My procedure:

  • Offline:
    • Do computation
    • Compute non-linear contribution
    • Sample combined velocity vector and pressure vector
    • Sample non-linear contribution (combined velocity and separate pressure)
  • Merge:
    • Very normal merge stage: apply a POD to the combined velocity base and separate pressure base and their accompanying non-linear contributions. We now have two solution basis (combined velocity and pressure) and two non-linear basis (combined velocity and pressure).
  • Online (only relevant steps for the problem):
    • Sample non-linear basis with DEIM
    • Create sample mesh manager
      • Register sampled variables:
      • Construct sample mesh
        Problem here: The basis is twice or three times the size of the number of variables in the FOM finite element space

Possible solutions?
This is where I need your help.

Solution 1
I can use a separate basis for all directions of the velocities. I would like to avoid this for the reasons stated above.

Solution 2
Split the sample dofs returned by the DEIM algorithm such that the sample dofs correspond to the right velocity FOM finite element spaces. This can be done as the following:

In preparation of the online stage:

  1. Sample the combined velocity non-linear basis (using for instance DEIM). We now have the sampled non-linear basis and the vector which contains the sampled dofs
  2. Split the sample_dof vector such that the each velocity direction has its own sample dof vector.
  3. Register all velocity directions separately in the sample mesh manager
  4. Construct sample mesh: we have a sample finite element space for all velocity directions separately.

In evaluation of the online stage:

  1. Evaluate non-linear parts for all velocities separately on the sample finite element space
  2. Merge non-linear parts for all velocities together

Question
Is there a way to use the sample mesh manager without splitting the sample_dof vector or is solution 2 the right approach?

BTW. I plan to give a talk on the MFEM community day on my work using MFEM and libROM. Of course you are very welcome to join!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant