Feel++ Release 0.97.3
release date 03-17-2014
Changes since 0.97.2
- Fix Feel++ programming environment and cmake script, see #314
- Install CRB framework properly, see #315
Feel++ Release 0.97.2
release date 03-16-2014
Changes since 0.97.1
- Fix Feel++ programming environment and cmake script, see #314
- Install simple c++ examples (laplacian, stokes, ...) with their associated data (config file, mesh, geometry, ...) , see #311
Feel++ Release 0.97.1
release date 03-16-2014
Changes since 0.97.0
- Fix support for PETSc 3.4.4, see #311
- Fix installation of missing headers in 0.97.0, see #312
- Master branch is now supported in our continuous integration process, see #274
Feel++ Release 0.97.0
release date 03-14-2014
Changes
- Improve documentation, see #300
- Massive reorganisation of headers and files
- Propose an alternative handling of header file: rather than having everything in one header file, include only the necessary header files which reduce compilation times
- Feel++ now uses Travis-CI for Continuous Integration, see here the Feel++ status
- Feel++ is now on Youtube: our videos are uploaded here
- Feel++ is now on Twitter: it shows the github development activity as well as the Feel++ YouTube channel updates. Check it here
Features
- Support Eigen3 to latest stable release 3.2.1
- Support OneLab which enables a graphical interface through Gmsh, see #64
- Support for discontinuous galerkin as well as internal face integration in parallel (1D, 2D and 3D)
- Support discontinuous integration over a range of element (a subset of faces), see #227
- Support ghost cells in ensightgold format for better visualisation (without artefacts between subdomain in 3D), see #243
- Support mortar function spaces, see #36
- Support the empirical interpolation method, see #26
- Support initialization of element of function space with an expression, see #282
- Support keyword to compute the projector to the tangent hyperplan, see #222
- Support keyword to compute the norm2, see #223
- Support keyword on() in element of function spaces, see #213
- Simplified help messages, see #273
Noteworthy Issues
- #309 Add support for isMasterRank() in Environment
- #308 Support Ginac expression evaluation
- #271 Assertion failure in local/global assembly using eigen fixed matrices in 3D p >= 4
- #198 FEELPP_ENABLE_MPI_MODE=OFF code branches are unmaintained and are removed
- #219 Create configure script to generate configuration for cmake
- #224 Define an integer type for mpi rank processes
- #260 Improved support for string Dirichlet condition handling
Feel++ Release 0.96.0
release date 01-02-2014
Changes
- performance improvements in parallel computing: reduce collective operations, rewrite of some internals
- improved Ginac(symbolic calculus) support
- updated documentation to reflect Homebrew(MacOSX) support and the more stringent requirements on the compilers that g++ must be at least 4.6 and clang 3.2
Features
- Feel++ is now fully supported on Mac OS X systems >= 10.9 (Mavericks) using Homebrew and MacPorts
- Feel++ supports creating sequential function spaces out of parallel meshes
- Feel++ supports creating local interpolation operators in subdomains
- Feel++ provides an implementation of the empirical interpolation method (eim)
- Feel++ provides a new reduced basis framework that uses the eim as a central ingredient to obtain an affine decomposition
Noteworthy Issues
- #202 Intermittent crash when creating OperatorInterpolation
- #201 Crash when creating a sequential functionspace using a parallel mesh
- #195 Crash in DofTable (see sequential functionspace with parallel mesh feature)
Feel++ Release 0.95.0
release date 04-10-2013
Changes
- reduce tremendously the memory footprint in parallel application especially for large meshes
- number of files generated by Ginac in parallel applications, now only one .so is generated for each expression
- various valgrind invalid read and write fixed
- fix memory leak using PETSc when solver/preconditioner needed frequent updates
Features
- support up to PETSc 3.4.2
- support up to SLEPc 3.4.2
- support up to Boost 1.54
- support up to Eigen 3.2
- Correspondence table between gmsh and feel++ node numbering allowing to easily couple different codes for example a feel++ code and a matlab code
- now the boundary elements set correspond to all elements sharing a sub-entity with the boundary (point edge or face ) and not only a face this affects
boundaryelements
and internalelements
- Extend support for Lambda expressions in the variational formulation language, now more complex expressions are allowed with the lambda expression framework
- Submeshes of elements and faces can be extracted now in parallel. For efficient localization/interpolation later, the relation with the parent mesh can be kept. This is completely done under the hood.
- Support for basic memory logging from PETSc
- Lots of simplified user interface changes all over the place with control enabled from the .cfg files
Noteworthy Issues
- #157 Extend support for Lambda expressions
- #157 Do not ship eigen, cln, glog and gflags when releasing Feel++
- #156 extend boundary elements to all elements sharing a sub-entity with the boundary
- #140 Mesh files refined twice the number of refinement levels at generation step
- #128 BDF not working in order 4
- #126 don't store all mesh points
- #102 Clear temporary Ginac generated files when Feel++ is finalized
- #101 Correspondence of gmsh and feel++ node numbering
- #58 use comp(X) in parallel
- #33 problem with gradient of fonction real dim= Dim and topological dim=Dim-1
- #13 trace or createSubmesh in parallel
Feel++ Release 0.93.0
release date xx-yy-2013
Changes
Features
- retrieving command line/config options
option(_name="",_prefix="",_sub="").as<xxx>()
option(_name="gmsh.hsize").as<double>()
Environment::findFile(std::string)
: look for a file in the list of directories known to Feel++ (current directory, previous directories stored via changeRepository()
, and for .geo/.mshg files also localGeoRepository()
and systemGeoRepository()
- support for Boost 1.53
- support for PETSc 3.4
- support for loadleveler, slurm and ccc: automatic generation of scheduling scripts
- new feel++ snes options
- snes-{r,a,s}tol
- snes-maxit
- snes-ksp-rtol
- ksp-maxit
- ksp-{a,d}tol
- Nonlinear solves with lambda function, see bratu.cpp and nonlinearpow.cpp
- added loadMesh function that can load either a .geo or a .msh file see Stokes Tutorial
- support for Gmsh mesh file binary format use
–gmsh.format=1
(binary)
- in bi/linear forms,
- no need for specifying the algebraic representation for bi/linear forms anymore
auto a = form2( Xh, Xh ); auto l=form1(Xh)
a.solve( _solution=u, _rhs=l);
- support for +=
auto a = form2( Xh, Xh ), at = form2( Xh, Xh); a += at (sum matrices)
auto l = form1( Xh ), lt = form1( Xh ); l += lt (sum vectors)
useful for example for time dependent and time independent terms handling.
- The language now supports the following Keywords
cross(u,v)
(cross product)
eye<m,n>()
, Id<m,n>()
identity matrix (if non square, 1 on main diagonal, 0 elsewhere)
constant<m,n>(value)
constant matrix with entries set to "value"
zero<m,n>()
matrix of zeros
inv()
and \ det(): inverse and determinant, e.g. for change of variable (see laplacian_polar.cpp)
sym(A)
and antisym(A)
- In exporters,
- support for static, change_coords_only, remesh ExporterGeometry
- Ensight Gold support
- support filesets
- support scalars
- support for markedfaces (mesh and fields)
- options (with prefix)
exporter.format
= ensight, ensightgold, gmsh
exporter.geo
= 0 (static), 1(change_coords_only), 2(remesh)
Issues
- #123 test_ginac fails to compile
- #122 Automatic generation of API documentation from research
- #121 code in doc/manual/heatns fail to compile
- #120 Codes in doc/manual/dd fail to compile
- #119 exporter ensightgold with vectorial field
- #118 problem using -idv(...) in expression and operator linear free
- #116 Support Ensight Gold format
- #111 Compilation error of CRB models in develop branch
- #109 Load Gmsh supported file format seamlessly
- #106 Improve website documentation
- #103 Off by one error in mesh point indices
- #15 Reorder dof with respect to interior, face, edge and vertex dof of the domain
- #38 support for gmsh binary format enhancement
- #45 problem with dot function in parallel when using vectors
- #56 use multVector directly with element_type
- #79 improve export when same mesh reused enhancement
- #91 GFlags not used
- #95 Port Feel++ on SUPERMUC
- #99 (Re)Moving libmatheval Usability Component-Progenv
Feel++ Release 0.92.0
Changes
- support for Boost 1.49, 1.50, 1.51 and 1.52
- imported for Eigen 3.1 in contrib/eigen
- port to gcc4.7, clang 3.1 and clang 3.2
- added cmake macro feelpp_add application, see http://code.google.com/p/feelpp/issues/detail?id=11&can=1
- support Gmsh from both executable and library(preferred and more powerful)
- support for PETSc 3.3
- port to Marseille mesocenter supercomputer (thx to CEMRACS'12)
- port on the TGCC
- added scotch Portfile from macport and use esmumps variant for mumps support
- added PETSc 3.3-p1 support and use suitesparse as well as scotch directly from macport instead of downloading/compiling them
- improved benchmarking framework and in particular the handling of the statistics provided by the benchmark with views per key and flat views. In the last case various files are automatically generated for each benchmark
- added eigen(3.1) backend with support for dense and sparse eigen matrices Fixes issue #36
- added 2D and 3D mesh adaptation using Gmsh
- seamless parallelisation of the FunctionSpace data structure in the case of product of function spaces
- lift operator merged with projection operator
- support for mesh generation directly from Gmsh library
- support for element splitting (Fixes issue #40)
- many new keywords
- mean value of a function: mean(_range=elements(mesh),_expr=sin(pi Px()));
- norm L_2 of a function: normL2(_range=elements(mesh),_expr=sin(pi Px()));
- norm L_2 of a function squared: normL2Squared(_range=elements(mesh),_expr=sin(pi Px()));
- infinity norm of a function: normLinf(_range=elements(mesh),_expr=sin(pi Px()));
- inner(a,b): a . b
- cross(a,b): a x b
- sym(a): .5 (a + aT )
- zero<m,n>(): matrix of zeros of size m x n
- ones<m,n>(): matrix of ones of size m x n
- constant<m,n>(a): matrix of constant value a of size m x n
- eye<m,n>(), Id<m,n>(): unit diagonal matrix of size m x n
support for symbolic computing using Ginac
- support for meta-expression
auto I = integrate(_range=elements(mesh),_expr=_e1 );
auto v1 = I( idv(v) ).evaluate();
auto v2 = I( cst(1) ).evaluate();
update manual and tutorial, see #61 and #70
Bugs
Feel++ Release 0.91.1
- overall cleanup in C++ preprocessor macros
- cleanup in cmake
- fix some compilation issues and added more stringent compiler flags
- port to boost1.49
- Fix issues 1, 2 and 9 (see Google Code, http://code.google.com/p/feelpp/issues/list)
Feel++ Release 0.91.0
Developer changes
- Feel++ is now seamlessly parallel
- Feel++ supports seamlessly interpolation in its variational formulation language
- cmake: overall cleanup of cmake feel++ variables which are now prefixed FEELPP
- cmake: in-source builds forbidden
- cmake: guards againts invalid CMAKE_BUILD_TYPE
- cmake: added sse, altivec and neon optimizations
- cmake: fix bug in make_directory
- cmake: even more minimal configuration in doc/tutorial
- fix compilation in APPLE and s390 platforms
- added macport port for feel++ with support for snow leopard and lion
- Eigen code has been updated to 3.0.5
- added a config file with extension .cfg based on Boost.program_options in Application classes
- provide systemConfigRepository() and localConfigRepository() in Environment class which return respectively the local and system location of the config file
- merge the two implementations of aitken relaxation method and provide a simplified interface
- added interface nlSolve interface to backend similar to solve allowing to order-free and optional parameters
- added interface to external solver libraries via petsc such as mumps or umfpack. This is configurable via the config file (.cfg)
- various fixes in geometric mapping (and inverse) and polynomialset to handle objects of topoligical dimension d-1 living in dimension d space.
- added implementation of $L_2$ and $H_1$ projector which renders rather seamless these projection.
- fix copy/paste bug in bdf extrapolation, the coefficient were divided by dt
- support for interpolating functions living on meshes of different topoligical dimension
- added mesh elements and faces extraction using createSubmesh() based on mesh filters
- added lift and trace operator, interface might change
- BDF:
- new bdf() free function to generate a new bdf `shared_ptr` object and configure it
auto mybdf = bdf( _space=Xh, _vm=this->vm(), _order=2, _time_step=0.1 );
- changed options for bdf: now use . to separate bdf from rest of option in order to be able to create section in config files
- can pass a prefix to handle several bdf in application
- GeoTool:
- update geotool to support markers for 1D meshes
- added a new Cube object
- added a pie object
- added mshconvert() which allows to generate a gmsh mesh out of mesh formats supported by gmsh
- support for passing shared_ptr<> to the differential operators and to on()
- support in the language for test and trial functions not being defined on the same mesh
- Language:
- added sym() and antisym() to compute the symmetric and antisymmetric parts of a matrix expression
- added access to expression components via () operator
- allow integration of test and/or trial functions which are defined on different meshes as well as integrating on a different mesh.
- reorganized completely and updated/corrected the manual
- updated doxygen documentation