gridap / gridap/Gridap.jl

Curvature tensor and projections

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

Description

Hi, I'm trying to calculate a curvature tensor on a 3d surface mesh. My dynamic equations involve $C_ij$ and the trace of the curvature tensor $C^k_k$.

Gridap seems happy for me to do the following :

```
model = GmshDiscreteModel("icosphere.msh")

Γ = Triangulation(model)

order = 2
Vn = FESpace(
Γ,
ReferenceFE(lagrangian, VectorValue{3,Float64}, order),
conformity=:H1
)

Vcij = FESpace(
Γ,
ReferenceFE(lagrangian, TensorValue{3,3,Float64}, order),
conformity=:L2
)

Vckk = FESpace(
Γ,
ReferenceFE(lagrangian, Float64, order),
conformity=:L2
)

n_Γ = get_normal_vector(Γ)

I3 = one(TensorValue{3,3,Float64})
P = I3 - n_Γ ⊗ n_Γ

Cij = - (P ⊙ ∇(n_Γ)) ⊙ P
Ckk = tr(Cij)

Cij_interp = interpolate(Cij, Vcij)
Ckk_interp = interpolate(Ckk, Vckk)

normals = interpolate(n_Γ, Vn)
```

When I save, I get the expected normals, but the other quantities are all zero. Is this not allowed? Is there some other way I could define these? The Gridap machinery seems well-suited to this sort of thing, but perhaps I'm missing something.

Many thanks!

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the supplied Gridap.jl example with GmshDiscreteModel, Triangulation, get_normal_vector, and the three interpolate calls. Compare the saved Cij and Ckk fields with the normals, then determine whether these projected curvature expressions are supported as written or require a documented alternative.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.