Wenbo,
2017-03-14 9:49 GMT-04:00 <
zhaowen...@gmail.com>:
> For example, the case is with 289 * 289 cells. Firstly we define coase mesh
> with 19*19. And then coarse mesh is refined 4 times. The fine mesh would be
> with 19*16 * 19*16 = 304 * 304 which coverd 289*289 cells and is with more
> layers near boundary. Then I can define some "virtual" material on these
> layers to decrease the influence of vitrual material on real 289*289 cells.
> It will be ok.
Virtual material? This seems strange.
> It is true that assembly is with 17*17 squares( cell). But the step width of
> cells are not of same values, with tiny difference.
> step width on x-axis is like this : 1.265, 15*1.26 (repeat 15 times), 1.265
> step width on y-axis is like this : 1.265, 15*1.26 (repeat 15 times), 1.265
>
> How to move these lines in 2-D(x-y) or planes in 3-D?
Alright here is how I would do it for the 17*17 mesh, you can do
something similar for the 289*289: First you create a square using a
subdivided_hyper_rectangle
http://dealii.org/developer/doxygen/deal.II/namespaceGridGenerator.html#a0e245f7c5788b6dcfcf93279a67fdbbb
for the step_sizes, you create a vector of vector of size (2,3) with
the values 1.265, 15*1.36, 1.265. So you get a mesh with 9 cells.
Then, you refine the largest cell (you will need to do something
similar for four other cells). Now the 15*1.26 becomes 7.5*1.26 +
7.5*1.26 but you can loop over the vertices of the cells that you just
created and moved the vertices manually
(
http://dealii.org/developer/doxygen/deal.II/classTriaAccessor_3_010_00_01dim_00_01spacedim_01_4.html#a2574a51c028bf1c31dabdbc77dbca7bc).
So you move the vertices to have 11*1.26 + 4*1.26. For the second cell
you can do global refinements. For the first cell, you do 11 ->
(5.5+5.5) -> (3+8). The 8*1.26 can be globally refined. The 3*1.26
becomes (1.5+1.5) -> (2+1) . This creates the mesh that you want BUT
you have to be very careful. If you move vertex 0 on processor 0 and
vertex 0 is also on processor 2, you need to move it yourself on
processor 2. If you don't the mesh will make no sense and you will get
the wrong result.
Best,
Bruno