- windows build (against my will)
PROGRESSascii_artpercentagenorm- build, KSP, SNES
- implicit call to
SOLVE_PROBLEM? - for/while loops?
- use
DMPlex?- to read non-gmsh meshes?
- to partition meshes on the fly?
- allocate matrices?
- dump states?
- choose to use it or not
FITto mesh-based functionsFITtaking into account uncertainties- extended integration (as in reduced, full, extended)
- make GSL optional
- rewrite BLAS using ad-hoc routines
- profile GSL BLAS vs. manual implementation vs. OpenBLAS
- eigen in C++ (optional)
- define
fee_matrixasgsl_matrixbut allow to change the implementation - wrap all GSL calls inside
#ifdef - use a large chunk of contiguous memory in the heap to store shape functions, gradients, etc
- rewrite BLAS using ad-hoc routines
- optimize MPI usage
- variables
mpi_rank,mpi_size,memory_totalymemory_local(rank)
- variables
- V&V
- fully document tests
- section for MMS
- use the same documentation strategy from
doc/examplesintests - write a
READMEand an explanation of each test - cell-based mesh writes and integrations
FITranges- more MPI tests
- if the elements are straight all the jacobians are the same and there is no need to sweep over gauss points
- make two lists of elements, one for bulk and one for BCs and loop over those
- re-think
fem.cto store per-gauss point data in a cache-friendly way - remove branches (and replace with what?)
- use ad-hoc matrices instead of
gsl_matrix?- have a contiguous array of memory that stores all the per-element matrices in a row-major order
- access them using macros
dhdx(row,col) - mind SSE!
- https://github.com/niswegmann/small-matrix-inverse
- have compile-time macros that will optimize for
- speed
- memory
- something else
- create FeenoX flavors with compile-time
- problem type (so we can avoid function pointers)
- problem dimension (so we can hardcode sizes)
- full or axi-symmetry
- scalar size (float or double)
- all elements are of the same type
- use
MatSetValuesBlocked()
SEMAPHORE+SHARED_MEMORYREAD/WRITEM4(MUSTACHE? MACRO?)SHELLHISTORYPRINT_FUNCTION PHYSICAL_ENTITY-> for dumping and reading back BCsCALLuser routines (check hash of feenox.h)
- vector & matrix assignments & DAEs
- debug mode, line-by-line
- run
feenoxwith an option like-dor--debugand then present a gdb-like interface with print, and step by step advances
- run
- trap and handle signit & sigterm
- Python?
- Julia?
- come up with an example in C
- ask how to set
OMP_NUM_THREADS=1 - logarithmic ranges for
PRINT_FUNCTION - default separator after
TEXTshould be space, after numerical should be tab PRINT_FUNCTIONwith%fin between arguments (likePRINT_VECTOR)BLASBLAS a * b = s # scalar dotBLAS a x b = c # vector crossBLAS A * b = c # matrix-vectorBLAS a + b = c # vectorBLAS A + B = C # matrixBLAS a - b = cBLAS A - B = C
- list symbols with
-l
- GSL error handling
feenox_nan_error()feenox_gsl_handler()
-
formats
- xdmf? (needs DMView() and VecView())
- frd? (to be able to use ccx's post processor... is it worth it?)
- binary msh and vtu
- msh v4.1
- cgns?
- med?
-
full tensors
- expose the vectors with the node coordinates
- check when the matrices do not need to be rebuilt -- use constant flag
- remove the need of needing an explicit
SOLVE_PROBLEM- detect which variables/functions are PDE outputs and call
solve_problem()the first time they are needed
- detect which variables/functions are PDE outputs and call
- benchmark MPI (read
.mshwith partitioning info first) - glue (mortar)
- investigate
-mpi_linear_solver_server - direct elimination for multi-freedom BCs
- third-medium contact?
- poisson f = 1, eta = 0
- helmholtz f = 1, eta = 1
- investigate
dsyrk()instead ofdgemmv()https://stackoverflow.com/questions/47013581/blas-matrix-by-matrix-transpose-multiply
- improve parallel runs
- convection with a separate matrix? think!
- explain that radiation is better off as an expression
- same for total heat sources/bcs
- orthotropic conductivity
- be able to use
$\lambda$ &$\mu$ ,$K$ &$\mu$ , etc. - strain energy for non-linear
- reactions for non-linear
- many volumes
- same models
- different models
- compare with other solvers
- mofem
- fenicsx
- ccx
- code aster
- check
$\det(\mathbf{F}) \neq 0$ - examples
- plasticity
- stresses: count negative jacobians and worst jacobians
- strain energy density
- quasi-static: use PETSc's TS
- if a simple SNES does not converge, convert to TS
- if
$\det{F} \leq 0$ , convert to TS -
PROBLEMAUTO_LOAD_STEPS
- partially-unconstrained DOFs in arbitrary directions
- current in BCs
- FVM?
- allow per-material fission spectrum (it has to be uniform and normalized)
- MMS
- CFD?
- LBM?
- Electromagnetism?
- FVM