Releases: FreeFem/FreeFem-sources
FreeFEM v4.6
Warning: this is an automatic release. If you encounter some trouble with packages, post a message in the forum.
Added
- new function
hasType
to know if a PETSc component has been installed, e.g.,hasType("PC", "hypre")
- eigenvalue problems on linear elements, cf.
examples/eigen/LapEigen1DBeltrami.edp
orexamples/hpddm/laplace-beltrami-3d-line-SLEPc.edp
--download-cmake
in PETSc configure if there is no CMake available- flags
--with-[slepc|slepccomplex]-include
and--with-[slepc|slepccomplex]-ldflags
for when SLEPc has been built outside of FreeFEM or PETSc - interface to
KSPSetResidualHistory
andKSPGetIterationNumber
- interface to
mpiWaitAll
- new function extract, allows to build a curve mesh from a 2d mesh (can extract a labeled boundary, apply a geometric transformation)
- ffglut can plot a vectorial FE function in surface 3d
- distributed ParMmg interface, cf.
examples/hpddm/distributed-parmmg.edp
orexamples/hpddm/laplace-adapt-dist-3d-PETSc.edp
- new parallel interpolator on non-matching meshes, cf.
examples/hpddm/transfer.edp
- ability to solve problems in single precision or with 64 bit integers
Changed
- new
tgv
values: -10 => zero row, -20 => zero row/column - Windows binary now shipped with PETSc/SLEPc
- BEM examples are now in
examples/mpi
- plot border type is now in 3d (border 2d and 3d)
- PETSc version 3.13.0
Deprecated
Fixed
--enable-download_package
may now be used to download a single package, e.g.,--enable-download_metis
- compilation of PETSc under Windows
- compilation of plugins when using static libraries
- correct detection problem in FE type when use a vectorial FE
- macro concatenation with spaces in arguments
FreeFEM v4.5
Added
- new
mmg
andparmmg
(parallel mmg) plugins interfacing mmg5 and parmmg libraries, to replacemmg3d-v4.0
andfreeyams
(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.eatspace
to reach eof on istream file which return false in case of EOF. - function
f.length
to get the istream file length - Interface to
PetscLogStagePush()
/PetscLogStagePop()
- Ability to directly assemble a
Mat
using avarf
- New
bem
plugin 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
Changed
- 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
Deprecated
- freeyams plugin
- mmg3d-v4.0 plugin
Fixed
- fix plot for curve mesh
FreeFEM v4.4.3
Added
- 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
mpiCommSelf
keyword- Nt variable defines the normal to the surface ( in case meshS but set to 0 in line mesh )
- correct eigen values to get eigen vectors for border finite element spaces (surface and line)
- add examples for border FEM
Changed
- function buildSurface(...) renamed by buildBdMesh(...)
- line3(...) renamed by SLine(...)
Removed
- 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)
dscalprod
routine from HPDDM and PETSc plugins, useA(u, v)
withA
aMat
or aschwarz
objectexport
function formacro_ddm.idp
, usesavevtk
as in the sequential iovtk plugin
Fixed
- 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
FreeFEM v4.4.2
Warning: this is an automatic release. If you encounter some trouble with packages, post a message in the forum
Added
- 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
lockOrientation
to 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.edp
andhelmholtz-2d-mg.edp
showing 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
Mat
andschwarz
types - add mpi meshS (serialize object)
Changed
- 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
Fixed
- spurious output in PARDISO
- fix problem in ffglut (AF)
- detect hdf5 and gsl if no enable-download
FreeFEM v4.4
Warning: this is an automatic release. If you encounter some trouble with packages, post a message in the forum
Added
- 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
Changed
- 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
IterativeMethod
andDDM
.mesh
are now saved using version 2 (which stores floating-point scalars in double precision)
Removed
- legacy linear solver interfaces using the old matrix type
- dot products using CBLAS because of errors at link time
- Newtow function (bad name)
Fixed
- assertion failure with some 3D meshes when doing
trunc(Th, true)
(thanks to F. Feppon) - compile error when plotting arrays of vectorial functions
FreeFEM v4.2.1
Warning: this is an automatic release. If you encounter some trouble, please post a message on the forum
Added
- 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
develop
branch - new gestion of mesh3 - meshS coupling
- square3, buildSurface, ... operators for meshS
Changed
- 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 build
macros 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
Removed
- 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
Fixed
- 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
Cofactor
function - various bug fixes on surface mesh
FreeFEM v4.1
4.1
Fixed
- 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
Added
- CMake, thanks to https://github.com/cdoucet
- Surface finite element, thanks to AFourmont
- AppImage generation, thanks to Alexander Sashnov
Changed
- PETSc/SLEPc version 3.11.1
FreeFEM v4.0
- 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, methode 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]
Freefem++-v4-beta
First version of the v4 pre compile version (now development branch
4b1a1a0 ) in test.
on Mac version El Capitain (10.11.6) or better http://www3.freefem.org/ff++/ftp/FreeFem++-4.0-MacOS_10.11.pkg ( 387.5 Mb, Jan 18, 2019 17:36:05.)
win64: http://www3.freefem.org/ff++/ftp/FreeFem++-win64-4.0-beta.exe ( 3.2 Mb, Jan 18, 2019 17:41:08.)
Source version: http://www3.freefem.org/ff++/ftp/freefem++-4.0-beta.tar.gz
FreeFem++-v3.62
Added
-
add x0=true/false, add veps=eps in solver parameters to initiaze 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)
Fixed
- Fix bug in
trunc
(2d) in case of very fine mesh (eps too small)