Logo  0.95.0-final
Finite Element Embedded Library and Language in C++
Feel++ Feel++ on Github Feel++ community
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages

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>()
    // for example retrieve the option gmsh.hsize
    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
      // vm is the variable map provided by program options
      // note that by default most option get their value from the command line
      // or config files
      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

Generated on Sun Oct 20 2013 08:25:06 for Feel++ by doxygen 1.8.4