Polymesher

Reference: Talischi, C., Paulino, G.H., Pereira, A. et al. PolyMesher: a general-purpose mesh generator for polygonal elements written in Matlab. Struct Multidisc Optim 45, 309–328 (2012). https://doi.org/10.1007/s00158-011-0706-z

[ ]:
from optymus.methods import polymesher
from optymus.benchmark import (
    MbbDomain,
    HornDomain,
    CookDomain,
    WrenchDomain,
    MichellDomain,
    SuspensionDomain,
)
[ ]:
MbbDomain.plot()
../_images/examples_mec_polymesher_3_0.png
[ ]:
horn = polymesher(domain=HornDomain, n_elements=100, max_iter=100)
Iterations: 100%|██████████| 100/100 [00:00<00:00, 173.27step/s, Error=0.00328, Iteration=100, Time=0.516]
../_images/examples_mec_polymesher_4_1.png
Iterations: 100%|██████████| 100/100 [00:00<00:00, 128.16step/s, Error=0.00328, Iteration=100, Time=0.516]
[ ]:
mbb = polymesher(domain=MbbDomain, n_elements=100, max_iter=100)
Iterations: 100%|██████████| 100/100 [00:00<00:00, 138.37step/s, Error=0.0017, Iteration=100, Time=0.591]
../_images/examples_mec_polymesher_5_1.png
Iterations: 100%|██████████| 100/100 [00:00<00:00, 105.30step/s, Error=0.0017, Iteration=100, Time=0.591]
[ ]:
cook = polymesher(domain=CookDomain, n_elements=100, max_iter=100)
Iterations: 100%|██████████| 100/100 [00:00<00:00, 164.24step/s, Error=0.00183, Iteration=100, Time=0.54]
../_images/examples_mec_polymesher_6_1.png
Iterations: 100%|██████████| 100/100 [00:00<00:00, 105.29step/s, Error=0.00183, Iteration=100, Time=0.54]
[ ]:
wrench = polymesher(domain=WrenchDomain, n_elements=100, max_iter=100)
Iterations: 100%|██████████| 100/100 [00:00<00:00, 154.91step/s, Error=0.00348, Iteration=100, Time=0.553]
../_images/examples_mec_polymesher_7_1.png
Iterations: 100%|██████████| 100/100 [00:00<00:00, 113.93step/s, Error=0.00348, Iteration=100, Time=0.553]
[ ]:
michell = polymesher(domain=MichellDomain, n_elements=100, max_iter=100)
Iterations: 100%|██████████| 100/100 [00:00<00:00, 178.35step/s, Error=0.00239, Iteration=100, Time=0.458]
../_images/examples_mec_polymesher_8_1.png
Iterations: 100%|██████████| 100/100 [00:00<00:00, 136.75step/s, Error=0.00239, Iteration=100, Time=0.458]
[ ]:
suspension = polymesher(domain=SuspensionDomain, n_elements=100, max_iter=100)
Iterations: 100%|██████████| 100/100 [00:00<00:00, 119.56step/s, Error=0.00317, Iteration=100, Time=0.701]
../_images/examples_mec_polymesher_9_1.png
Iterations: 100%|██████████| 100/100 [00:01<00:00, 92.70step/s, Error=0.00317, Iteration=100, Time=0.701]