From 68b5a3805fb746d8654d1461c6d7986e6c842535 Mon Sep 17 00:00:00 2001 From: JordiManyer Date: Wed, 8 Mar 2023 14:56:36 +1100 Subject: [PATCH 1/3] Bugfix: get_normal_vector not correctly implemented for AdaptedTriangulations --- src/Adaptivity/AdaptedTriangulations.jl | 4 ++++ test/AdaptivityTests/AdaptedGeometryTests.jl | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/Adaptivity/AdaptedTriangulations.jl b/src/Adaptivity/AdaptedTriangulations.jl index b6f234f39..6f803ab6e 100644 --- a/src/Adaptivity/AdaptedTriangulations.jl +++ b/src/Adaptivity/AdaptedTriangulations.jl @@ -58,6 +58,10 @@ function Geometry.get_glue(t::AdaptedTriangulation,::Val{d}) where d get_glue(t.trian,Val(d)) end +function Geometry.get_facet_normal(trian::AdaptedTriangulation) + get_facet_normal(trian.trian) +end + function Base.view(t::AdaptedTriangulation,ids::AbstractArray) v = view(t.trian,ids) return AdaptedTriangulation(v,t.adapted_model) diff --git a/test/AdaptivityTests/AdaptedGeometryTests.jl b/test/AdaptivityTests/AdaptedGeometryTests.jl index cfaf65aaf..028133951 100644 --- a/test/AdaptivityTests/AdaptedGeometryTests.jl +++ b/test/AdaptivityTests/AdaptedGeometryTests.jl @@ -52,6 +52,7 @@ for D = 1:3 bt = BoundaryTriangulation(model1) @test isa(bt,AdaptedTriangulation) test_triangulation(bt) + bt_normal = get_normal_vector(bt) @test is_change_possible(t,bt) @test is_change_possible(rt,bt) @test !is_change_possible(bt,t) @@ -61,12 +62,15 @@ for D = 1:3 st = SkeletonTriangulation(model1) @test isa(st,AdaptedTriangulation) test_triangulation(st) + st_normal = get_normal_vector(st) @test is_change_possible(t,st) @test is_change_possible(rt,st) @test !is_change_possible(st,t) @test !is_change_possible(st,rt) st2 = SkeletonTriangulation(bt) + test_triangulation(st2) + st2_normal = get_normal_vector(bt) @test is_change_possible(rt,st2) @test is_change_possible(bt,st2) From fdcce523d2a364db63f47f41d2559c4221b74350 Mon Sep 17 00:00:00 2001 From: JordiManyer Date: Wed, 8 Mar 2023 15:02:56 +1100 Subject: [PATCH 2/3] Updated NEWS.md --- NEWS.md | 354 ++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 217 insertions(+), 137 deletions(-) diff --git a/NEWS.md b/NEWS.md index 14b87feb2..cf280de8a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,12 +1,24 @@ # Changelog + All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Added + +### Fixed + +- Fixed the method `get_normal_vector` for `AdaptedTriangulation`. The method `get_facet_normal` + was using default, it's now using the spetialized implementation for the underlying triangulation type. + Since PR [#884](https://github.com/gridap/Gridap.jl/pull/884). + ## [0.17.17] - 2023-02-24 ### Added + - Implemented `RefinementRule` and `AdaptivityGlue`, which encode the mapping between the old and new cells in an adapted model. Since PR [#838](https://github.com/gridap/Gridap.jl/pull/838). - Implemented `AdaptedDiscreteModel` and `AdaptedTriangulation`, representing respectively a model and triangulation produced by adapting a parent model. This types mostly wrap around `DiscreteModel` and `Triangulation`, with some added features necessary to keep track of the adaptive hierarchy. Since PR [#838](https://github.com/gridap/Gridap.jl/pull/838). - Implemented tools to be able to transfer `CellDatum`s back and forth between parent and child grids. These include changes to `change_domain` (which now takes the source `Triangulation` as argument) and a new type of `Measure` called `CompositeMeasure`, which allows the integration `Triangulation` to be different from the `Triangulation` of the resulting `DomainContribution`. To accomodate `CompositeMeasure`, `Measure` has been made abstract type and a `GenericMeasure` has been created to replace the old type. Since PR [#838](https://github.com/gridap/Gridap.jl/pull/838). @@ -17,19 +29,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added support for changing domain between adapted triangulations in cases where the target triangulation is a view, a `BoundaryTriangulation` or a `SkeletonTriangulation`. Since PR [#868](https://github.com/gridap/Gridap.jl/pull/868). ### Fixed + - Using broadcasting through in `ODESolver` vector operations. Since PR [#860](https://github.com/gridap/Gridap.jl/pull/860) - Fixes to `array_cache(a::Table)`: Now does not use the `zero(T,N)` function, but instead creates new empty vector using the general allocator `Vector{T}(undef,N)`. This allows `Table` to work with complex composite types which don't have an easy `zero(T)` function defined. Since PR [#838](https://github.com/gridap/Gridap.jl/pull/838). - Added `get_metadata` to all the instances of `ReferenceFE`. This makes the abstract type more consistent, which is necessary for the new type `FineToCoarseReferenceFE`. Since PR [#838](https://github.com/gridap/Gridap.jl/pull/838). - `ConstantFESpace` is now properly exported. Since PR [#872](https://github.com/gridap/Gridap.jl/pull/872). -## [0.17.16] - 2022-12-22 +## [0.17.16] - 2022-12-22 ### Fixed + - Fixed a bug in function `collect_cell_matrix_and_vector`. Since PR [#849](https://github.com/gridap/Gridap.jl/pull/849) -## [0.17.15] - 2022-11-10 +## [0.17.15] - 2022-11-10 ### Added + - `lastindex` for `MultiValue`s for consistent usage of `[end]` as per `length`. Since PR [#834](https://github.com/gridap/Gridap.jl/pull/834) - BDM (Brezzi-Douglas-Marini) ReferenceFEs in PR [#823](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/836) @@ -38,16 +53,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `AbstractVector` support to weights and `Point`s of GenericQuadrature, in particular for `FillArray` usage. Since PR [#839](https://github.com/gridap/Gridap.jl/pull/839) - Using the above generalization of `GenericQuadrature`, made the weights of quadrature of `DiracDelta` for generic points to be a `Fill` vector. Since PR [#839](https://github.com/gridap/Gridap.jl/pull/839) - Optional keyword argument `T` to select the floating point precision for the numerical quadrature pipeline involving `Measure`, `CellQuadrature` and `Quadrature` functions. `T` defaults to `Float64` when not specified, so it doesn't involve any breaking changes in public API. Since PR [#840](https://github.com/gridap/Gridap.jl/pull/840) - + ## [0.17.14] - 2022-07-29 ### Added -- Functionality to take gradient of functional involving integration (`DomainContribution`) over Skeleton faces, with respect to the degrees-of-freedom of `FEFunction`. The interface remains the same - `gradient(f,uh)`. Since PR [#797](https://github.com/gridap/Gridap.jl/pull/797) + +- Functionality to take gradient of functional involving integration (`DomainContribution`) over Skeleton faces, with respect to the degrees-of-freedom of `FEFunction`. The interface remains the same - `gradient(f,uh)`. Since PR [#797](https://github.com/gridap/Gridap.jl/pull/797) - Extended the `MultiField` functional gradient (with respect to degrees-of-freedom of `MultiFieldFEFunction`) to functionals involving Skeleton integration. The interface remains the same `gradient(f,xh)`. Since PR [#799](https://github.com/gridap/Gridap.jl/pull/799) -- Functionality to take jacobian of functional involving integration (`DomainContribution`) over Skeleton faces (obtained from testing bilinear form with the whole set of test `fe_basis`), with respect to the degrees-of-freedom of `FEFunction`. The interface remains the same - `jacobian(f,uh)`. Since PR [#803](https://github.com/gridap/Gridap.jl/pull/803) +- Functionality to take jacobian of functional involving integration (`DomainContribution`) over Skeleton faces (obtained from testing bilinear form with the whole set of test `fe_basis`), with respect to the degrees-of-freedom of `FEFunction`. The interface remains the same - `jacobian(f,uh)`. Since PR [#803](https://github.com/gridap/Gridap.jl/pull/803) - A dummy tag for ForwardDiff configs being constructed in Gridap at `src/Arrays/Autodiff.jl` to fix issue [#805](https://github.com/gridap/Gridap.jl/issues/805). Since PR [#806](https://github.com/gridap/Gridap.jl/pull/806) ### Fixed + - The behavior of `gradient` for functionals involving operations of `CellFields` inside `mean` and `jump` terms of Skeleton Integration terms. Since PR [#800](https://github.com/gridap/Gridap.jl/pull/800) - The behavior of `SkeletonCellFieldPair` at the Boundary integration terms. Since PR [#800](https://github.com/gridap/Gridap.jl/pull/800) - `push_normal` for rectangular Jacobians. Since PR[#809](https://github.com/gridap/Gridap.jl/pull/809) @@ -57,48 +74,56 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.17.13] - 2022-05-31 ### Added + - `KeyToValMap` lazy map that dynamically creates a `Dict` with the outputs of a function over an array of inputs. Since PR [#801](https://github.com/gridap/Gridap.jl/pull/801) - `MappedDiscreteModel` and `MappedGrid`, which are geometrical models with one extra geo map in the physical space. Since PR [#801](https://github.com/gridap/Gridap.jl/pull/801) - `GridWithFEMap`, which has a geometrical map defined by a FE function. Since PR [#801](https://github.com/gridap/Gridap.jl/pull/801) - Vertex bisection algorithm for refinement of triangular meshes in 2D. Since PR [#733](https://github.com/gridap/Gridap.jl/pull/733) -- Generalized-α method for 1st order ODEs. Since PR [#781](https://github.com/gridap/Gridap.jl/pull/781) +- Generalized-α method for 1st order ODEs. Since PR [#781](https://github.com/gridap/Gridap.jl/pull/781) - Implemented (generalised) ModalC0 Polynomial bases and reference FEs. Since PR [#777](https://github.com/gridap/Gridap.jl/pull/777) - Serendipity reference FEs for any dimension and order. Since PR [#777](https://github.com/gridap/Gridap.jl/pull/777) ## [0.17.12] - 2022-03-24 ### Fixed + - Bugs related with 2nd order derivatives. Since PR [#769](https://github.com/gridap/Gridap.jl/pull/769) and [#771](https://github.com/gridap/Gridap.jl/pull/771). ## [0.17.11] - 2022-03-16 ### Fixed + - Miscellaneous bugs associated with empty meshes. Since PR [#765](https://github.com/gridap/Gridap.jl/pull/765) and [#766](https://github.com/gridap/Gridap.jl/pull/766). ## [0.17.10] - 2022-03-10 ### Added + - Implemented addition/subtraction between a `TensorValue` and a `SymTensorValue`. Since PR [#755](https://github.com/gridap/Gridap.jl/pull/755). - Nédélec elements on simplices (lowest order interpolation for the moment). Since PR [#758](https://github.com/gridap/Gridap.jl/pull/758). ### Fixed + - Restrict to the active model the evaluation of a FE function at arbitrary points. Since PR [#752](https://github.com/gridap/Gridap.jl/pull/752). - Renamed `GridapODEs` to `ODEs`. Since PR [#756](https://github.com/gridap/Gridap.jl/pull/756) ## [0.17.9] - 2022-02-28 ### Added + - Extra support for dual number propagation. Since PR [#653](https://github.com/gridap/Gridap.jl/pull/653) - Added ODE tools to Gridap. [GridapODEs](https://github.com/gridap/GridapODEs.jl) has been merged into Gridap. Sice PR[#748](https://github.com/gridap/Gridap.jl/pull/748) ## [0.17.8] - 2022-02-14 ### Added + - Support for periodic conditions in `CartesianDiscreteModel`s built from `cmin`, `cmax`. Since PR [#738](https://github.com/gridap/Gridap.jl/pull/738). - Function `savepvd`. Since PR [#736](https://github.com/gridap/Gridap.jl/pull/736). - Support for passing `nothing` as the first argument of the `CartesianDiscreteModel` constructor to mimic the API of `GridapDistributed`. Since PR [#735](https://github.com/gridap/Gridap.jl/pull/735). ### Fixed + - Bug in `SymTensorValue`. Since PR [#740](https://github.com/gridap/Gridap.jl/pull/740). - Bug in interpolation at arbitrary points. Since PR [#729](https://github.com/gridap/Gridap.jl/pull/729). - Bug in `reference_grid(TET)`. Since PR [#734](https://github.com/gridap/Gridap.jl/pull/734). @@ -107,39 +132,45 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.17.7]- 2021-12-03 ### Fixed + - Improving compile times by removing unnecessary `@inline` statements. Since PR [#726](https://github.com/gridap/Gridap.jl/pull/726). ### Added -- CellFE constructor now gets optional arguments and pass them down. Since PR [#728](https://github.com/gridap/Gridap.jl/pull/728). +- CellFE constructor now gets optional arguments and pass them down. Since PR [#728](https://github.com/gridap/Gridap.jl/pull/728). ## [0.17.6] - 2021-12-01 ### Added + - Implemented `Base.unaliascopy(A::SubVector)`. Since PR [#715](https://github.com/gridap/Gridap.jl/pull/715). ### Fixed -- Bugfix in `Base.view(glue::FaceToFaceGlue,ids::AbstractArray)`. Since PR [#724](https://github.com/gridap/Gridap.jl/pull/724). +- Bugfix in `Base.view(glue::FaceToFaceGlue,ids::AbstractArray)`. Since PR [#724](https://github.com/gridap/Gridap.jl/pull/724). ## [0.17.5] - 2021-11-08 ### Added + - Hiding the creation of `FESolver` and `LinearFESolver` from user code. Since PR [#705](https://github.com/gridap/Gridap.jl/pull/705). ## [0.17.4] - 2021-10-27 ### Fixed - - Using implementation of `pvtk_grid` provided in WriteVTK. Since PR [#699](https://github.com/gridap/Gridap.jl/pull/699). + +- Using implementation of `pvtk_grid` provided in WriteVTK. Since PR [#699](https://github.com/gridap/Gridap.jl/pull/699). ## [0.17.3] - 2021-10-27 ### Fixed - - Adding a newer version of WriteVTK in the [compat] section. Since PR [#698](https://github.com/gridap/Gridap.jl/pull/698). + +- Adding a newer version of WriteVTK in the [compat] section. Since PR [#698](https://github.com/gridap/Gridap.jl/pull/698). ## [0.17.2] - 2021-10-26 ### Fixed + - AD with multi-field residuals with different num dofs per field. Since PR [#687](https://github.com/gridap/Gridap.jl/pull/687). ## [0.17.1] - 2021-10-26 @@ -164,17 +195,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Removed -- `BoundaryDiscreteModel`, `RestrictedDiscreteMdeol`, `RestrictedTriangulation`, `TriangulationStyle`, `BackgroundTriangulation`, `SubTriangulation`, `get_cell_to_bgcell`, `get_cell_ref_map`, `get_background_triangulation`, and `have_compatible_domains`. Since PR [#662](https://github.com/gridap/Gridap.jl/pull/662). +- `BoundaryDiscreteModel`, `RestrictedDiscreteMdeol`, `RestrictedTriangulation`, `TriangulationStyle`, `BackgroundTriangulation`, `SubTriangulation`, `get_cell_to_bgcell`, `get_cell_ref_map`, `get_background_triangulation`, and `have_compatible_domains`. Since PR [#662](https://github.com/gridap/Gridap.jl/pull/662). - Functions `scale_entries!` and `fill_entries!`. Replaced by Julia functions `LinearAlgebra.rmul!` and `LinearAlgebra.fillstored!`. Since PR [#680](https://github.com/gridap/Gridap.jl/pull/680). ## [0.16.5] - 2021-09-08 ### Added + - Implemented DIV operator for FE functions in RT space. Since PR [#650](https://github.com/gridap/Gridap.jl/pull/650). - `GenericAssemblyStrategy`. Since PR [#655](https://github.com/gridap/Gridap.jl/pull/655). - Additional high level API assembly functions. Since PR [#652](https://github.com/gridap/Gridap.jl/pull/652). ### Fixed + - Bug related with the release of ChainRulesCore version 1.3.1. Since [#654](https://github.com/gridap/Gridap.jl/pull/654). - Inheritance relationship for DiscreteModelPortion. Since PR [#645](https://github.com/gridap/Gridap.jl/pull/645). - Optimization to RT FEs. Since PR [#638](https://github.com/gridap/Gridap.jl/pull/638). @@ -183,28 +216,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.16.4] - 2021-08-17 ### Added + - Trait to CellQuadrature to support the evaluation of integrals on the reference domain. Since PR [#636](https://github.com/gridap/Gridap.jl/pull/636). - Type `Interpolable` allowing to interpolate data from two independent meshes. Since PR [#632](https://github.com/gridap/Gridap.jl/pull/632). ## [0.16.3] - 2021-06-28 ### Fixed + - Deactivating optimizations related with `MemoArray` since they are not reliable. Since PR [#624](https://github.com/gridap/Gridap.jl/pull/624). - Bug related with `ArrayBlock`. Since PR [#623](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/611). ## [0.16.0] - 2021-06-04 ### Added + - User API to select specific quadrature rules. Since PR [#578](https://github.com/gridap/Gridap.jl/pull/578). - Experimental support for mixed dimensional PDEs. Since PR [#567](https://github.com/gridap/Gridap.jl/pull/567). - Added `get_cell_dof_basis(model,cell_reffes,::Conformity)` and `get_cell_shapefuns(model,cell_reffes,::Conformity)`. Since PR [#579](https://github.com/gridap/Gridap.jl/pull/579). @@ -213,6 +251,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Implemented `compute_cell_points_from_vector_of_points` to build `CellPoint` from a vector of points. Since PR [#523](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/583). - The default quadrature rule for tets has changed. Since PR [#578](https://github.com/gridap/Gridap.jl/pull/578). - Refactoring in `SparseMatrixAssembler` to make it more extensible and efficient. Since PR [#568](https://github.com/gridap/Gridap.jl/pull/568). @@ -227,50 +266,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Replaced `CellFE(::AbstractArray{<:Field},::AbstractArray{<:ReferenceFE})` by `CellFE(::DiscreteModel,::AbstractArray{<:ReferenceFE},::Conformity)`. Since PR [#579](https://github.com/gridap/Gridap.jl/pull/579). ### Removed + - All code associated with with `BlockArrayCoo`. Since PR [#583](https://github.com/gridap/Gridap.jl/pull/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`](https://github.com/gridap/SparseMatricesCSR.jl). To use them simply add `SparseMatricesCSR` into your environment and type `using SparseMatricesCSR`. Since Since PR [#568](https://github.com/gridap/Gridap.jl/pull/568). +- Types `SparseMatrixCSR` and `SymSparseMatrixCSR` have been moved to the registered package [`SparseMatricesCSR`](https://github.com/gridap/SparseMatricesCSR.jl). To use them simply add `SparseMatricesCSR` into your environment and type `using SparseMatricesCSR`. Since Since PR [#568](https://github.com/gridap/Gridap.jl/pull/568). - Removed `PushForwardMap` and all code depending upon it. Since PR [#579](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/commit/da005cf4cde68617f92d76744e307798ef7e8340). ## [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](https://github.com/gridap/Gridap.jl/pull/553). ### Fixed + - Bug in `print_op_tree`. Since PR [#563](https://github.com/gridap/Gridap.jl/pull/563) ## [0.15.2] - 2021-03-08 ### Added + - Method `inverse_map` for `AffineMap`. Since PR [#552](https://github.com/gridap/Gridap.jl/pull/552). - Method `get_cell_points` for `CellDof`. Since PR [#551](https://github.com/gridap/Gridap.jl/pull/551). - Evaluation of `MonomialBasis` objects at a single point. Since PR [#550](https://github.com/gridap/Gridap.jl/pull/550). - `rand` function for `MultiValue` objects. Since PR [#530](https://github.com/gridap/Gridap.jl/pull/530). ### Fixed + - Bug in `return_value` for `Broadcasting(∇∇)`. Since PR [#554](https://github.com/gridap/Gridap.jl/pull/554). - Bug in `dot` for third order tensors. Since PR [#544](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/514). + +- Added support for Hessian and Laplacian operators. Only implemented for Finite Elements with an `AffineMap`. Since PR [#514](https://github.com/gridap/Gridap.jl/pull/514). ### Fixed -- Bug in `RestrictedDiscreteModel` for periodic boundary conditions. Since PR [#517](https://github.com/gridap/Gridap.jl/pull/517). -- Bug in `sum(a::LazyArray)` when `eltype(a) <: AbstractArray`. Since PR [#513](https://github.com/gridap/Gridap.jl/pull/513). + +- Bug in `RestrictedDiscreteModel` for periodic boundary conditions. Since PR [#517](https://github.com/gridap/Gridap.jl/pull/517). +- Bug in `sum(a::LazyArray)` when `eltype(a) <: AbstractArray`. Since PR [#513](https://github.com/gridap/Gridap.jl/pull/513). ## [0.15.0] - 2020-12-14 @@ -279,161 +327,176 @@ This version is a major (backwards-incompatible) refactoring of the project whic ## [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](https://github.com/gridap/Gridap.jl/pull/415/). ### Fixed - - Bug-fix for 32-bit Julia: Replace all occurrences of Int64 by Int. Since PR [#445](https://github.com/gridap/Gridap.jl/pull/445). - - Bug-fix for 32-bit Julia. Using inttype=Int keyword argument for JSON parsing. Since PR [#456](https://github.com/gridap/Gridap.jl/pull/456). + +- Bug-fix for 32-bit Julia: Replace all occurrences of Int64 by Int. Since PR [#445](https://github.com/gridap/Gridap.jl/pull/445). +- Bug-fix for 32-bit Julia. Using inttype=Int keyword argument for JSON parsing. Since PR [#456](https://github.com/gridap/Gridap.jl/pull/456). ## [0.14.1] - 2020-09-17 ### Added - - Added VectorWithEntryInserted and VectorWithEntryRemoved. Since PR [#401](https://github.com/gridap/Gridap.jl/pull/401/). - - Added missing get_constant_approach() getter to FESpaceWithConstantFixed. Since PR [#409](https://github.com/gridap/Gridap.jl/pull/409). + +- Added VectorWithEntryInserted and VectorWithEntryRemoved. Since PR [#401](https://github.com/gridap/Gridap.jl/pull/401/). +- Added missing get_constant_approach() getter to FESpaceWithConstantFixed. Since PR [#409](https://github.com/gridap/Gridap.jl/pull/409). ### Deprecated - - The name FESpaceWithLastDofRemoved has been deprecated in favor of its generalization FESpaceWithConstantFixed. Since PR [#396](https://github.com/gridap/Gridap.jl/pull/396) and PR [#404](https://github.com/gridap/Gridap.jl/pull/404). + +- The name FESpaceWithLastDofRemoved has been deprecated in favor of its generalization FESpaceWithConstantFixed. Since PR [#396](https://github.com/gridap/Gridap.jl/pull/396) and PR [#404](https://github.com/gridap/Gridap.jl/pull/404). ## [0.14.0] - 2020-08-27 ### Removed - - Support for Julia v1.0. Now, the minimum supported is Julia v1.3. Since PR [#376](https://github.com/gridap/Gridap.jl/pull/376/). + +- Support for Julia v1.0. Now, the minimum supported is Julia v1.3. Since PR [#376](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/376/). - - First and second argument switch in `update_state_variables!` in order to have function-first style. Since PR [#376](https://github.com/gridap/Gridap.jl/pull/376/). - - Table struct has been generalized such that data and ptrs arrays can be of an arbitrary type extending AbstractArray. Since PR [#310](https://github.com/gridap/Gridap.jl/pull/310/) - - `interpolate, interpolate!, interpolate_dirichlet...` switched argument order to function first style. For instance `interpolate(u, V)` instead of `interpolate(V, u)` + +- Major refactoring associated with the handling of elemental matrices and vectors in multi-field computations and also on the skeleton. Since PR [#376](https://github.com/gridap/Gridap.jl/pull/376/). +- First and second argument switch in `update_state_variables!` in order to have function-first style. Since PR [#376](https://github.com/gridap/Gridap.jl/pull/376/). +- Table struct has been generalized such that data and ptrs arrays can be of an arbitrary type extending AbstractArray. Since PR [#310](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/384). - - Support for automatic differentiation of residuals and Jacobians in multi-field computations since PR [#383](https://github.com/gridap/Gridap.jl/pull/383/). - - New `FilterKernel` since PR [#379](https://github.com/gridap/Gridap.jl/pull/379/). + +- Allowing the construction of an `HomogeneousTrialFESpace` from a `TrialFESpace`. Since PR [#384](https://github.com/gridap/Gridap.jl/pull/384). +- Support for automatic differentiation of residuals and Jacobians in multi-field computations since PR [#383](https://github.com/gridap/Gridap.jl/pull/383/). +- New `FilterKernel` since PR [#379](https://github.com/gridap/Gridap.jl/pull/379/). ### Fixed - - Bug associated with boundary triangulation in 1D discrete models. Since PR [#393](https://github.com/gridap/Gridap.jl/pull/393). + +- Bug associated with boundary triangulation in 1D discrete models. Since PR [#393](https://github.com/gridap/Gridap.jl/pull/393). ## [0.13.4] - 2020-08-23 ### Added - - New `FilteredCellArray` since PR [#372](https://github.com/gridap/Gridap.jl/pull/372/). + +- New `FilteredCellArray` since PR [#372](https://github.com/gridap/Gridap.jl/pull/372/). ## [0.13.3] - 2020-08-12 ### Added - - `Visualization.visualization_data` function that makes it easier to bring fields into + +- `Visualization.visualization_data` function that makes it easier to bring fields into visualization library friendly formats. Since PR [#354](https://github.com/gridap/Gridap.jl/pull/354). - - Gradient of a product binary operation (`*`) between a scalar and a field. Since PR [#340](https://github.com/gridap/Gridap.jl/pull/340). +- Gradient of a product binary operation (`*`) between a scalar and a field. Since PR [#340](https://github.com/gridap/Gridap.jl/pull/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. + +- 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](https://github.com/gridap/Gridap.jl/pull/338/). ## [0.13.1] - 2020-07-24 ### Fixed - - Bugs associated with the degenerated case of 0-length arrays. Since PR [#331](https://github.com/gridap/Gridap.jl/pull/331/) and [#332](https://github.com/gridap/Gridap.jl/pull/332/). + +- Bugs associated with the degenerated case of 0-length arrays. Since PR [#331](https://github.com/gridap/Gridap.jl/pull/331/) and [#332](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/327/). - - Added missing SparseMatrixAssembler constructor for MultiFieldFESpaces. Since PR [#320](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/321). + +- Automatic differentiation for symmetric gradient, i.e. `ε(u)` for a given vector-valued function `u`. Since PR [#327](https://github.com/gridap/Gridap.jl/pull/327/). +- Added missing SparseMatrixAssembler constructor for MultiFieldFESpaces. Since PR [#320](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/317). - - Major refactoring in `ReferenceFEs` module. Since PR [#319](https://github.com/gridap/Gridap.jl/pull/319) and [#321](https://github.com/gridap/Gridap.jl/pull/321). In particular: - - `NodalReferenceFE` has been replaced by a new abstract type `LagrangianRefFE`. - - `GenericNodalCartesianRefFE` has been replaced by `GenericLagrangianRefFE`. + +- 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](https://github.com/gridap/Gridap.jl/pull/317). +- Major refactoring in `ReferenceFEs` module. Since PR [#319](https://github.com/gridap/Gridap.jl/pull/319) and [#321](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/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`. + +- Removals associated with the `ReferenceFEs` refactoring in PR [#319](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/329). - - Replaced `+=` by `add_entry!`. Since PR [#316](https://github.com/gridap/Gridap.jl/pull/316). - - Minor fix to let Vtk.jl support changes in Vtk 1.7.X versus 1.6.X. Since PR [#324](https://github.com/gridap/Gridap.jl/pull/324). + +- Better handling of FE terms defined on empty triangulations. Since PR [#329](https://github.com/gridap/Gridap.jl/pull/329). +- Replaced `+=` by `add_entry!`. Since PR [#316](https://github.com/gridap/Gridap.jl/pull/316). +- Minor fix to let Vtk.jl support changes in Vtk 1.7.X versus 1.6.X. Since PR [#324](https://github.com/gridap/Gridap.jl/pull/324). ## [0.12.0] - 2020-07-07 ### Added - - Added `SkeletonTriangulation` constructor in order to integrate, where a given interpolation is discontinuous. Since PR [#304](https://github.com/gridap/Gridap.jl/pull/304). - - New `ConformingFESpace` constructor. Since PR [#293](https://github.com/gridap/Gridap.jl/pull/293). - - Added `QDiscRefFE` constructor for `DiscRefFE`. Since PR [#293](https://github.com/gridap/Gridap.jl/pull/293). - - New `FESpace` constructor that takes an instance of `ReferenceFE`. Since PR [#294](https://github.com/gridap/Gridap.jl/pull/294). - - New `FESpace` constructor that takes an instance of `Conformity`. Since PR [#311](https://github.com/gridap/Gridap.jl/pull/311). - - New `CDLagrangianRefFE` struct, that provides a Lagrangian reference FE with different conformity per direction. Since PR [#299](https://github.com/gridap/Gridap.jl/pull/299). - - New `FESpace` method that takes a model and a `RefFE`. Since PR [#299](https://github.com/gridap/Gridap.jl/pull/299). - - Possibility to have 0 order in `DISC` directions of a `CDLagrangianRefFE`. Since PR [#308](https://github.com/gridap/Gridap.jl/pull/308). - - Added setindex! method for Reindexed. Since PR [#309](https://github.com/gridap/Gridap.jl/pull/309). - +- Added `SkeletonTriangulation` constructor in order to integrate, where a given interpolation is discontinuous. Since PR [#304](https://github.com/gridap/Gridap.jl/pull/304). +- New `ConformingFESpace` constructor. Since PR [#293](https://github.com/gridap/Gridap.jl/pull/293). +- Added `QDiscRefFE` constructor for `DiscRefFE`. Since PR [#293](https://github.com/gridap/Gridap.jl/pull/293). +- New `FESpace` constructor that takes an instance of `ReferenceFE`. Since PR [#294](https://github.com/gridap/Gridap.jl/pull/294). +- New `FESpace` constructor that takes an instance of `Conformity`. Since PR [#311](https://github.com/gridap/Gridap.jl/pull/311). +- New `CDLagrangianRefFE` struct, that provides a Lagrangian reference FE with different conformity per direction. Since PR [#299](https://github.com/gridap/Gridap.jl/pull/299). +- New `FESpace` method that takes a model and a `RefFE`. Since PR [#299](https://github.com/gridap/Gridap.jl/pull/299). +- Possibility to have 0 order in `DISC` directions of a `CDLagrangianRefFE`. Since PR [#308](https://github.com/gridap/Gridap.jl/pull/308). +- Added setindex! method for Reindexed. Since PR [#309](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/311). - - The constructors `GenericRefFE`, `GenericNodalCartesianRefFE`, and `compute_conforming_cell_dofs` take an extra argument of type `Conformity`. Since PR [#311](https://github.com/gridap/Gridap.jl/pull/311). - - Renamed `PDiscRefFE` -> `DiscRefFE` struct keeping the name for constructor. Since PR [#293](https://github.com/gridap/Gridap.jl/pull/293). - - One of the `GradConformingFESpace` methods now more general `ConformingFESpace`. Since PR [#293](https://github.com/gridap/Gridap.jl/pull/293). - - `DivConformingFESpace` and `CurlConformingFESpace` constructors eliminated. Since PR [#293](https://github.com/gridap/Gridap.jl/pull/293). - - Extend table to support arbitrary vector types. Since PR [#310](https://github.com/gridap/Gridap.jl/pull/310). +- 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](https://github.com/gridap/Gridap.jl/pull/311). +- The constructors `GenericRefFE`, `GenericNodalCartesianRefFE`, and `compute_conforming_cell_dofs` take an extra argument of type `Conformity`. Since PR [#311](https://github.com/gridap/Gridap.jl/pull/311). +- Renamed `PDiscRefFE` -> `DiscRefFE` struct keeping the name for constructor. Since PR [#293](https://github.com/gridap/Gridap.jl/pull/293). +- One of the `GradConformingFESpace` methods now more general `ConformingFESpace`. Since PR [#293](https://github.com/gridap/Gridap.jl/pull/293). +- `DivConformingFESpace` and `CurlConformingFESpace` constructors eliminated. Since PR [#293](https://github.com/gridap/Gridap.jl/pull/293). +- Extend table to support arbitrary vector types. Since PR [#310](https://github.com/gridap/Gridap.jl/pull/310). ### Fixed - - Construction of `VectorValue`, `TensorValue`, et al. objects from non-homogeneous arguments. This solves some problems associated with automatic differentiation. Since PR [#298](https://github.com/gridap/Gridap.jl/pull/298). - - `CDLagrangianRefFE` node ordering. Since PR [#305](https://github.com/gridap/Gridap.jl/pull/305). +- Construction of `VectorValue`, `TensorValue`, et al. objects from non-homogeneous arguments. This solves some problems associated with automatic differentiation. Since PR [#298](https://github.com/gridap/Gridap.jl/pull/298). +- `CDLagrangianRefFE` node ordering. Since PR [#305](https://github.com/gridap/Gridap.jl/pull/305). ## [0.11.2] - 2020-06-22 ### Added - - Method `solve!(x,ls,op::AffineOperator,cache::Nothing,newmatrix)`. Since PR [#288](https://github.com/gridap/Gridap.jl/pull/288). +- Method `solve!(x,ls,op::AffineOperator,cache::Nothing,newmatrix)`. Since PR [#288](https://github.com/gridap/Gridap.jl/pull/288). ### Fixed - - Bug related with `WriteVTK` version 1.7. Fixed via PR [#287](https://github.com/gridap/Gridap.jl/pull/287). - - Bug in outer constructor of Table{...} for input arrays of abstract type. Fixed via PR [#285](https://github.com/gridap/Gridap.jl/pull/285). +- Bug related with `WriteVTK` version 1.7. Fixed via PR [#287](https://github.com/gridap/Gridap.jl/pull/287). +- Bug in outer constructor of Table{...} for input arrays of abstract type. Fixed via PR [#285](https://github.com/gridap/Gridap.jl/pull/285). ## [0.11.1] - 2020-06-19 ### Fixed - - Bug in the handling of caches in `NLSolver`. Fixed via PR [#283](https://github.com/gridap/Gridap.jl/pull/283). - - Bug that showed up when interpolating a FE function defined on an +- Bug in the handling of caches in `NLSolver`. Fixed via PR [#283](https://github.com/gridap/Gridap.jl/pull/283). +- Bug that showed up when interpolating a FE function defined on an `ExtendedFESpace` onto a non-extended `FESpace`. Fixed via PR [#282](https://github.com/gridap/Gridap.jl/pull/282). ## [0.11.0] - 2020-06-16 ### Added - - Operator `⊙` (\odot) as an alias of `inner`. Since PR [#239](https://github.com/gridap/Gridap.jl/pull/239). - - Operator `⊗` (\otimes) as an alias of `outer`. Since PR [#239](https://github.com/gridap/Gridap.jl/pull/239). - - Support for (symmetric) 4th order tensors. Since PR [#239](https://github.com/gridap/Gridap.jl/pull/239). - - Optimizations for symmetric 2nd order tensors. Since PR [#239](https://github.com/gridap/Gridap.jl/pull/239). - - Methods for `cross` function (aka `×` (\times)) to operate with `VectorValues`. Since PR [#280](https://github.com/gridap/Gridap.jl/pull/280). - - Interpolation is now supported also for multifield spaces. Since PR [#279](https://github.com/gridap/Gridap.jl/pull/279). +- Operator `⊙` (\odot) as an alias of `inner`. Since PR [#239](https://github.com/gridap/Gridap.jl/pull/239). +- Operator `⊗` (\otimes) as an alias of `outer`. Since PR [#239](https://github.com/gridap/Gridap.jl/pull/239). +- Support for (symmetric) 4th order tensors. Since PR [#239](https://github.com/gridap/Gridap.jl/pull/239). +- Optimizations for symmetric 2nd order tensors. Since PR [#239](https://github.com/gridap/Gridap.jl/pull/239). +- Methods for `cross` function (aka `×` (\times)) to operate with `VectorValues`. Since PR [#280](https://github.com/gridap/Gridap.jl/pull/280). +- Interpolation is now supported also for multifield spaces. Since PR [#279](https://github.com/gridap/Gridap.jl/pull/279). ### Changed - - Major refactoring in the module `Gridap.TensorValues`. +- Major refactoring in the module `Gridap.TensorValues`. Since PR [#239](https://github.com/gridap/Gridap.jl/pull/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 LinearAlgebra 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!` + **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 LinearAlgebra 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](https://github.com/gridap/Gridap.jl/pull/279). @@ -447,93 +510,95 @@ This version is a major (backwards-incompatible) refactoring of the project whic ### Added - - Function `print_op_tree` to visualize lazy operation trees. Since PR [#270](https://github.com/gridap/Gridap.jl/pull/270). - - Exported `apply` and `reindex` from `Gridap` top level. Since PR [#270](https://github.com/gridap/Gridap.jl/pull/270). - - Extended support of `CartesianDiscreteModel` to models with periodic boundary conditions. - PR [#266](https://github.com/gridap/Gridap.jl/pull/266). +- Function `print_op_tree` to visualize lazy operation trees. Since PR [#270](https://github.com/gridap/Gridap.jl/pull/270). +- Exported `apply` and `reindex` from `Gridap` top level. Since PR [#270](https://github.com/gridap/Gridap.jl/pull/270). +- Extended support of `CartesianDiscreteModel` to models with periodic boundary conditions. + PR [#266](https://github.com/gridap/Gridap.jl/pull/266). ### Deprecated - - Optional argument `map` for CartesianDescriptor converted to a key-word argument. Since PR [#266](https://github.com/gridap/Gridap.jl/pull/266). + +- Optional argument `map` for CartesianDescriptor converted to a key-word argument. Since PR [#266](https://github.com/gridap/Gridap.jl/pull/266). ### Fixed - - Fixed some methods of the `sparsecsr` generic function. Since PR [#262](https://github.com/gridap/Gridap.jl/pull/262). - - Fixed BUG in `findnz` function for `SparseMatrixCSR`. Since PR [#264](https://github.com/gridap/Gridap.jl/pull/264). - - Fixed `restrict(::AbstractArray,::TriangulationPortion)` for portions of triangulations extending `BoundaryTriangulation`. Since PR [#267](https://github.com/gridap/Gridap.jl/pull/267). + +- Fixed some methods of the `sparsecsr` generic function. Since PR [#262](https://github.com/gridap/Gridap.jl/pull/262). +- Fixed BUG in `findnz` function for `SparseMatrixCSR`. Since PR [#264](https://github.com/gridap/Gridap.jl/pull/264). +- Fixed `restrict(::AbstractArray,::TriangulationPortion)` for portions of triangulations extending `BoundaryTriangulation`. Since PR [#267](https://github.com/gridap/Gridap.jl/pull/267). ## [0.10.2] - 2020-05-21 ### Added - - New key-word arguments `zeromean_trian` and `zeromean_quad` in the `FESpace` constructor. Since - PR [#257](https://github.com/gridap/Gridap.jl/pull/257). - - New method `reindex(::Triangulation,indices)`. Since - PR [#257](https://github.com/gridap/Gridap.jl/pull/257). - - New functions `get_face_to_face(::BoundaryTriangulation)` and `get_cell_around(::BoundaryTriangulation)`. Since - PR [#256](https://github.com/gridap/Gridap.jl/pull/256). +- New key-word arguments `zeromean_trian` and `zeromean_quad` in the `FESpace` constructor. Since + PR [#257](https://github.com/gridap/Gridap.jl/pull/257). +- New method `reindex(::Triangulation,indices)`. Since + PR [#257](https://github.com/gridap/Gridap.jl/pull/257). +- New functions `get_face_to_face(::BoundaryTriangulation)` and `get_cell_around(::BoundaryTriangulation)`. Since + PR [#256](https://github.com/gridap/Gridap.jl/pull/256). ## [0.10.1] - 2020-05-19 ### Fixed - - Added missing implementation of `simplexify(SEGMENT)` and `simplexify(VERTEX)`. Since PR [#252](https://github.com/gridap/Gridap.jl/pull/252). +- Added missing implementation of `simplexify(SEGMENT)` and `simplexify(VERTEX)`. Since PR [#252](https://github.com/gridap/Gridap.jl/pull/252). ## [0.10.0] - 2020-05-14 ### Added - - Extended support of `TriangulationPortion` to boundary and skeleton triangulations. Since PR [#249](https://github.com/gridap/Gridap.jl/pull/249). - - Added `FESpaceWithLinearConstraints`. Since PR [#247](https://github.com/gridap/Gridap.jl/pull/247). - - Added inner constructor to `CartesianDiscreteModel` allowing to build a model that represents a subgrid of - a larger grid. Since PR [#245](https://github.com/gridap/Gridap.jl/pull/245). +- Extended support of `TriangulationPortion` to boundary and skeleton triangulations. Since PR [#249](https://github.com/gridap/Gridap.jl/pull/249). +- Added `FESpaceWithLinearConstraints`. Since PR [#247](https://github.com/gridap/Gridap.jl/pull/247). +- Added inner constructor to `CartesianDiscreteModel` allowing to build a model that represents a subgrid of + a larger grid. Since PR [#245](https://github.com/gridap/Gridap.jl/pull/245). ### Changed - - The part associated with the imposition of constraints in the `FESpace` interface has changed slightly. Since PR [#247](https://github.com/gridap/Gridap.jl/pull/247). - - Simplified the signature of `zero_free_values(::FESpace)`. Since PR [#249](https://github.com/gridap/Gridap.jl/pull/249). - - Simplified the signature of `zero_initial_guess(op::NonlinearOperator)`. Since PR [#249](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/249). - - Change the types of the sizes and partition fields of CartesianDescriptor to tuples instead of points. - Since PR [#246](https://github.com/gridap/Gridap.jl/pull/246). +- The part associated with the imposition of constraints in the `FESpace` interface has changed slightly. Since PR [#247](https://github.com/gridap/Gridap.jl/pull/247). +- Simplified the signature of `zero_free_values(::FESpace)`. Since PR [#249](https://github.com/gridap/Gridap.jl/pull/249). +- Simplified the signature of `zero_initial_guess(op::NonlinearOperator)`. Since PR [#249](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/249). +- Change the types of the sizes and partition fields of CartesianDescriptor to tuples instead of points. + Since PR [#246](https://github.com/gridap/Gridap.jl/pull/246). ## [0.9.2] - 2020-04-26 ### Added - - Automatic differentiation of manufactured solutions. Since PR [#236](https://github.com/gridap/Gridap.jl/pull/236). +- Automatic differentiation of manufactured solutions. Since PR [#236](https://github.com/gridap/Gridap.jl/pull/236). ## [0.9.1] - 2020-04-20 ### Added - - Function `cell_measure`. Since PR [#234](https://github.com/gridap/Gridap.jl/pull/234). +- Function `cell_measure`. Since PR [#234](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/234). +- Several bugs associated with `ExtendedFESpace`. In particular, we have fixed a bug that showed up when combining `ZeroMeanFESpace` and `ExtendedFESpace`. Since PR [#234](https://github.com/gridap/Gridap.jl/pull/234). ## [0.9.0] - 2020-04-18 ### Added - - Function `HomogeneousTrialFESpace`. Since PR [#226](https://github.com/gridap/Gridap.jl/pull/226). - - Function `lazy_append` in order to lazily append two objects (implemented for `AbstractVector`, `Triangulation`, and `CellQuadrature`). Since PR [#220](https://github.com/gridap/Gridap.jl/pull/220). - - Support for FE spaces with DOFs defined in the physical space. Since PR [#216](https://github.com/gridap/Gridap.jl/pull/216) and [#218](https://github.com/gridap/Gridap.jl/pull/218). +- Function `HomogeneousTrialFESpace`. Since PR [#226](https://github.com/gridap/Gridap.jl/pull/226). +- Function `lazy_append` in order to lazily append two objects (implemented for `AbstractVector`, `Triangulation`, and `CellQuadrature`). Since PR [#220](https://github.com/gridap/Gridap.jl/pull/220). +- Support for FE spaces with DOFs defined in the physical space. Since PR [#216](https://github.com/gridap/Gridap.jl/pull/216) and [#218](https://github.com/gridap/Gridap.jl/pull/218). ### Changed - - Replaced `non_linear` -> `nonlinear` and `NonLinear` -> `Nonlinear`. Since PR [#223](https://github.com/gridap/Gridap.jl/pull/223). - - The `FESpace` interface has slightly changed, mainly the return type of functions `get_cell_basis` and `get_cell_dof_basis.`. Since PR [#216](https://github.com/gridap/Gridap.jl/pull/216) and [#218](https://github.com/gridap/Gridap.jl/pull/218). +- Replaced `non_linear` -> `nonlinear` and `NonLinear` -> `Nonlinear`. Since PR [#223](https://github.com/gridap/Gridap.jl/pull/223). +- The `FESpace` interface has slightly changed, mainly the return type of functions `get_cell_basis` and `get_cell_dof_basis.`. Since PR [#216](https://github.com/gridap/Gridap.jl/pull/216) and [#218](https://github.com/gridap/Gridap.jl/pull/218). ### Fixed - Bug that showed up in multi-field computations when some field had no contribution to the rhs vector. Since [#229](https://github.com/gridap/Gridap.jl/pull/229). - Bug in gradient operator in the void part of `ExtendedFESpace` objects. Since PR [#219](https://github.com/gridap/Gridap.jl/pull/219). -- Bug in jumps of quantities restricted to `InterfaceTriangulation` objects. Since PR [#215](https://github.com/gridap/Gridap.jl/pull/215). +- Bug in jumps of quantities restricted to `InterfaceTriangulation` objects. Since PR [#215](https://github.com/gridap/Gridap.jl/pull/215). ## [0.8.0] - 2020-03-17 @@ -550,7 +615,7 @@ This version is a major (backwards-incompatible) refactoring of the project whic - 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](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/pull/195) and PR [#197](https://github.com/gridap/Gridap.jl/pull/197). +- 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](https://github.com/gridap/Gridap.jl/pull/195) and PR [#197](https://github.com/gridap/Gridap.jl/pull/197). - The part related with the application of constraints in the `FESpace` interface has changed. Since PR [#191](https://github.com/gridap/Gridap.jl/pull/191). @@ -569,7 +634,9 @@ This version is a major (backwards-incompatible) refactoring of the project whic 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](https://github.com/gridap/Tutorials/compare/v0.6.0...v0.7.0) 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](https://github.com/gridap/Gridap.jl/commit/c3c9010177432b8f07aaecf4a0baa4b93876ef1e) - New `NedelecRefFE` constructor that generates Nedelec FEs of arbitrary order in 2D and 3D on hex. Since commit [876ef1e](https://github.com/gridap/Gridap.jl/commit/c3c9010177432b8f07aaecf4a0baa4b93876ef1e) - New keyword argument `map` in the constructor of `CartesianModel`, which allows one to transform the original domain, by default [0,1]^d to a new domain through a homeomorphic map. Since commit [30cc4bc](https://github.com/gridap/Gridap.jl/commit/1c51b18f7e21c4915c0b379585dc5d98130cc4bc) @@ -578,48 +645,58 @@ This version is a major refactoring of the project which is not summarized here - Added [`SparseMatricesCSR`](https://github.com/gridap/SparseMatricesCSR.jl) support to `SparseMatrixAssembler` and `MultiSparseMatrixAssembler` in [PR #118](https://github.com/gridap/Gridap.jl/pull/118#). ### Changed + - The `RaviartThomasRefFE` has now been replaced by `GenericRefFE`, and the constructor for Raviart-Thomas FEs is called `RTRefFE`. Since commit [876ef1e](https://github.com/gridap/Gridap.jl/commit/c3c9010177432b8f07aaecf4a0baa4b93876ef1e) - The default map in the `CartesianModel` constructor is [0,1]^d instead of [-1,1]^d, since commit [30cc4bc](https://github.com/gridap/Gridap.jl/commit/1c51b18f7e21c4915c0b379585dc5d98130cc4bc) - `CartesianGrid` has attribute `map` since commit [30cc4bc](https://github.com/gridap/Gridap.jl/commit/1c51b18f7e21c4915c0b379585dc5d98130cc4bc) ## [0.5.2] - 2019-10-22 + ### Fixed -- Incompatibility problem with `TensorValues` version 0.3.5. Via commit [3c0682a](https://github.com/gridap/Gridap.jl/commit/3c0682a84250e17086457ca3a90a49d9bce133d0). +- Incompatibility problem with `TensorValues` version 0.3.5. Via commit [3c0682a](https://github.com/gridap/Gridap.jl/commit/3c0682a84250e17086457ca3a90a49d9bce133d0). ## [0.5.1] - 2019-10-03 + ### Added + - Pretty printing for the types most exposed to users. Since PR [#109](https://github.com/gridap/Gridap.jl/pull/109). + ### Fixed + - Bug related to `ZeroMeanFESpace`. Via PR [#111](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/issues/100) for more details. Since PR [#102](https://github.com/gridap/Gridap.jl/pull/102). - Added `ZeroMeanFESpace` to construct FE spaces whose functions have zero mean value. Since PR [#102](https://github.com/gridap/Gridap.jl/pull/102). - Added Hdiv FE space using Raviart-Thomas reference FEs in [34bfa34](https://github.com/gridap/Gridap.jl/commit/34bfa344efd1bc6a5d3c5993d9639259ed21671a) - Added the corresponding DOF basis for Raviart-Thomas reference FEs for interpolation of fields [60b9021](https://github.com/gridap/Gridap.jl/commit/60b9021b6d4b5e66a9ec4fe2067aa8278f8ccb52) - Added an arbitrary order div-conforming Raviart-Thomas reference FE of arbitrary order on quads in commit -[60b9021](https://github.com/gridap/Gridap.jl/commit/60b9021b6d4b5e66a9ec4fe2067aa8278f8ccb52) + [60b9021](https://github.com/gridap/Gridap.jl/commit/60b9021b6d4b5e66a9ec4fe2067aa8278f8ccb52) - Now, the `tags` argument is optional when constructing `SkeletonTriangulation` and `BoundaryTriangulation` objects from a `DiscreteModel`. Since commit [e6424a3](https://github.com/gridap/Gridap.jl/commit/e6424a304feb38547241e86de07a821e26344a7e). - Added `mean` operator for quantities restricted to a `SkeletonTriangulation`. Since commit [83798b4](https://github.com/gridap/Gridap.jl/commit/83798b4f38aaf482b968ffd0359eb75c79a21385). - Extended `NormalVector` to `SkeletonTriangulations`. Since commit [5fb8487](https://github.com/gridap/Gridap.jl/commit/5fb84871128c4388559cc5052d9ff00f0be19462). - Now, `TrialFESpaces` can be constructed from values instead of functions if the corresponding Dirichlet conditions are constant. Since commit [bae237e](https://github.com/gridap/Gridap.jl/commit/bae237e881db6569622f3559f82bcc3999560526). - 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](https://github.com/gridap/Gridap.jl/commit/e9dfac4489047c0b7e1c62507f4335e9fc76dfd8). - Added `BackslashSolver` to facilitate the usage in Gridap of the build-in Julia backslash linear solver. Since commit [8e3a9b7](https://github.com/gridap/Gridap.jl/commit/8e3a9b71c64b032c5a572a7ef696f4cbf875190b). -- Added `NLSolver` to facilitate the usage in Gridap of the non-linear solvers available in the official Julia package `NLsolve`. Introduced in commit [e5a933f](https://github.com/gridap/Gridap.jl/commit/e5a933f3093faea221a50bdd796d7f02113ed52c) as `JuliaNLSolver`. Renamed to `NLSolver` in PR [#108](https://github.com/gridap/Gridap.jl/pull/108). +- Added `NLSolver` to facilitate the usage in Gridap of the non-linear solvers available in the official Julia package `NLsolve`. Introduced in commit [e5a933f](https://github.com/gridap/Gridap.jl/commit/e5a933f3093faea221a50bdd796d7f02113ed52c) as `JuliaNLSolver`. Renamed to `NLSolver` in PR [#108](https://github.com/gridap/Gridap.jl/pull/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](https://github.com/gridap/Gridap.jl/commit/ac212d30205700a919a37f9abf9dac6cbde03e38). + +- 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](https://github.com/gridap/Gridap.jl/commit/ac212d30205700a919a37f9abf9dac6cbde03e38). - 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](https://github.com/gridap/Gridap.jl/pull/102). - Previous ConformingFESpace constructor is H1ConformingFESpace since [34bfa34](https://github.com/gridap/Gridap.jl/commit/34bfa344efd1bc6a5d3c5993d9639259ed21671a) ### Deprecated -- `JuliaNLSolver`. Renamed to `NLSolver`. Since PR [#108](https://github.com/gridap/Gridap.jl/pull/108). -- Key-word argument `order` in `CellQuadrature` constructor. Renamed to `degree`. Since PR [#108](https://github.com/gridap/Gridap.jl/pull/108). + +- `JuliaNLSolver`. Renamed to `NLSolver`. Since PR [#108](https://github.com/gridap/Gridap.jl/pull/108). +- Key-word argument `order` in `CellQuadrature` constructor. Renamed to `degree`. Since PR [#108](https://github.com/gridap/Gridap.jl/pull/108). ### Fixed + - Bug in `@law` macro for more than one `FEBasis` arguments. Solved via PR [#104](https://github.com/gridap/Gridap.jl/pull/104). - Bug in `NonlinearFEOperator` constructor with default assembler in multi-field computations. Solved via PR [#104](https://github.com/gridap/Gridap.jl/pull/104). - Bug in `NormalVector` for non-Cartesian grids. Solved via PR [#98](https://github.com/gridap/Gridap.jl/pull/98). @@ -630,7 +707,7 @@ This version is a major refactoring of the project which is not summarized here - Added support to high order simplicial Lagrangian finite elements. Since commit [cbefe9b](https://github.com/gridap/Gridap.jl/commit/cbefe9bbea83d00e7f6ccbef50396ddc7dc49b80). - Now the built-in simplicial grids are oriented. Since commit [cbefe9b](https://github.com/gridap/Gridap.jl/commit/cbefe9bbea83d00e7f6ccbef50396ddc7dc49b80). -- Added binary operations between `FEFuntion` and `Number`, and `FEBasis` and `Number`. Since PR [#88](https://github.com/gridap/Gridap.jl/pull/88). +- Added binary operations between `FEFuntion` and `Number`, and `FEBasis` and `Number`. Since PR [#88](https://github.com/gridap/Gridap.jl/pull/88). - Added `PDiscRefFE`, `DiscFESpace`, and `ConstrainedFESpace`. Since PR [#88](https://github.com/gridap/Gridap.jl/pull/88). - Now its possible to pass a `CellNumer` or an `Array` of numbers into a constitutive law. Useful to identify which is the material of the current Gauss point in multi-material problems. Since commit [62cb2c3](https://github.com/gridap/Gridap.jl/commit/62cb2c354e2a09c556324a4fe9861329989299f4). - `LinearFESolver` is now optional for solving a `LinearFEOperator`. Since commit [5c1caa8](https://github.com/gridap/Gridap.jl/commit/5c1caa8c92b260db72f5902e778ec5c0eb88728b). @@ -654,7 +731,9 @@ This version is a major refactoring of the project which is not summarized here - Bug in binary operations between FEFunction and FEBasis. Fixed via commit [aa49689](https://github.com/gridap/Gridap.jl/commit/aa49689be2a8dc14e052a6409c8348f492b52b3e). ## [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 respectively. 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](https://github.com/gridap/Gridap.jl/pull/64). - `simplexify` function to convert `Grid` and `DiscreteModel` objects made of n-cubes to the corresponding counterparts made of n-simplices. Since PR [#62](https://github.com/gridap/Gridap.jl/pull/62). @@ -674,8 +753,9 @@ This version is a major refactoring of the project which is not summarized here - `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](https://github.com/gridap/Gridap.jl/commit/268dfe12ef7d736fcd9ad0b9b256740aaf15b2e7). -- 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](https://github.com/gridap/Gridap.jl/pull/43). Further changed in commit [a335aed](https://github.com/gridap/Gridap.jl/commit/a335aede65c92a1f61f0ff0dbb0fb44cc20cf906). +- 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](https://github.com/gridap/Gridap.jl/pull/43). Further changed in commit [a335aed](https://github.com/gridap/Gridap.jl/commit/a335aede65c92a1f61f0ff0dbb0fb44cc20cf906). ### Fixed From af6b8afd4cb59d88744cfbd2bf9721d15618e547 Mon Sep 17 00:00:00 2001 From: JordiManyer Date: Wed, 8 Mar 2023 15:05:28 +1100 Subject: [PATCH 3/3] Fixed typo --- test/AdaptivityTests/AdaptedGeometryTests.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/AdaptivityTests/AdaptedGeometryTests.jl b/test/AdaptivityTests/AdaptedGeometryTests.jl index 028133951..27e54594a 100644 --- a/test/AdaptivityTests/AdaptedGeometryTests.jl +++ b/test/AdaptivityTests/AdaptedGeometryTests.jl @@ -70,7 +70,7 @@ for D = 1:3 st2 = SkeletonTriangulation(bt) test_triangulation(st2) - st2_normal = get_normal_vector(bt) + st2_normal = get_normal_vector(st2) @test is_change_possible(rt,st2) @test is_change_possible(bt,st2)