Describe the bug
When remodelling (T1 transitions in either apical or basal side) creates unrealistic geometries that breaks the model.
To Reproduce
remodel_mesh with some given nodes creates geometries with overlapping cells (e.g.,). For instance, this is an example of a geometry breaking the model that we don't pursue:
INFO [2026/03/17 10:08:39 AM] pyVertexModel: |gr| after remodelling without changes: 0.2032623511104577
INFO [2026/03/17 10:08:39 AM] pyVertexModel: Surface: 3.8042568091598336e-07
INFO [2026/03/17 10:08:39 AM] pyVertexModel: Volume: 4.019410637345629e-05
INFO [2026/03/17 10:08:39 AM] pyVertexModel: TriEnergyBarrierAR: 0.0
INFO [2026/03/17 10:08:39 AM] pyVertexModel: Substrate: 5.235452690096614e-11
INFO [2026/03/17 10:08:54 AM] pyVertexModel: Surface: 7.272564485192353e-07
INFO [2026/03/17 10:08:54 AM] pyVertexModel: Volume: 3.0221638252798605e-06
INFO [2026/03/17 10:08:54 AM] pyVertexModel: TriEnergyBarrierAR: 0.0
INFO [2026/03/17 10:08:54 AM] pyVertexModel: Substrate: 7.366233917686376e-08
Previous gr: 0.0015257249860467159, dyr: 0.002161642007669984
INFO [2026/03/17 10:09:00 AM] pyVertexModel: Surface: 0.00011238803161118334
INFO [2026/03/17 10:09:00 AM] pyVertexModel: Volume: 0.4928484098610282
INFO [2026/03/17 10:09:00 AM] pyVertexModel: TriEnergyBarrierAR: 0.0
INFO [2026/03/17 10:09:00 AM] pyVertexModel: Substrate: 1.3526878191993357e-07
Previous gr: 0.0015257249860467159, dyr: 0.03850133846822275
INFO [2026/03/17 10:09:07 AM] pyVertexModel: Surface: 9518138875.266048
INFO [2026/03/17 10:09:07 AM] pyVertexModel: Volume: 7.304423118700364e+36
INFO [2026/03/17 10:09:07 AM] pyVertexModel: TriEnergyBarrierAR: 0.0
INFO [2026/03/17 10:09:07 AM] pyVertexModel: Substrate: 5.2844606127216585
Previous gr: 0.0015257249860467159, dyr: 802.652473318542
WARNING [2026/03/17 10:09:08 AM] pyVertexModel: /media/pablo/d7c61090-024c-469a-930c-f5ada47fb049/PabloVicenteMunuera/VertexModel/pyVertexModel/src/pyVertexModel/geometry/tris.py:8: RuntimeWarning: divide by zero encountered in scalar divide
WARNING [2026/03/17 10:09:08 AM] pyVertexModel: /media/pablo/d7c61090-024c-469a-930c-f5ada47fb049/PabloVicenteMunuera/VertexModel/pyVertexModel/src/pyVertexModel/geometry/tris.py:8: RuntimeWarning: divide by zero encountered in scalar divide
WARNING [2026/03/17 10:09:12 AM] pyVertexModel: /media/pablo/d7c61090-024c-469a-930c-f5ada47fb049/PabloVicenteMunuera/VertexModel/pyVertexModel/src/pyVertexModel/Kg/kgVolume.py:83: RuntimeWarning: overflow encountered in multiply
WARNING [2026/03/17 10:09:12 AM] pyVertexModel: /media/pablo/d7c61090-024c-469a-930c-f5ada47fb049/PabloVicenteMunuera/VertexModel/pyVertexModel/src/pyVertexModel/Kg/kgVolume.py:87: RuntimeWarning: overflow encountered in scalar power
WARNING [2026/03/17 10:09:12 AM] pyVertexModel: /media/pablo/d7c61090-024c-469a-930c-f5ada47fb049/PabloVicenteMunuera/VertexModel/pyVertexModel/src/pyVertexModel/Kg/kgVolume.py:89: RuntimeWarning: overflow encountered in scalar power
WARNING [2026/03/17 10:09:12 AM] pyVertexModel: /media/pablo/d7c61090-024c-469a-930c-f5ada47fb049/PabloVicenteMunuera/VertexModel/pyVertexModel/src/pyVertexModel/Kg/kgVolume.py:64: RuntimeWarning: overflow encountered in scalar divide
WARNING [2026/03/17 10:09:12 AM] pyVertexModel: /media/pablo/d7c61090-024c-469a-930c-f5ada47fb049/PabloVicenteMunuera/VertexModel/pyVertexModel/src/pyVertexModel/Kg/kgVolume.py:83: RuntimeWarning: invalid value encountered in multiply
WARNING [2026/03/17 10:09:12 AM] pyVertexModel: /media/pablo/d7c61090-024c-469a-930c-f5ada47fb049/PabloVicenteMunuera/VertexModel/pyVertexModel/src/pyVertexModel/Kg/kgVolume.py:83: RuntimeWarning: invalid value encountered in add
WARNING [2026/03/17 10:09:12 AM] pyVertexModel: /media/pablo/d7c61090-024c-469a-930c-f5ada47fb049/PabloVicenteMunuera/VertexModel/pyVertexModel/src/pyVertexModel/Kg/kgVolume.py:64: RuntimeWarning: overflow encountered in scalar power
INFO [2026/03/17 10:09:13 AM] pyVertexModel: Surface: 1.6651102821031814e+145
INFO [2026/03/17 10:09:13 AM] pyVertexModel: Volume: inf
INFO [2026/03/17 10:09:13 AM] pyVertexModel: TriEnergyBarrierAR: 0.0
INFO [2026/03/17 10:09:13 AM] pyVertexModel: Substrate: 1.4798267702208325e+71
Previous gr: 0.0015257249860467159, dyr: 1.8714531497011436e+36
Expected behavior
Once we remodel, every geometry should be ok with no energetic spikes. The geometry of each cell should not overlap, all their triangles should connected, and be consistent. It should also not break it energetically.
Describe the bug
When remodelling (T1 transitions in either apical or basal side) creates unrealistic geometries that breaks the model.
To Reproduce
remodel_mesh with some given nodes creates geometries with overlapping cells (e.g.,). For instance, this is an example of a geometry breaking the model that we don't pursue:
Expected behavior
Once we remodel, every geometry should be ok with no energetic spikes. The geometry of each cell should not overlap, all their triangles should connected, and be consistent. It should also not break it energetically.