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.
lastindex
forMultiValue
s for consistent usage of[end]
as perlength
. Since PR #834- BDM (Brezzi-Douglas-Marini) ReferenceFEs in PR #823
- Implemented
ConstantFESpace
. This space allows, e.g., to impose the mean value of the pressure via an additional unknown/equation (a Lagrange multiplier). Since PR #836 - Methods to construct
DiracDelta
at genericPoint
(s) in the domain. Since PR #837 - some key missing
lastindex
andend
tests belonging to PR [#834]. Since PR #837 AbstractVector
support to weights andPoint
s of GenericQuadrature, in particular forFillArray
usage. Since PR #839- Using the above generalization of
GenericQuadrature
, made the weights of quadrature ofDiracDelta
for generic points to be aFill
vector. Since PR #839 - Optional keyword argument
T
to select the floating point precision for the numerical quadrature pipeline involvingMeasure
,CellQuadrature
andQuadrature
functions.T
defaults toFloat64
when not specified, so it doesn't involve any breaking changes in public API. Since PR #840
- Functionality to take gradient of functional involving integration (
DomainContribution
) over Skeleton faces, with respect to the degrees-of-freedom ofFEFunction
. The interface remains the same -gradient(f,uh)
. Since PR #797 - Extended the
MultiField
functional gradient (with respect to degrees-of-freedom ofMultiFieldFEFunction
) to functionals involving Skeleton integration. The interface remains the samegradient(f,xh)
. Since PR #799 - Functionality to take jacobian of functional involving integration (
DomainContribution
) over Skeleton faces (obtained from testing bilinear form with the whole set of testfe_basis
), with respect to the degrees-of-freedom ofFEFunction
. The interface remains the same -jacobian(f,uh)
. Since PR #803 - A dummy tag for ForwardDiff configs being constructed in Gridap at
src/Arrays/Autodiff.jl
to fix issue #805. Since PR #806
- The behavior of
gradient
for functionals involving operations ofCellFields
insidemean
andjump
terms of Skeleton Integration terms. Since PR #800 - The behavior of
SkeletonCellFieldPair
at the Boundary integration terms. Since PR #800 push_normal
for rectangular Jacobians. Since PR#809- Nedelec FEs with triangles. Since PR #813
Gridap.jacobian
for Skeleton integration terms, in the case of general test basis where dim not same as trial basis. Since PR #815
KeyToValMap
lazy map that dinamically creates aDict
with the outputs of a function over an array of inputs. Since PR #801MappedDiscreteModel
andMappedGrid
, which are geometrical models with one extra geo map in the physical space. Since PR #801GridWithFEMap
, which has a geometrical map defined by a FE function. Since PR #801- Vertex bisection algorithm for refinement of triangular meshes in 2D. Since PR #733
- Generalized-α method for 1st order ODEs. Since PR #781
- Implemented (generalised) ModalC0 Polynomial bases and reference FEs. Since PR #777
- Serendipity reference FEs for any dimension and order. Since PR #777
- Implemented addition/subtraction between a
TensorValue
and aSymTensorValue
. Since PR #755. - Nédélec elements on simplices (lowest order interpolation for the moment). Since PR #758.
- Restrict to the active model the evaluation of a FE function at arbitrary points. Since PR #752.
- Renamed
GridapODEs
toODEs
. Since PR #756
- Extra support for dual number propagation. Since PR #653
- Added ODE tools to Gridap. GridapODEs has been merged into Gridap. Sice PR#748
- Support for periodic conditions in
CartesianDiscreteModel
s built fromcmin
,cmax
. Since PR #738. - Function
savepvd
. Since PR #736. - Support for passing
nothing
as the first argument of theCartesianDiscreteModel
constructor to mimic the API ofGridapDistributed
. Since PR #735.
- Bug in
SymTensorValue
. Since PR #740. - Bug in interpolation at arbitrary points. Since PR #729.
- Bug in
reference_grid(TET)
. Since PR #734. - Bug in computation of Hessian with AD for multi-field. Since PR #731.
- Improving compile times by removing unnecessary
@inline
statements. Since PR #726.
- CellFE constructor now gets optional arguments and pass them down. Since PR #728.
- Implemented
Base.unaliascopy(A::SubVector)
. Since PR #715.
- Bugfix in
Base.view(glue::FaceToFaceGlue,ids::AbstractArray)
. Since PR #724.
- Hiding the creation of
FESolver
andLinearFESolver
from user code. Since PR #705.
- Using implementation of
pvtk_grid
provided in WriteVTK. Since PR #699.
- Adding a newer version of WriteVTK in the [compat] section. Since PR #698.
- AD with multi-field residuals with different num dofs per field. Since PR #687.
- Laplacian
Δ
operator on unstructured linear grids for quantities defined in the reference space (i.e. shape funcitons in standard FEM). Since PR #691. - Laplacian
Δ
operator on triangulations usingGridView
(e.g., when interpolating functions in a sub-domain or on the boundary). Since PR #691. - Fixed typo in , function
solve! of
LinearSolvers.jl`. Since PR #692.
- Aliases
Interior
,Boundary
,Skeleton
, andInterface
for theTriangulation
,BoundaryTriangulation
,SkeletonTriangulation
, andInterfaceTriangulation
constructors. Since PR #662. - Function
create_pvtk_file
for exporting results inpvtu
format. Since PR #685.
- Major refactoring in the
Triangulation
interface to properly support the solution of PDEs defined on domains of different dimension. The major change from the user perspective is thatTriangulation
objects can be used both to integrate the weak form (as before) but also to define FE spaces (except for unfitted triangulations obviously). It is still possible to define FE spaces fromDiscreteModels
, but it is safer and more idiomatic (closer to the math notation) to useTriangulation
objects from now on. Since PR #662. - Changes in assembly interface to allow optimization when assembling matrices and vectors simultaneously. Since PR #685.
BoundaryDiscreteModel
,RestrictedDiscreteMdeol
,RestrictedTriangulation
,TriangulationStyle
,BackgroundTriangulation
,SubTriangulation
,get_cell_to_bgcell
,get_cell_ref_map
,get_background_triangulation
, andhave_compatible_domains
. Since PR #662.- Functions
scale_entries!
andfill_entries!
. Replaced by Julia functionsLinearAlgebra.rmul!
andLinearAlgebra.fillstored!
. Since PR #680.
- Implemented DIV operator for FE functions in RT space. Since PR #650.
GenericAssemblyStrategy
. Since PR #655.- Additional high level API assembly functions. Since PR #652.
- Bug related with the release of ChainRulesCore version 1.3.1. Since #654.
- Inheritance relationship for DiscreteModelPortion. Since PR #645.
- Optimization to RT FEs. Since PR #638.
- Bug in boundary discrete model. Since PR #651.
- 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.
- Deactivating optimizations related with
MemoArray
since they are not reliable. Since PR #624. - Bug related with
ArrayBlock
. Since PR #623.
- Bug related with boundary integration caused by some optimization introduced in v0.16. Fixed via PR #616.
- Bug for 1st order FE spaces in combination of 1st order models with periodic BCs. Since PR #611.
- 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)
andget_cell_shapefuns(model,cell_reffes,::Conformity)
. Since PR #579. - Implemented
get_cell_dof_basis
andget_cell_shapefuns
for global RT FE spaces in a new fileDivConformingFESpaces.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 buildCellPoint
from a vector of points. Since PR #523.
- 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 inConstantField
. Since PR #606. - Miscellaneous changes in the FE assembly to allow the solution of mixed dimensional problems. Since PR #567.
- Renamed
get_cell_shapefuns
byget_fe_basis
. Since PR #579. - Renamed
get_cell_shapefuns_trial
byget_trial_fe_basis
. Since PR #579. - Renamed
get_cell_dof_basis
byget_fe_dof_basis
. Since PR #579. - Removed
conformity
optional keyword argument fromFESpace(::DiscreteModel,::CellFE; kwargs...)
constructor. Since PR #579. - Replaced
CellFE(::AbstractArray{<:Field},::AbstractArray{<:ReferenceFE})
byCellFE(::DiscreteModel,::AbstractArray{<:ReferenceFE},::Conformity)
. Since PR #579.
- All code associated with with
BlockArrayCoo
. Since PR #583. - Module
Gridap.Integration
has been deleted and its contents have been merged intoGridap.ReferenceFEs
module. - Types
SparseMatrixCSR
andSymSparseMatrixCSR
have been moved to the registered packageSparseMatricesCSR
. To use them simply addSparseMatricesCSR
into your environment and typeusing SparseMatricesCSR
. Since Since PR #568. - Removed
PushForwardMap
and all code depending upon it. Since PR #579.
- Differential operators
(∇+k)(u)
,(∇+k)⋅u
,(∇+k)×u
,(∇+k)⊗u
, andu⊗(∇+k)
for someu::CellField
andk::VectorValue
. Since PR #597. - Definition of
u.*v
between instances of vector-valuedCellField
objectsu
andv
. Also differential operators∇.*u
and(∇+k).*u
. Since PR #597.
- Bug in
CartesianDiscreteModel
with periodic boundary conditions that shows up in Julia 1.6 but not in Julia 1.5. Since commit da005cf.
get_cell_map
now returns array ofAffineMap
for linear grids of simplices. Needed to compute Laplacian operator, inverse maps etc. Since PR #553.
- Bug in
print_op_tree
. Since PR #563
- Method
inverse_map
forAffineMap
. Since PR #552. - Method
get_cell_points
forCellDof
. Since PR #551. - Evaluation of
MonomialBasis
objects at a single point. Since PR #550. rand
function forMultiValue
objects. Since PR #530.
- Bug in
return_value
forBroadcasting(∇∇)
. Since PR #554. - Bug in
dot
for third order tensors. Since PR #544.
- Added support for Hessian and Laplacian operators. Only implemented for Finite Elements with an
AffineMap
. Since PR #514.
- Bug in
RestrictedDiscreteModel
for periodic boundary conditions. Since PR #517. - Bug in
sum(a::LazyArray)
wheneltype(a) <: AbstractArray
. Since PR #513.
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.
- Added additional tensor operations and new double contraction notation
⋅²
. Implemented azero
constructor forThirdOrderTensorValues
to allow integration of 3-tensors. Since PR #415.
- 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.
- Added VectorWithEntryInserted and VectorWithEntryRemoved. Since PR #401.
- Added missing get_constant_approach() getter to FESpaceWithConstantFixed. Since PR #409.
- The name FESpaceWithLastDofRemoved has been deprecated in favor of its generalization FESpaceWithConstantFixed. Since PR #396 and PR #404.
- Support for Julia v1.0. Now, the minimum supported is Julia v1.3. Since PR #376.
- 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 instanceinterpolate(u, V)
instead ofinterpolate(V, u)
- Allowing the construction of an
HomogeneousTrialFESpace
from aTrialFESpace
. Since PR #384. - Support for automatic differentiation of residuals and Jacobians in multi-field computations since PR #383.
- New
FilterKernel
since PR #379.
- Bug associated with boundary triangulation in 1D discrete models. Since PR #393.
- New
FilteredCellArray
since PR #372.
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.
- 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
fromFETerm(res,jac,trian,quad)
, i.e.FETerm(res,trian,quad)
and the Jacobian will be automatically generated. In addition, the user can writeFEEnergy(ener,trian,quad)
for a givenener(uh)
function and the residual and the Jacobian will be automatically generated. Since PR #338.
- Automatic differentiation for symmetric gradient, i.e.
ε(u)
for a given vector-valued functionu
. Since PR #327. - Added missing SparseMatrixAssembler constructor for MultiFieldFESpaces. Since PR #320.
- kw-argument
space
toLagrangianRefFE
constructor in order to select the type of underlying polynomial space, i.e.,:Q
,:S
, or:P
. Since PR #321.
- The meaning of
inward/outward
has slightly changed forSkeletonCellBasis
objects. Now, by accessing to these properties aReducedSkeletonCellBasis
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 ofjump
ormean
). Since PR #317. - Major refactoring in
ReferenceFEs
module. Since PR #319 and #321. In particular:NodalReferenceFE
has been replaced by a new abstract typeLagrangianRefFE
.GenericNodalCartesianRefFE
has been replaced byGenericLagrangianRefFE
.
- Removals associated with the
ReferenceFEs
refactoring in PR #319:- Removed
QDiscRefFE
constructor. Use a standardLagrangianRefFE
andL2Conformity
instead. - Removed
PDiscRefFE
constructor. UseLagrangianRefFE
constructor with the kw-argumentspace=:P
. - Removed
CDLagrangianRefFE
constructor. Use a standardLagrangianRefFE
andCDConformity
instead. - Removed fields
face_own_dofs
andface_own_dof_permutations
fromGenericRefFE
. - Removed struct
DiscRefFE
.
- Removed
- Better handling of FE terms defined on empty triangulations. Since PR #329.
- Replaced
+=
byadd_entry!
. Since PR #316. - Minor fix to let Vtk.jl support changes in Vtk 1.7.X versus 1.6.X. Since PR #324.
- 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 forDiscRefFE
. Since PR #293. - New
FESpace
constructor that takes an instance ofReferenceFE
. Since PR #294. - New
FESpace
constructor that takes an instance ofConformity
. 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 aRefFE
. Since PR #299. - Possibility to have 0 order in
DISC
directions of aCDLagrangianRefFE
. Since PR #308. - Added setindex! method for Reindexed. Since PR #309.
- Changed the interfaces of
ReferenceFE
andNodalReferenceFE
in relation of DOF ownership. Now functionget_face_own_dofs
and related ones are parametrized by aConformity
object. Since PR #311. - The constructors
GenericRefFE
,GenericNodalCartesianRefFE
, andcompute_conforming_cell_dofs
take an extra argument of typeConformity
. Since PR #311. - Renamed
PDiscRefFE
->DiscRefFE
struct keeping the name for constructor. Since PR #293. - One of the
GradConformingFESpace
methods now more generalConformingFESpace
. Since PR #293. DivConformingFESpace
andCurlConformingFESpace
constructors eliminated. Since PR #293.- Extend table to support arbitrary vector types. Since PR #310.
- 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.
- Method
solve!(x,ls,op::AffineOperator,cache::Nothing,newmatrix)
. Since PR #288.
- 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.
- 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-extendedFESpace
. Fixed via PR #282.
- Operator
⊙
(\odot) as an alias ofinner
. Since PR #239. - Operator
⊗
(\otimes) as an alias ofouter
. 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 withVectorValues
. Since PR #280. - Interpolation is now supported also for multifield spaces. Since PR #279.
- 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. UseLinearAlgebra.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 tonum_components
.
- The operator
- The
SingleFieldFESpace
interface has changed. The functiongather_free_and_dirichlet_values!
has been added as mandatory for all FE space implementations and the old functiongather_free_and_dirichlet_values
is now optional. Since PR #279.
- Functions
create_vtk_file
andcreatevtk
. Since PR #273.
- Function
print_op_tree
to visualize lazy operation trees. Since PR #270. - Exported
apply
andreindex
fromGridap
top level. Since PR #270. - Extended support of
CartesianDiscreteModel
to models with periodic boundary conditions. PR #266.
- Optional argument
map
for CartesianDescriptor converted to a key-word argument. Since PR #266.
- Fixed some methods of the
sparsecsr
generic function. Since PR #262. - Fixed BUG in
findnz
function forSparseMatrixCSR
. Since PR #264. - Fixed
restrict(::AbstractArray,::TriangulationPortion)
for portions of triangulations extendingBoundaryTriangulation
. Since PR #267.
- New key-word arguments
zeromean_trian
andzeromean_quad
in theFESpace
constructor. Since PR #257. - New method
reindex(::Triangulation,indices)
. Since PR #257. - New functions
get_face_to_face(::BoundaryTriangulation)
andget_cell_around(::BoundaryTriangulation)
. Since PR #256.
- Added missing implementation of
simplexify(SEGMENT)
andsimplexify(VERTEX)
. Since PR #252.
- 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.
- 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 likecollect_cell_matrix
as it is. Example: the old user codeassemble_matrix(assembler,collect_cell_matrix(du,dv,terms)...)
now is written simply asassemble_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-calledAssemblerStrategy
object. Since PR #249. - Change the types of the sizes and partition fields of CartesianDescriptor to tuples instead of points. Since PR #246.
- Automatic differentiation of manufactured solutions. Since PR #236.
- Function
cell_measure
. Since PR #234.
- Several bugs associated with
ExtendedFESpace
. In particular, we have fixed a bug that showed up when combiningZeroMeanFESpace
andExtendedFESpace
. Since PR #234.
- Function
HomogeneousTrialFESpace
. Since PR #226. - Function
lazy_append
in order to lazily append two objects (implemented forAbstractVector
,Triangulation
, andCellQuadrature
). Since PR #220. - Support for FE spaces with DOFs defined in the physical space. Since PR #216 and #218.
- Replaced
non_linear
->nonlinear
andNonLinear
->Nonlinear
. Since PR #223. - The
FESpace
interface has slightly changed, mainly the return type of functionsget_cell_basis
andget_cell_dof_basis.
. Since PR #216 and #218.
- 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.
- 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
andFETermFromCellJacRes
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.
-
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 toP_k
orQ_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...)
toAffineFEOperator(U,V,terms...)
, whereU
is the trial andV
is the test space. For functions defining weak forms, now we have: The new signatures for bi-linear and a linear forms area(u,v)
,l(v)
, whereu
is a trial function andv
is a test one. For weak Jacobians and residualsjac(u,du,v)
andres(u,v)
, whereu
is the (trial) function in which we evaluate these quantities,du
is the direction in which we evaluate the Jacobian andv
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.
- Bug in 1d Cartesian grids. Since PR #192.
- New
DirichletFESpace
that can be used to compute matrices and vectors associated with the Dirichlet DOFs. Since commit 972afcc
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.
- 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 ofCartesianModel
, 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 ofCartesianGrid
and a newmap
attribute in this structure, since commit 30cc4bc CartesianGridPoints
has new attributemap
since commit 30cc4bc- Added
SparseMatricesCSR
support toSparseMatrixAssembler
andMultiSparseMatrixAssembler
in PR #118.
- The
RaviartThomasRefFE
has now been replaced byGenericRefFE
, and the constructor for Raviart-Thomas FEs is calledRTRefFE
. Since commit 876ef1e - The default map in the
CartesianModel
constructor is [0,1]^d instead of [-1,1]^d, since commit 30cc4bc CartesianGrid
has attributemap
since commit 30cc4bc
- Incompatibility problem with
TensorValues
version 0.3.5. Via commit 3c0682a.
- Pretty printing for the types most exposed to users. Since PR #109.
- Bug related to
ZeroMeanFESpace
. Via PR #111.
- 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 constuctingSkeletonTriangulation
andBoundaryTriangulation
objects from aDiscreteModel
. Since commit e6424a3. - Added
mean
operator for quantities restricted to aSkeletonTriangulation
. Since commit 83798b4. - Extended
NormalVector
toSkeletonTriangulations
. 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 functionadd_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 packageNLsolve
. Introduced in commit e5a933f asJuliaNLSolver
. Renamed toNLSolver
in PR #108.
- The Signature of
solve!
forNumericalSetup
objects. The argument for the system matrix has been removed. The information about the matrix is already in theNumericalSetup
object. Since commit ac212d3. - The signature of
solve!(::FEFunction,::FESolver,::FEOperator)
. Before it was used ascache = solve!(uh,solver,op)
, now it is used asuh, cache = solve!(uh,solver,op)
. Since PR #102. - Previous ConformingFESpace constructor is H1ConformingFESpace since 34bfa34
JuliaNLSolver
. Renamed toNLSolver
. Since PR #108.- Key-word argument
order
inCellQuadrature
constructor. Renamed todegree
. Since PR #108.
- Bug in
@law
macro for more than oneFEBasis
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.
- 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
andNumber
, andFEBasis
andNumber
. Since PR #88. - Added
PDiscRefFE
,DiscFESpace
, andConstrainedFESpace
. Since PR #88. - Now its possible to pass a
CellNumer
or anArray
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 aLinearFEOperator
. Since commit 5c1caa8.Assembler
is now optional to buildFEOperator
objects. Since commit b1bf517.- Binary operations between
Function
andFEFunction
. Since commit a7f22f5. - Extended constructions of
CLagrangianFESpace
andDLagrangianFESpace
.diritags
anddirimasks
are now optional.diritags
can now be also a vector ofString
. Since commit 776b402. - Added
div
,curl
, andtrace
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 functionf
. Since commit bb42847 - Serialization and de-serialization of
DiscreteModel
objects into and fromjson
format. Since PR #76. - Support for boundary integration (e.g., Neumann BCs) for multi-field computations. Since PR #75.
- Signature of
LagrangianRefFE
constructor. Since commit 529c764.
- 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.
CurlGradMonomialBasis
spanning the polynomial space needed for RT elements on n-cubes.CLagrangianFESpace
andDLagrangianFESpace
types providing an efficient implementation for continuous and discontinuous Lagrangian FE spaces respectivelly. In contrast toConfirmingFESpace
, the new types allow to select which are the components that are actually prescribed on the Dirichlet boundary. Since PR #64.simplexify
funciton to convertGrid
andDiscreteModel
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 givenBoundaryTriangulation
. 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 ofCellFields
andCellBasis
restricted to the skeleton, extension ofFETerms
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
andAffineFETerm
abstract types and several concrete implementations. They allow to deal with problems whose weak form has terms integrated over different geometrical entities.NonlinearFEOperator
andLinearFEOperator
can be constructed using several terms. Since commit 0f99234- Extended
Assembler
andMultiAssembler
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 ofreindex
for this type (i.e. do nothing). Available since commit b6b4c32- Function
restrict
for restrictingCellField
andCellBasis
objects to surfaces. Available since commit e981f3c BoundaryTriangulation
an integration mesh used to integrateCellField
andCellBasis
objects restricted on a surface. Available since commit e981f3cNonIterableCellMap
, a cell map that has iteration intentionally disabled. Available since commit 956a537.CompressedCellValue
,CompressedCellArray
, andCompressedCellMap
, as well as efficient versions ofapply
,evaluate
, andreindex
for these types. See PR #41 for more details.NEWS.md
file (a changelog file)
- 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
, andapply_constraints_cols
to support FE assembly of several terms, which are integrated in different domains. The old API ofasseble
is still functional, but not for theapply_constraints
et al. Since PR #43. Further changed in commit a335aed.
- 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
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.
A changelog is not maintained for this version.
This version is non functional. It is just a tag for registering the package.