Skip to content

Commit f4f4a38

Browse files
authored
Merge branch 'master' into chmerdon/diffinterface
2 parents 6c87755 + 27d9dbe commit f4f4a38

14 files changed

+487
-440
lines changed

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "ExtendableFEM"
22
uuid = "a722555e-65e0-4074-a036-ca7ce79a4aed"
3+
version = "1.4"
34
authors = ["Christian Merdon <[email protected]>", "Patrick Jaap <[email protected]>"]
4-
version = "1.3.0"
55

66
[deps]
77
ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b"
@@ -34,7 +34,7 @@ DifferentiationInterface = "0.7.4"
3434
DocStringExtensions = "0.8,0.9"
3535
ExampleJuggler = "2.2.1"
3636
ExplicitImports = "1"
37-
ExtendableFEMBase = "1"
37+
ExtendableFEMBase = "1.3.0"
3838
ExtendableGrids = "1.10.3"
3939
ExtendableSparse = "1.5.3"
4040
ForwardDiff = "0.10.35,1"

docs/src/itemintegrators.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ Pages = ["common_operators/item_integrator_dg.jl"]
2020
Order = [:type, :function]
2121
```
2222

23-
See the [examples](https://wias-pdelib.github.io/ExtendableFEM.jl/stable/examples/) for some practical use cases.
23+
See, e.g., Example207, Example210 or Example245 for some practical use cases.

docs/src/nonlinearoperator.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# NonlinearOperator
33

4-
`NonlinearOperator` provides a high-level interface for defining nonlinear forms in finite element problems. It automatically assembles all terms required for Newton's method, including the residual and Jacobian, using user-supplied kernel functions. For alternative linearizations, use `BilinearOperator` or `LinearOperator` with appropriate kernels.
4+
`NonlinearOperator` provides a high-level interface for defining nonlinear forms in finite element problems. It automatically assembles all terms required for Newton's method, including the residual and Jacobian, using user-supplied kernel functions. For alternative linearizations, use [`BilinearOperator`](@ref "BilinearOperator") or [`LinearOperator`](@ref "LinearOperator") with appropriate kernels.
55

66

77
## Constructor

docs/src/pdesolvers.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ To solve a `ProblemDescription`, you must provide discretization information:
1313
```julia
1414
FESpace{FEType}(grid::ExtendableGrid)
1515
```
16-
where `FEType` is the finite element type. See the [list of available FETypes](https://wias-pdelib.github.io/ExtendableFEMBase.jl/dev/fems/) in the [ExtendableFEMBase.jl documentation](https://wias-pdelib.github.io/ExtendableFEMBase.jl/dev/).
16+
where `FEType` is the finite element type. See the [list of available FETypes](https://wias-pdelib.github.io/ExtendableFEMBase.jl/stable/fems/) in the [ExtendableFEMBase.jl documentation](https://wias-pdelib.github.io/ExtendableFEMBase.jl/stable/).
1717

1818
## Monolithic Solve
1919

docs/src/pdesolvers_dt.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,3 @@ Given a finite element space `FES` and an initial `FEVector` `sol` for the unkno
5555
prob = generate_ODEProblem(PD, FES, (0, T); init = sol)
5656
DifferentialEquations.solve(prob, ImplicitEuler(autodiff = false), dt = 1e-3, dtmin = 1e-6, adaptive = true)
5757
```
58-
59-
## Tips
60-
61-
- For more advanced time-stepping schemes, manage previous solutions and time-derivative terms manually in the `ProblemDescription`.
62-
- See the [examples](https://wias-pdelib.github.io/ExtendableFEM.jl/stable/examples/) for practical implementations of time-dependent problems.
63-
- For further details on the ODE interface, see the [ExtendableFEMDiffEQExt.jl documentation](https://github.com/WIAS-PDELib/ExtendableFEMDiffEQExt.jl).

docs/src/problemdescription.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@ Operators define how terms contribute to the system matrix or right-hand side. T
3434
### Types of Operators
3535

3636
The main operator classes are:
37-
- `NonlinearOperator` (e.g., nonlinear convection in Navier–Stokes)
38-
- `BilinearOperator` (e.g., Laplacian in Poisson)
39-
- `LinearOperator` (e.g., right-hand side in Poisson or Navier–Stokes)
37+
- [NonlinearOperator](@ref) (e.g., nonlinear convection in Navier–Stokes)
38+
- [BilinearOperator](@ref) (e.g., Laplacian in Poisson)
39+
- [LinearOperator](@ref) (e.g., right-hand side in Poisson or Navier–Stokes)
4040

4141
For boundary conditions or global constraints, use:
42-
- `InterpolateBoundaryData`
43-
- `HomogeneousBoundaryData`
44-
- `FixDofs`
45-
- `CombineDofs`
42+
- [InterpolateBoundaryData](@ref)
43+
- [HomogeneousData](@ref)
44+
- [FixDofs](@ref)
45+
- [CombineDofs](@ref)
4646

4747
### Entities and Regions
4848

@@ -55,8 +55,8 @@ Each operator assembles on certain mesh entities. The default is cell-wise assem
5555
| ON_FACES | Assemble/interpolate on all mesh faces |
5656
| ON_IFACES | Assemble/interpolate on interior mesh faces |
5757
| ON_BFACES | Assemble/interpolate on boundary mesh faces |
58-
| ON_EDGES (*) | Assemble/interpolate on all mesh edges (3D only, experimental) |
59-
| ON_BEDGES (*) | Assemble/interpolate on boundary mesh edges (3D only, experimental) |
58+
| ON_EDGES (*) | Assemble/interpolate on all mesh edges |
59+
| ON_BEDGES (*) | Assemble/interpolate on boundary mesh edges |
6060

6161
!!! note
6262
(*) = Only reasonable in 3D and still experimental; may have some issues.

examples/Example201_PoissonProblem.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ using Test #hide
2929
## define variables
3030
u = Unknown("u"; name = "potential")
3131

32-
## define data functions
33-
function f!(fval, qpinfo)
32+
## default right-hand side f(x,y) = xy
33+
function default_f!(fval, qpinfo)
3434
fval[1] = qpinfo.x[1] * qpinfo.x[2]
3535
return nothing
3636
end
3737

38-
function main(; μ = 1.0, nrefs = 4, order = 2, Plotter = nothing, parallel = false, npart = parallel ? 8 : 1, kwargs...)
38+
function main(; μ = 1.0, nrefs = 4, order = 2, Plotter = nothing, parallel = false, f! = default_f!, npart = parallel ? 8 : 1, kwargs...)
3939
## problem description
4040
PD = ProblemDescription()
4141
assign_unknown!(PD, u)

src/.JuliaFormatter.toml

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/ExtendableFEM.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ using LinearSolve: LinearSolve, LinearProblem, UMFPACKFactorization, deleteat!,
6767
init, solve
6868
using Printf: Printf, @printf, @sprintf
6969
using SparseArrays: SparseArrays, AbstractSparseArray, SparseMatrixCSC, findnz, nnz,
70-
nzrange, rowvals, sparse
70+
nzrange, rowvals, sparse, SparseVector
7171
using ADTypes: ADTypes, KnownJacobianSparsityDetector
7272
using SparseConnectivityTracer: SparseConnectivityTracer, TracerSparsityDetector
7373
using DifferentiationInterface: DifferentiationInterface,

src/common_operators/bilinear_operator.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,7 @@ Constructs a bilinear operator from a user-supplied matrix `A`, which can be a s
108108
- `A::AbstractMatrix`: The matrix representing the bilinear form, e.g., a sparse matrix.
109109
- `u_test::Vector{<:Union{Unknown, Int}}`: Identifiers or indices for the test functions.
110110
- `u_ansatz::Vector{<:Union{Unknown, Int}}` (optional): Identifiers or indices for the ansatz (trial) functions. Defaults to `u_test`.
111-
112-
# Keyword Arguments
113-
$(ExtendableFEMBase._myprint(default_blfop_kwargs()))
111+
- `u_args::Vector{<:Union{Unknown, Int}}` (optional): Identifiers or indices for unknowns on which the matrix depends in a nonlinear way (this tells the solver which solution blocks trigger reassembly).
114112
115113
# Returns
116114
A `BilinearOperatorFromMatrix` object that can be used in the assembly process.

0 commit comments

Comments
 (0)