Smoothing

All degrees of freedom in the mesh must be in one, and only one, of the following smoothing categories:

  • Prescribed
    • Homogeneous
    • Inhomogeneous
  • Free
    • Exterior
    • Interface
    • Interior

../unit_tests/double_x.png

Figure: Two element test problem.

Table: Nodal coordinates 1-12, with x, y, z, degrees of freedom.

|node|x|y|z|->|||dof| |:--:|:-:|:-:|:-:|:--:|::|::|:-:| |1|0.0|0.0|0.0||1|2|3| |2|1.0|0.0|0.0||4|5|6| |3|2.0|0.0|0.0||7|8|9| |4|0.0|1.0|0.0||10|11|12| |5|1.0|1.0|0.0||13|14|15| |6|2.0|1.0|0.0||16|17|18| |7|0.0|0.0|1.0||19|20|21| |8|1.0|0.0|1.0||22|23|24| |9|2.0|0.0|1.0||25|26|27| |10|0.0|1.0|1.0||28|29|30| |11|1.0|1.0|1.0||31|32|33| |12|2.0|1.0|1.0||34|35|36|

Table. The node neighbors.

nodeneighbor node(s)
12, 4, 7
21, 3, 5, 8
32, 6, 9
41, 5, 10
52, 4, 6, 11
63, 5, 12
71, 8, 10
82, 7, 9, 11
93, 8, 12
104, 7, 11
115, 8, 10, 12
126, 9, 11

All Free

Following is a test where all degrees of freedom are and hierarchical smoothing is OFF.

class DofType(Enum):
    """All degrees of freedom must belong to one, and only one, of the
    following smoothing categories.
    """

    PRESCRIBED_HOMOGENEOUS = 0
    PRESCRIBED_INHOMOGENEOUS = 1
    FREE_EXTERIOR = 2
    FREE_INTERFACE = 3
    FREE_INTERIOR = 4
dofset: DofSet = (
    (4, 4, 4),
    (4, 4, 4),
    (4, 4, 4),
    (4, 4, 4),
    (4, 4, 4),
    (4, 4, 4),
    (4, 4, 4),
    (4, 4, 4),
    (4, 4, 4),
    (4, 4, 4),
    (4, 4, 4),
    (4, 4, 4),
)

Table: Smoothed configuration (x, y, z).

nodexyz
10.10.10.1
21.00.0750.075
31.90.10.1
40.10.90.1
51.00.9250.075
61.90.90.1
70.10.10.9
81.00.0750.925
91.90.10.9
100.10.90.9
111.00.9250.925
121.90.90.9

free_laplace_1.png

Figure: Two element test problem (left) original configuration, (right) subject to one iteration of Laplace smoothing.