gridap / gridap/Gridap.jl

Add global spaces for global constraints (Lagrange multipliers)

Open
#479 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
879
Forks
119
Avg merge
6d 3h
Merged PRs (30d)
4

Description

It would be nice to have the possibility to have global "test functions", e.g., a test FE space that is a basis of fields defined in the global physical domain. This way, we could define constraints at the driver level as you define the rest of the terms. E.g.,
```
C = TestSpace(1.0) # Space for the Lagrange multiplier for your constraint
constraint_lhs(u,c) = u*c # Mean value
constraint_rhs(u,c) = 0.0 # equal to zero
```
or
```
C = TestSpace(VectorValue(1.0,0.0),VectorValue(1.0,0.0),VectorValue(x[2],-x[1]) # Rigid-body modes
constraint_lhs(u,c) = u \cdot c
constraint_rhs(u,c) = VectorValue(0.0,0.0)
```
The solution of the resulting linear system is not simple. The resulting problem is indefinite, it could be efficiently solved using a Schur complement approach.

Contributor guide

Open the contributing guide

Research direction

The issue names no files or tests. Start by locating the existing TestSpace abstractions and the entry points that assemble and solve the resulting linear system. Done means global test spaces can express the mean-value and rigid-body constraints shown, with an appropriate approach for the resulting indefinite system.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.