Code Monkey home page Code Monkey logo

mfem-mgis's People

Contributors

gauthier12 avatar latug0 avatar maxence-wz avatar rprat-pro avatar thelfer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mfem-mgis's Issues

Using HypreDiagScale preconditioner

MFEM proposes to use the HypreDiagScale preconditioner that is just a Jacobi preconditioner in hypre. Among Hypre preconditioners, this is the only one with "identity" (useless I guess) that is not implemented in MFEM-MGIS.

Is it because it's a pretty simple preconditioner? Since I do a performance analysis for all solvers/preconditioners, even though I don't expected anything with such a preconditioner, I was wondering if it was voluntary.

Prediction of the solution

The current Newton solver may failed because the direct imposition of Dirichlet boundary conditions leads to high strain increment on boundaries where those conditions are applied.
An elastic or tangent prediction of the solution is classically used to mitigate this issue.

Using HypreILU

HypreILU is automatically disabled by the compilation flag: -DHYPRE_OLD_VERSION

This option is defined in CMakeLists.txt:15 and I can confirm that this option works as expected ...

# HypreILU is not defined for old versions of Hypre
# Comment this line for newest Hypre librarires
ADD_DEFINITIONS(-DHYPRE_OLD_VERSION)

Regarding MFEM, we check that the Hypre version is recent, ie hypre >= 2.19v (code below).
mfem/linalg/hypre.cpp:

#if MFEM_HYPRE_VERSION >= 21900
HypreILU::HypreILU()
{
   HYPRE_ILUCreate(&ilu_precond);
   SetDefaultOptions();
}
etc...

So, if HYPRE_OLD_VERSION is only used to handle the use of HypreILU, we could do the code below, right? Or did I miss something again?

if(HYPRE_VERSION VERSION_LESS 2.19) # HYPRE_VERSION env variable
ADD_DEFINITIONS(-DHYPRE_OLD_VERSION)
message(STATUS "HypreILU is disabled")
else()
message(STATUS "youpi, tu peux utiliser HypreILU")
endif()

Raphaël

JOSS paper

Write a paper to describe library mfem-mgis

String identifiers for materials and boundaries

The final user imports a mesh at the beginning of each numerical simulation.
MFEM typically deals with material ids and boundary ids, but these are integers and are not very pratical to deal with because user has to remind exactly which identifier is associated with each material/boundary.
We would like a support for using string identifiers in the input parameters and postprocessing to simplify user's life to replace integer ids.
This could be well coordinated with MED support that provides such kind of string references.
Remark : GMSH reader of MFEM will typically not retrieve the information of string idenftifiers from the mesh (it would require much work to do this addtionnal feature), we will not target for the moment to have extended suppor to read string identifiers from GMSH files.

Add heat sources

I'm trying to solve a heat problem with MFEM-MGIS but I didn't find a way to add a heat source.
Is it possible to add that possibility ?
In pure MFEM it would be something like this :

  Vector powerDendity(mesh.attributes.Max());
  powerDendity = 0.;
  powerDendity(1) = 1.e6;
  PWConstCoefficient powerDendity_func(powerDendity);

  ParLinearForm b(&fespace);
  b.AddDomainIntegrator(new DomainLFIntegrator(powerDendity_func));
  b.Assemble();

Add installation with PETSC : spack install mmm+petsc

Petsc package is currently not linked correctly when using the new installation way.

gcc-11.3.0/mfem-4.5.0-bq2b467degenr2a5wizfskvzs4hus3c7/include/mfem/linalg/petsc.hpp:29:10: fatal error: petscconf.h: No such file or directory
   29 | #include "petscconf.h"
      |          ^~~~~~~~~~~~~

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.