Jump to content


Popular Content

Showing most liked content since 06/05/20 in all areas

  1. 5 likes
    Hi techs! I've created a Ball & Beam model on MotionView to explore a co-simulation with Activate. Many of you may have seen this on undergraduate/master class studying on frequency or even on time domain. I've decided to do something different, creating the model on a multibody environment. The control is a simple PD, where I've calculated using analytical method (Kp +Kd.s) with a specified overshoot and settling time. You could explore changing its values... I'd like to thank @Livio Mariano for suggesting me his own low-pass filter in a way to filter the input displacement signal (without it I was having a problem to converge). I've created a short video to show you how it works, and the files are attached. Enjoy! João. Ball_&_beam.zip
  2. 4 likes
    Hello community, I want to share some code that will help you to use a gamepad/joystick in compose. I created an OML-class that represents the controller. I will provide you with more informations, documents and updates soon. To make the code work, you need to install the XInput-Python interface: https://pypi.org/project/XInput-Python/ In the topic below, there are instructions how to install python modules in compose: regards Nils vrjoystick.zip
  3. 3 likes
    Hello everyone, Regarding some Shock's analysis demands, I've decided to facilitate and automate (using Activate) the task to obtain the expected Shock Response Spectrum curve as below: This model will be very useful for those who are intending to do some Shock's analysis, even a linear approximation using the amplification factor on a certain frequency, as a Response Spectrum covering all the frequency domain. Basically the inputs are the Half-sine and System properties: Sine: Magnitude, period, phase. System: Mass, damping, stiffness. After set them, you'll just have to click 'Run' and then 'Execute'. Besides the traditional plots (Acceleration (G) vs. Frequency (Hz)) you will already have the 'TABLED1.fem' to be used on OptiStruct, as can be seen in this video. Thanks for @robertavarela, @RoKet and @Adriano Koga for some tips regarding the modeling. Hope this be very useful for you all! Please, let me know if you have any question about this model (attached). João. Srs_curve_model.zip
  4. 2 likes
    Hi @Nadzrin, The advancing front vs. Delaunay triangulation discussion actually refers to the surface meshing. AcuSolve doesn't have much of a preference either way when it comes to surface meshing. The runtime argument I made is in reference to the volume meshing (AcuConsole's octree vs HW-CFD's approach). In this case, the linear solver *should* perform better with the mesh from HW-CFD. Note that the performance won't be radically different between the two approaches, but according to our linear solver experts on the AcuSolve team, the more random mesh is beneficial. Would be an interesting test for someone to run. and report the results!
  5. 2 likes
    Right. AcuConsole's mesher will create octree patterns in large open regions. That mesher works as follows: 1.) Create surface mesh using the delaunay triangulation approach 2.) Extrude boundary layers from the surface into the volume regions 3.) Build octree mesh in volume regions 4.) Connect the surface/boundary layer mesh to the octree regions using delaunay or advancing front technique. However, the question is what you feel is superior about the octree approach. The structured nature of an octree mesh is not beneficial to AcuSolve. The randomness of the nodal positions in the HW-CFD mesh tends to make the linear algebra less stiff and can actually lead to faster run times on meshes of similar node count. Additionally, the 2:1 size jumps that are present in the octree mesh can cause a stiff linear system in AcuSolve as well. Overall, you should see that the HW-CFD mesh performs better in the solver, and is also faster to generate due to the more effective use of mult-threading. I'd be interested to hear if your experience is not consistent with these expectations.
  6. 2 likes
    Deb, In Compose v2020, you can use composedir function and in previous versions you can use getenv('ALTAIR_HOME') to get the environment variable that points to Compose installation folder. Regards, Roberta
  7. 2 likes
    Hello CLervick, this feature is not yet available, but you can still run portion of your script. To run a portion of your script: - highlight it - right click - Run Selection Hope it helps, Lorenzo
  8. 2 likes
    Hello all, As you already know, OML (Open Matrix Language) has a syntax compatible with other matrix-based languages, such as Octave. This compatibility leverages both the reuse of legacy data and syntax knowledge of these other softwares. It means that it’s possible to have a non-disruptive adoption of Compose and it can coexist with existing Math tools. Please find attached a video explaining the main differences that you may encounter when trying to use your past scripts in Compose and how to overcome them. Regards, Roberta LegacyData_AltairCompose.mp4
  9. 2 likes
    Hi @Soheil_F, By any chance is it your first time running MotionSolve? I ask you this, because I've searched the "scpxml.dll" file and it should be in your solver path installation, something like: "D:\Programas\Altair\2020\hwsolvers\motionsolve\bin\win64" Could you please access this path and search for "scpxml.dll" file? I've made a test deleting it and run the Activate tutorial and I've got the same error as yours: I've copied to the installation path again, and it worked. So it could be some MotionSolve installation error. João.
  10. 2 likes
    Based on the same script, @Kosuke IKEDA created an example connecting OptiStruct Activate, where K, M and C matrices were converted from OS to ABCD matrices (state-space system): Which may be imported in Activate then. The impulse response results match OS transient: Regards, Roberta hm_plate_cms_AX.pch io_def.txt stc_DMIGPCH2ABCD_rev1.oml
  11. 2 likes
    Workaround: In Python: list2=[(1,1),(2,2),(3,3)] list3 = [list(child) for child in list2] In OML: getpythonvar('list3')
  12. 1 like
    these are originally 4 geometry points in each circle, so HM forcelly creates nodes on them. I've created them as fixed points in the 'quick edit' panel. selecting one line and adding a N points. Usually circles have only 1 point. You can add 3 more.
  13. 1 like
    correct. 2nd model was stiffer thatn the 1st one. This image was just a display, not the real section. I went to Preferences and turned on visualization for 1D elements as a cylinder.
  14. 1 like
    HI Alfonso, Kindly follow all the steps given in the tutorial file and you would get the answer. For maximum shear (in HV) you can select "MaxShear" as shown below: Thank You
  15. 1 like
    did you change the optimization setup from free-size to size? In terms of responses or contraints? Remember that free-size is a conceptual optimization only, and the most important thing from it should be 'where' to place fiber layers, and not exactly how thick. Thickness should be given by size optimization, including your more detailed deisgn criterea. It is normal to change thickness values from one to the ohter. You should look if your design and manufacturing constraints are respected in the end.
  16. 1 like
    Awesome! The video is also helpful. Thanks for sharing this.
  17. 1 like
    You should also look at HyperWorks CFD 2020 as it will have similar look and feel to VWT, but with much more general capability.
  18. 1 like
    I'm not sure if I understood correctly, but actually, the sweep nominal run is just to check your variables range for the nominal model, and verify if any error will occur in these different ranges. What you're looking for, actually, is to perform a DOE. You first need to run a regular nominal run (just a single run). After that, configure your responses as the max temperature of your surface. After having these in place, then you'll create a new approach, as DOE. Under the DOE, you will define how many levels you want (5 in your case), and run the DOE, which will then, automatically extract your temperature values for your varying velocities. There are a bunch of tutorials in the Help showing this process.
  19. 1 like
    Multiphase will be quite a bit more computationally expensive - more equations, interface tracking, etc.
  20. 1 like
    in HyperView, plot the displacement in the desired direction, and then use 'Query', and click the desired nodes. or you can use the 'measure' function, use 'node path' and pick your nodes of interest, and 'Create Curves' to plot them. (value x distance)
  21. 1 like
    1. It's not possible to check your constraints from just a screen shot. One tip though, if you have constrained your model such that it is a pure kinematic solution (the information in the .log file will tell you) then you may not get the correct loads. A kinematic analysis is solving equations for position only, it's not solving F=ma 2. The problem is with the motion definition. In the current way you have it set up, the independent variable is 20d*sin(1*pi*Time). This should have been left as default `TIME`. Then in your curve definition (which you do not show), you can define the curve itself, either using math (via the expression shown), or reading in an external file, or by values. I would recommend using an expression to define your motion. You need to switch the Motion type from define by Curve, to Define by Expression. Then, you can input the expression as shown in your model. The very first MotionView tutorial (MV-1000 Interactive Model Building) has an example of how to do this. Page 17 of the tutorial will have the details, but if you have not gone through this tutorial, I would suggest starting from the beginning. Chris
  22. 1 like
    Correctly mentioned above, that both will very likely give the "same" results. Also, AcuSolve is a node based solver. Hence the way these nodes are connected is secondary for the solver, important is to have enough nodes in the region of interest. I am not aware of any setting in AcuConsole to get the "nice" looking mesh.
  23. 1 like
    Numerically, both meshes can give the "same" results. The 2nd is "nice" to see, but nothing is guaranteed his numerical result is better than 1st one.
  24. 1 like
    I would suggest 0.34 m/s as initial conditions, and run a 'steady' state first to establish some sort of flowfield, before switching to transient and mesh motion at free surface. If you're more interested in the buildup of the wave at the cylinder, then you could start from rest and increase the velocity over time within a single transient run. That will just take longer to develop to the full behavior at the cylinder. But, again, since you say the experiment does show chaotic wave breaking, you won't get very far with the single-phase free-surface simulation, since you'll get mesh distortion. (You need a constant fluid topology, and a chaotic breaking wave is not a constant fluid topology.)
  25. 1 like
  26. 1 like
    With Direct FRF there's not much to do to enhance performance, as it needs to solver the equations coupled, for each frequency. Anyway, you can try to reduce some freqnecies, if you already know what are your frequency range of interest, and save some time.
  27. 1 like
    It calculates the transient loads from the multibody run, and apply them as multiple static load cases for the analysis/optimization. You can choose the timesteps to take to the structural model.
  28. 1 like
    Hi yugang, In case of an elastic impact you can use ElastoGap: Regards Elastic impact.scm
  29. 1 like
    What do you do to create this Spring element? I think the way: Mesh -> Create -> 1D Element -> Springs -> ...., right ?
  30. 1 like
    you have not removed the temp node, as i've suggested before. So this node is flying in space, and you have constrained this node only. So as the rest of your model is not properly constrained, your NL analysis does not converge. clear the temp nodes, redo your boundary condition and then re-run the analysis.
  31. 1 like
    Hi Alex, In shell stress results you have several results for different layers: Layer = Middle => Membrane stress only Layer = Top/Bottom => Membrane stress + Bending stress HTH,
  32. 1 like
    having a complete torus surface, you just need to create a solid using the 'solids' panel. just make sure to have the surfaces enclosing a volume. just reviewing my video before, there's no need to create the larger circle that I did. I was thinking to use the 'drag using line', and ended-up not using it.
  33. 1 like
    @Janeiro: for your model, you can begin with 2D mesh (see my picture) and then build 3D mesh by "drag". It's so simple!
  34. 1 like
  35. 1 like
    you will need something like below: sort(0,ds_5)[ 0:numpts(ds_5) - 25 : 1] numpts(ds_5) >> gives the number of elements in data source ds_5 0:numpts(ds_5) - 25 : 1 >> gives a vector of integer value ranging from 0 to numpts(ds_5) - 25 (any value), stepping by 1 this vector of integers is used as indices for the sorted ds_5. An important point here is that templex has index counter starting in 0. So a vector goes from 0 ... numpts(vector)-1
  36. 1 like
    Model Checker is a very useful tool embed in HyperMesh that performs a series of verifications in your model in order to catch most common errors even before submitting the model to run, as it may take some time to export it and then launch it. To Load the ‘Model Checker’: [HWx and HM Desktop] Ctrl+F >> ‘model checker’ [HM Desktop] Tools > Model Checker Once it is open, you can perform a check by right-mouse click (RMB) and click ‘Run’. Model Checker will verify your model considering the most common ERROR and WARNING scenario for your solver.
  37. 1 like
    attached you will find the help documentation for model checker, that can be found at HyperMesh Help. https://altairuniversity.com/wp-content/uploads/2020/06/Model_Checker_supported_HW2020.pdf
  38. 1 like
    the same video i've shared before for rigids shows how to create beam elements. you should find something in Altair University or their youtube channel. for your model, having only the disks geometry modelled into the CAD is enough, including the points for attaching the beams. In HM you will create first the 2D mesh, using the fixed points as reference. I'm attaching a very basic video as well, but again, go after some training material in Altair University. 2020_06_10_1591807489.mp4
  39. 1 like
    For combining any Dynamic Load, you need to use the load collector DLOAD and choose your 9 loads. Don't forget to define the scalar factors S, and Sgloblal as well. (probably all 1.0) Then, use this DLOAD combination in your LoadStep.
  40. 1 like
    ソリッド要素のテンソルを表示する際は、断面カットしていただくのがオススメです。 HV_Tensor_SectionCut.mp4
  41. 1 like
    In this case, you'd need to use list function again in those tuples inside the list: l[0] = list(l[0]) Which would generate this variable: [['my', 'name'], 'is', 'mr', 'tuple'] With getpythonvar, the output would be a cell within a cell: Regards, Roberta
  42. 1 like
    A couple things to check in your TIE approach is what is the master and slave selection that you've used, Even for TIE you might have some differences with dissimilar meshes. Usually the coarse mesh is master, and the finer one is the slave. TIE;FREEZE contact creates a zero-relative displacement condition between the connected nodes, so you might need to look at stresses there carefully. Another thing is that usually is hard to evaluate stresses in these connections, as some singularities might arise. <ayne comparing the stresses in the next row of elements? For welded connections people use often the Hot Spot approach, and they calculate stresses in a controlled distance (toe) from the weld and then extrapolate the weld stress using some well-known formulas. (Volvo Method)
  43. 1 like
  44. 1 like
    Answering your question: you could select the points and use hm_getvalue to retrieve its info. hm_getvalue points id=4 dataname=x -25 As a important side note: There are at least 2 tools already built in HM for checking and comparing CADxFE. If you Ctrl+F and type 'comparison' you will find this one. Another ore complete option is called MVD (Model Verification Director) and can be accessed in the Parts Browser. (more info in the help)
  45. 1 like
    @João Marabisa Now it worked! I was missing the components in the bottom, like you've showed in your screen. Thank you so much!
  46. 1 like
    @Joao OptiStruct uses a mechanism called Screening that filters out the design constraints in optimization depending on how far they are from the boundaries (targets). In your case, probably the bucklinf factors are more tha 50% above your target, and that's why OS doesn't take them into account in the very beginning. As the optimization progresses, the constraints are closer from the target values, thus OS starts "looking at them" back again.
  47. 1 like
    I use both Python(for Simlab customization) and TCL(for HyperMesh). In my opinion, Python is helpful for data management with OOP (of course it will be faster) and the syntax is easier than TCL. However, HyperMesh have supported many TCL API to interact with HM. We can use a lot of those API functions easily, no need to create our code again. This helps create script very quickly. Integrate Python in HyperMesh is easy but write a huge API functions need a lot of effort. I use Simlab Python but found many limitation because there are not so much API functions. I use Abaqus/Ansys Python but also found many limitation. So, Python or TCL does not matter. The important is supported API functions under CAE software. HW will support Python because they serve some trend. For me, I do not need. I need API more than Python.
  48. 1 like
    物性値のリスト化を行ったり、何らかの設定値をコンター表示したい場合は、プルダウンメニューTools⇒MatrixBrowserをご利用下さい。 下記ビデオでは、LS-DYNA形式で設定された初期ひずみ値に基づくコンター表示を行っております。 MatrixBrowser_Contour.mp4
  49. 1 like
    HyperMesh上で、選択した節点の座標値をタグとして表示したい場合は、プルダウンメニューFile⇒Run⇒Tcl/Tk scriptからファイルを実行して下さい。 CreateCoordinateTagForNodes.tcl ↓実行イメージ↓
  50. 1 like
    Hi Use eval eval *createarray $n $mlist Or *createarray $n {*}$mlist
  • Create New...