Releases: FreeFem/FreeFem-sources
Releases · FreeFem/FreeFem-sources
FreeFEM v4.12
FreeFEM v4.11
Remark on Apple version, the two versions (M1, intel) are in test (full version with PETSC, mpi, all linear solve except PARDISO)
There is a problem of installation on arm and Intel version with external dynamic lib (.dylib)
I put a d version to solve dylib each
Follow the README.md in dmg file (in version -c) correction of install-app.sh script
What's Changed
- Fixed the missing character in dirname by @zhaog6 in #214
- Housekeeping by @prj- in #215
- Ablity to use .pvtu files for parallel postprocessing with ParaView by @mohd-afeef-badri in #210
- Replaced several occurrences of "Foobar" by "FreeFEM" by @f-florian in #222
- add (EPS/PEP/NEP)GetErrorEstimate by @aszaboa in #223
- Version v4.11 by @prj- in #224
New Contributors
- @mohd-afeef-badri made their first contribution in #210
- @f-florian made their first contribution in #222
Full Changelog: v4.10...v4.11
FreeFEM v4.10
Added
- ridgeangle named parameter in ExtractMeshL in msh3 plugin
- DG formulation in 1d :
add integral of all border of element :intallBE(ThL)
and unified the notation by adding
intallBE(ThS)
,intallBE(Th2)
,intallBE(Th3)
nuVertex
of now the vertex number of element in intallBE0d integral
BoundaryBE
,InternalBE
to know if border element (BE) is on true boundary of not.
updatenElementonB
in case on no manifold data (value greater > 2) in meshL, MeshS case ..
add code to use jump, mean of test functuon on MeshL case. ( not in mesh3 ) to compute RHS. - add getcwd() function in shell plugin to ghet the current working dir
- add nuVertex to get the vextex on element in some int?
Changed
- PETSc 3.16.1
Deprecated
- SLEPc and SLEPc-complex have been part of PETSc and PETSc-complex for multiple releases and are now deprecated
Fixed
- examples/potential.edp correct problem in times loops and BC
- tutorial/mortar-DN-4.edp correct problem of region number in meshL
- fix problem in Curve mesh and intallBE , vertex number is wrong
- portability issue on arm64-apple with
make petsc-slepc
- fix assertion failure with
transfer
andtransferMat
with some finite elements
What's Changed
- Overloading the modulo operator for doubles and longs by @m-schindler in #174
- other directory no longer there by @bkmgit in #177
- fix typo by @bkmgit in #180
- Find petsc on Debian system. by @mzf-guest in #189
- Fix spelling errors in binaries. by @mzf-guest in #188
- Fix executable path in ffmaster for Linux. by @mzf-guest in #190
- PEP example by @aszaboa in #191
- Remove unnecessary array allocations and devil numbers by @zhaog6 in #197
- Develop by @lcirrottola in #199
- Petsc htool by @prj- in #182
- Portability fix for arm64-apple by @prj- in #207
- Version v4.10 by @prj- in #208
New Contributors
- @m-schindler made their first contribution in #174
- @bkmgit made their first contribution in #177
- @mzf-guest made their first contribution in #189
- @aszaboa made their first contribution in #191
Full Changelog: v4.9...v4.10
FreeFEM v4.9
Added
- add P3 lagrange finite element on meshS and meshS
- add new plugin
meshtool
to add tool to compute the number of connected components of a all kind of mesh
(mesh,mesh3,meshS,meshL) with 2 kind of connected components ones on interior part of the mesh (default) ans
secondly on the closure of the mesh (seeexamples/hpddm/bConnectedComponents.edp
)
add functions int[int] In=iminP1K(Th,u) or int[int] Ix=imaxP1K(Th,u) get the array min/max of value u[i]
where i is vertex number on each element k, so we have u[Im[k]] = min u[i]/ i in k; - add in plugin
bfstream
to to read binary int (4 bytes) to read fortran file and try to pull tools to share the endiannes
in progress - add gluemesh of array of MeshL and MeshS type
- interface to
PC_MG_GALERKIN_BOTH
- Kronecker product of two sparse matrices
matrix C = kron(A, B)
- add lot of finite element on Mesh3, MeshS, MeshL of Discontinous Galerling Element
in 3d : P1dc3d, P2dc3d, P3dc3d, P4dc3d , P0edge3d ,P0edgedc3d , P0face3d ,P0facedc3d , P0VF3d ,P0VFdc3d ,
on Surface : P1dcS, P2dcS, P3dcS, P4dcS , P0edgeS ,P0edgedcS , P0VFS ,P0VFdcS,
on Curve : P1dcL, P2dcL, P3dcL, P4dcL , P0VFL ,P0VFdcL
remark; the associated generic name existe of P1dc, P2dc, P0edge, P0VF and all dc finite element corresponding to
no continuity across element. - add code of intallfaces to do Discontinous Galerkin formulation in 3d (in test FH.)
Changed
- Now the order to find MPI in configure is first if you have PETSC then take MPI from PETSc
otherwise use previous method - on MeshL defined with buildmeshL now the default label are 2k-1 (resp. 2k) for the begin (resp. end) of curve
where k is the order of curve use in buildmeshL. So if you have one curve the labels are 1 and 2.
And new the element label are te region number not the label.
This element are not really test so be carfull. - PETSc 3.15.0
Fixed
- bug in Find triangle contening point in 2d (border case),
int Mesh::DataFindBoundary::Find(R2 PP,R *l,int & outside) const
the parameter l not correclty return due to local variable. - set CFLAGS=-Wno-implicit-function-declaration to complie with Apple clang version 12.0.0 (clang-1200.0.32.29)
to remove following error: implicit declaration of function
correct3dCurve/basicGlue.edp
and add missing test - bugs in SLEPc
SVDSolve()
with a rectangularMat
- bugs in nElementonB for DG 3d formulation.
FreeFEM v4.8
Added
- Bilaplacian example using Morley FE with PETSc, see
examples/hpddm/bilaplacian-2d-PETSc.edp
- Oseen problem preconditioned by PCD, see
examples/hpddm/oseen-2d-PETSc.edp
- SLEPc polynomial eigenvalue solver
PEPSolve()
- add trivail example to check periodic boundary condition on meshS , meshL , mesh3
examples/3d/periodic3.edp examples/3dSurf/periodicS.edp
examples/3dCurve/periodicL.edp
Changed
- PETSc version 3.14.2
- Mmg version 5.5.2
- link of ffglut so change in configure.ac and Makefile.am LIBS -> FF_LIBS and LIBS become empty
to remove default libs - change number of save plot in ffglut from 10 to 20 for O. Pironneau
Fixed
- some memory leaks
- the periodic boundary condition have wrong before first a sementic level of MeshS and MeshL case.
the new syntexe is for example:
meshL Tl=segment(10); fespace Vl(Tl,P1,periodic=[[1],[2]]);
meshS Th=square3(10,10,[x2pi,y2pi]); fespace Vh2(Th,P1,periodic=[[1,x],[3,x],[2,y],[4,y]]); - fixed '*' keyboard trick, to keep the viewpoint in ffglut or not.
FreeFEM v4.7-1
Changed
- change the language definition to use type as a construction function with named arguments for bem plugin
- PETSc version 3.14.0
- ARPACK compiled by SLEPc
- Mmg version 5.5.0
- -std=c++14 instead of -std=c++11 when possible
Removed
- plugins thresholdings, symmetrizeCSR, and fflapack and associed example
Fixed
- problem compilation with gfortran-10 of arpack and mumps (add -fallow-argument-mismatch flags)
FreeFEM v4.7
Added
- add
Ns
normal vector in R^3 on meshS (normal of the surface) of current point (to day Ns of [x,y,0] plan is [0,0,-1]) no be compatibe to exterior normal. - add
Tl
tangent vector in R^3 on meshL (tangent vector of the line/curve) of current point - compile ffmaster / ffslave example under windows (thanks to johann@ifado.de)
- Boolean parameter
spiltpbedge
inbuildmesh
to split in to edge with two boundary vertices - interface to PETSc DMPlex, see
examples/hpddm/DMPlex-PETSc.edp
- function
MatDestroy
- function
MatPtAP
andtransferMat
for parallel interpolation between non-matching grids, seeexamples/hpddm/PtAP-2d-PETSc.edp
orexamples/hpddm/diffusion-mg-2d-PETSc.edp
- preliminary interface to
SVDSolve
from SLEPc to compute singular value decompositions, seeexamples/hpddm/mf-2d-SLEPc.edp
orexamples/hpddm/helmholtz-2d-SLEPc-complex.edp
- preliminary interface to
NEPSolve
from SLEPc to solve nonlinear eigenvalue problems, seeexamples/hpddm/nonlinear-2d-SLEPc-complex.edp
transpose
parameter when constructing aMat
for defining a matrix-free transposed operation- interface to
PetscMemoryGetCurrentUsage
- add P2b, RT0, RT1 surface FE (P2bS, RT0S, RT1S))
- add operator interpolate (2d->3d surface)
- add operator x = A'*b; where x, b are array and A 2 dim array (full matrix) and generate an error in case of b'*A or b'*A expression
- function
MatLoad
to load a PETScMat
from disk, seeexamples/hpddm/MatLoad-PETSc.edp
- possibility to assemble a symmetric
HMatrix<complex>
and to densify aHMatrix<complex>
into aMat<complex>
Changed
- moved Htool to its new GitHub location
- ScaLAPACK and MUMPS are not compiled by PETSc anymore if there is no Fortran compiler
- MPICH is compiled by PETSc if no MPI is detected during configure, see https://community.freefem.org/t/feature-request-use-download-mpich-on-ubuntu/407
- PETSc version 3.13.5
- force
--with-cudac=0
inmake petsc-slepc
, see #141 - change DSL keyword P1dc3dL->P1dcL and P1dc3dS->P1dcS
- rename
view
,hasType
,changeSchur
to respectivelyObjectView
,HasType
, andChangeSchur
Deprecated
- rename
changeNumbering
,globalNumbering
,originalNumbering
,changeOperator
,destroyRecycling
, andattachCoarseOperator
to respectivelyChangeNumbering
,GlobalNumbering
,OriginalNumbering
,ChangeOperator
,DestroyRecycling
, andAttachCoarseOperator
Nt
the normal vector of the current (wrong on meshL) useNs
prTl
Removed
augmentation
routine from the PETSc pluginMPIF77
variable
Fixed
- lot of mistake in MeshL element add a example o ckeck lot of thing
tutomesh1d.edp
- fixed problem of change of mesh when rebuild 2d mesh with builmesh, .... (Thank to P. Jovilet to points this problem)
- missing METIS library when using SuiteSparse compiled by PETSc
- missing
-fno-stack-protector
when building PETSc on Windows, see https://community.freefem.org/t/error-loading-complex-petsc-slepc-library/370 - fixed ffglut for the plotting of FE array solution
- fixed ffglut bug on MacOS Catalina , draw inn only half windows screen (Apple Bug ???)
- correct P0VF finite element
abs
function of array
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