Skip to content
This repository was archived by the owner on Sep 28, 2024. It is now read-only.

Commit 9918df6

Browse files
committed
fem complete
1 parent ad6b55e commit 9918df6

File tree

4 files changed

+75
-0
lines changed

4 files changed

+75
-0
lines changed

example/Burgers_FEM/Project.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name = "Burgers_FEM"
2+
uuid = "e5170f7b-8a26-429b-971b-688deff48327"
3+
authors = ["Yueh-Hua Tu"]
4+
version = "0.1.0"
5+
6+
[deps]
7+
FEniCS = "186dfeec-b415-5c13-8e76-5fbf19f56f9b"
8+
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
9+
10+
[compat]
11+
julia = "1.6"
12+
13+
[extras]
14+
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
15+
16+
[targets]
17+
test = ["Test"]

example/Burgers_FEM/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Burgers_FEM
2+
3+
[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://yuehhua.github.io/Burgers_FEM.jl/stable)
4+
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://yuehhua.github.io/Burgers_FEM.jl/dev)
5+
[![Build Status](https://github.com/yuehhua/Burgers_FEM.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/yuehhua/Burgers_FEM.jl/actions/workflows/CI.yml?query=branch%3Amain)
6+
[![Coverage](https://codecov.io/gh/yuehhua/Burgers_FEM.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/yuehhua/Burgers_FEM.jl)
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
module Burgers_FEM
2+
3+
using FEniCS
4+
5+
function run_fem=1/1000)
6+
# parameters
7+
s = 1024 # x
8+
steps = 200 # t
9+
10+
DT = Constant(1/steps)
11+
dt = 1/steps
12+
13+
mesh = UnitIntervalMesh(s)
14+
V = FunctionSpace(mesh, "CG", 1)
15+
16+
bc = DirichletBC(V, 0., "on_boundary")
17+
18+
u_init = Expression("x[0]", degree=1)
19+
u = TrialFunction(V)
20+
u_old = FeFunction(V)
21+
v = TestFunction(V)
22+
23+
u = interpolate(u_init, V)
24+
assign(u_old, u)
25+
26+
f = Expression("0.0", degree=0)
27+
28+
F = (dot(u - u_old, v) / DT
29+
+ ν*inner(grad(u), grad(v))
30+
+ inner(u*directional_derivative(u, 0), v)
31+
- dot(f, v)
32+
)*dx
33+
34+
us = Vector{Float64}[]
35+
t = 0.0
36+
for n in 1:steps
37+
t = t + dt
38+
nlvsolve(F, u, bc)
39+
push!(us, get_array(u))
40+
assign(u_old, u)
41+
end
42+
43+
return us
44+
end
45+
46+
end
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
using Burgers_FEM
2+
using Test
3+
4+
@testset "Burgers_FEM.jl" begin
5+
# Write your tests here.
6+
end

0 commit comments

Comments
 (0)