Skip to content

Commit d2b7659

Browse files
authored
Merge pull request #188 from gridap/release-0.7
Preparing release 0.7.0
2 parents 82ccf12 + abd107b commit d2b7659

26 files changed

+184
-29
lines changed

Manifest.toml

+6-6
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,9 @@ version = "0.4.2"
100100

101101
[[FileIO]]
102102
deps = ["Pkg"]
103-
git-tree-sha1 = "74585bf1f7ed7259e166011e89f49363d7fa89a6"
103+
git-tree-sha1 = "2c84c57aced468fa21763c66d3bef33adcd09ec7"
104104
uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
105-
version = "1.2.1"
105+
version = "1.2.2"
106106

107107
[[FillArrays]]
108108
deps = ["LinearAlgebra", "Random", "SparseArrays"]
@@ -195,9 +195,9 @@ version = "0.12.0"
195195

196196
[[Parsers]]
197197
deps = ["Dates", "Test"]
198-
git-tree-sha1 = "0139ba59ce9bc680e2925aec5b7db79065d60556"
198+
git-tree-sha1 = "d112c19ccca00924d5d3a38b11ae2b4b268dda39"
199199
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
200-
version = "0.3.10"
200+
version = "0.3.11"
201201

202202
[[Pkg]]
203203
deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
@@ -240,9 +240,9 @@ version = "0.2.0"
240240

241241
[[Requires]]
242242
deps = ["UUIDs"]
243-
git-tree-sha1 = "999513b7dea8ac17359ed50ae8ea089e4464e35e"
243+
git-tree-sha1 = "d37400976e98018ee840e0ca4f9d20baa231dc6b"
244244
uuid = "ae029012-a4dd-5104-9daa-d747884805df"
245-
version = "1.0.0"
245+
version = "1.0.1"
246246

247247
[[SHA]]
248248
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"

NEWS.md

+4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [0.7.0] - 2020-02-13
8+
9+
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 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.
10+
711
## [0.6.0] - 2020-01-24
812
### Added
913
- New `GenericRefFE`. Since commit [876ef1e](https://github.com/gridap/Gridap.jl/commit/c3c9010177432b8f07aaecf4a0baa4b93876ef1e)

Project.toml

+1-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ LineSearches = "d3d80556-e9d4-5f37-9878-2ab0fcc64255"
1616
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1717
NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56"
1818
QuadGK = "1fd47b50-473d-5c70-9696-f719f8f3bcdc"
19-
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
2019
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
2120
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
2221
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
@@ -27,14 +26,13 @@ BSON = "0.2.5"
2726
Combinatorics = "1.0.0"
2827
DocStringExtensions = "0.8.1"
2928
FastGaussQuadrature = "0.4.2"
30-
FileIO = "1.2.1"
29+
FileIO = "1.2.2"
3130
FillArrays = "0.8.4"
3231
JLD2 = "0.1.11"
3332
JSON = "0.21.0"
3433
LineSearches = "7.0.1"
3534
NLsolve = "4.3.0"
3635
QuadGK = "2.3.1"
37-
Reexport = "0.2.0"
3836
StaticArrays = "0.12.1"
3937
WriteVTK = "1.4.0"
4038
julia = "1.0"

docs/Project.toml

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[deps]
22
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
33
Gridap = "56d4f2e9-7ea1-5844-9cf6-b9c51ca7ce8e"
4+
5+
[compat]
6+
Documenter = "0.24"

docs/make.jl

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,17 @@ pages = [
88
"Gridap" => "Gridap.md",
99
"Gridap.Helpers" => "Helpers.md",
1010
"Gridap.Inference" => "Inference.md",
11+
"Gridap.Algebra" => "Algebra.md",
1112
"Gridap.Io" => "Io.md",
1213
"Gridap.TensorValues" => "TensorValues.md",
1314
"Gridap.Arrays" => "Arrays.md",
1415
"Gridap.Fields" => "Fields.md",
1516
"Gridap.Polynomials" => "Polynomials.md",
17+
"Gridap.Integration" => "Integration.md",
1618
"Gridap.ReferenceFEs" => "ReferenceFEs.md",
1719
"Gridap.Geometry" => "Geometry.md",
18-
"Gridap.Integration" => "Integration.md",
19-
"Gridap.Algebra" => "Algebra.md",
2020
"Gridap.FESpaces" => "FESpaces.md",
21+
"Gridap.MultiField" => "MultiField.md",
2122
"Gridap.Visualization" => "Visualization.md",
2223
]
2324

docs/src/Arrays.md

+6
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,12 @@ LocalToGlobalPosNegArray
138138
LocalToGlobalPosNegArray(::AbstractArray{<:AbstractArray},::AbstractArray,::AbstractArray)
139139
```
140140

141+
### SubVector
142+
143+
```@docs
144+
SubVector
145+
```
146+
141147
### Helpers
142148

143149
```@docs

docs/src/Geometry.md

+20-1
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,25 @@ get_cell_shapefuns(trian::Triangulation)
3232
get_cell_map(trian::Triangulation)
3333
get_physical_coordinate(trian::Triangulation)
3434
```
35+
### Integrating on a triangulation
36+
37+
```@docs
38+
CellQuadrature
39+
CellQuadrature(array::AbstractArray{<:Quadrature})
40+
CellQuadrature(trian::Triangulation, degree::Integer)
41+
CellQuadrature(degree,polytopes::Vector{<:Polytope}, cell_types::AbstractVector)
42+
get_coordinates(quad::CellQuadrature)
43+
get_weights(quad::CellQuadrature)
44+
get_array(quad::CellQuadrature)
45+
integrate(cell_field,trian::Triangulation,quad::CellQuadrature)
46+
```
3547

3648
### TriangulationPortion
3749

3850
```@docs
3951
TriangulationPortion
4052
TriangulationPortion(oldtrian::Triangulation{Dc,Dp},cell_to_oldcell::Vector{Int}) where {Dc,Dp}
4153
```
42-
4354
## BoundaryTriangulations
4455

4556
### Interface
@@ -96,6 +107,7 @@ compute_linear_grid(reffe::LagrangianRefFE)
96107
compute_reference_grid(reffe::LagrangianRefFE, nelems::Integer)
97108
Grid(::Type{ReferenceFE{d}},p::Polytope) where d
98109
GridTopology(grid::Grid)
110+
simplexify(grid::Grid)
99111
```
100112

101113
### UnstructuredGrids
@@ -277,6 +289,13 @@ Grid(::Type{ReferenceFE{d}},model::DiscreteModel) where d
277289
Triangulation(::Type{ReferenceFE{d}},model::DiscreteModel) where d
278290
get_triangulation(model::DiscreteModel)
279291
get_polytopes(model::DiscreteModel)
292+
simplexify(model::DiscreteModel)
293+
```
294+
295+
### DiscreteModelFromFile
296+
297+
```@docs
298+
DiscreteModelFromFile(filename::AbstractString)
280299
```
281300

282301
### UnstructuredDiscreteModels

docs/src/MultiField.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
2+
```@meta
3+
CurrentModule = Gridap.MultiField
4+
```
5+
6+
# Gridap.MultiField
7+
8+
```@autodocs
9+
Modules = [MultiField,]
10+
```

docs/src/ReferenceFEs.md

+14
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ get_offsets(p::Polytope)
3939
get_offset(p::Polytope,d::Integer)
4040
get_faces(p::Polytope,dimfrom::Integer,dimto::Integer)
4141
get_face_vertices(p::Polytope,dim::Integer)
42+
get_face_coordinates(p::Polytope,d::Integer)
43+
get_face_dimranges(p::Polytope,d::Integer)
4244
get_reffaces(::Type{Polytope{d}},p::Polytope) where d
4345
get_face_type(p::Polytope,d::Integer)
4446
get_bounding_box(p::Polytope{D}) where D
@@ -201,6 +203,18 @@ is_S(reffe::LagrangianRefFE)
201203
SerendipityRefFE
202204
```
203205

206+
### PDiscRefFE
207+
208+
```@docs
209+
PDiscRefFE
210+
```
211+
212+
### RaviartThomasRefFE
213+
214+
```@docs
215+
RaviartThomasRefFE
216+
```
217+
204218
### Pre-defined ReferenceFE instances
205219

206220
```@docs

docs/src/getting-started.md

+3-5
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22

33
## Installation requirements
44

5-
At the moment, Gridap requires at least Julia version 1.1.
6-
7-
Gridap has been tested on Linux and Mac Os operating systems.
5+
Gridap is tested on Linux, but it should be also possible to use it on Mac OS and Windows since it is written exclusively in Julia and it only depends on registered Julia packages.
86

97
## Installation
108

11-
Gridap is a registered package. Thus, the installation should be straight forward using the Julia's package manager [Pkg](https://julialang.github.io/Pkg.jl/v1/): open the Julia REPL (i.e., execute the `julia` binary), type `]` to enter package mode, and install Gridap as follows
9+
Gridap is a registered package. Thus, the installation should be straight forward using the Julia's package manager [Pkg](https://julialang.github.io/Pkg.jl/v1/). To this end, open the Julia REPL (i.e., execute the `julia` binary), type `]` to enter package mode, and install Gridap as follows
1210

1311
```julia
1412
pkg> add Gridap
@@ -21,6 +19,6 @@ For further information about how to install and manage Julia packages, see the
2119

2220
## Further steps
2321

24-
We recommend to follow the [Gridap Tutorials](https://github.com/gridap/Tutorials) in order to get familiar with the library.
22+
We recommend to follow the [Gridap Tutorials](https://gridap.github.io/Tutorials/dev/) in order to get familiar with the library.
2523

2624

docs/src/index.md

+6-7
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,16 @@ The library currently supports linear and nonlinear PDE systems for scalar and v
1818

1919
* The first step for new users is to visit the [Getting Started](@ref) page.
2020

21+
* A set of tutorials written as Jupyter notebooks and html pages are available [here](https://github.com/gridap/Tutorials).
22+
2123
* The detailed documentation is in the [Manual](@ref) section.
2224

2325
* Guidelines for developers of the Gridap project is found in the [Gridap wiki](https://github.com/gridap/Gridap.jl/wiki) page.
2426

25-
## Tutorials
26-
27-
In addition to these documentation pages, a set of tutorials written in Jupyter notebooks are available [here](https://github.com/gridap/Tutorials).
28-
2927
## Julia educational resources
3028

3129
A basic knowledge of the Julia programming language is needed to use the Gridap package.
32-
Here, a list of resources to get started with this programming language.
30+
Here, one can find a list of resources to get started with this programming language.
3331

3432
* First steps to learn Julia form the [Gridap wiki](https://github.com/gridap/Gridap.jl/wiki/Start-learning-Julia) page.
3533
* Official webpage [docs.julialang.org](https://docs.julialang.org/)
@@ -43,15 +41,16 @@ Pages = [
4341
"Helpers.md",
4442
"Inference.md",
4543
"Io.md",
44+
"Algebra.md",
4645
"TensorValues.md",
4746
"Arrays.md",
4847
"Fields.md",
4948
"Polynomials.md",
49+
"Integration.md",
5050
"ReferenceFEs.md",
5151
"Geometry.md",
52-
"Integration.md",
53-
"Algebra.md",
5452
"FESpaces.md",
53+
"MultiField.md",
5554
"Visualization.md",
5655
]
5756
```

src/Arrays/SubVectors.jl

+7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11

2+
"""
3+
struct SubVector{T,A<:AbstractVector{T}} <: AbstractVector{T}
4+
vector::A
5+
pini::Int
6+
pend::Int
7+
end
8+
"""
29
struct SubVector{T,A<:AbstractVector{T}} <: AbstractVector{T}
310
vector::A
411
pini::Int

src/FESpaces/CLagrangianFESpaces.jl

+12
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,23 @@
11

2+
"""
3+
struct CLagrangianFESpace{S} <: SingleFieldFESpace
4+
grid::Grid
5+
dof_to_node::Vector{Int}
6+
dof_to_comp::Vector{Int8}
7+
node_and_comp_to_dof::Vector{S}
8+
# + private fields
9+
end
10+
"""
211
struct CLagrangianFESpace{S} <: SingleFieldFESpace
312
space::UnsconstrainedFESpace
413
grid::Grid
514
dof_to_node::Vector{Int}
615
dof_to_comp::Vector{Int8}
716
node_and_comp_to_dof::Vector{S}
817

18+
@doc """
19+
CLagrangianFESpace(::Type{T},grid::Grid) where T
20+
"""
921
function CLagrangianFESpace(::Type{T},grid::Grid) where T
1022
space, dof_to_node, dof_to_comp, node_and_comp_to_dof = _generate_clargangian_fespace(T,grid)
1123
S = eltype(node_and_comp_to_dof)

src/FESpaces/DivConformingFESpaces.jl

+7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11

2+
"""
3+
DivConformingFESpace(
4+
reffes::Vector{<:ReferenceFE},
5+
model::DiscreteModel,
6+
face_labeing::FaceLabeling,
7+
dirichlet_tags)
8+
"""
29
function DivConformingFESpace(
310
reffes::Vector{<:ReferenceFE},
411
model::DiscreteModel,

src/FESpaces/FESpacesWithLastDofRemoved.jl

+8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11

2+
"""
3+
struct FESpaceWithLastDofRemoved <: SingleFieldFESpace
4+
space::SingleFieldFESpace
5+
end
6+
"""
27
struct FESpaceWithLastDofRemoved <: SingleFieldFESpace
38
space::SingleFieldFESpace
9+
@doc """
10+
FESpaceWithLastDofRemoved(space::SingleFieldFESpace)
11+
"""
412
function FESpaceWithLastDofRemoved(space::SingleFieldFESpace)
513
s = "FESpaceWithLastDofRemoved can only be constructed from spaces without dirichlet dofs."
614
@notimplementedif num_dirichlet_dofs(space) != 0 s

src/FESpaces/ZeroMeanFESpaces.jl

+11
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,21 @@
11

2+
"""
3+
struct ZeroMeanFESpace <: SingleFieldFESpace
4+
# private fields
5+
end
6+
"""
27
struct ZeroMeanFESpace <: SingleFieldFESpace
38
space::FESpaceWithLastDofRemoved
49
vol_i::Vector{Float64}
510
vol::Float64
611
end
712

13+
"""
14+
ZeroMeanFESpace(
15+
space::SingleFieldFESpace,
16+
trian::Triangulation,
17+
quad::CellQuadrature)
18+
"""
819
function ZeroMeanFESpace(
920
space::SingleFieldFESpace,trian::Triangulation,quad::CellQuadrature)
1021

src/Geometry/CellQuadratures.jl

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
11
"""
2+
struct CellQuadrature <: GridapType
3+
array
4+
end
25
"""
36
struct CellQuadrature <: GridapType
47
array
8+
@doc """
9+
CellQuadrature(array::AbstractArray{<:Quadrature})
10+
"""
511
function CellQuadrature(array::AbstractArray{<:Quadrature})
612
new(array)
713
end
814
end
915

1016
"""
11-
CellQuadrature(trian::Triangulation, degree)
17+
CellQuadrature(trian::Triangulation, degree::Integer)
1218
"""
13-
function CellQuadrature(trian::Triangulation, degree)
19+
function CellQuadrature(trian::Triangulation, degree::Integer)
1420
polytopes = map(get_polytope,get_reffes(trian))
1521
cell_type = get_cell_type(trian)
1622
CellQuadrature(degree,polytopes,cell_type)
@@ -35,6 +41,7 @@ function CellQuadrature(degree,polytopes::Vector{<:Polytope}, cell_types::Fill)
3541
end
3642

3743
"""
44+
get_array(quad::CellQuadrature)
3845
"""
3946
get_array(quad::CellQuadrature) = quad.array
4047

@@ -81,7 +88,9 @@ function _get_weights(q::Fill{<:Quadrature})
8188
end
8289

8390
"""
84-
the `cell_field` is aligned with the cells in `trian`
91+
integrate(cell_field,trian::Triangulation,quad::CellQuadrature)
92+
93+
The `cell_field` is aligned with the cells in `trian`
8594
"""
8695
function integrate(cell_field,trian::Triangulation,quad::CellQuadrature)
8796
cell_map = get_cell_map(trian)

0 commit comments

Comments
 (0)