All notable changes to this project will be documented in this file.
- for windows version: rename under mpi
MUMPSinMUMPS_mpiand in sequentiel inMUMPS_seqdue to confict between seq. and mpi version so all MUMPS load becomeMUMPS_seqorMUMPS<-mpiin all examples - correct link edition with fortran mpi under windows juste use the msmpi (just use
libmsmpi.dll) - new
mmgandparmmg(parallel mmg) plugins interfacing mmg5 and parmmg libraries, to replacemmg3d-v4.0andfreeyams(Thanks to P-H Tournier) - a true 3d anisotropic mesh adaptation
examples/3d/Laplace-Adapt-aniso-3d.edp - an example to extract surface mesh from isovalue in
examples/3dSurf/Pinochio.edp - function
f.eatspaceto reach eof on istream file which return false in case of EOF. - function
f.lengthto get the istream file length - Interface to
PetscLogStagePush()/PetscLogStagePop() - Ability to directly assemble a
Matusing avarf - New
bemplugin for the Boundary Element Method (using htool and BemTool libraries) - New DSL for BEM (varfbem see examples/bem)
- add int0d to apply Neumann BC (curve FE), differential operators (dx,dy,...), compute an 1d integral
- add P1dc FE for Border FEM (possible to define a new FE with plugin)
- PETSc as a subdomain solver for HPDDM
- correct ffglut (bug in case of changing number of nb isovalue)
- PETSc version 3.12.4
- Change the point search triangle algorithm to be sure in any case (in test)
- Sline operator renamed to segment
- In square3, segment, movemesh functions: geometry transformation can now be [X] or [X,Y] or [X,Y,Z] according to the minimal shape element dim
- PETSc now download OpenBLAS if there is no BLAS found by FreeFEM configure
- freeyams plugin
- mmg3d-v4.0 plugin
- fix plot for curve mesh
- Preliminary support for symmetric distributed PETSc matrices (MATMPISBAIJ instead of MATMPIAIJ)
- Interface to AMS, Hiptmair--Xu preconditioner for problems in H(curl), see maxwell-3d-PETSc.edp
- FEM on curve 3D (in test)
- P0, P1, P2 curve 3D FE (scalar for the moment)
- i/o medit and vtk format for curve FE
- checkMesh() function, allow to remove multiple vertices, elements and border elements (argument: precisvertice(double),removeduplicate(bool))
- possible to build a curve mesh from a surface, ThS = buildBdMesh(ThS) and define this new mesh by meshL ThL= ThS.Gamma
- can extract a border part of a meshL (meshL ThL = extract(ThL,label=llabs))
- Support for optimized boundary conditions with PETSc, see helmholtz-2d-PETSc-complex.edp
- buildmeshL() function: build meshL from borders
mpiCommSelfkeyword
- function buildSurface(...) renamed by buildBdMesh(...)
- line3(...) renamed by SLine(...)
- FFTW is not compiled by PETSc anymore
- Spurious outputs in TetGen plugin
- curve3 type -> border
- hypre examples since it is not downloaded by FreeFEM for many months (use PETSc instead)
dscalprodroutine from HPDDM and PETSc plugins, useA(u, v)withAaMator aschwarzobjectexportfunction formacro_ddm.idp, usesavevtkas in the sequential iovtk plugin
- plotMPI function for plotting 3D solutions, problem with serialize
- variable mes in clean_mesh function
- correct bug verflow in plugin iohdf5
- correct problem with buffer iostrean function (buffer must be out of range )
- correct i/o vtk and by defaut write at binary format
- fix an overflow in RT13d FE
- problem with auto-build of border mesh
- add matrix and array tools (FH)
matrix A=eye(10); real[int,int] af = eye(10,10); real[int,int] a(10,10); int[int] I=[1,3,6]; real[int] d = a.diag ; // get the diag of full matrix (no copy) real[int] dI= d(I); // init a array from renumbering array real[int] c= a(:,1)(I); // init a array from renumbering array real[int] aa= a.asarray; // view full the matrice as an array (no copy) a(2:5,3:7).diag= 200; a.diag += 100; - adding of a global variable
lockOrientationto allows the building of mesh without checking the orientation elements (AF) - add plugin tool to build matrix edge/P1 with sign
mat_edgeP1(FH) - new examples
diffusion-2d-mg.edpandhelmholtz-2d-mg.edpshowing how to use user-defined coarse corrections - support for nonzero scalars in PETSc block matrices
- simpler constructor for sequential HPDDM matrices (no need for the restriction array and the partition of unity)
- array of
Matandschwarztypes - add mpi meshS (serialize object)
- correct mistake in mpirank in case of broadcast with comm (thank tp PHT)
- update fftw to v3.3.8 and openblas v0.3.6
- in movemesh23 correct the argument label -> region to change label
- new implementation for the moving mesh functions, new arguments: boolean cleanmesh, removemultiple, rebuildborder
- new PETSc version 3.12
- templatize movemesh, setMesh functions
- add conditional tests in make check
- spurious output in PARDISO
- fix problem in ffglut (AF)
- detect hdf5 and gsl if no enable-download
- interface to
TSSolve, DAE/ODE solvers from PETSc - interface to
TaoSolve, Toolkit for Advance Optimization from PETSc - simpler constructor for sequential PETSc matrices (no need for the restriction array and the partition of unity)
- some unit tests
- PETSc version 3.11.3
- replaced custom implementations (
RNM::real,RNM::norm2, andFem2D::norm) by C++11 functions - API of the macro
plotMPI - switched to inexact coarse operators in HPDDM by default
- RHS and solution vectors permuted in
IterativeMethodandDDM .meshare now saved using version 2 (which stores floating-point scalars in double precision)
- legacy linear solver interfaces using the old matrix type
- dot products using CBLAS because of errors at link time
- Newtow function (bad name)
- assertion failure with some 3D meshes when doing
trunc(Th, true)(thanks to F. Feppon) - compile error when plotting arrays of vectorial functions
- nested fieldsplit example
examples/hpddm/natural-convection-2d-PETSc-fieldsplit.edp int[int][int] array;is now supported (a size was previously needed, i.e.,array(0);)- check selectivity during
make check, depending on available 3rd party librairies - new CI/CD tools for
developbranch - new gestion of mesh3 - meshS coupling
- square3, buildSurface... operators for meshS
- SLEPc is now directly downloaded by PETSc with
--download-slepc - HPDDM and PETSc API have been simplified, instead of an
int[int]and anint[int][int], only a singleint[int][int]is now needed buildmacros for HPDDM and PETSc have been simplified to follow the above API change, two parameters have been permuted as well to match the HPDDM and PETSc constructors- PETSc version 3.11.2 and HPDDM with multilevel GenEO
- old interfaces that were not maintained anymore (pARMS, PaStiX, hips) and that are available through PETSc
- spurious outputs when destroying some meshes
- old surface msh3 type, replaced by meshS
- multiple segmentation faults when using unitialized values (thanks to G. Sadaka)
- nested fieldsplits in the PETSc interface
- memory leaks in
SNESSolve(nonlinear PETSc solvers) - bug fix of
Cofactorfunction - various bug fixes on surface mesh
- missing conj operation is some hermitian operation on complex sparse matrix like A+cB', AB' thanks to P-H Tournier
- writing CheckAllEdp to be compatible with new tree
- fix eps in trunc in case of very anisotrope mesh, Thank G. Sadaka
- CMake, thanks to https://github.com/cdoucet
- Surface finite element, thanks to AFourmont
- AppImage generation, thanks to Alexander Sashnov
- PETSc/SLEPc version 3.11
- correct bug in RT1Ortho and RT2Ortho 2d in the computation of derivative (2018-01-30, Thank to Bryan.Bosworth@colorado.edu)
- uniformize 2d/3d in element, method EdgeOrientation(e) now return +1/-1
- change all the sparse matrix structure
- remove all map matrix jan 2019
- surface finite element (in progress)
- nElementonB (version 2d and 3d of nTonEge)
- area ( same the lenEdge) in 3d
- add function labels to get the array of label of a mesh
- add function regions to get the array of label of a mesh
- correct big bug in toRarray,toZarray, toCarray transform [ ... ] array to int[int], real[int], complex[int]
3.62 - 2018-08-31
- add x0=true/false, add veps=eps in solver parameters to initialazed of not the the CG , GMRES algo with 0 or previous value and veps is to get the absolue tolerance
- A tool of solve adjoint matrix A with only one single LU decomposition with LU, UMFPACK, GMRES
u[]=A'^-1*b; - Add plugin to save matrix in Harwell-Boeing format (see Harwell-Boeing format)
- Fix bug in
trunc(2d) in case of very fine mesh (eps too small)
3.61 - 2018-06-20
- Add name parameter
kerneln=,kernelt=,kerneldim=for dissection solver - Add option in method
toClosefunction infquatreeto get the nearst point (for intersect meshes) - Add missing file
curvature.edp - Add
imax,jmax,imin,jminto get index of row or column of the min or max coefficient
We have:A(A.imin,A.jmin) = A.min - Add cosmetics in macro (macro name, macro line...)
- Pass to PETSc/SLEPc version 3.8.4/3.8.3
- Fix launchff.exe bug under windows 64 to choose a filescrip if no parameter
- Fix the label definition in case of
intalledgesin 2d - Fix mpi_comm with MUMPS (very rare)
- The main distribution is now on Github