Veselin Dobrev

Results 452 comments of Veselin Dobrev

Re-merged in `next` for testing...

Yes, the concern is the cost of operations on **small host** `Vector`s which are used in many places in the library, and were specifically optimized to use these methods which...

One question: why did you need to make the `UseDevice` methods virtual? How does `PetscParVector` use that flag? The intent for this flag (false by default) in `mfem::Vector` was to...

Hmm, this creates an issue: if we want operations defined in the `Vector` class to work properly with small host `Vector` objects (using just inline methods) and with `PetscParVector` objects...

First, the two methods `PetscParVector::UseDevice` do not seem to sync with `mfem::Vector::data`, so `data.UseDevice()` may return something different from the virtual `UseDevice()`. Second, calling `begin()` will only work if `data`...

To see the first issue I mentioned above, apply this patch to the current MFEM `master` branch: ```diff diff --git a/examples/petsc/ex1p.cpp b/examples/petsc/ex1p.cpp index 000c5bf48..e065a5704 100644 --- a/examples/petsc/ex1p.cpp +++ b/examples/petsc/ex1p.cpp @@...

Thanks for the fix @stefanozampini. I'll use your branch, if you don't mind, to modify the relevant Vector methods to use inline calls when the device flag is off/false. >...

There should be no conflict with regard to the `UseDevice()` flag -- for vector methods implemented in MFEM it means for MFEM to use its configured device/backend, and similarly for...

Another question, @stefanozampini: why this change: b8281fa0? This changes the intended behavior for the method.

Hi @stefanozampini, Can you try running this in `examples/petsc`: ```console mpirun -np 4 valgrind --track-origins=yes ./ex5p -no-vis -m ../../data/star.mesh --usepetsc -o 0 --petscopts rc_ex5p_bddc --nonoverlapping --local-bdr ``` Does it run...