SciFEM-Project_CoffeeMugSim.../mgrid_2
2026-01-24 13:41:56 +01:00
..
ascii_read_meshvector.m copied the templates 2026-01-19 10:45:46 +01:00
binaryIO.cpp copied the templates 2026-01-19 10:45:46 +01:00
binaryIO.h copied the templates 2026-01-19 10:45:46 +01:00
CMakeLists.txt copied the templates 2026-01-19 10:45:46 +01:00
cuthill_mckee_ordering.cpp copied the templates 2026-01-19 10:45:46 +01:00
cuthill_mckee_ordering.h copied the templates 2026-01-19 10:45:46 +01:00
Doxyfile copied the templates 2026-01-19 10:45:46 +01:00
el_main.cpp copied the templates 2026-01-19 10:45:46 +01:00
el_Makefile copied the templates 2026-01-19 10:45:46 +01:00
elements.cpp copied the templates 2026-01-19 10:45:46 +01:00
elements.h copied the templates 2026-01-19 10:45:46 +01:00
generateCRS.cpp copied the templates 2026-01-19 10:45:46 +01:00
geom.cpp added functions to get outer edges 2026-01-24 13:41:56 +01:00
geom.h added functions to get outer edges 2026-01-24 13:41:56 +01:00
getmatrix.cpp convert mesh to meters, more coefficients 2026-01-24 00:45:46 +01:00
getmatrix.h convert mesh to meters, more coefficients 2026-01-24 00:45:46 +01:00
jacsolve.cpp copied the templates 2026-01-19 10:45:46 +01:00
jacsolve.h copied the templates 2026-01-19 10:45:46 +01:00
main.cpp Init_Solution_mult (initialize on subdomains) + finer mesh 2026-01-23 17:43:13 +01:00
main.cpp.orig copied the templates 2026-01-19 10:45:46 +01:00
Makefile copied the templates 2026-01-19 10:45:46 +01:00
numresults.pdf copied the templates 2026-01-19 10:45:46 +01:00
README.md copied the templates 2026-01-19 10:45:46 +01:00
tet_elem.m copied the templates 2026-01-19 10:45:46 +01:00
userset.cpp copied the templates 2026-01-19 10:45:46 +01:00
userset.h copied the templates 2026-01-19 10:45:46 +01:00
utils.h copied the templates 2026-01-19 10:45:46 +01:00
uv.txt convert mesh to meters, more coefficients 2026-01-24 00:45:46 +01:00
vdop.cpp copied the templates 2026-01-19 10:45:46 +01:00
vdop.h copied the templates 2026-01-19 10:45:46 +01:00
visualize_results.m convert mesh to meters, more coefficients 2026-01-24 00:45:46 +01:00

gmgrid: Geometric multigrid on CPU (OpenMP)

Status on 2025-May-14

  • The multigrid part is deactivated via *#undef MG in main.cpp and so only a simple Jacobi iteration is performed as solver.
  • make run
  • or main.GCC_ levels with number of levels in [0,7].

Data structures/implementation for GPU

  • use data structures from cg_2:Framework for preconditioned solvers on GPU and CPU
  • suggested: class vec from vdop_gpu.h
  • suggested: class CRS_Matrix_GPU from crsmatrix_gpu.h
  • use cuBLAS, cuSPARSE and more libraries whenever possible.

current code structure

  • main.cpp
  • binaryIO.cpp : reads CRS matrix and vector from files
  • vdop.cpp : some basic vector operations on CPU, also in utils.h
  • geom.cpp : reads the coarse geometry, performes mesh handling and includes mesh hierarchy
  • getmatrix.cpp : compressed row storage matrix and its generation from a 2D mesh
  • cuthill_mckee_ordering.cpp : graph reordering to minimize the bandwidth
  • jacsolve.cpp : Jacobi solver/smoother for a linear system of equations with CRS matrix; multigrid solver
  • elements.cpp : more general elements - experimental. Try with el_main.cpp
  • generateCRS.cpp : Reads mesh files and generates files output with stiffness matrix (Laplace) and right hand side.