Specification on some GUI commands

Hi, I am very pleased with Prepomax but sometimes I am unable to precisely understand what a specific command is supposed to do.
Here’s a random list of questions, most will be trivial, but maybe a clear answer will be helpful to many:

  1. when merging parts in FE model, does this join the meshes somehow ? If yes what is the criterium ? If not, what is the point of the command in the first place which merely makes it harder to select faces ?
  2. I find it very annoying that you can create compounds but then you cannot go back to the original parts, it’s a one-way road right?
  3. Sometimes I can select a face of a part, sometimes I get only the full body, no matter how hard I try with the selection menu or with the zoom, why is that ?
  4. And speaking of the selection menu, what is the “edge angle” or “surface angle” ? Angle with respect to what ? How am I supposed to know ?
  5. The feature which looks for contact pairs is amazing. However, I am not clear what the adjust feature does. I understand it modifies the mesh by projection and in this way parts are merged together at the contact area. Again this is irreversible, which is annoying. When is this preferable to introducing a tie constraint ?
  6. Sometimes parts in the part tree are in red color, I expect this means there is a problem but no indication of what the problem is. What am I supposed to do ? The analysis runs fine.
  7. Sometimes, importing from gmsh creates element sets which are in red colour, what is this supposed to mean ?
  8. The concentrated force load should state, in the menu, that the load is “per node”, I think it would greatly save many mistakes (although I know this is clearly stated in the documentation).
  9. Moment is equally per node, if I understand correctly, but there is no moment equivalent of “Surface traction” for moments, why is that ? (Also I feel uncomfortable with the wording “surface traction” because to me it sounds like there is only traction as opposed to compression, but I guess this is semantic. “Total force on multiple nodes” seems clearer)
  10. Finally (a list should have 10 items shouldn’t it ?) a minor point: I see there is no way of turning a fixed constrained into a displacement constraint, it is either one or the other, despite there being no theoretical difference between the two. Sometimes one runs the analysis with a set of fixed constraint and then would like to relax it with respect to some DOFs. This needs resetting all constraints as displacement, which may be time consuming. I suggest having only displacement constraints which automatically provide the fixed option as the standard option, wouldn’t it be easier ? Is there a reason for this double option ?
    Thank you for your time and any answer you may provide.
    Regards,
    Andrea
1 Like
  1. From the documentation: assigns elements from multiple separate parts to one common part without changing the mesh
  2. The individual parts are still in the tree in the Geometry tab, you can show and mesh them.
  3. Use the selection modes to make sure that you will select only the desired geometrical entity type.
  4. This is the concept used in Abaqus. It propagates the selection using a specified angle (so only the edges/faces within that angle from the selected one will be added to the selection). From Abaqus documentation (should apply also here):

The angle must be greater than the angle through which adjacent edges or faces must rotate to create the geometry as if it was being formed by bending a straight wire or folding a series of faces. Abaqus/CAE starts from the selected geometry and selects all adjacent geometry until the angle you entered is met or exceeded.

For example, to select the edges of a regular hexagon, enter an angle greater than 60° (since each adjacent edge must be rotated 60° to form the shape from a straight wire), and select one of the edges. Abaqus/CAE then selects every adjacent edge since none of the angles is equal to or exceeds the angle that you entered.

  1. This is explained in the CalculiX manual since it’s a solver feature. It forces the nodes of the slave surface to lie exactly on the master surface so it only makes a correction of the node locations if there are some initial gaps/penetrations.
  2. I’m not sure when part names can become red, probably after some breaking changes in the tree. More often you will see a yellow warning sign indicating issues with imported geometry.
  3. Probably they weren’t read correctly and you should check their contents.
  4. This might be a good idea considering the number of people making this mistake. There’s even a dedicated forum thread for that: Don't apply concentrated force load to surfaces
  5. Yes, moments are per node and mostly applied to reference points. Applying them to solids wouldn’t make sense due to the lack of rotational DOFs. So total moment feature wouldn’t be very useful (moments applied directly to shell edges aren’t so common). Maybe the Surface traction load could be renamed to Total force or something. Your suggestion is a bit too long.
  6. The fixed constraint makes sense when you are sure that you want to quickly fix all DOFs and keep them fixed. Otherwise, you should use the Displacement/Rotation BC. Other FEA software also uses this approach. In Abaqus, you have predefined fixed (ENCASTRE) and symmetry constraints that can’t be changed and general Displacement BC operating on individual DOFs.
2 Likes

This could also depend on the item you are creating. If you are creating a surface, the selection filter is internally set to surfaces so no mater what you try to change in the selection option, you will not be able to select a node.

The angle means that you will not only select the item you click but also all its neighbours that are connected to it with an angle smaller than the entered vale.

  1. Maybe I could add Right click → Covert to Displacement for the fixed BCs?

General:
Red color - red color indicates that something is wrong with the item. What is wrong depends on the problem. And there is no way currently to determine what is wrong.

Does my above quote from Abaqus documentation describe the PrePoMax implementation of angle selection well ? If so, I would rephrase it and add to the PrePoMax manual on the next occasion.

Speaking about that, what are the criteria to determine the geometry validity in PrePoMax ? In other words, what triggers the yellow warning sign ? Some time ago, I was trying to find out by looking at the source code but I had some doubts.

Thank you, very fast.
Some further comments:

  1. In my opinion, it is of little use. In fact, this compounding may give the illusion parts are joined together when in fact they are not. I would remove this command. Some real mesh compounding would be very useful instead, by which the parts are actually joined together.
  2. This is not always true, certainly not if you import the mesh from gmsh (which is my preferred work strategy). It would be useful to be able to un-merge compounds. Also remeshing is a pain, what is it so difficult with undoing compounding ?
  3. I reiterate that sometimes I can select some faces, like the sides in a drilled hole, which I am unable to select in another part, where the full part is always selected instead, and this under the same selection settings. Maybe because the mesh is too coarse there, don’t know. Even if I point to a face, I get the whole part selected. Is it only me seeing this ?
  4. Clear.
  5. Clear.
  6. Issuing a red signal without giving out the reason is not very useful. I’m sure the software (say the import routine) returns an error code, couldn’t we get that at least ?
  7. Yes, this is the reason why they are red, sure. But my question is why do we get some node sets created in the first place ? There must be some logic behind this, please explain this logic. It could just be that OPENCASCADE takes care of it and returns a set of improperly read nodes, I’m wild guessing here. Then, from a procedural standpoint, we should be able to do something with them (like delete them, say) to remedy the error.
  8. Agreed.
  9. Still, rotational DOF may be present in some solid element type, and they certainly are in beam elements (which will hopefully be supported someday, my biggest wish). In fact, this prompts an important question: how do we know, in Prepomax, what element type we are using ? Can I point one and see what element type it is ? It seems to me that Prepomax only deals with tets and in fact it counts assembly in terms of elements, without specifying which type of them.
  10. If this is the case with Abaqus, I guess they thought about this. I still claim it is not sensible but it’s probably just me. Right click would undoubtedly help.
    Thanks a lot for the great job you are doing!
    Andrea
  1. Some further info about this option: Merge parts in FE models - #5 by Matej
  2. I was thinking about working with CAD models. The workflow with imported meshes is indeed very different and currently may require more setup in the mesher before importing.
  3. Of course, specific errors would always be nice but it’s quite common in CAx software that you only get a warning/error sign and have to take a closer look at a problematic feature. In PrePoMax, most red names are just outdated features like sets that lost their content after remeshing.
  4. A lot here depends on the mesher and its export settings. Many meshers automatically create sets for all nodes/elements and they can be deleted after importing.
  5. PrePoMax supports many element types including tetras, hexas (newly implemented Gmsh hex meshing techniques) and different formulations of 2D elements (shell, membrane, plane stress/strain, axisymmetric). You can check and change the element types by editing a part in the FE Model tab.
2 Likes

This is a long one. First, how does PrePoMax reads a CAD file. The file is opened with modified netgen where the face triangulation is done in OpenCascade. Then I try to export the triangulation to the ascii file. In this file, triangulation nodes are reported, their connectivity and data about which nodes belong to which CAD edges and which nodes/triangles belong to which faces is written. And then PrePoMax reads this acsii file and displays it.

So in PrePoMax, I cannot analyze the geometry behind the triangulation, only the validity of the triangulation. I check for validity in a couple of ways during a process where I try to recreate the edges and faces from the triangulation. If there is something unexpected, I add data to errorEdgeCellIds. One of such functions is: ExtractEdgesFromShellByAngle.

The reason for the unexpected behavior could be the problem in geometry or the problem in triangulation. I have no tools to determine where the errors come from. So I show a warning icon. If the error is in the triangulation only, the mesh can usually be created. If the problem is in the geometry, the mesh usually cannot be created.

This is very interesting. Indeed, this may explain why IMHO PrePoMax imports step far better than FreeCAD, which sometimes is unable to resolve smaller parts which are maintained as belonging to some larger part. In fact, sometimes I have to import a large step in FreeCAD, simplify it and then export it back to step, which I import in PPM and simplify further (maybe eliminating some small details that I could not resolve in FreeCAD as separate parts). The import in PPM is awesome, it should replace FreeCAD’s.

At any rate, let me push a request. When in selection mode the part tree is disabled and I am not allowed to show/hide parts. This is most inconvenient because often you may want to select some areas in a part and then some others behind it, in another part, which would be very easy if we could just hide the first part after having made the selection. Is it hard to implement ?
I think this fix would be greatly beneficial.
Second, is there any way to show all or hide all with a click, which would be super handy ? It is often the case I have very many parts and I have to select/deselect each or shift/ctrl select, which is a pain.
Thanks,
Andrea

I think what could be the difference is that PrePoMax first splits the assembly into separate parts and saves them into separate .brep files. Then, each file is separately loaded, triangulated, and displayed.

Hide/Show during selection could be tricky but would be a good improvement. I will look into it.

For “Hide/Show all” there is a menu item feature under View and also appropriate icons:

image