LLNL / libROM

Model reduction library with an emphasis on large scale parallelism and linear subspace methods
https://www.librom.net
Other
198 stars 36 forks source link

Sampling combined velocity basis #241

Closed JacobLotz closed 7 months ago

JacobLotz commented 9 months ago

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:

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!