Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Program Explanation #3

Open
alainmardo opened this issue Oct 12, 2021 · 4 comments
Open

Program Explanation #3

alainmardo opened this issue Oct 12, 2021 · 4 comments

Comments

@alainmardo
Copy link

Hi Mostafa,

Can you please explain what should be changed for inputs and how to visualize the results?
In fact:

  • what is q? x? z? etc. are the layers from bottom to top or top to bottom?
  • For example for a structure [AC wearing, AC base, Foundation, Soil] with [E wearing, E base etc.] and [poisson etc.] with thicknesses of [4cm, 15cm, 20cm, soil inf] for example, what should be changed in the inputs?
    image

Now concerning the outputs, what is [0,0] , [0,1] etc? What should we changed in order to get interesting graphs like the ones you've included in the ReadMe or if we want to calculate the response at the base of a specific layer?
image

Last, is the circular load considered as dual tyres? Is it possible to change the pressure at the surface as well as the radius of the tyre?

Thank you in advance and keep up the good work :)

@Martin-Elizalde
Copy link

Dear Mostafa,

First of all thank you for sharing your code! ... I have to say I find myself with similar questions, hopefully you can find some time to answer them, I would be very interested in reading your explanation. Particularly for x.

Thank you!

@PeteTam-js
Copy link

PeteTam-js commented Dec 29, 2022

@alainmardo and @Martin-Elizalde - I may be able to help to response some of your questions. Please see below bold text

Hi Mostafa,

Can you please explain what should be changed for inputs and how to visualize the results?
See some examples in \PyMastic-master\Distorted_Grid and \PyMastic-master\Validation

In fact:

  • what is q? x? z? etc. are the layers from bottom to top or top to bottom?
    q is the pressure in psi, however Mostafa noted that it is load in lb which has to be corrected. In your example, q = 100 psi that is the applied pressure under the circular plate is 100 psi and r=5.99 inch is the radius of the plate
    x is the offset distance from the center of the circular plate; normally we need to look at x=0 when using a single plate or single tire loading; But where there is two tires involved it is needed to see response below the tire (circle) and between two tires

z is the depth of the point below the plate

Note that x and z are the evaluation points with reference the center of the plate; z is measured from the top to bottom; Note that z is always positive however x can be positive or negative; x=3 or x=-3 should give similar results; vertical responses like Z-deflection, Z-stress should be the same

  • For example for a structure [AC wearing, AC base, Foundation, Soil] with [E wearing, E base etc.] and [poisson etc.] with thicknesses of [4cm, 15cm, 20cm, soil inf] for example, what should be changed in the inputs?

q = 100 # psi (or lb per sq in.)
a = 5.99 # inch
x = [0] # number of columns in response
z = [2, 4, 10, 15] # number of rows in response
H = [1.6 6, 8 ] # inch; 4cm, 15cm, 20cm, soil inf
E = [500, 500, 40, 10] # ksi
nu = [0.35,0.35, 0.4, 0.45]
ZRO = 7*1e-7 # to avoid numerical instability
isBD= [1, 1]
it = 10
Note that you will need specify isBD= [1, 1] to get results similar to other LEA tools like winjulea

image

Now concerning the outputs, what is [0,0] , [0,1] etc? What should we changed in order to get interesting graphs like the ones you've included in the ReadMe or if we want to calculate the response at the base of a specific layer? image

**Get results like this one
print("\nDisplacement [z= vary, x=0]: ")
print(RS['Displacement_Z'])

print("Strain_R is[z=different, x=0]: ")
print(RS['Strain_R'])

print("Strain_Z is[z=different, x=0]: ")
print(RS['Strain_Z']

Columns = x or offset distances if you specifiy
Rows= Different depths or z
**

Last, is the circular load considered as dual tyres?
it is a single tire, you will need to superimpose to get results for dual tires

Is it possible to change the pressure at the surface as well as the radius of the tyre?
Yes, q=pressure at surface and a=tire radius

Thank you in advance and keep up the good work :)

@koukoubill
Copy link

koukoubill commented Jan 24, 2023

For a structure [Asphalt, PCC, HBM , Soil] with [2000, 20000, 10000, Soil] and [0.35, 0.35, 0.2, 0.45] with thicknesses of [15cm, 10cm, 20cm, soil inf] for example, what should be changed in the inputs?

@PeteTam-js Any Help will be appreciated

I tried what you suggested above but I still get an error.

@PeteTam-js
Copy link

PeteTam-js commented Jan 25, 2023

@koukoubill

Here is the code for 2 layers and halfspace system:
q = 80 # psi, pressure
a = 6 # inch, contact area radius
x = [0] # number of columns in response

z = [2, 4, 6] # number of rows in response
H = [6, 4] # inch; 15cm=6in, 10cm=4in
E = [290, 2900, 1450] # 2000MPa =290ksi; 20000MPa=2900 ksi; 10000MPa=1450 ksi
nu = [0.35, 0.35, 0.2]
ZRO = 7*1e-7 # to avoid numerical instability
isBD= [1, 1]
it = 10

RS = PyMastic(q,a,x,z,H,E,nu, ZRO, isBounded = isBD, iteration = it, inverser = 'solve')

print("Displacement_Z is[z=different, x=0]: ")
print(RS['Displacement_Z'])

This is what I am getting; you can specify different depths or different parameters (e.g., stress, strain) as everything/outputs is stored in RS. Here displacement is in inch
Displacement_Z is[z=different, x=0]:
[[0.00112283]
[0.00069808]
[0.00034358]]

This is 3 layers and halfspace as you mentioned

q = 80 # psi; pressure
a = 6 # inch; radius of contact area
x = [0] # number of columns in response
z = [2, 4, 10, 15] # number of rows in response
H = [6, 4, 8] # inch; 15cm=6in, 10cm=4in, 20cm=8in
E = [290, 2900, 1450, 725] # 2000MPa =290ksi; 20000MPa=2900 ksi; 10000MPa=1450 ksi; Soil 5000MPa=725
nu = [0.35, 0.35, 0.2, 0.45]
ZRO = 7*1e-7 # to avoid numerical instability
isBD= [1, 1,1] # DONT FORGET TO CHANGE THIS
it = 10

RS = PyMastic(q,a,x,z,H,E,nu, ZRO, isBounded = isBD, iteration = it, inverser = 'solve')

print("Strain_Z is[z=different, x=0]: ")
print(RS['Strain_Z'])

RS = PyMastic(q,a,x,z,H,E,nu, ZRO, isBounded = isBD, iteration = it, inverser = 'solve')

This is what I am getting
Strain_Z is[z=different, x=0]:
[[2.06688415e-04]
[2.04228988e-04]
[2.31889953e-05]
[1.16670992e-05]]

PS: Please double check on the use of Poisson's ratio. You have given as 0.2 for the third layers, but I think that should be PCC. In general, PCC has poisson's ratio around 0.25 to 0.15 and other soft soil are around 0.35 to 0.45.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants