Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
N
Numerical Analysis in Coq
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Micaela Mayero
Numerical Analysis in Coq
Commits
8a006281
Commit
8a006281
authored
2 years ago
by
Mouhcine
Browse files
Options
Downloads
Patches
Plain Diff
Updates
parent
e9c22a57
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
FEM/finite_element_1.v
+16
-10
16 additions, 10 deletions
FEM/finite_element_1.v
with
16 additions
and
10 deletions
FEM/finite_element_1.v
+
16
−
10
View file @
8a006281
...
...
@@ -146,7 +146,7 @@ Record FE : Type := mk_FE {
ndof_pos
:
(
0
<
ndof
)
%
nat
;
nvtx_pos
:
(
0
<
nvtx
)
%
nat
;
vtx
:
'
I_nvtx
->
Rd
;
(
*
vertices
of
geometrical
element
*
)
vtx
:
'
I_nvtx
->
Rd
(
*
->
E
R_MS
*
)
;
(
*
vertices
of
geometrical
element
*
)
K_geom
:
Rd
->
Prop
(
*
:=
convex_envelop
nvtx
vtx
TODO
*
)
;
(
*
geometrical
element
*
)
...
...
@@ -388,18 +388,18 @@ Section FE_Reference_Def.
(
**
construct
the
FE_reference
*
)
Variable
fe_ref
:
FE
.
Local
Definition
K_ref
:=
K_geom
fe_ref
.
Local
Definition
K_ref
:
Rd
fe_ref
->
Prop
:=
K_geom
fe_ref
.
(
*
Local
Definition
P_ref_new
:=
PolySpace
n
fe_ref
.
*
)
(
*
Local
Definition
P_
approx_
ref_new
:=
PolySpace
n
fe_ref
.
*
)
Local
Definition
P_ref
:
F
(
d
fe_ref
)
->
Prop
:=
P_approx
fe_ref
.
Local
Definition
P_
approx_
ref
:
F
(
d
fe_ref
)
->
Prop
:=
P_approx
fe_ref
.
Local
Definition
sigma_ref
:
'
I_
(
ndof
fe_ref
)
->
F
(
d
fe_ref
)
->
R
:=
sigma
fe_ref
.
Local
Definition
nvtx_ref
:
nat
:=
nvtx
fe_ref
.
Local
Definition
vtx_ref
:
'
I_
(
nvtx
fe
_ref
)
->
Rd
fe_ref
:=
vtx
fe_ref
.
Local
Definition
vtx_ref
:
'
I_
(
nvtx_ref
)
->
Rd
fe_ref
:=
vtx
fe_ref
.
(
*
before
we
had
this
basis
for
E
generi
Variable
Lag_ref_old
:
'
I_
(
nvtx_ref
)
->
E
->
R
.
(
*
The
poly
Lagrange
basis
*
)
*
)
...
...
@@ -407,11 +407,15 @@ Variable Lag_ref_old : 'I_(nvtx_ref) -> E -> R. (* The poly Lagrange basis *)*)
(
*
Lagrange
basis
*
)
(
*
SB
:
doute
de
type
de
Lag_ref
*
)
(
*
Fonctions
de
formes
g
é
om
é
triques
*
)
(
*
Lag_ref
'
:
'
I_
(
nvtx_ref
)
->
F
(
d
fe_ref
).
?*
)
Variable
Lag_ref
:
'
I_
(
nvtx_ref
)
->
Rd
fe_ref
(
*
F
(
d
fe_ref
)
*
)
->
R
.
Context
{
Rmu
:
NormedModule
R_AbsRing
}
.
(
*
Why
Rmu
?
*
)
(
*
'
I_
(
nvtx_ref
)
->
F
(
d
fe_ref
)
?
*
)
Variable
theta_ref
'
:
'
I_
(
nvtx_ref
)
->
F
(
d
fe_ref
).
Variable
theta_ref
:
'
I_
(
nvtx_ref
)
->
F
(
d
fe_ref
)
->
Rmu
.
Hypothesis
H_Lag_ref
:
forall
(
i
j
:
'
I_
(
nvtx_ref
)),
...
...
@@ -424,9 +428,10 @@ Definition interp_op_local_ref := fun v : F (d fe_ref) =>
interp_op_local
fe_ref
v
.
(
**
construct
the
FE_current
*
)
Variable
vtx_cur
:
'
I_
(
nvtx_ref
)
->
F
(
d
fe_ref
).
(
*
vertices
of
current
geometrical
element
*
)
(
*
vtx_cur_old
:
'
I_
(
nvtx_ref
)
->
F
(
d
fe_ref
)
(
*
E
MS
*
)
?
*
)
Variable
vtx_cur
:
'
I_
(
nvtx_ref
)
->
Rd
fe_ref
.
(
*
vertices
of
current
geometrical
element
*
)
Local
Definition
ndof_cur
:=
ndof
fe_ref
.
Local
Definition
ndof_cur
:
nat
:=
ndof
fe_ref
.
Definition
T_geom
(
*:
F
(
d
fe_ref
)
->
F
(
d
fe_ref
)
*
)
:=
fun
x_ref
=>
\
big
[
plus
%
R
/
zero
]
_
(
i
<
nvtx_ref
)
scal
(
Lag_ref
i
x_ref
)
(
vtx_cur
i
).
...
...
@@ -507,7 +512,7 @@ Definition cur_to_ref : fct_ModuleSpace -> F (d fe_ref) (* E *) -> Rmu :=
Lemma
is_linear_mapping_cur_to_ref
:
is_linear_mapping
cur_to_ref
.
Proof
.
easy
.
Qed
.
(
*
Definition
P_cur
:=
preimage_FD
cur_to_ref
P_ref
is_linear_mapping_cur_to_ref
.
*
)
Definition
P_cur
:=
preimage_FD
cur_to_ref
P_
approx_
ref
is_linear_mapping_cur_to_ref
.
*
)
Definition
sigma_cur
:
'
I_
(
ndof
fe_ref
)
->
fct_ModuleSpace
->
R
:=
fun
i
pol
=>
sigma_ref
i
(
cur_to_ref
pol
).
...
...
@@ -606,6 +611,7 @@ Variable node_lagrange : 'I_(nb_node_lagrange) -> E. (* nodes of geometrical ele
(
*
Variable
k_lagrange
:
nat
.
(
*
maximum
degree
of
polynomial
.
*
)
*
)
(
*
FiniteDim
has
to
be
replaced
*
)
Variable
P_lagrange
:
@
FiniteDim
(
@
fct_ModuleSpace
E
R_ModuleSpace
).
(
*
Should
be
Rd
?
*
)
Hypothesis
H
:
nb_node_lagrange
=
dim
P_lagrange
.
...
...
@@ -614,7 +620,7 @@ Hypothesis Hcard : (dimE < nvtx)%nat.*)
Definition
ndof_lagrange
:=
nb_node_lagrange
.
Definition
sigma_lagrange
:=
fun
i
(
p
:
E
->
R
)
=>
p
(
node_lagrange
i
).
Definition
sigma_lagrange
:
'
I_nb_node_lagrange
->
(
E
->
R
)
->
R
:=
fun
i
(
p
:
E
->
R
)
=>
p
(
node_lagrange
i
).
(
*
TODO
:
move
elsewhere
...
*
)
Lemma
is_linear_mapping_pt_value
:
forall
a
,
...
...
@@ -634,7 +640,7 @@ apply is_linear_mapping_pt_value.
Qed
.
(
*
TODO
:
apply
lemma
is_unisolvant_equiv
and
prove
it
'
s
lin
indep
*
)
Lemma
FE_lagrange_is_unisolvant
:
is_unisolvant
nb_node_lagrange
ndof
_lagrange
sigma_lagrange
ndof_lagrange
.
Lemma
FE_lagrange_is_unisolvant
:
is_unisolvant
P
_lagrange
sigma_lagrange
ndof_lagrange
.
Proof
.
apply
is_unisolvant_equiv
.
intros
p
;
split
.
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment