• No results found

4.2 Eigenvalues and eigenfunctions computation

4.2.1 Constructing the mesh

The discretisation of the domain needed for the finite element method is obtained by constructing a triangular mesh. This section gives a brief description of the method- ology used to construct triangular meshes on the domain of interest. The dimension of the sub-space of finite dimension in which the solution is looked for is given by the number of free points in the mesh, denoted by n (the number of vertices of all trian- gles in the mesh excluding those that are on the boundary of the domain). The finer the mesh is, the higher the dimension of this space, and the better the approximation of the solution is.

iteration based on the current element sizes according to the ideas presented in Per- Olof [2005]. The Delaunay triangulation algorithm is then used to adjust the topology (decide the edges) at each iteration. For the Delaunay triangulation, a divide and conquer algorithm is applied, along with the quad-edge data structure described in detail in Guibas and Stolfi [1985].

Figures 4.8 and 4.9 show the uniform meshes obtained with this method for two sample sets of correlations.

0 0.2 0.4 0.6 0.8 1 1.2 1.4 0 0.2 0.4 0.6 0.8 1 1.2 1.4

(a) First iteration mesh

0 0.2 0.4 0.6 0.8 1 1.2 1.4 0 0.2 0.4 0.6 0.8 1 1.2 1.4

(b) Mesh after 100 iterations

Figure 4.8: Uniform mesh for the domain obtained forρxy = 0%,ρxz = 0%,ρyz = 0%.

The mesh is constructed using 1500 points.

There are cases though where it is advantageous to have different sized elements in different regions: where the geometry is more complex or the problem requires more accuracy (for example close to a singularity such that the global accuracy of the solution is good). In order to create adaptive meshes for the domain, the desired edge length distribution over the domain can be specified (this does not have to equal the actual size, but it rather gives the relative distribution over the domain).

Algorithm 1 gives a brief description of the method used to build adaptive trian- gular meshes. The fixed number of iterations can be replaced by a condition on the largest move of a point in the mesh in the previous iteration.

Algorithm 1 Algorithm for constructive an adaptive mesh

Require: X1, X2, Y1, Y2 – bounding box of the domain

Require: s(x, y) – element size function (gives the relative element size distribution over the domain)

1: Build a mesh with equally spaced points for the bounding box of the domain

2: Remove points outside the domain

3: Rejection method for adaptive meshes: keep points inside the domain with prob-

abilities proportional to 1/s(x, y)2

4: while i <MAXITER do

5: Delaunay triangulation using the divide and conquer algorithm described in

detail in Guibas and Stolfi [1985]

6: Assemble triangles obtained through the Delaunay procedure

7: for each triangle do 8: Compute centroid

9: If centroid outside the domain: remove triangle from list

10: end for

11: Move mesh points based on current edge lengths using ideas described in Per- Olof [2005]

12: Bring points that have moved outside of the domain back to the boundary 13: i=i+ 1

0 0.5 1 1.5 2 0 0.5 1 1.5 2 2.5

(a) First iteration mesh

0 0.5 1 1.5 2 0 0.5 1 1.5 2 2.5

(b) Mesh after 100 iterations

Figure 4.9: Uniform mesh for the domain obtained for ρxy = 80%, ρxz = 20%, ρyz = 50%. The mesh is constructed using 1800 points.

function is constant over the domain, s(ϕ0, θ0) = 1. This means that step 3 in

algorithm 1 does not reject any points.

Figures 4.11, 4.12 and 4.13 show examples of meshes obtained for different values of the correlations and a non-uniform element size function. The meshes are finer close to some or all four of the boundaries. In each case a mesh similar to the ones used as starting point for the uniform case is constructed first (by performing steps 1 and 2 in algorithm 1). Then the rejection method eliminates points in the regions where less precision is required.

To obtain the adaptive mesh in Figure 4.11 for example, the non-uniform size function s depends on the distance of each point to the closest boundary:

s(ϕ0, θ0) = 1 +ν·min

Ci {

dist ((ϕ0, θ0), Ci)}. (4.34)

If the point (ϕ0, θ0) is on the boundary, then s(ϕ0, θ0) = 1, and the probability of

rejecting points close to the boundary is almost null. If the point is towards the centre of the domain, the probability of rejecting points is higher as function s in that point will be larger than 1. Figure 4.10 shows how the probability of keeping

points varies over the domain when using the size function s in equation (4.34) with different values for the constant ν (correlation values are ρxy = 80%, ρxz = 50% and ρyz = 30%). The higherν is, the bigger the size difference between the elements close

to the boundaries and the ones in the centre is. A value of ν = 4 was used to obtain the adaptive grid in Figure 4.11.

(a)ν= 1.5 (b)ν = 2

(c)ν = 3 (d)ν = 4

Figure 4.10: The probability of keeping points inside the domain for correlations:

ρxy = 80%,ρxz = 50%,ρyz = 30% (relevant for step 3 in algorithm 1).

Once the rejection step is performed, the Delaunay triangulation of the remaining points is used as the starting mesh for the iterative process (steps 4-14), and is denoted in the graphs as the “first iteration” mesh. The figures also show the final

mesh, obtained after 100 iterations. Figure 4.14 shows a similar example, when two of the pairwise correlations are negative.

0 0.5 1 1.5 2 0 0.5 1 1.5 2 2.5

(a) First iteration mesh

0 0.5 1 1.5 2 0 0.5 1 1.5 2 2.5

(b) Mesh after 100 iterations

Figure 4.11: Adaptive mesh for the domain obtained for ρxy = 80%, ρxz = 50%, ρyz = 30%. The mesh is constructed using 1500 points and is finer as we get closer

to the boundaries. 0 0.5 1 1.5 2 0 0.5 1 1.5 2 2.5

(a) First iteration mesh

0 0.5 1 1.5 2 0 0.5 1 1.5 2 2.5

(b) Mesh after 100 iterations

Figure 4.12: Adaptive mesh for the domain obtained for ρxy = 80%, ρxz = 50%, ρyz = 50%. The mesh is constructed using 1500 points. The mesh is finer near two

0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2

(a) First iteration mesh

0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2

(b) Mesh after 100 iterations

Figure 4.13: Adaptive mesh for the domain obtained for ρxy = 60%, ρxz = 80%, ρyz = 5%. The mesh is constructed using 1500 points. The mesh is finer near three

of the boundaries. 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

(a) First iteration mesh

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

(b) Mesh after 100 iterations

Figure 4.14: Adaptive mesh for the domain obtained for ρxy = 20%, ρxz = −10%, ρyz =−60%. The mesh is constructed using 1600 points and is finer as we get closer

Related documents