fem merge requestshttps://gitlab.onelab.info/gmsh/fem/-/merge_requests2024-03-27T12:47:50Zhttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/80Various fixes2024-03-27T12:47:50ZBoris MartinVarious fixes- Fixed an error in solveDistributed where the local size on rank 0 is printed, instead of the global size
- Fixed missing casts from unsigned to signed types
- Replaced a lambda with structured binding by an explicit function object for...- Fixed an error in solveDistributed where the local size on rank 0 is printed, instead of the global size
- Fixed missing casts from unsigned to signed types
- Replaced a lambda with structured binding by an explicit function object for compatibility reasons.https://gitlab.onelab.info/gmsh/fem/-/merge_requests/79Fixed error when field tag is non-zero2024-03-25T21:40:36ZBoris MartinFixed error when field tag is non-zerohttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/78Final MR for distributed solves2024-03-22T13:31:33ZBoris MartinFinal MR for distributed solveshttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/77Distributed Field and Basic MPI support2024-03-22T12:26:46ZBoris MartinDistributed Field and Basic MPI supportSubset of the distributed gmshFEM update: Distributed field.
TODO later: distibuted compound fieldsSubset of the distributed gmshFEM update: Distributed field.
TODO later: distibuted compound fieldshttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/76Draft: New ddofs2024-03-21T10:55:09ZBoris MartinDraft: New ddofshttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/75Minor changes before distributed DOFs2024-03-21T10:34:08ZBoris MartinMinor changes before distributed DOFs- A "Dof" object now has a global index (for future use)
- "-info" command renamed to "-feminfo" to avoid conflict with PETSc
- Added an option to override the index of a RHS (needed for gmshDDM with multiple RHS)- A "Dof" object now has a global index (for future use)
- "-info" command renamed to "-feminfo" to avoid conflict with PETSc
- Added an option to override the index of a RHS (needed for gmshDDM with multiple RHS)https://gitlab.onelab.info/gmsh/fem/-/merge_requests/74Distributed (MPI) problems2024-03-21T10:37:07ZBoris MartinDistributed (MPI) problemshttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/73Update README.md2023-11-03T18:01:40ZPhilippe MarchnerUpdate README.mdChristophe GeuzaineChristophe Geuzainehttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/72Update README.md2023-10-16T18:56:41ZPhilippe MarchnerUpdate README.mdChristophe GeuzaineChristophe Geuzainehttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/71Update Helmholtz flow examples - Pierce operator2023-10-14T07:08:15ZPhilippe MarchnerUpdate Helmholtz flow examples - Pierce operator- update and document point source in freefield example
- add validation benchmark for the Pierce operator- update and document point source in freefield example
- add validation benchmark for the Pierce operatorChristophe GeuzaineChristophe Geuzainehttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/70Refactoring storage of PETSc objects2023-09-25T08:22:20ZBoris MartinRefactoring storage of PETSc objectsAdded a wrapper class for storing PETSc "Vec" and "Mat", reducing micro-managment and making copis easier.Added a wrapper class for storing PETSc "Vec" and "Mat", reducing micro-managment and making copis easier.https://gitlab.onelab.info/gmsh/fem/-/merge_requests/69Multiple RHS support (+ Solve with HPDDM)2023-09-22T13:27:19ZBoris MartinMultiple RHS support (+ Solve with HPDDM)A formulation now stores a vector of RHS, and all can be solved at once through HPDDM's KSPMatSolve.
- [x] Completely remove the old "b" vector
- [x] Cleanup of the config
- [ ] Proper tutorial and benchmark
- [ ] Possibility of solving...A formulation now stores a vector of RHS, and all can be solved at once through HPDDM's KSPMatSolve.
- [x] Completely remove the old "b" vector
- [x] Cleanup of the config
- [ ] Proper tutorial and benchmark
- [ ] Possibility of solving all without HPDDM (slow but portable)
- [x] Is a new prepro needed ?
Some day: work on BLAS parallelizationhttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/68added option to remvoe a term given it's tag2023-09-22T13:31:03ZBoris Martinadded option to remvoe a term given it's taghttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/67Can now load vector from file2023-05-09T13:18:10ZBoris MartinCan now load vector from filehttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/66Draft: Acoustic pml study2023-05-09T12:49:36ZBoris MartinDraft: Acoustic pml studyhttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/65Gmsh fem gmsh opti2023-02-21T11:08:02ZChristophe GeuzaineGmsh fem gmsh optiSpeed up Domain creation with physical name with new `getEntitiesForPhysicalName` Gmsh API call.Speed up Domain creation with physical name with new `getEntitiesForPhysicalName` Gmsh API call.Christophe GeuzaineChristophe Geuzainehttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/64New cases for studying PML behavior on plane waves2023-01-31T11:19:08ZBoris MartinNew cases for studying PML behavior on plane waveshttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/63Solution vector from Formulation::solve()2023-02-15T16:41:44ZNicolas MarsicSolution vector from Formulation::solve()Hi everyone,
I'd like to access the whole solution vector of a `Formulation`.
Is there already a handy way to do so?
I know we can play with `FieldInterface::getUnknownValues()` and `FieldInterface::getUnknownIndices()`, but that's not...Hi everyone,
I'd like to access the whole solution vector of a `Formulation`.
Is there already a handy way to do so?
I know we can play with `FieldInterface::getUnknownValues()` and `FieldInterface::getUnknownIndices()`, but that's not very convenient when there's more than one field.
If there's no simpler way to do so, this MR proposes to expose the solution vector by adding a `Formulation::solve(bool, Vector)` method.
Any comments or changes are of course more than welcome :).
Cheers,
Nicolas.Boris MartinBoris Martinhttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/62Seg. fault when reusing the factorization2023-02-15T16:42:41ZNicolas MarsicSeg. fault when reusing the factorizationHi everyone,
First of all, let me wish you a happy new year :)!
Reusing the factorization with `Solver::solve(true)` leads to a segmentation fault.
I guess the cause is
```
_A->removePetscData();
_b->removePetscData();
```
at the end ...Hi everyone,
First of all, let me wish you a happy new year :)!
Reusing the factorization with `Solver::solve(true)` leads to a segmentation fault.
I guess the cause is
```
_A->removePetscData();
_b->removePetscData();
```
at the end of `solve()` (lines [153-154](https://gitlab.onelab.info/gmsh/fem/-/blob/master/src/system/Solver.cpp#L153)), which kills the operator, making thus the reuse impossible.
My impression was that it worked a while ago, so I dig a bit: these lines were introduced in commit 49a1a43e, which fixes some memory leaks.
So I'm not sure how to fix this bug without breaking other stuffs...
This MR suggests to simply remove the two `removePetscData()`, as it seems that this task is already handled by `MatrixFactory<>::~MatrixFactory()`.
It works (no leak and no seg. fault) in the simple case
```
// [...]
formulation.solve(false);
formulation.solve(true);
// [...]
```
but I'm perhaps missing something?
Any thoughts?
Cheers,
Nicolas.Boris MartinBoris Martinhttps://gitlab.onelab.info/gmsh/fem/-/merge_requests/61add FieldInterface<>::numberOfLinkedDofs()2022-12-13T12:02:44ZNicolas Marsicadd FieldInterface<>::numberOfLinkedDofs()Hi everyone,
Seems that the implementation of `FieldInterface<>::numberOfLinkedDofs()` is missing.
This patch adds it, by following the same strategy than `FieldInterface<>::numberOfFixedDofs()`
Cheers,
Nicolas.Hi everyone,
Seems that the implementation of `FieldInterface<>::numberOfLinkedDofs()` is missing.
This patch adds it, by following the same strategy than `FieldInterface<>::numberOfFixedDofs()`
Cheers,
Nicolas.