# Refine by splitting

**URL:** <https://prepomax.discourse.group/t/refine-by-splitting/1487>\
**Category:** Feature Requests\
**Created:** [February 7, 2024, 9:11pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487 "2024-02-07T21:11:03Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://prepomax.discourse.group/u/Gunnar)\
**Post date:** [February 7, 2024, 9:11pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/1 "2024-02-07T21:11:03Z")

</div>

I’d like to suggest including this gmsh feature direct in prepomax, useful especially for setting up submodels.

Steps:

1. create an element set in the global model
2. convert it to part
3. export as .inp (here it would be nice to have the possibility for exporting the selected part only)
4. create the new .pmx file and import the submodel
5. use “Refine by splitting” and set up the analyses.

Advantages:

1. you don’t need a cad submodel
2. coincident edges and nodes with the elements of the global model
3. This feature in combination with the feature “Set order 1/2” would be an additional benefit
4. All in all it’s a super fast way without the need of remeshing (refining without cad geometry)

Thanks

 ![sub](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/f/f7919274940525d745d332ee385cda9e94f76e25.png)

---

<div class="post-metadata">

**Author:** ![synt](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/synt/32/4658_2.png) [@synt](https://prepomax.discourse.group/u/synt)\
**Post date:** [February 8, 2024, 4:07pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/2 "2024-02-08T16:07:44Z")

</div>

i’m not sure about the possibility due to complexity. Some external mesher have this feature for splitting quadrilateral or hexahedral element in local refinement. It follows three to one transition rules like figure below. But i don’t know is Gmsh capable for such purpose.

![2024-02-08 22_37_25-Untitled 2 - OpenOffice Draw](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/d/ddd954a9a9f4beed762d73037ec54ce82511a40e.png)

or,  
 ![2024-02-08 23_03_35-Microsoft Word - Reviewers_Page.doc](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/2/253fc6ec917ee3d3541d34983e7cd7832e8f6ee8.png)  
(image from : Staten et al, 2008)

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://prepomax.discourse.group/u/Gunnar)\
**Post date:** [February 8, 2024, 7:26pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/3 "2024-02-08T19:26:34Z")

</div>

> [@synt](#):
>
> splitting quadrilateral or hexahedral element in local refinement

This tool splits the whole mesh. It’s not a tool for local refining in the strict sense.  
But when applying this to a submodel, it’s a “kind” of local refinement compared to the global model.  
I think the last picture, where I just placed both meshes on top of each other, leads to misunderstandings.

---

<div class="post-metadata">

**Author:** ![synt](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/synt/32/4658_2.png) [@synt](https://prepomax.discourse.group/u/synt)\
**Post date:** [February 8, 2024, 8:33pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/4 "2024-02-08T20:33:57Z")

</div>

maybe i’m overlook at thread names. My understanding in submodel is doing local analysis models by refined mesh, both have the same goal. It seems a submodel using interpolate from result file previously solved, thus make it less in resource. Current limitation or disadvantage is in defining twice of analysis setup.

Probably, due to these reasons in submodel approach cause of rarely in use compared to local mesh refinement at global model. However, it still good solution for huge/large models.

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://prepomax.discourse.group/u/Gunnar)\
**Post date:** [February 8, 2024, 9:40pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/5 "2024-02-08T21:40:33Z")

</div>

> [@synt](#):
>
> My understanding in submodel is doing local analysis models by refined mesh, both have the same goal.

I think the main reason is to create the details only in the submodel. But I wanted to give an example when this feature can be really helpful.

> [@synt](#):
>
> Probably, due to these reasons in submodel approach cause of rarely in use compared to local mesh refinement at global model.

There is actual no other way for mesh refinement when you have only a mesh without geometry. Before i make a feature request, i really think twice if this is a useful feature and try to give good reasons for it.

> [@synt](#):
>
> Current limitation or disadvantage is in defining twice of analysis setup.

Yes but setting up a submodel in prepomax goes very fast, all you need to do is defining the result file name and select the cutting-faces for the BCs:

 ![sub2](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/e/e25adb663570bc69c7ab8a1fc6cf66d13ca195eb.jpeg)

---

<div class="post-metadata">

**Author:** ![synt](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/synt/32/4658_2.png) [@synt](https://prepomax.discourse.group/u/synt)\
**Post date:** [February 9, 2024, 6:35am UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/6 "2024-02-09T06:35:12Z")

</div>

> [@Gunnar](#):
>
> There is actual no other way for mesh refinement when you have only a mesh without geometry.

indeed, my first comment is related to this. Many others pre-processor have feature in refinement of quad/hex element after mesh is generated.

---

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [February 9, 2024, 9:47am UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/7 "2024-02-09T09:47:18Z")

</div>

> [@Gunnar](#):
>
> Steps:
> 
> 1. create an element set in the global model
> 2. convert it to part
> 3. export as .inp (here it would be nice to have the possibility for exporting the selected part only)
> 4. create the new .pmx file and import the submodel
> 5. use “Refine by splitting” and set up the analyses.

This is a nice idea. Currently, I would suggest the following procedure. Keep steps 1 and 2. Instead of exporting, delete the parts you do not need in the submodel. Fix the supports, loads, … Then apply step 5. For that, a feature to refine the mesh would need to be added to PrePoMax.

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://prepomax.discourse.group/u/Gunnar)\
**Post date:** [February 9, 2024, 1:31pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/8 "2024-02-09T13:31:14Z")

</div>

> [@Matej](#):
>
> This is a nice idea

Thank you

> [@Matej](#):
>
> For that, a feature to refine the mesh would need to be added to PrePoMax

Yes and Gmsh has this feature so i thought it could be easy added to Prepomax, right? 🙂 Same applies to the setOrder tool:

 ![ref](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/6/6fa1dd867da71aae89fd70b6b4d93e6d11d7d07b.png)

---

<div class="post-metadata">

**Author:** ![synt](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/synt/32/4658_2.png) [@synt](https://prepomax.discourse.group/u/synt)\
**Post date:** [February 10, 2024, 7:42pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/9 "2024-02-10T19:42:31Z")

</div>

nice example. However, seam weld model did not explicitly define at shell global model, i guessed by simple tie constraint or tied contact type. Displacement compatibility at boundary condition of submodel may not satisfy, specific approach need to properly defined to account of lever arm fixity.

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://prepomax.discourse.group/u/Gunnar)\
**Post date:** [February 11, 2024, 3:31pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/10 "2024-02-11T15:31:04Z")

</div>

> [@synt](#):
>
> Displacement compatibility at boundary condition of submodel may not satisfy,

Would you think adding a gap between the parts and enlarging the submodel over the total length, to ensure the force transfer acts on the weld seam only, would be a solution?

 ![5](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/7/77502f1d582e7b3b0e4944148dbbfa8de7e11a62.png)

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [February 11, 2024, 4:04pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/11 "2024-02-11T16:04:41Z")

</div>

Keep in mind that there’s both node-based (`*BOUNDARY, SUBMODEL`) and surface-based (`*DSLOAD, SUBMODEL`) submodeling. The former is normally advised for cases when more accurate displacement results are needed while the latter is advised when more accurate stress results are needed. Currently, PrePoMax supports only node-based submodeling.

---

<div class="post-metadata">

**Author:** ![synt](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/synt/32/4658_2.png) [@synt](https://prepomax.discourse.group/u/synt)\
**Post date:** [February 11, 2024, 8:35pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/12 "2024-02-11T20:35:53Z")

</div>

indeed, seam weld model of shell element required specific approach. Similar feature implementation is available in Catia and Ansys. Ignoring weld models in global analysis will lead to results in less stiff, below simple example (discrepancy about 10% and more).

 ![2024-02-12 03_03_54-](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/5/5a315753fd6be05613ed237f80503991cccab42b.png)

 ![2024-02-12 03_04_47-](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/2/252420a7d8a90cac35144074bccb54824414ecdf.png)

 ![2024-02-12 03_26_55-](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/9/9c9de5e2a3de9528e5dc231023aa558d5faa8665.png)

---

<div class="post-metadata">

**Author:** ![Matej](https://avatars.discourse-cdn.com/v4/letter/m/a698b9/32.png) [@Matej](https://prepomax.discourse.group/u/Matej)\
**Post date:** [February 12, 2024, 8:34am UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/13 "2024-02-12T08:34:31Z")

</div>

> [@Gunnar](#):
>
> Yes and Gmsh has this feature so i thought it could be easy added to Prepomax, right? 🙂 Same applies to the setOrder tool:

I am aware of this feature, but I have to consider what is easier to implement (Gmsh or a new procedure inside PrePoMax). Namely, inside PrePoMax geometry data is connected to the mesh and using Gmsh might break that data connection.

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://prepomax.discourse.group/u/Gunnar)\
**Post date:** [February 12, 2024, 7:36pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/14 "2024-02-12T19:36:57Z")

</div>

Maybe I’m mistaken, but my intention is that one of the shown models below could be used for a detailed “effective notch” submodel - starting with a shell model.  
Why effective notch method? The evaluation seems to be the easiest for complex models - and best suited for FEM:

 ![eff](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/3/364faf402980ea15729c01630c0ac0f0f288ec5e.png)

One problem i understand is to make sure, by connecting several parts, is that the mapped displacements to the submodel belong to the correct part of the global model. If i additionally add the seam weld to the global model, it will be even harder to separate (actual my problem with the second model).  
If i don’t miss something important, at least the first model with tie constraint seems to be not too bad. With gaps between the different parts of the global model (bridged-over with tie constraints with appropriate position tolerance) and cutouts in the submodel, these mapping assignment should be clearly separated.  
The idea is to have only one detailed submodel for each kind of weld seam which can be placed at different locations of a big global model.  
Tips and opinions welcome.

 ![we](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/7/708d536f5669cdafe9dd7f25debae270fd28afad.jpeg)

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://prepomax.discourse.group/u/Gunnar)\
**Post date:** [February 12, 2024, 7:38pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/15 "2024-02-12T19:38:54Z")

</div>

Thanks, good point that I obviously didn’t consider.

---

<div class="post-metadata">

**Author:** ![synt](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/synt/32/4658_2.png) [@synt](https://prepomax.discourse.group/u/synt)\
**Post date:** [February 12, 2024, 10:32pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/16 "2024-02-12T22:32:24Z")

</div>

> [@Gunnar](#):
>
> One problem i understand is to make sure, by connecting several parts, is that the mapped displacements to the submodel belong to the correct part of the global model. If i additionally add the seam weld to the global model, it will be even harder to separate (actual my problem with the second model).

that’s normal in FEA, more detail still required in global model even the mesh is coarser than sub-model as in example below.

 ![2024-02-13 05_26_33-FatlabManual.pdf](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/8/895855a68a8c6045047e72e015bcb74ab420c6d6.png)

(image from: M. M. Pedersen, 2024)

---

<div class="post-metadata">

**Author:** ![Gunnar](https://avatars.discourse-cdn.com/v4/letter/g/ed655f/32.png) [@Gunnar](https://prepomax.discourse.group/u/Gunnar)\
**Post date:** [February 13, 2024, 6:34am UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/17 "2024-02-13T06:34:12Z")

</div>

> [@synt](#):
>
> that’s normal in FEA, more detail still required in global model

My approach is based on a simplification (that’s normal in FEA). It’s certainly not a bad idea to take more details into account. But what exactly is missing in my model?

---

<div class="post-metadata">

**Author:** ![synt](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/synt/32/4658_2.png) [@synt](https://prepomax.discourse.group/u/synt)\
**Post date:** [February 13, 2024, 9:43am UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/18 "2024-02-13T09:43:26Z")

</div>

right, but not too simple, something like example below also simplified ones. Probably, it can have better approach since rigid zone or lever arm fixity being considered in analysis model.

 ![2024-02-13 16_09_25-](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/0/0249ce679f7bb43301256b2b1cd8bdcb9754343c.png)

 ![2024-02-13 16_36_56-](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/a/a74fcd715ad3d472cb25f6b5531c20fef9252c88.png)

---

<div class="post-metadata">

**Author:** ![lucas\_bueno](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/lucas_bueno/32/1168_2.png) [@lucas\_bueno](https://prepomax.discourse.group/u/lucas_bueno)\
**Post date:** [February 13, 2024, 1:03pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/19 "2024-02-13T13:03:05Z")

</div>

Just out of curiosity, is this made with nodal thickness?

![image](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/e/ec4d14a2db1c7c41d53517a031ddadd36d718c1d.png)

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [February 13, 2024, 1:06pm UTC](https://prepomax.discourse.group/t/refine-by-splitting/1487/20 "2024-02-13T13:06:20Z")

</div>

> [@lucas\_bueno](#):
>
> Just out of curiosity, is this made with nodal thickness?

> **[Nodal thickness and quadratic Shell element](https://calculix.discourse.group/t/nodal-thickness-and-quadratic-shell-element/2084)**
>
> i experienced problem in definition of variable shell thickness by Nodal thickness feature in quadratic element type. It seems not working properly, below example cases (link).

[Next page](https://prepomax.discourse.group/t/refine-by-splitting/1487.md?page=2)
