Forum Replies Created
-
AuthorPosts
-
9 September 2020 at 09:17 in reply to: Can not open the editor Sofa BINARIES (v19.04) on win 10 #17100HugoKeymaster
Sorry for this very late reply, summer time and restart of the academic year kept us busy.
The messages you are showing in the image look perfectly fine.
You can indeed copy paste a scene file and modify it yourself.
Let us know if you need more guidance in your first steps.Best wishes,
Hugo
HugoKeymasterHi @mikelitu
Could you share your scene?
What are the weird behaviors you are referring? Do you have a short video about it?Is your Novint Falcon represented as a Rigid dof?
Best wishes,
Hugo
HugoKeymasterHugoKeymasterHi @winhell
Welcome on the forum, I am really sorry for the delay of my reply!!
You can find the API documentation here (see the public attributes).Best,
Hugo
24 August 2020 at 17:24 in reply to: Error into use the LinearSolverConstraintCorrection with SofaCUDA types #17062HugoKeymasterDear @qwe12050
The GPU version of the LinearSolverConstraintCorrection is available in a private plugin. This plugin is not the “Multicore-GPU” plugin but the “sofaCudaSolver” plugin.
FYI, the plugin called Multicore-GPU includes a TaskScheduler allowing multithreading. It results from the work of an independent developer. This development also makes possible to dedicated one thread to GPU computing. It is therefore a mix between multithreading and GPU computing.
I am currently in discussion for making more of these GPU codes (sofaCudaSolver) open. I will keep you posted. Best,
Hugo
HugoKeymasterDear @qwe12050
Sorry for the delay of my reply. As you know, the topic you are referring to is a topic!
When you click on Update, the Data (youngModulus) is up to date. However, the stiffness matrix is not. In the TetrahedronFEMForceField, the ‘materialsStiffnesses’ are computed only once at the beginning (see the reinit function which calls the computeMaterialStiffnesses() function) using the Young’s modulus. If you want this value to be updated with your new E, a brutal reinit would be required.
Note that a new mechanism has been introduce so that all components can implement an update with regards to their data. This mechanism has been introduced in the pull-requests #1406 / #1407 and an implementation is described in pull-request #1408.
All codes (including the TetrahedronFEMForceField) must therefore be updated to use this feature. E.g. the callback on the youndModulus data could call the reinit function.Best wishes,
Hugo
HugoKeymasterHugoKeymasterHi @rainvector
Any update?
I thought by the way, since this is supposed to be just one single object (right?), you could simply load it as one mesh (or merge the meshes) and run your simulation.Best wishes,
Hugo
30 July 2020 at 14:38 in reply to: [SOLVED] Working example on simple suturing with SuturePointPerformer #16990HugoKeymasterDear ingmarvoigt,
I am really sorry for not getting back to you earlier, the open-source project takes us plenty of time. Welcome on the forum and thank you for your interest.
Modeling suture is a complex topic, investigated several years ago in the community, and which arose again recently.
Suturing can be simplified by using springs between points which will simulate the closing of two tissue parts. For spring models, you can take a look at the SpringForceField. See the examples:
– with linear spring examples/Components/forcefield/StiffSpringForceField.scn
– with polynomial spring examples/Components/forcefield/PolynomialSpringsForceField.scnIndeed, as explained in other topics, more advanced work are conducted jointly between a research team and the company InSimo. I would be glad to connect you directly to these guys!
Could you share your scene involving the SuturePointPerformer please? It is a feature which was not recently used, but I can definitely spend some time looking at it.
Best.Hugo
HugoKeymasterHi @scharreyron,
Sorry for my latency.
Did you try to follow Jean Nicolas’s advice ?For your notice a new release is out, feel free to try it!
Hugo
HugoKeymasterHi @sderick
Sorry for the delay of the reply.
Ok I better understand.I think you can get inspired from what appears in CGLinearSolver (l.114). This ScopedAdvancedTimer will compute the time spent into this function. The value of the timer will be returned when you activate the options: “Log Time” or “Display AdvanceTimer profiler” in the Stats Widget (as shown above).
Hope this helps.
Best
Hugo
HugoKeymasterHi @jake,
Could you share full mesh please?
Next Monday, I will try to export a clip of your mesh with my version of Paraview (maybe older than yours!) and keep you updated.Best wishes,
Hugo
HugoKeymasterCould you try running the runSofa from a command window?
It should output messages which will be helpful understanding the problem.Best,
Hugo
HugoKeymasterHey @sukhraj
could you test instead changing the factor (keep it
useOdeSolverIntegrationFactors=1
), to rather change the data forceCoef in LCPForceFeedback to scale the force, likeforceCoef=0.01
?Hugo
HugoKeymasterHey @mikelitu
For this, you can use the component RepulsiveSpringForceField. It is an old and dirty class but working. It will create an attractive (if stiffness<0) or repulsive (if stiffness>0) force between points of two different MechanicalObjects.
Here is an example :
<?xml version="1.0"?> <Node name="root" dt="0.001" gravity="0 0 0"> <VisualStyle displayFlags="showBehaviorModels showForceFields" /> <DefaultPipeline verbose="0" draw="0" /> <BruteForceDetection name="N2" /> <MinProximityIntersection name="Proximity" alarmDistance="0.8" contactDistance="0.5" /> <DefaultContactManager name="Response" response="default" /> <Node name="Floor"> <RegularGridTopology nx="30" ny="1" nz="30" xmin="7" xmax="-7" ymin="-4" ymax="-4" zmin="-7" zmax="7"/> <MechanicalObject template="Vec3d" name="FloorMO" showObject="1"/> </Node> <Node name="cubeFEM"> <EulerImplicitSolver name="cg_odesolver" printLog="false" /> <CGLinearSolver iterations="25" name="linear solver" tolerance="1.0e-9" threshold="1.0e-9" /> <MechanicalObject template="Vec3d" name="cubeMO"/> <UniformMass vertexMass="0.25" /> <RegularGridTopology nx="5" ny="5" nz="5" xmin="-3.5" xmax="3.5" ymin="-3.5" ymax="3.5" zmin="-3.5" zmax="3.5" /> <TetrahedronFEMForceField name="FEM" youngModulus="25" poissonRatio="0.3" computeGlobalMatrix="false" updateStiffnessMatrix="false" method="large" /> <RepulsiveSpringForceField template="Vec3d" name="RSFF" stiffness="-200" damping="100" length="1" object1="@cubeMO" object2="@../Floor" indices1="0 4 100 104 52" indices2="232 217 682 667 435"/> <Node name="Visu"> <MeshObjLoader name='myLoader' filename='mesh/smCube125.obj'/> <OglModel name="Visual" src="@myLoader" color="red" /> <SubsetMapping input="@.." output="@Visual" /> </Node> </Node> </Node>
you can use it to adapt it to your case.
BestHugo
HugoKeymaster21 July 2020 at 16:59 in reply to: [SOLVED] Harmonic excitation with constantForceField (Python Controller) #16918HugoKeymasterThanks a lot for sharing @pasquale94!
Good community move, thumbs up.Hugo
HugoKeymasterTo answer your main question, modeling the stiffness of the surface (skin or membrane) bounding an object, the good approach is to add a stiffness on a surface model mapped on the volumetric mechanical model.
An example of this is given in: examples/Components/topology/Tetra2TriangleTopologicalMapping.scn.
The cylinder has a constitutive law for its volumetric part, and a stiffness is added on the surface of this cylinder. It would then mimic the stiffness of a skin or similar.Regarding your collision issue where the gripper penetrate the tissue, I would need to see the whole scene. It could be numerical settings.
I hope this helps.
Best,Hugo
HugoKeymasterHi @alexftw
Sorry for the latency, I was away last week.
I think the mapping you are looking for has been implemented in a private plugin (plugin name: BeamAdapter, mapping name: BeamLinearMapping). I can try to get an access to this code for you.
Now some devs handle the rendering part in external tools like Unity.Maybe @remibessard could help us here.
Best wishes,
Hugo
HugoKeymasterHey @robclark
Sorry for keeping you waiting so long!
It’s strange indeed. It looks like the projection of the results from the constraint space to the DOFs space (where the time step intervene) has an issue. Since this is really specific code in SoftRobot, let me poke @olivier-goury. Maybe he will have a clue about it.Thanks for reporting it and sorry for not being able to help more for now.
Best,Hugo
HugoKeymasterHi @jake,
Sorry for keeping you waiting.
I still get the same error.Here is a view showing one of the possible problems: you have tets, but disconnected from another:
Best
Hugo
HugoKeymasterWhat do you mean exactly by adding the boundary condition should be set on the outlayer surface?
Could you also share your scene so that I can test it exactly locally?Best
Hugo
HugoKeymasterHi @robclark
Inelastic fabric is a knitting cloth right?
For this I must say I don’t know reference values.Is the deformation of the tissue going to be large (>5-10%)? If so, you should pay attention to the field “method” of the TetrahedronFEMForceField and change it accordingly.
If you are not looking for stretch what are you looking for exactly?
Interesting topic anyway!
BestHugo
-
AuthorPosts