x

ADONIS:
Version 3.90.9 (Released at 10/19/2024)
- Minor bugs in mesh generation module has been fixed.
- Gmsh is upgraded to version 4.13.1.

HYRCAN:
Version 2.0.18 (Released at 10/26/2024)
- Minor bug in translation has been fixed.
- Minor bug in geometry creation is fixed.


How to impose displacements on nodes in Adonis?(Read 519 times)
How to impose displacements on nodes in Adonis? on: November 26, 2024, 07:21:20 am
Hi everybody,
In Plaxis, it?s possible to impose displacements directly on nodes instead of applying forces, which is particularly useful for modeling rigid foundations. I?d like to achieve the same in Adonis: instead of applying pressures or forces, I want to assign a specific displacement (e.g., 10 mm) to nodes representing the foundation.




Re: How to impose displacements on nodes in Adonis? Reply #1 on: November 26, 2024, 11:06:43 am
Hi,

Here are the steps:

1- Apply velocity to the nodes you want to move.
2- Fix the same nodes.

Note: In ADONIS which is based on quasi-static FEM, the time increment is set to 1. For instance, if you want a node to move 1 cm, you can apply a velocity of 0.001 cm/s, then fix the node. When running the simulation, use a step with a fixed number of 1000 timesteps (e.g., 1000 x 0.001 cm/s = 1 cm).


Roozbeh



Re: How to impose displacements on nodes in Adonis? Reply #2 on: November 26, 2024, 01:19:16 pm
Hi Roozbeh,

Thank you for your previous response. I?ve applied the method you described to impose a vertical displacement of 10 cm in my model. Below is the script I?m using:
Code: [Select]
newmodel()
set("unit", "stress-kpa");
line("startPoint", 0, 0, "endPoint", 0.5, 0)
line("startPoint", 0.5, 0, "endPoint", 5, 0)
line("startPoint", 5, 0, "endPoint", 5, -10)
line("startPoint", 5, -10, "endPoint", 0, -10)
line("startPoint", 0.0, -10.0, "endPoint", 0.0, 0.0)
discretize("size", "auto")
segment("id",1,"numedge",10)
gmsh("size", "auto", "elemtype", "T3", "useNMD", "on")

//assigning material
material("create","IsoElastic","matid",1,"matname","masiv pamant","density",1.9,"shear",5769.23,"bulk",12500)
material("assign","matid",1,"region",3,-5)

//applying boundary conditions
applybc("xfix","xlim",-0.01,0.01,"ylim",-10.01,0.01)
applybc("xfix","xlim",4.99,5.01,"ylim",-10.01,0.01)
applybc("xyfix","xlim",-0.01,5.01,"ylim",-10.01,-9.99)

//applying displacement boundary conditions: 10 cm vertical displacement
applybc("yvel",-0.0001,"yvar",0.0,"xlim",-0.1,0.51,"ylim",-0.1,0.1)
applybc("xyfix","xlim",-0.01,0.501,"ylim",-0.01,0.01)

//solve
solve("numstep",1000)
plot("contour","ydisp")

While this approach works, I am struggling to understand the rationale for fixing the nodes at the top boundary (applybc("xyfix","xlim",-0.01,0.501,"ylim",-0.01,0.01)) in both directions (horizontal and vertical).

My assumption is that fixing vertical displacements would prevent the imposed vertical velocity from generating the intended displacement.
I understand fixing horizontal displacements makes sense for a rough foundation base, but I would appreciate clarification on why vertical displacements also need to be fixed for this setup. Could you kindly elaborate on this aspect?

Thank you for your assistance!



Re: How to impose displacements on nodes in Adonis? Reply #3 on: November 26, 2024, 02:06:12 pm
Hi,

The fix command ensures that the initial velocity of a node remains fixed and unchanged throughout the simulation. If the initial velocity is zero (as is typically the case when the model is first created), it stays at zero, and the boundary does not move, hence zero disp boundary. However, if a node has a nonzero initial velocity for any reason, using the fix command will lock that velocity in place during the simulation. To modify or reset this behavior, you can use the "free" command, which removes the fixation and allows you to set the velocity to zero or another value.

Regarding the command you are using:
applybc("xyfix", "xlim", -0.01, 0.501, "ylim", -0.01, 0.01)

You don?t necessarily need to use the "xyfix" argument. Instead, you can use two separate commands:

1- "xfix" to fix the velocity in the x-direction.
2- "yfix" to fix the velocity in the y-direction.

In your model, since you used the "xyfix" argument, the velocities in both the x and y directions are fixed for the nodes within the specified range.

Roozbeh



Re: How to impose displacements on nodes in Adonis? Reply #4 on: November 26, 2024, 05:43:58 pm
Hi Roozbeh,

Thank you for your detailed responses and clarifications. I really appreciate your time and support.