Skip to content

Latest commit

 

History

History
525 lines (375 loc) · 41.5 KB

NEWS.md

File metadata and controls

525 lines (375 loc) · 41.5 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Fixed

  • Inheritance relationship for DiscreteModelPortion. Since PR #645.

[0.16.4] - 2021-08-17

Added

  • Trait to CellQuadrature to support the evaluation of integrals on the reference domain. Since PR #636.
  • Type Interpolable allowing to interpolate data from two independent meshes. Since PR #632.

[0.16.3] - 2021-06-28

Fixed

  • Deactivating optimizations related with MemoArray since they are not reliable. Since PR #624.
  • Bug related with ArrayBlock. Since PR #623.

[0.16.2] - 2021-06-21

Fixed

  • Bug related with boundary integration caused by some optimization introduced in v0.16. Fixed via PR #616.

[0.16.1] - 2021-06-04

Fixed

  • Bug for 1st order FE spaces in combination of 1st order models with periodic BCs. Since PR #611.

[0.16.0] - 2021-06-04

Added

  • User API to select specific quadrature rules. Since PR #578.
  • Experimental support for mixed dimensional PDEs. Since PR #567.
  • Added get_cell_dof_basis(model,cell_reffes,::Conformity) and get_cell_shapefuns(model,cell_reffes,::Conformity). Since PR #579.
  • Implemented get_cell_dof_basis and get_cell_shapefuns for global RT FE spaces in a new file DivConformingFESpaces.jl. Since PR #579.
  • Added support to allow evaluation of FE functions at arbitrary points. Since PR #523.
  • Implemented compute_cell_points_from_vector_of_points to build CellPoint from a vector of points. Since PR #523.

Changed

  • Major refactoring in the handling of blocks (e.g. in multi-field and skeleton terms). The new code follows a much more simple approach based in the new type ArrayBlock. Since PR #583.
  • The default quadrature rule for tets has changed. Since PR #578.
  • Refactoring in SparseMatrixAssembler to make it more extensible and efficient. Since PR #568.
  • Renamed get_free_values -> get_free_dof_values. Since PR #567.
  • Renamed get_dirichlet_values -> get_dirichlet_dof_values. Since PR #606.
  • Renamed object -> value the variable in ConstantField. Since PR #606.
  • Miscellaneous changes in the FE assembly to allow the solution of mixed dimensional problems. Since PR #567.
  • Renamed get_cell_shapefuns by get_fe_basis. Since PR #579.
  • Renamed get_cell_shapefuns_trial by get_trial_fe_basis. Since PR #579.
  • Renamed get_cell_dof_basis by get_fe_dof_basis. Since PR #579.
  • Removed conformity optional keyword argument from FESpace(::DiscreteModel,::CellFE; kwargs...) constructor. Since PR #579.
  • Replaced CellFE(::AbstractArray{<:Field},::AbstractArray{<:ReferenceFE}) by CellFE(::DiscreteModel,::AbstractArray{<:ReferenceFE},::Conformity). Since PR #579.

Removed

  • All code associated with with BlockArrayCoo. Since PR #583.
  • Module Gridap.Integration has been deleted and its contents have been merged into Gridap.ReferenceFEs module.
  • Types SparseMatrixCSR and SymSparseMatrixCSR have been moved to the registered package SparseMatricesCSR. To use them simply add SparseMatricesCSR into your environment and type using SparseMatricesCSR. Since Since PR #568.
  • Removed PushForwardMap and all code depending upon it. Since PR #579.

[0.15.5] - 2021-05-25

Added

  • Differential operators (∇+k)(u), (∇+k)⋅u, (∇+k)×u, (∇+k)⊗u, and u⊗(∇+k) for some u::CellField and k::VectorValue. Since PR #597.
  • Definition of u.*v between instances of vector-valued CellField objects u and v. Also differential operators ∇.*u and (∇+k).*u. Since PR #597.

[0.15.4] - 2021-03-29

Fixed

  • Bug in CartesianDiscreteModel with periodic boundary conditions that shows up in Julia 1.6 but not in Julia 1.5. Since commit da005cf.

[0.15.3] - 2021-03-16

Added

  • get_cell_map now returns array of AffineMap for linear grids of simplices. Needed to compute Laplacian operator, inverse maps etc. Since PR #553.

Fixed

  • Bug in print_op_tree. Since PR #563

[0.15.2] - 2021-03-08

Added

  • Method inverse_map for AffineMap. Since PR #552.
  • Method get_cell_points for CellDof. Since PR #551.
  • Evaluation of MonomialBasis objects at a single point. Since PR #550.
  • rand function for MultiValue objects. Since PR #530.

Fixed

  • Bug in return_value for Broadcasting(∇∇). Since PR #554.
  • Bug in dot for third order tensors. Since PR #544.

[0.15.1] - 2021-01-22

Added

  • Added support for Hessian and Laplacian operators. Only implemented for Finite Elements with an AffineMap. Since PR #514.

Fixed

  • Bug in RestrictedDiscreteModel for periodic boundary conditions. Since PR #517.
  • Bug in sum(a::LazyArray) when eltype(a) <: AbstractArray. Since PR #513.

[0.15.0] - 2020-12-14

This version is a major (backwards-incompatible) refactoring of the project which is not summarized here for the sake of brevity. Most of the functionality of v0.14.0 is available in v0.15.0, but possibly with a significantly different API. See here the changes in the sources of the Gridap Tutorials between versions 0.14.0 and 0.15.0 to effectively see the major changes in the API.

[0.14.2] - 2020-11-24

Added

  • Added additional tensor operations and new double contraction notation ⋅². Implemented a zero constructor for ThirdOrderTensorValues to allow integration of 3-tensors. Since PR #415.

Fixed

  • Bug-fix for 32-bit Julia: Replace all occurences of Int64 by Int. Since PR #445.
  • Bug-fix for 32-bit Julia. Using inttype=Int keyword argument for JSON parsing. Since PR #456.

[0.14.1] - 2020-09-17

Added

  • Added VectorWithEntryInserted and VectorWithEntryRemoved. Since PR #401.
  • Added missing get_constant_approach() getter to FESpaceWithConstantFixed. Since PR #409.

Deprecated

  • The name FESpaceWithLastDofRemoved has been deprecated in favor of its generalization FESpaceWithConstantFixed. Since PR #396 and PR #404.

[0.14.0] - 2020-08-27

Removed

  • Support for Julia v1.0. Now, the minimum supported is Julia v1.3. Since PR #376.

Changed

  • Major refactoring associated with the handling of elemental matrices and vectors in multi-field computations and also on the skeleton. Since PR #376.
  • First and second argument switch in update_state_variables! in order to have function-first style. Since PR #376.
  • Table struct has been generalized such that data and ptrs arrays can be of an arbitrary type extending AbstractArray. Since PR #310
  • interpolate, interpolate!, interpolate_dirichlet... switched argument order to function first style. For instance interpolate(u, V) instead of interpolate(V, u)

Added

  • Allowing the construction of an HomogeneousTrialFESpace from a TrialFESpace. Since PR #384.
  • Support for automatic differentiation of residuals and Jacobians in multi-field computations since PR #383.
  • New FilterKernel since PR #379.

Fixed

  • Bug associated with boundary triangulation in 1D discrete models. Since PR #393.

[0.13.4] - 2020-08-23

Added

  • New FilteredCellArray since PR #372.

[0.13.3] - 2020-08-12

Added

  • Visualization.visualization_data function that makes it easier to bring fields into visualization library friendly formats. Since PR #354.
  • Gradient of a product binary operation (*) between a scalar and a field. Since PR #340.

[0.13.2] - 2020-07-31

Added

  • Automatic differentiation of the Jacobian from a given residual and the Jacobian and the residual from a given energy. Not working at this moment on the Skeleton nor for multi-field (WIP), but yes for other cases. Now, the user can omit jac from FETerm(res,jac,trian,quad), i.e. FETerm(res,trian,quad) and the Jacobian will be automatically generated. In addition, the user can write FEEnergy(ener,trian,quad) for a given ener(uh) function and the residual and the Jacobian will be automatically generated. Since PR #338.

[0.13.1] - 2020-07-24

Fixed

  • Bugs associated with the degenerated case of 0-length arrays. Since PR #331 and #332.

[0.13.0] - 2020-07-23

Added

  • Automatic differentiation for symmetric gradient, i.e. ε(u) for a given vector-valued function u. Since PR #327.
  • Added missing SparseMatrixAssembler constructor for MultiFieldFESpaces. Since PR #320.
  • kw-argument space to LagrangianRefFE constructor in order to select the type of underlying polynomial space, i.e., :Q, :S, or :P. Since PR #321.

Changed

  • The meaning of inward/outward has slightly changed for SkeletonCellBasis objects. Now, by accessing to these properties a ReducedSkeletonCellBasis is returned, which allows to use the result in a more flexible way (in particular, the result can be used in a similar way than the result of jump or mean). Since PR #317.
  • Major refactoring in ReferenceFEs module. Since PR #319 and #321. In particular:
    • NodalReferenceFE has been replaced by a new abstract type LagrangianRefFE.
    • GenericNodalCartesianRefFE has been replaced by GenericLagrangianRefFE.

Removed

  • Removals associated with the ReferenceFEs refactoring in PR #319:
    • Removed QDiscRefFE constructor. Use a standard LagrangianRefFE and L2Conformity instead.
    • Removed PDiscRefFE constructor. Use LagrangianRefFE constructor with the kw-argument space=:P.
    • Removed CDLagrangianRefFE constructor. Use a standard LagrangianRefFE and CDConformity instead.
    • Removed fields face_own_dofs and face_own_dof_permutations from GenericRefFE.
    • Removed struct DiscRefFE.

Fixed

  • Better handling of FE terms defined on empty triangulations. Since PR #329.
  • Replaced += by add_entry!. Since PR #316.
  • Minor fix to let Vtk.jl support changes in Vtk 1.7.X versus 1.6.X. Since PR #324.

[0.12.0] - 2020-07-07

Added

  • Added SkeletonTriangulation constructor in order to integrate, where a given interpolation is discontinuous. Since PR #304.
  • New ConformingFESpace constructor. Since PR #293.
  • Added QDiscRefFE constructor for DiscRefFE. Since PR #293.
  • New FESpace constructor that takes an instance of ReferenceFE. Since PR #294.
  • New FESpace constructor that takes an instance of Conformity. Since PR #311.
  • New CDLagrangianRefFE struct, that provides a Lagrangian reference FE with different conformity per direction. Since PR #299.
  • New FESpace method that takes a model and a RefFE. Since PR #299.
  • Possibility to have 0 order in DISC directions of a CDLagrangianRefFE. Since PR #308.
  • Added setindex! method for Reindexed. Since PR #309.

Changed

  • Changed the interfaces of ReferenceFE and NodalReferenceFE in relation of DOF ownership. Now function get_face_own_dofs and related ones are parametrized by a Conformity object. Since PR #311.
  • The constructors GenericRefFE, GenericNodalCartesianRefFE, and compute_conforming_cell_dofs take an extra argument of type Conformity. Since PR #311.
  • Renamed PDiscRefFE -> DiscRefFE struct keeping the name for constructor. Since PR #293.
  • One of the GradConformingFESpace methods now more general ConformingFESpace. Since PR #293.
  • DivConformingFESpace and CurlConformingFESpace constructors eliminated. Since PR #293.
  • Extend table to support arbitrary vector types. Since PR #310.

Fixed

  • Construction of VectorValue, TensorValue, et al. objects from non-homogeneous arguments. This solves some problems associated with automatic differentiation. Since PR #298.
  • CDLagrangianRefFE node ordering. Since PR #305.

[0.11.2] - 2020-06-22

Added

  • Method solve!(x,ls,op::AffineOperator,cache::Nothing,newmatrix). Since PR #288.

Fixed

  • Bug related with WriteVTK version 1.7. Fixed via PR #287.
  • Bug in outer constructor of Table{...} for input arrays of abstract type. Fixed via PR #285.

[0.11.1] - 2020-06-19

Fixed

  • Bug in the handling of caches in NLSolver. Fixed via PR #283.
  • Bug that showed up when interpolating a FE function defined on an ExtendedFESpace onto a non-extended FESpace. Fixed via PR #282.

[0.11.0] - 2020-06-16

Added

  • Operator (\odot) as an alias of inner. Since PR #239.
  • Operator (\otimes) as an alias of outer. Since PR #239.
  • Support for (symmetric) 4th order tensors. Since PR #239.
  • Optimizations for symmetric 2nd order tensors. Since PR #239.
  • Methods for cross function (aka × (\times)) to operate with VectorValues. Since PR #280.
  • Interpolation is now supported also for multifield spaces. Since PR #279.

Changed

  • Major refactoring in the module Gridap.TensorValues. Since PR #239. The following changes are likely to affect all users:
    • The operator * is not allowed for expressing the dot product anymore. Use LinearAlgebra.dot function aka (\cdot).
    • The syntax ∇*u is not allowed anymore. Use ∇⋅u instead.
    • Gridap re-exports dot, , and other names from LinearAlbegra that are used often in Gridap code.
    • Function n_components is renamed to num_components.
  • The SingleFieldFESpace interface has changed. The function gather_free_and_dirichlet_values! has been added as mandatory for all FE space implementations and the old function gather_free_and_dirichlet_values is now optional. Since PR #279.

[0.10.4] - 2020-06-8

Added

  • Functions create_vtk_file and createvtk. Since PR #273.

[0.10.3] - 2020-05-29

Added

  • Function print_op_tree to visualize lazy operation trees. Since PR #270.
  • Exported apply and reindex from Gridap top level. Since PR #270.
  • Extended support of CartesianDiscreteModel to models with periodic boundary conditions. PR #266.

Deprecated

  • Optional argument map for CartesianDescriptor converted to a key-word argument. Since PR #266.

Fixed

  • Fixed some methods of the sparsecsr generic function. Since PR #262.
  • Fixed BUG in findnz function for SparseMatrixCSR. Since PR #264.
  • Fixed restrict(::AbstractArray,::TriangulationPortion) for portions of triangulations extending BoundaryTriangulation. Since PR #267.

[0.10.2] - 2020-05-21

Added

  • New key-word arguments zeromean_trian and zeromean_quad in the FESpace constructor. Since PR #257.
  • New method reindex(::Triangulation,indices). Since PR #257.
  • New functions get_face_to_face(::BoundaryTriangulation) and get_cell_around(::BoundaryTriangulation). Since PR #256.

[0.10.1] - 2020-05-19

Fixed

  • Added missing implementation of simplexify(SEGMENT) and simplexify(VERTEX). Since PR #252.

[0.10.0] - 2020-05-14

Added

  • Extended support of TriangulationPortion to boundary and skeleton triangulations. Since PR #249.
  • Added FESpaceWithLinearConstraints. Since PR #247.
  • Added inner constructor to CartesianDiscreteModel allowing to build a model that represents a subgrid of a larger grid. Since PR #245.

Changed

  • The part associated with the imposition of constraints in the FESpace interface has changed slightly. Since PR #247.
  • Simplified the signature of zero_free_values(::FESpace). Since PR #249.
  • Simplified the signature of zero_initial_guess(op::NonlinearOperator). Since PR #249.
  • Major refactoring in the Assembler interface. Important change: Now, assembly-related functions take the data returned by functions like collect_cell_matrix as it is. Example: the old user code assemble_matrix(assembler,collect_cell_matrix(du,dv,terms)...) now is written simply as assemble_matrix(assembler,collect_cell_matrix(du,dv,terms)), i.e., the unpack of the last argument is not used anymore. In addition, with the new assembler interface, it is possible to customize the assembly process via a so-called AssemblerStrategy object. Since PR #249.
  • Change the types of the sizes and partition fields of CartesianDescriptor to tuples instead of points. Since PR #246.

[0.9.2] - 2020-04-26

Added

  • Automatic differentiation of manufactured solutions. Since PR #236.

[0.9.1] - 2020-04-20

Added

  • Function cell_measure. Since PR #234.

Fixed

  • Several bugs associated with ExtendedFESpace. In particular, we have fixed a bug that showed up when combining ZeroMeanFESpace and ExtendedFESpace. Since PR #234.

[0.9.0] - 2020-04-18

Added

  • Function HomogeneousTrialFESpace. Since PR #226.
  • Function lazy_append in order to lazily append two objects (implemented for AbstractVector, Triangulation, and CellQuadrature). Since PR #220.
  • Support for FE spaces with DOFs defined in the physical space. Since PR #216 and #218.

Changed

  • Replaced non_linear -> nonlinear and NonLinear -> Nonlinear. Since PR #223.
  • The FESpace interface has slightly changed, mainly the return type of functions get_cell_basis and get_cell_dof_basis.. Since PR #216 and #218.

Fixed

  • Bug that showed up in multi-field computations when some field had no contribution to the rhs vector. Since #229.
  • Bug in gradient operator in the void part of ExtendedFESpace objects. Since PR #219.
  • Bug in jumps of quantities restricted to InterfaceTriangulation objects. Since PR #215.

[0.8.0] - 2020-03-17

Added

  • Support for surface-coupled multi-physics. See SurfaceCouplingTests.jl for further details. Since PR #209.
  • Support for constitutive laws with state / historical variables. See IsotropicDamageTests.jl for further details. Since PR #208.
  • Curl-conforming reference FE NedelecRefFE and corresponding FE space constructor since PR #199.
  • New constructors AffineFETermFromCellMatVec and FETermFromCellJacRes that provides full control in the definition of cell matrices and vectors. Since PR #191.
  • Support for simultaneous integration of matrices and vectors. Since PR #191.

Changed

  • Renaming NonLinear to Nonlinear since it is one word and it is not consistent with style

  • The definition of interpolation order in Raviart-Thomas and Nédélec reference FEs has changed. Now, the divergence of functions in the Raviart-Thomas space of order k belongs to P_k or Q_k depending on the underlying polytope. Idem for Nédelec, but using the curl instead of the divergence. Since PR #212.

  • The order in which test and trial spaces are written in the code has changed and also the other in the arguments of functions defining bi-linear and linear forms, and weak residuals and Jacobians. This affects everybody that is using Gridap, even the most basic users. Now, we write the trial space before the test one in all methods taking two spaces in their arguments. E.g., we have changed AffineFEOperator(V,U,terms...) to AffineFEOperator(U,V,terms...), where U is the trial and V is the test space. For functions defining weak forms, now we have: The new signatures for bi-linear and a linear forms are a(u,v), l(v), where u is a trial function and v is a test one. For weak Jacobians and residuals jac(u,du,v) and res(u,v), where u is the (trial) function in which we evaluate these quantities, du is the direction in which we evaluate the Jacobian and v is a test function. Since PR #195 and PR #197.

  • The part related with the application of constraints in the FESpace interface has changed. Since PR #191.

Fixed

  • Bug in 1d Cartesian grids. Since PR #192.

[0.7.1] - 2020-02-18

Added

  • New DirichletFESpace that can be used to compute matrices and vectors associated with the Dirichlet DOFs. Since commit 972afcc

[0.7.0] - 2020-02-13

This version is a major refactoring of the project which is not summarized here for the sake of brevity. Most of the functionality of v0.6.0 is available in v0.7.0, but with a possibly slightly different API. See here the changes in the sources of the Gridap Tutorials between versions 0.6.0 and 0.7.0 to effectively see the major changes in the API.

[0.6.0] - 2020-01-24

Added

  • New GenericRefFE. Since commit 876ef1e
  • New NedelecRefFE constructor that generates Nedelec FEs of arbitrary order in 2D and 3D on hex. Since commit 876ef1e
  • New keyword argument map in the constructor of CartesianModel, which allows one to transform the original domain, by defaut [0,1]^d to a new domain through a homeomorphic map. Since commit 30cc4bc
  • New keyword argument map in the constructor of CartesianGrid and a new map attribute in this structure, since commit 30cc4bc
  • CartesianGridPoints has new attribute map since commit 30cc4bc
  • Added SparseMatricesCSR support to SparseMatrixAssembler and MultiSparseMatrixAssembler in PR #118.

Changed

  • The RaviartThomasRefFE has now been replaced by GenericRefFE, and the constructor for Raviart-Thomas FEs is called RTRefFE. Since commit 876ef1e
  • The default map in the CartesianModel constructor is [0,1]^d instead of [-1,1]^d, since commit 30cc4bc
  • CartesianGrid has attribute map since commit 30cc4bc

[0.5.2] - 2019-10-22

Fixed

  • Incompatibility problem with TensorValues version 0.3.5. Via commit 3c0682a.

[0.5.1] - 2019-10-03

Added

  • Pretty printing for the types most exposed to users. Since PR #109.

Fixed

  • Bug related to ZeroMeanFESpace. Via PR #111.

[0.5.0] - 2019-09-27

Added

  • Added a high level constructor, namely FESpace, to create different types of FE spaces. See issue #100 for more details. Since PR #102.
  • Added ZeroMeanFESpace to construct FE spaces whose functions have zero mean value. Since PR #102.
  • Added Hdiv FE space using Raviart-Thomas reference FEs in 34bfa34
  • Added the corresponding DOF basis for Raviart-Thomas reference FEs for interpolation of fields 60b9021
  • Added an arbitrary order div-conforming Raviart-Thomas reference FE of arbitrary order on quads in commit 60b9021
  • Now, the tags argument is optional when constucting SkeletonTriangulation and BoundaryTriangulation objects from a DiscreteModel. Since commit e6424a3.
  • Added mean operator for quantities restricted to a SkeletonTriangulation. Since commit 83798b4.
  • Extended NormalVector to SkeletonTriangulations. Since commit 5fb8487.
  • Now, TrialFESpaces can be constructed from values instead of functions if the corresponding Dirichlet conditions are constant. Since commit bae237e.
  • Added the possibility of adding new tags to a FaceLabels object via the function add_tag_from_tags! and using it to construct FE spaces. Since commit e9dfac4.
  • Added BackslashSolver to facilitate the usage in Gridap of the build-in Julia backslash linear solver. Since commit 8e3a9b7.
  • Added NLSolver to facilitat the usage in Gridap of the non-linear solvers available in the official Julia package NLsolve. Introduced in commit e5a933f as JuliaNLSolver. Renamed to NLSolver in PR #108.

Changed

  • The Signature of solve! for NumericalSetup objects. The argument for the system matrix has been removed. The information about the matrix is already in the NumericalSetup object. Since commit ac212d3.
  • The signature of solve!(::FEFunction,::FESolver,::FEOperator). Before it was used as cache = solve!(uh,solver,op), now it is used as uh, cache = solve!(uh,solver,op). Since PR #102.
  • Previous ConformingFESpace constructor is H1ConformingFESpace since 34bfa34

Deprecated

  • JuliaNLSolver. Renamed to NLSolver. Since PR #108.
  • Key-word argument order in CellQuadrature constructor. Renamed to degree. Since PR #108.

Fixed

  • Bug in @law macro for more than one FEBasis arguments. Solved via PR #104.
  • Bug in NonlinearFEOperator constructor with default assembler in multi-field computations. Solved via PR #104.
  • Bug in NormalVector for non-Cartesian grids. Solved via PR #98.

[0.4.0] - 2019-09-07

Added

  • Added support to high order simplicial Lagrangian finite elements. Since commit cbefe9b.
  • Now the built-in simplicial grids are oriented. Since commit cbefe9b.
  • Added binary operations between FEFuntion and Number, and FEBasis and Number. Since PR #88.
  • Added PDiscRefFE, DiscFESpace, and ConstrainedFESpace. Since PR #88.
  • Now its possible to pass a CellNumer or an Array of numbers into a constitutive law. Usefull to identify which is the material of the current Gauss point in multi-material problems. Since commit 62cb2c3.
  • LinearFESolver is now optional for solving a LinearFEOperator. Since commit 5c1caa8.
  • Assembler is now optional to build FEOperator objects. Since commit b1bf517.
  • Binary operations between Function and FEFunction. Since commit a7f22f5.
  • Extended constructions of CLagrangianFESpace and DLagrangianFESpace. diritags and dirimasks are now optional. diritags can now be also a vector of String. Since commit 776b402.
  • Added div, curl, and trace operators. Since commit 5a0f322.
  • Macro @law to facilitate the definition of constitutive laws. Since commit 30b67f2.
  • Definition of linear forms b(v) = inner(v, f) directly from a function f. Since commit bb42847
  • Serialization and de-serialization of DiscreteModel objects into and from json format. Since PR #76.
  • Support for boundary integration (e.g., Neumann BCs) for multi-field computations. Since PR #75.

Changed

  • Signature of LagrangianRefFE constructor. Since commit 529c764.

Fixed

  • Bug in LinearFETerm for multi-field computations. Fixed via commit 2b957d1.
  • Bug in MultiCellArray constructor. Fixed via commit bbc3b1c.
  • Bug in binary operations between FEFunction and FEBasis. Fixed via commit aa49689.

[0.3.0] - 2019-08-06

Added

  • CurlGradMonomialBasis spanning the polynomial space needed for RT elements on n-cubes.
  • CLagrangianFESpace and DLagrangianFESpace types providing an efficient implementation for continuous and discontinuous Lagrangian FE spaces respectivelly. In contrast to ConfirmingFESpace, the new types allow to select which are the components that are actually prescribed on the Dirichlet boundary. Since PR #64.
  • simplexify funciton to convert Grid and DiscreteModel objects made of n-cubes to the corresponding counterparts made of n-simplices. Since PR #62.
  • Duffy transformation based integration for n-simplices of arbitrary dimension. Since PR #61.
  • NormalVector to construct the outward normal vector to a given BoundaryTriangulation. Since PR #60.
  • Support for tensor-valued FE computations. Since PR #57.
  • Support for integration on the skeleton of the mesh. This includes SkeletonTriangulation, an integration mesh for the skeleton, restrict function is extended to restrict to the skeleton, jump function to compute jumps of CellFields and CellBasis restricted to the skeleton, extension of FETerms to allow integration on the skeleton. See PR #47
  • Support for Robin boundary conditions. Since commit 946054a
  • Support for Neumann boundary conditions. Since commit 4dcd16f
  • FETerm and AffineFETerm abstract types and several concrete implementations. They allow to deal with problems whose weak form has terms integrated over different geometrical entities. NonlinearFEOperator and LinearFEOperator can be constructed using several terms. Since commit 0f99234
  • Extended Assembler and MultiAssembler to deal with several terms. See issue #42 and PR #43.
  • IdentityCellNumber, an indexable cell number that simply returns the given index. Also efficient implementation of reindex for this type (i.e. do nothing). Available since commit b6b4c32
  • Function restrict for restricting CellField and CellBasis objects to surfaces. Available since commit e981f3c
  • BoundaryTriangulation an integration mesh used to integrate CellField and CellBasis objects restricted on a surface. Available since commit e981f3c
  • NonIterableCellMap, a cell map that has iteration intentionally disabled. Available since commit 956a537.
  • CompressedCellValue, CompressedCellArray, and CompressedCellMap, as well as efficient versions of apply, evaluate, and reindex for these types. See PR #41 for more details.
  • NEWS.md file (a changelog file)

Changed

  • Domains are now in [0,1] instead of [-1,1]. Quadratures and nodes arrays modified accordingly. Since commit 268dfe1.
  • Changed the signature of assemble, apply_constraints, apply_constraints_rows, and apply_constraints_cols to support FE assembly of several terms, which are integrated in different domains. The old API of asseble is still functional, but not for the apply_constraints et al. Since PR #43. Further changed in commit a335aed.

Fixed

  • Bug in generation of the cellwise local to global DOF map for high order interpolations. Fixed via PR #56.
  • Bug in numerical integration. There was a bug for computations where the number of cell DOFs was different from the number of integration points. Fixed via commit 0b3d4bf

[0.2.0] - 2019-06-29

A changelog is not maintained for this version.

This version introduces the core finite element machinery for linear and non-linear problems, single field and multi-field problems with terms integrated over the interior of the computational domain.

[0.1.0] - 2019-05-20

A changelog is not maintained for this version.

This version is non functional. It is just a tag for registering the package.