Thank you so much! This is helpful. I am wondering if the package can be used in VS code?
@tecnodigitalschoolАй бұрын
Yes, you can use this package in any IDE, like VS Code. You only have to make sure that you select the Python environment in which you installed abqpy.
@ArthurYou-k3mАй бұрын
@@tecnodigitalschool Thank you very much!
@aaronocampo74793 ай бұрын
do you know how to do this for a CEL model?
@imaneferradj96064 ай бұрын
awesome video! Thank you so much!
@tecnodigitalschool3 ай бұрын
Thank you!
@kaptaprism46445 ай бұрын
Hi, thank you for sharing this. You explained it very nicely and in detail. I have a question, not exactly related to this but still you might have an idea. For a plugin I am writing, I am extracting section forces from bolt which i will use for safety calculations. However, the view cut (so body forces) should be aligned with bolt axis. How can i get bolt axis? Is there any easy way you are aware?
@tecnodigitalschool5 ай бұрын
You can define a surface (or set of faces) normal to the load axis and get the normal from it.
@kaptaprism46445 ай бұрын
@@tecnodigitalschool thank you for quick answer! Do you know the method to get surface normal? I couldn't find it. I can probably get element face normal but surface would be much better.
@tecnodigitalschool5 ай бұрын
You can extract the normal from a face. If you have a surface, you can do the following: for face in p.surfaces["MySurface"].faces: print(face.getNormal()) Iterate through the faces of a surface and use getNormal.
@Daniel-gv9gr5 ай бұрын
Hi, great video thank you! I am trying something similar like you in this case, the difference is, that I want to create the sets after meshing/on an orphan mesh. Do you have a video for that as well?
@tecnodigitalschool5 ай бұрын
Hello Daniel, Dealing with orphan meshes, you can apply the same methods excepting findAt. You can use getByBounding functions (for nodes and elements), booleans (with sets), and direct selection. If you use direct selection, you will be iterating through your elements (or nodes) and picking them based on some preferences. Like this you'll end up with a list of elements, however this list is not valid to create a set because you need a sequence (as with geometry, you don't use a list of faces, but a sequence of faces). You have to convert the list of elements into a sequence with the function: import mesh mesh.MeshElementArray(list_of_faces) In the case of nodes, the function is mesh.MeshNodeArray(list_of_nodes). Best regards! Miguel
@Daniel-gv9gr5 ай бұрын
@@tecnodigitalschool Hi Miguel, Thank you for your reply! I generated a MeshFaceArray based on my mesh faces that I need, but now struggle to create a surface in the part as I receive Type errors
@tecnodigitalschool5 ай бұрын
@@Daniel-gv9gr Creating a surface based on face elements is a bit trickier: 1) You have to identify the face number within the element. 2) Group those faces with the same numbers (e.g. all FACE1 together) 3) Create a MeshElementArray with the elements of each group of faces (e.g. elemsFace1, elemsFace2...) 4) Create the surface using the corresponding arguments (e.g. p.Surface(face1Elements=elemsFace1, face2Elements=elemsFace2)) You can find all the details about the arguments of the Surface() function in the docs. Scripting reference > Python commands > Region commands > Surface object
@Daniel-gv9gr5 ай бұрын
@@tecnodigitalschool Hi Miguel, thank you so much for your Help. Regarding step 3 I think this should be MeshFaceArrays ? If I use that it creates a surface :) Alternatively one can create surfaces with MeshNodeArrays but those look like a regular set not like a surface.
@tecnodigitalschool5 ай бұрын
@@Daniel-gv9gr ok, that's great! I missed that in the docs, Surface also accepts MeshFaces which makes complete sense 😅. Congrats @Daniel-gv9gr !
@noamaanshaikh57027 ай бұрын
hello Miguel, I am getting this error after trying all the steps you mentioned: You [Errno 10060] A connection attempt failed because the remote site did not respond properly after a certain period of time, or the connection established was incorrect because the connected host did not respond
@noamaanshaikh57028 ай бұрын
Hi Miguel, can we use this trick if we are not using Python scripting for building model? I mean when we are creating a model in Abaqus right from sketching without python scripting?
@tecnodigitalschool8 ай бұрын
Sure. We could even use this notification idea running our jobs from the command line, just by using the input file.
@hosseinfallahi73068 ай бұрын
I couldn't find better than your explanation regarding this problem. Thank you!
@tecnodigitalschool8 ай бұрын
I appreciate it!
@shogga6909 ай бұрын
Nice video. I am curious why the script cannot be run from the IDE?
@tecnodigitalschool9 ай бұрын
The IDE does not have access to the Python interpreter inside Abaqus, so we cannot import any of the real Abaqus modules (abaqus, abaqusConstants, caeModules). In fact, this is why we use abqpy, which only represents the interface to Abaqus functions (but is empty).
@helpingwithprojects52519 ай бұрын
sir, will this support abaqus 2023
@tecnodigitalschool9 ай бұрын
Yes, it does work the same way for Abaqus 2023
@ADILJAN7239 ай бұрын
how to select elements or cell to in link "Interaction with "Time Steps" . I mean at the first step has to activate one elements in the bar element to link in the "interaction steps" like Welding or Additive Manufacturing process simulation , and second step has to select second element to activate to second elment to link second "Interaction steps" . Thanks.
@tecnodigitalschool9 ай бұрын
Hi ADILJAN, I guess you are talking about activating different regions of your model at different steps, right? If so, you can create different sets for the regions that you want to activate using any of the methods described in this video, and then create an interaction of type "Model change". In the definition of this interaction you can refer to the sets created previously. Best regards! Miguel
@ADILJAN7239 ай бұрын
@@tecnodigitalschool Thank you very much for your quick replay. as I new beginner, I have some difficulty to do it by myself , I would be very much appreciated if you could help me with following example, first I created "Step " as such : mdb.models['Model-1'].StaticStep(name='Step-1', previous='Initial', maxNumInc=10000, initialInc=0.01, maxInc=0.1) this is the in the case of selecting cell : c1 = a.instances['Part-1-1'].cells cells1 = c1.getSequenceFromMask(mask=('[#1 ]', ), ) region =a.Set(cells=cells1, name='Set-1') mdb.models['Model-1'].ModelChange(name='Int-1', createStepName='Step-1', region=region, activeInStep=False, includeStrain=False) and this one is in the case of selecting element e1 = a.instances['Part-1-1'].elements elements1 = e1.getSequenceFromMask(mask=( '[#80200 #0:5 #8020000 #0:2 #80200000 #0:5 #20000000', ' #80 #0:2 #802 #0:5 #80200 ]', ), ) region =a.Set(elements=elements1, name='Set-2') how to change "Mask" to select cell , or in the second case select element ? Thanks
@HeidiQuintero-f5o10 ай бұрын
mil gracias, excelente explicación
@karimmosli10 ай бұрын
thank you sir for this interesting video
@tecnodigitalschool9 ай бұрын
Glad you liked it
@jumpshot-zz1uy11 ай бұрын
Hello!thanks for your tutorial, I just have a question about how to select elements in abaqus using the"getsequencemask"?
@tecnodigitalschool11 ай бұрын
The "getSequenceFromMask" method is internally used by Abaqus. In fact, it's the default recorded in the rpy and jnl files. However, I don't recommend using it since it's opaque for the user. FindAt, and getByBounding methods are a lot more intuitive and easy to use. Anyways, I'll be happy to clarify your questions about it.
@harsh_hybrid_thenx11 ай бұрын
This macro stuff is very incredible like I'm able to understand the python scripting and abaqus interface much better in context of what/how is happening everything behind the scenes. I mean if youtube video gets citation, I will definitely cite this video in my upcoming article or thanks to this guy in the acknowledgement (if or since former is not possible yet (to what I know)). Thanks for this amazing "IDEA" 😊
@tecnodigitalschool11 ай бұрын
You are welcome. I appreciate it!
@harsh_hybrid_thenx11 ай бұрын
I am using Abaqus from almost 2 years now and I have not known or explored this useful feature. Thanks for sharing this useful feature description in detail with examples. Have a great day!
@tecnodigitalschool11 ай бұрын
Awesome! I'm very happy to hear that. If you like free-body cuts, you may find this interesting as well: kzbin.info/www/bejne/iZ6xc2ifradpb7s
@aryaamiri71011 ай бұрын
This video was super helpful for me. It is amazing. Thanks so much.
@tecnodigitalschool11 ай бұрын
Happy to help!
@tinkatul Жыл бұрын
Hi, thanks for the explanations, but I've got a question, please. How can I export from AutoCAD to a step file .stp? (Autocad Mechanical or Inventor, perhaps?). I can export as .sat and .iges files, but not as .stp format. Saludos.
@tecnodigitalschool Жыл бұрын
Don't know about AutoCAD. From Abaqus you can export and import geometry using step, iges and sat formats (among others).
@tinkatul Жыл бұрын
@@tecnodigitalschool thanks for the answer! I have copied the format from a file made from a simple couple of lines, and replicated in a worksheet....then pasted, worked, and made Abaqus fix the geometry inconsistences (I think it's because number of digits). Yes, .sat and .iges files I had tried, but it only imported the solid elements, and I wanted to make a wire structure...
@abduossaid5483 Жыл бұрын
Hallo MIguel! Du bist ein genie. Danke für das, was DU gemacht hast
@tecnodigitalschool Жыл бұрын
Ich schätze es sehr. Gern geschehen!
@maxmin111 Жыл бұрын
How to get intellisense for abacus key word in notepad++ or VisualStudio, Thanks for your answer
@tecnodigitalschool Жыл бұрын
Hi! Apparently there isn't a native way to do it just with Abaqus. However, I found a Github repo to solve this issue, so that we can have autocompletion and read the docs directly from VisualStudio or any other IDE. This is the link to that repo: github.com/haiiliin/abqpy It's very promising and who knows, maybe with Abaqus 2024 and Python 3.10, we could see some major improvements in terms of interaction and debugging (Abaqus PDE). Best regards! Miguel
@maxmin111 Жыл бұрын
@@tecnodigitalschool May you please let me know intellisense setup about notepad++
@tecnodigitalschool Жыл бұрын
@@maxmin111 This will work in a Python IDE like Visual Studio Code, PyCharm, Spyder... A Python IDE is able to communicate with the Python interpreter and libraries, whereas Notepad++ is a text editor and the autocompletion works very differently (npp-user-manual.org/docs/auto-completion/#create-auto-completion-definition-files). I recommend you use one of the Python IDEs that I mentioned above, it is the most convenient for deveopers. Best regards!
@tarhouniw Жыл бұрын
thank you very much for this useful video. I found a problem to select the external surface of a cylinder with the getByBoundingCylinder function. all surfaces of the cylinder are selected. >>> external_radius=30 >>> highlight(f.getByBoundingCylinder(center1=(0,0,0.),center2=(0,0,80),radius=external_radius)) how to select only the external surfaces with the getByBoundingCylinder function?
@tecnodigitalschool Жыл бұрын
Selecting only the external surface (without the lids) is not possible just with the getByBoundingCylinder. I find 2 approaches for this: 1) If the cylindrical surface is made of a single face, I would simply use the findAt function. 2) If the cylindrical surface is made of many faces, then I would follow these steps: i - Set-1. Create a set of faces with all the faces: external surface + lids. ii - Set-2. Create a set of faces only with the lids. iii - Use a boolean substraction between both sets. p.SetByBoolean(name='SURF_EXT', operation=DIFFERENCE, sets=(p.sets['Set-1'], p.sets['Set-2'], )) I hope you find this useful!
@tarhouniw Жыл бұрын
@@tecnodigitalschool Thank you very much for your reply
@aaroncanepa6852 Жыл бұрын
wow amazing, thx for the video, greetings from Peru
@tecnodigitalschool Жыл бұрын
You're welcome!
@mariogalindoq Жыл бұрын
Very good video!!
@tecnodigitalschool Жыл бұрын
Thank you!
@ميكانيك-ف5ت Жыл бұрын
Hello. How to réalisé a dimple in cylinder Shells with abaqus script
@tecnodigitalschool Жыл бұрын
Maybe the most versatile option to make an arbitrary hole on any type of geometry (even curved faces) is to use a boolean operation between 2 instances in the assembly. You can find some examples here: kzbin.info/www/bejne/pKmwdmmio7J5h6c
@ميكانيك-ف5ت Жыл бұрын
Thanks but how to creat dimple imperfection in Shell cylinder
@Alexinter95 Жыл бұрын
Very helpful video! Thank you :) I was wondering if there is a way to use GetByBounding... to select mesh surfaces. I tried, and it is not working. Do you have a working example?
@arashkhanegol Жыл бұрын
I just came across your channel when I was searching for methods of selecting geometry. Your channel and website are amazing. Thank you.
@tecnodigitalschool Жыл бұрын
You're welcome!!
@lifeusefully Жыл бұрын
hallo Miguel, I tried in vain to find the option for less secure.. it seems that the option" for turn on less secure app access" is no longer available. Is there other way to do that? Is it possible to use yahoo for instance..Thanks for yours answer
@tecnodigitalschool Жыл бұрын
Hi! You're right. The less secure app access option was removed in 2022. Now, the easiest workaround is to set up an "App password", and use it instead of your regular password. You can see how to set it up here: kzbin.info/www/bejne/j5DYZn5_mr2cjKs If you want to use other email servers like Yahoo, it's also possible. You only have to look for it in the documentation or google it. For instance, for Yahoo, I found this forum, which is a bit old, but it's a good starting point: stackoverflow.com/questions/16381527/sending-e-mails-using-yahoo-account-in-python I hope this works for you! Best regards, Miguel
@BerkayVatansever Жыл бұрын
Thank you for the video. I have a problem though maybe you could help. I created a macro, where I open a .cae file and export a part as .stl file. When I run it with macro manager it works just fine. However I can't run it as a script for some reason. I don't get any error messages either. Have any idea why this is happening?
@tecnodigitalschool Жыл бұрын
What is the error message that you get? Maybe you are missing some import?
@BerkayVatansever Жыл бұрын
@@tecnodigitalschool Wow thank you for replying so fast. I figured it out. Had to edit the python script I got from ABAQUS a little bit. Now it works.
@tecnodigitalschool Жыл бұрын
Awesome! By the way, you can replace all the list of "imports" inside the macro for: from caeModules import * Have a great day!
@souicisouici5446 Жыл бұрын
Thank you very much sir
@ATTARISAID Жыл бұрын
good job thank you
@tecnodigitalschool Жыл бұрын
I appreciate it!!
@engineering_software Жыл бұрын
Wonderful explanation!
@tecnodigitalschool Жыл бұрын
Thanks a lot!
@nikitarozin Жыл бұрын
Great job! This is the best video to start this topic. Thank you
@tecnodigitalschool Жыл бұрын
I'm glad that you think so! Thanks a lot!
@hosseinghorbani_menghari2956 Жыл бұрын
hello, Thank you for your great video. I am trying to simulate multi-particle FEM using abaqus . I wrote a script and generate the particle and other parts. Using your video I managed to define edge or surface of my box. and now I want to cutoff some element which are outside of my box But I did not solve this problem. Could you please help me?
@tecnodigitalschool Жыл бұрын
Hello Hossein. You're welcome! If the elements that you want to remove belong to an orphan mesh, you can delete them directly. However, if the mesh of your model comes from meshing the geometry (in most cases is like that), then you should cut your part before meshing to get the final geometry. Best regards!
@funbangla1333 Жыл бұрын
Thank you for sharing this wonderful process of odb postprocessing
@tecnodigitalschool Жыл бұрын
I am very happy to hear that! Thanks!
@funbangla1333 Жыл бұрын
@@tecnodigitalschool However this process is not feasible when you try to use abaqus python, since abaqusModules cannot be imported in abaqus python. can you suggest something that facilitates this process in abaqus python?
@sanjeevkumar-id7ij Жыл бұрын
Hello Sir, I tried to read data from Excel file using pandas. I did it the way you mentioned in the post, "How to use Python 3 with Abaqus and more". But abacus still shows no module named pandas. Even if we import certain libraries in "app.py" which aren't available in abacus, but still we can't incorporate those libraries in "abq.py". And as soon as we run app.py in python, abaqus shows there isn't any module named pandas. Please help me how to resolve this. Thank you
@tecnodigitalschool Жыл бұрын
Hello Sanjeev, I guess you are referring to this blog post: tecnodigitalschool.com/how-to-use-python-3-with-abaqus-and-more/ If you run app.py within Abaqus it will fail, since the Python environment built into Abaqus does not include these Python 3 libraries (pandas, openpyxl, sklearn...). The script app.py is executed from an external Python 3 environment (kzbin.info/www/bejne/iXnGnn1maJ18gJo). This is the main script and will invoke (through the command line) Abaqus and run a second script (abq.py) that will include all the direct commands to control Abaqus. I hope this is useful for you! Best regards
@sanjeevkumar-id7ij Жыл бұрын
@@tecnodigitalschool I need to pass the arguments from app.py to abq.py. Sir can you please share some part of script to do that. It will be of great help to me. Really need your help
@sanjeevkumar-id7ij Жыл бұрын
And most importantly i am really thankful to hear from you. Means for a lot sir
@AmitKumar-nt7oi Жыл бұрын
Sir i am trying to use python 3 set in conda environment to use the libraries which aren't available in abaqus like pandas to read data from excel file. I tried the way you showed in the post "How to use Python 3 with Abaqus and more", and tried to model but its still showing "no module named pandas". Can you please help me with this. Thank you
@tecnodigitalschool Жыл бұрын
Hello Amit, The Python environment built into Abaqus cannot be modified. We cannot update it nor install other Python modules. Therefore we have to find a workaround for that. The most versatile and simple way that I have found is to use a completely independent Python environment (as the one we create in this video). In this external environment we can install any packages and use whichever Python version we wish. The keypoint of this approach is that we have two scripts: 1 - The first script (app.py) runs on this external Python environment and can take advantage of any libraries we wish. 2 - A second script (abq.py) that runs Abaqus commands for the preprocess, run the simulations and the postprocess. The question is: How do these scripts communicate? They interact through the command line. There are several ways in which we can achieve this interaction. For instance, if the main script is app.py, then it will execute Abaqus and run abq.py by invoking 'os.system'. This approach is not only valid to interact with Abaqus from an external Python script, but also to integrate Abaqus FEA into any engineering workflow involving other programs. Yes, we can run Abaqus scripts from Matlab, from Excel, from in-house applications developed in C, Java, Rust, even from web applications! I wrote a blog post explaining how all this works: tecnodigitalschool.com/how-to-use-python-3-with-abaqus-and-more/ I hope this is useful for you! Best regards
@KIRYUCO692 жыл бұрын
thank you so muchhhh!! i was struggling with this so much. You have gained a subscriber and my thank you!
@tecnodigitalschool2 жыл бұрын
Glad to help!!
@josemanuelsoria52532 жыл бұрын
I enjoyed watching your video, Miguel. This is very helpful. Thank you.
@tecnodigitalschool2 жыл бұрын
I'm glad you enjoyed it José Manuel!
@FernandoGarcia-wx1ib2 жыл бұрын
Thank you very much, excellent video, and very well explained. Is there a simple way to select all visible cells on screen? (something like select=all)... thanks!
@tecnodigitalschool2 жыл бұрын
Thank you very much!! I'm not sure if there is some selection that depends on the viewport. At least, I haven't seen that in the documentation. If you only need all the cells of a part you can just write: p.cells Or you can use one of the "getByBounding..." methods, like: p.getByBoundingBox I am not sure if this answers your question. Best regards!
@FernandoGarcia-wx1ib2 жыл бұрын
@@tecnodigitalschool Thanks again! I tried what you told me and it works perfectly. (Saved me a lot of work). Best regards.
@tecnodigitalschool2 жыл бұрын
Awesome!! Cheers!
@DL-wz3ti2 жыл бұрын
Thank you very much for this useful idea! Since May though the setting “less secure app access” is not available anymore. Do you have an idea for a work-around, maybe? Thank you very much in advance, best regards
@tecnodigitalschool2 жыл бұрын
Absolutely! Thanks for the comment. The easiest workaround is to set up an "App password", and use it instead of your regular password. You can see an example here: kzbin.info/www/bejne/j5DYZn5_mr2cjKs The second alternative is to use the Gmail API to connect to Gmail. You can find all the details in the official docs: developers.google.com/gmail/api/quickstart/python Best regards and thanks again for this update!
@DL-wz3ti2 жыл бұрын
@@tecnodigitalschool Thanks a lot, the first video already helped!! Is there maybe also a possibility to run the function (or the Script before we made it a function) without calling it in another Python Script? I did the modelling part with the Abaqus GUI, so there is no other Python Script to call the function in. (Sorry, I am really a beginner with Abaqus AND Python...)
@tecnodigitalschool2 жыл бұрын
@@DL-wz3ti Yes, sure. You can run the function from the same script, you only need to call it below. If you are starting using Python and want to know a bit more, I recommend you this video (kzbin.info/www/bejne/nZDanY1vfs2VitU) from @mCoding. You will learn some more about Python scripts and how to take more advantage of them.
@DL-wz3ti2 жыл бұрын
@@tecnodigitalschool Thank you very much for your time and input!
@benferguson16692 жыл бұрын
Thanks, this is very useful. What would happen if we had an orphan mesh and we wanted to use select a series of faces by angle with script?
@tecnodigitalschool2 жыл бұрын
Hello Ben, Absolutely! If you have one face selected, for instance: >> elem1 = p.elements[0] >> face1 = elem1.faces[0] Then, you can use the method 'getElemFacesByLimitingAngle' of the face. This will return the neighboring faces given an angle (tangency tolerance): >> faces = face1.getElemFacesByLimitingAngle(5) In this way, faces will contain all the faces which are approximmately tangent to face1 (within a tolerance of 10º). I recommend you to explore all the methods provided not only by purely geometrical objects, (vertices, edges, faces and cells) and mesh objects (elements and nodes), but also "hybrid" mesh-geometry objects (elementFaces, elementEdges...). They provide hundreds of possibilties and combinations which save tons of time. Quick tip: you can use the 'highlight' function to visualize the faces (or whatever) selected. For instance: >> highlight(face1) # This will highlight face1 in the viewport >> unhighlight(face1) # This will unhighlight face1 This is extremely practical for debugging purposes. Best regards!
@benferguson16692 жыл бұрын
@@tecnodigitalschool Wow, thank you Miguel for this detailed explanation. I will explore your school further
@danialbiazar66472 жыл бұрын
thank you very much for this helpful video, keep going
@tecnodigitalschool2 жыл бұрын
Thanks, will do!
@deepakkhandelwal88232 жыл бұрын
Hi, I want to apply added mass of water as per modified westergaard method, for doing this I need to know normal values at each node of dam's upstream face,please help me to find these nodal normals in abaqus ?
@tecnodigitalschool2 жыл бұрын
If the water load that you want to apply is hydrostatic or follows some analytical expression, for instance, is dependent on the Y coordinate. You can define it as a pressure following an "Analytical expression" instead of the default uniform option. If you want to define it on your own by applying arbitrary nodal forces, then I would follow these steps: 1) Read all the nodes on the surface. You can read the nodes that belong to a surface 'SURF' in the part 'p' with: p.surfaces['SURF'].nodes 2) In 2D, every element face on that surface contains two nodes. So, by using the element connectivity you can already identify which nodes are consecutive (belong to the same element face) and you will be able to compute the normal of that face. The elements of a part 'p' are obtained by p.elements, and the connectivity of element 15 is obtained with: p.elements.getFromLabel(15).connectivity 3) If you apply some sort of pressure field, you need to integrate that pressure around the node to obtain the nodal force. 4) Once you have all the nodal forces (2 components in 2D), you can introduce them in the model through the input file (keyword CLOAD). These are some recommendations on how I would approach the most general case, of course you may find some workarounds to save some steps. I hope you find it useful!
@deepakkhandelwal88232 жыл бұрын
@@tecnodigitalschool Thanks very much for your support. I will try the same.
@TrinhBinhThienAn2 жыл бұрын
Hello, I'm learning and working on Python on this Abaqus, but there are a few problems I haven't found solutions to fix yet, I think it's quite interesting. Could you help me with this? If possible, we can exchange via email to make it easier to communicate. Thank you very much!
@tecnodigitalschool2 жыл бұрын
Hi, I am happy to see so many people using these tools. You can contact me through email: [email protected]
@timosaksala47972 жыл бұрын
Nice but the erosion approach suffers from the major drawback of violating one of the first principles of physics, the conservation of mass and matter. So it is recommendable to use, instead of deletion, conversion of destroyed elements into particles having the mass of the original elements. Abaqus has the FEM-SPH for this.
@tecnodigitalschool2 жыл бұрын
Absolutely!! The mass from the elements deleted is removed from the simulation, so in the case of the projectile it will have a significant influence if this loss of mass is not negligible. Element removal is an artifice used mainly for two reasons: 1) To represent discontinuities (cracks) in progressive failure analysis. This is very common in Continuum Damage Mechanics models. 2) To prevent convergence issues when elements are too damaged (softened) and they take huge deformations. Before the element is too distorted and the simulation crashes, we delete that element. Obviously, deleting matter is not physically representative, and that is something we have to take into account. Indeed, there are other modeling techniques to deal with this issue: - If the projectile is relatively brittle, it will break appart, but we don't want to delete those damaged elements (we need their mass). In this case, we can follow the technique proposed, using Smoothed Particle Hydrodynamics (SPH) to model the impactor or some variant of this approach. This is commonly used to model bird impact or ice impact on aerospace components. - If the projectile is extremely ductile (lead, brass...), it will not break appart, but it will take huge deformations. Using regular solid elements (lagrangian mesh) will result in the simulation crashing because of the huge element distortion. Again, we don't want to delete elements because we need their mass. The option in this case is to use an Eulerian mesh for the projectile (and Lagrangian for the target), so we will solve a CEL (Coupled Eulerian-Lagrangian) problem. In many other cases, when the deformation nor erosion of the projectile is not too severe, it is enough using a regular solid mesh. But of course, this depends on each case and requires critical thinking. Thanks for your comment Timo!
@behzadhashemisoudmand98142 жыл бұрын
very practical and useful 👌👌👌
@tecnodigitalschool2 жыл бұрын
Thank you! Cheers!
@funbangla13332 жыл бұрын
thank you very much for your great works.
@tecnodigitalschool2 жыл бұрын
I am glad that you like it!
@mahdihatamifar69452 жыл бұрын
very nice!
@tecnodigitalschool2 жыл бұрын
Thanks!
@lucasgiglistre34292 жыл бұрын
WOW, thank you, that helped me a lot <3
@tecnodigitalschool2 жыл бұрын
Glad it helped!
@lucasgiglistre34292 жыл бұрын
@@tecnodigitalschool Just a question, is there other attribute than size that we can get with the driect selection ? The orientation for example.
@tecnodigitalschool2 жыл бұрын
@@lucasgiglistre3429 Sure! For instance, if you select a face, you can obtain the normal vector using "getNormal()", you can also "getCentroid()" of a face. In the case of an edge, you could get its vertices with "getVertices()" and then determine its direction from the positions of these vertices (p.vertices[someindex].pointOn).