Laplace Smoothing with Hierarchical Control

Laplace Smoothing, Hierarchical Control, Prescribed Homogeneous

Cube with Inclusion

../examples/unit_tests/cube_with_inclusion.png

To come.

Laplace Smoothing, Hierarchical Control, Prescribed Inhomogeneous

Bracket

To begin to examine hiearchical control, we consider the Bracket example.

../examples/unit_tests/bracket.png

Figure: The Bracket example.

Laplace Smoothing without Hierarchical Control

As a baseline, let's examine what Laplace smoothing, , without hierarchical control performs.

bracket_laplace_iter_100.gif

Figure: The Bracket test problem (left) original configuration, (right) subject to [1, 2, 3, 4, 5, 10, 20, 30, 100] iterations of Laplace smoothing. Animation created with Ezgif.

As an example, the nodal positions after 10 iterations are as follows:

nodexyz
10.66034167069770890.66034167069770890.42058348557613
21.1640144063164560.59227052233536530.4003570849733875
31.99793721292608550.57069360949996260.39548539946279243
42.83256936351370970.57031206649224050.40180333889841546
53.3323961795306810.61968540574080080.4228468310236131
60.59227052233536531.1640144063164560.4003570849733875
71.1293304123545561.1293304123545560.3779268501553354
81.9861178159008691.1002452699156410.3744217105825115
92.85361682867725361.02845324928775960.3839611664938703
103.38056885889194141.0071968572512660.40846995582593837
110.57069360949996261.99793721292608530.39548539946279243
121.1002452699156411.9861178159008690.37442171058251145
131.90892627928208981.908926279282090.3766933485101331
142.8169627534635381.54578735631228840.3970154773256839
153.32960202818999561.4090742808067290.42165070606234384
160.57031206649224052.83256936351370970.40180333889841546
171.02845324928775962.85361682867725360.3839611664938703
181.54578735631228842.8169627534635380.3970154773256839
190.61968540574080083.3323961795306810.4228468310236131
201.0071968572512663.38056885889194140.40846995582593837
211.4090742808067293.32960202818999560.42165070606234384
220.66034167069770890.66034167069770890.5794165144238701
231.1640144063164560.59227052233536530.5996429150266126
241.99793721292608530.57069360949996260.6045146005372077
252.83256936351370970.57031206649224040.5981966611015848
263.3323961795306810.61968540574080070.5771531689763871
270.59227052233536541.1640144063164560.5996429150266126
281.1293304123545561.1293304123545560.6220731498446648
291.9861178159008691.1002452699156410.6255782894174887
302.85361682867725361.02845324928775960.6160388335061299
313.38056885889194141.00719685725126570.5915300441740619
320.57069360949996261.99793721292608530.6045146005372076
331.1002452699156411.9861178159008690.6255782894174885
341.908926279282091.90892627928208980.623306651489867
352.8169627534635381.54578735631228810.6029845226743162
363.32960202818999561.4090742808067290.5783492939376563
370.57031206649224042.83256936351370970.5981966611015848
381.02845324928775962.85361682867725360.6160388335061298
391.54578735631228842.8169627534635380.6029845226743162
400.61968540574080073.3323961795306810.5771531689763871
411.00719685725126573.38056885889194140.5915300441740617
421.4090742808067293.32960202818999560.5783492939376562

Laplace Smoothing with Hierarchical Control

We illustrate the how hierarchical control affects the Laplace smoothing. Conside the PRESCRIBED and BOUNDARY node hierarchy below:

node_hierarchy: NodeHierarchy = (
    # hierarchy enum, node number, prescribed (x, y, z)
    Hierarchy.PRESCRIBED,  # 1 -> (0, 0, 0)
    Hierarchy.PRESCRIBED,  # 2 -> (1, 0, 0)
    Hierarchy.PRESCRIBED,  # 3 -> (2, 0, 0)
    Hierarchy.PRESCRIBED,  # 4 -> (3, 0, 0)
    Hierarchy.PRESCRIBED,  # 5 -> (4, 0, 0)
    Hierarchy.PRESCRIBED,  # 6 -> (0, 1, 0)
    Hierarchy.BOUNDARY,  # 7
    Hierarchy.BOUNDARY,  # 8
    Hierarchy.BOUNDARY,  # 9
    Hierarchy.PRESCRIBED,  # 10 -> (4.5*cos(15 deg), 4.5*sin(15 deg), 0)
    Hierarchy.PRESCRIBED,  # 11 -> *(0, 2, 0)
    Hierarchy.BOUNDARY,  # 12
    Hierarchy.BOUNDARY,  # 13
    Hierarchy.BOUNDARY,  # 14
    Hierarchy.PRESCRIBED,  # 15 -> (4.5*cos(30 deg), 4.5*sin(30 deg), 0)
    Hierarchy.PRESCRIBED,  # 16 -> (0, 3, 0)
    Hierarchy.BOUNDARY,  # 17
    Hierarchy.BOUNDARY,  # 18
    Hierarchy.PRESCRIBED,  # 19 -> (0, 4, 0)
    Hierarchy.PRESCRIBED,  # 20 -> (1.5, 4, 0)
    Hierarchy.PRESCRIBED,  # 21 -> (3.5, 4, 0)
    #
    Hierarchy.PRESCRIBED,  # 22 -> (0, 0, 1)
    Hierarchy.PRESCRIBED,  # 23 -> (1, 0, 1)
    Hierarchy.PRESCRIBED,  # 24 -> (2, 0, 1)
    Hierarchy.PRESCRIBED,  # 25 -> (3, 0, 1)
    Hierarchy.PRESCRIBED,  # 26 -> (4, 0, 1)
    Hierarchy.PRESCRIBED,  # 27 -> (0, 1, 1)
    Hierarchy.BOUNDARY,  # 28
    Hierarchy.BOUNDARY,  # 29
    Hierarchy.BOUNDARY,  # 30
    Hierarchy.PRESCRIBED,  # 31 -> (4.5*cos(15 deg), 4.5*sin(15 deg), 1)
    Hierarchy.PRESCRIBED,  # 32 -> *(0, 2, 1)
    Hierarchy.BOUNDARY,  # 33
    Hierarchy.BOUNDARY,  # 34
    Hierarchy.BOUNDARY,  # 35
    Hierarchy.PRESCRIBED,  # 36 -> (4.5*cos(30 deg), 4.5*sin(30 deg), 1)
    Hierarchy.PRESCRIBED,  # 37 -> (0, 3, 1)
    Hierarchy.BOUNDARY,  # 38
    Hierarchy.BOUNDARY,  # 39
    Hierarchy.PRESCRIBED,  # 40 -> (0, 4, 1)
    Hierarchy.PRESCRIBED,  # 41 -> (1.5, 4, 1)
    Hierarchy.PRESCRIBED,  # 42 -> (3.5, 4, 1)
)

bracket_laplace_hc_iter_100.gif

Figure: The Bracket test problem (left) original configuration, (right) subject to [1, 2, 3, 4, 5, 10, 20, 30, 100] iterations of Laplace smoothing with hierarchical control. Animation created with Ezgif.

As an example, the nodal positions after 10 iterations are as follows:

nodexyz
1000
2100
3200
4300
5400
6010
71.00762186905507470.99888292591230820.24593434133370803
82.02180519680230.9939851057918810.2837944855813176
93.08165935680683980.99312279661862560.24898414051620496
104.3466662183008081.16468570296134330
11020
121.03460024069576641.9929825269451260.2837944855813176
132.04086189166399161.95286475206420730.3332231502067546
142.99557717902444681.76198211322077110.29909606343914835
153.8971143170299742.24999999999999960
16030
171.1572612817318032.99826651595321050.24898414051620493
182.19736912926627342.9910548951650170.29909606343914835
19040
201.540
213.540
22001
23101
24201
25301
26401
27011
281.00762186905507470.99888292591230820.7540656586662919
292.02180519680230.9939851057918810.7162055144186824
303.08165935680683980.99312279661862570.7510158594837951
314.3466662183008081.16468570296134331
32021
331.03460024069576641.99298252694512620.7162055144186824
342.04086189166399161.95286475206420730.6667768497932453
352.99557717902444681.76198211322077110.7009039365608517
363.8971143170299742.24999999999999961
37031
381.1572612817318032.99826651595321050.751015859483795
392.19736912926627342.9910548951650170.7009039365608516
40041
411.541
423.541