LLNL / libROM

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

question about SampleMeshManager #189

Closed gokhalen closed 1 year ago

gokhalen commented 1 year ago

I might be missing something, but I was looking at the following code to construct a sample mesh

https://github.com/LLNL/libROM/blob/c3bfef5890118a2963a497d512617ffa6e3f4f48/examples/prom/nonlinear_elasticity_global_rom.cpp#L885-L900

It is surprising to be that there is no code/argument to set the error bound in constructing the sample mesh. I'm thinking that one should be able set the error bound in constructing the sample mesh. e.g. If I wanted less than 1% error the sample mesh would contain much more elements than if I wanted less than 25% error.

Maybe I'm missing something. Maybe I should be reading the original papers.

Thanks,

Nachiket

JacobLotz commented 1 year ago

Based on your question I think you are expecting that the sampling of DOFs is performed in SampleMeshManager. Am I right? The SampleMeshManager is used to construct a FiniteElementSpace containing the sampled variables determined with for instance the DEIM. It does not sample itself.

I think the answer on issue #187 will give clarity.

gokhalen commented 1 year ago

@JacobLotz Thanks, your answer makes it more clear. After looking at the code, DEIM/S_OPT/GNAT determines the sample_dofs and then the SampleMeshManager builds a FiniteElementSpace. As for my question about the error, I guess the error is implicitly determined by the number for basis vectors/reduced space dimension for V', 'X', 'H'. DEIM/S_OPT/GNAT will determine the best dofs to sample, given the basis vectors and basis size. There is no direct parameter to set the error of the ROM and then determine a sample mesh.