• Keine Ergebnisse gefunden

Winter 2016 / 17

N/A
N/A
Protected

Academic year: 2021

Aktie "Winter 2016 / 17"

Copied!
4
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Exercises to Wissenschaftliches Rechnen I/Scientific Computing I (V3E1/F4E1)

Winter 2016 / 17

Prof. Dr. Martin Rumpf

Alexander Effland — Stefanie Heyden — Stefan Simon — Sascha Tölkes

Problem sheet 6

Please hand in the solutions on Tuesday December6! For the whole exercise sheet let

• Ω⊂Rd be a polygonal domain withd ≤3,

• Th be a regular triangulation ofΩ, i.e. h(T)≤cρ(T),

• Vh ⊂H02,2() be a finite element space withP1⊂ P, s.t. all elements are affineˆ equivalent to a reference element,

• Ih be the Lagrange interpolation operator,

• f, fh∈ L2(),

• a(φ,v) := R

∆φ∆vdx for all φ,v ∈ H02,2(), in particular u

∂Ω = 0 and

∇u

∂Ω =0 in the sense of traces,

• u∈ H02,2() be the weak solution of the biharmonic equation, i.e.

a(u,v) = R

f ·vdx for all v∈ H02,2(),

• uh ∈ Vh be the discrete solution of the biharmonic equation, i.e.

a(uh,vh) = R

fh·vhdxfor f ∈Vhand all vh ∈ Vh.

Note that for d≤3 the space H2,2() compactly embeds intoC0(), s.t. Ih is well defined.

Exercise18 2Points

Let Pk+1⊂ Pˆ fork ≥0. Use the Céa-Lemma to show that ku−uhk2,2,Ω ≤Chkkukk+2,2,Ω.

Exercise19 4Points

Prove that for allu∈ H2,2(Ω)and for all T ∈ Th and E ∈ E(T) : (i) kφ− Ihφk0,2,E ≤Ch(T)32kφk2,2,T

(ii) kφ− Ihφk1,2,E ≤Ch(T)12kφk2,2,T

(2)

Exercise20 4 Points (i) Show that forφh ∈Vh, v ∈ H02,2()and T∈ Th:

a(φh,v) = Z

2φhvhdx+ Z

∂T∆φhnvh− ∇∆φh·n vhda. (ii) Prove the a posteriori error estimate

ku−uhk2,2,Ω ≤Ckf − fhk0,2,Ω+C

T∈Th

η2T

!12 ,

where

ηT2 :=kh(T)2(fh2uh)k20,2,T+

E∈E0(T)

kh(T)12 [∆uh]Ek20,2,E+kh(T)32 [∇∆uh·nE]Ek20,2,E.

Hint: For (ii) follow the proof of theorem2.3 and use the estimates from exercise19. Programming task2

Consider a given triangular meshT on a domainΩ. In this programming task, you will implement an adaptive grid refinement algorithm using thelongest edge bisection method.

A common way to implement refinement algorithms on simplex grids is to use a concept called thedart iterator. This structure is defined via a triangle T, a node of that triangle (given by the local node index) and an edge of that triangle (given by the local edge index), as a “dart” pointing from the node along the edge .

x0

x1

x2

E2

E0 E1 d T

Figure1: Example of a dart iterator d(T, 0, 1)

Figure1illustrates an example dart iteratord onT at node x0 along edge E1. Using this iterator three different types of actions are possible. These actions transform a dart iterator into another (well-defined) dart iterator:

flipTriangle() transformsd(T,x,E) into the dart iterator d0(T0,x,E), where T0 is the neighbor triangle of T for which ¯T∩T¯0 = E holds. Use canFlipTriangle() to check if this operation is possible, i. e. if Thas a neighbor sharing E.

flipNode() results in the dart iterator d0(T,x0,E) along the same edge, but in the opposite direction.

(3)

x0

x1 x2

E2

E0

E1 T d0

(a) d.flipTriangle()

x0

x1 x2

E2

E0

E1 d0 T

(b) d.flipNode()

x0

x1 x2

E2

E0

E1 T d0

(c) d.d.flipEdge() Figure2: d0 =d.flip{Triangle, Node, Edge}()

flipEdge() results in the dart iteratord0(T,x,E0)on the same triangle and point along the edgeE0 that shares the pointx with E.

Figure2 shows the effects of the three functions on the iteratordshown in Figure 1. The code fragment you have to complete is located in

lib/triangleMesh/adaptiveTriangMesh.h.

• Use the dart iterator to navigate the triangles that are marked for refinement and recursively modify the grid. Make sure only to subdivide the longest edge of each triangle (i. e. to subdivide longer edges, too, if necessary). Marked triangles are listed in_markedForRefinementand can be unmarked using the unmark(int element)function.

Please note that the constructor of the class DartIterator in the C++ framework takes an additional constructor argument, the mesh. When working on an adaptive grid, *this can be passed as the first argument.

• The refinement rule used does not allowhanging nodes. Thus, neighbor elements may have to be refined even if they are not marked for refinement.

not allowed allowed

• The GlobalIndex addEdgeMidpoint(const DartIterator &d) function can be used to subdivide an edge. The index returned is the index of the newly created vertex.

• Make sure to update and extend the_neighbour_ vector. This vector contains vectors of integers storing the neighbors of a triangle on each edge.

• The indexIndexNotSetcan be used when an index should not refer to a triangle, index, or edge. This is e. g. useful, when a triangle does not have neighbors on all edges (triangles at the boundary of the domain).

(4)

Hint: It is helpful to split the refinement into several functions instead of using just the one function that already exists in the code.

On the lecture web site you can download an updated version of the C++ framework that already contains a program that can be used for testing.

Abbildung

Figure 1 : Example of a dart iterator d(T, 0, 1)
Figure 2 shows the effects of the three functions on the iterator d shown in Figure 1

Referenzen

ÄHNLICHE DOKUMENTE

Most of the computational time is taken up with solving linear programming problems, both by the master process (in the act on completed task function) and in the tasks, which

Make sure that your implementation of the k-Means method is working by testing it on the different data sets6. If you encounter any problems, solve them by using the debugger

 Philip Buonadonna, Jason Hill and David Culler, “Active Message Communication for Tiny Networked Sensors”, Proceedings of the 20th Annual Joint Conference of the IEEE Computer

One of the essential ingredients of an A ∗ search is an admissi- ble heuristic function for estimating the cost-to-go, i.e., in our case the length of a CLCS for any

The remainder of this thesis is structured as follows: Section 2 contains an overview of exist- ing work in the literature which is relevant to this thesis. Section 3 then explains

previously mentioned method for finding a n initial solution, an original approximate steepest edge pricing algorithm, dynamic adjustment of the penalty term..

The German HIV/AIDS strategy is divided into seven, mutually complementary and reinforcing spheres of activity (education and prevention, access to HIV testing

In particular, for the simplex method, zJ is the direction of change in the solution which corresponds to the basis B and an increase in the nonbasic variable j E B.. Let e E y