Removing particles during thermal cycling
Hello All,
I would like to remove a particle from an assembly after a few Hydro-thermo-
python3.6: /usr/include/
Aborted (core dumped)
I am wondering what I am missing here and would appreciate your help.
Thanks
[1] https:/
[2] https:/
Here is the MWE:
from yade import pack, ymport, plot, utils, export, timing
import numpy as np
young=5e6
mn,mx=Vector3(
O.materials.
O.materials.
walls=aabbWalls
wallIds=
sp=pack.
sp.makeCloud(
sp.toSimulation
triax=TriaxialS
maxMultiplier=
finalMaxMultip
thickness = 0,
stressMask = 7,
internalCompac
)
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
GlobalStiffnes
triax,
FlowEngine(
ThermalEngine(
NewtonIntegrat
]
O.step()
ss2sc.interacti
is2aabb.
tri_pressure = 1000
triax.goal1=
triax.stressMask=7
while 1:
O.run(1000, True)
unb=unbalance
print('unbalanced force:',unb,' mean stress: ',triax.meanStress)
if unb<0.1 and abs(-tri_
break
triax.internalC
flow.debug=False
# add flow
flow.permeabili
flow.pZero = 10
flow.meshUpdate
flow.fluidBulkM
flow.useSolver=4
flow.permeabili
flow.viscosity= 0.001
flow.decoupleForces = False
flow.bndCondIsP
flow.bndCondVal
## Thermal Stuff
flow.bndCondIsT
flow.thermalEng
flow.thermalBnd
flow.tZero=25
flow.dead=0
thermal.dead=1
thermal.
thermal.
thermal.debug=0
thermal.
thermal.
thermal.
thermal.
thermal.
thermal.
thermal.
thermal.fluidK = 0.650
thermal.fluidBeta = 2e-5 # 0.0002
thermal.particleT0 = 25
thermal.particleK = 2.0
thermal.particleCp = 710
thermal.
thermal.
thermal.
thermal.
thermal.
timing.reset()
O.dt=1e-4
O.dynDt=False
thermal.dead=0
flow.emulateAct
def bodyByPos(x,y,z):
cBody = O.bodies[1]
cDist = Vector3(
for b in O.bodies:
if isinstance(b.shape, Sphere):
dist = b.state.pos - Vector3(x,y,z)
if np.linalg.
cDist = dist
cBody = b
return cBody
bodyOfInterest = bodyByPos(
from yade import plot
def history():
plot.addData(
ftemp1=
p=flow.
t=O.time,
i = O.iter,
bodyOfIntTemp = O.bodies[
)
O.engines=
plot.plots=
plot.plot(
O.run(5,1)
#Removing one particle
Removedbody = bodyByPos(0.,0.,0.)
O.bodies.
updateTriangula
O.run()
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Zoheir Khademian
- Solved:
- 2021-01-18
- Last query:
- 2021-01-18
- Last reply:
- 2020-12-14
Robert Caulk (rcaulk) said : | #1 |
Hey Zoheir,
Thanks for reporting this with a working MWE. I think this is now fixed, if you want to test before it is merged you can clone and compile the branch titled "eraseBodyTherm
Cheers,
Robert
[1]https:/
Robert Caulk (rcaulk) said : | #2 |
Also a side note: your line:
updateTriangulation = 1
Does nothing inside yade. I will let you brainstorm why that is the case and how to fix it.
Zoheir Khademian (zkhademian) said : | #3 |
Robert, thank you so much for the quick reply. I truly appreciate it. I will recompile it and report back to you after trying the MWE.
> updateTriangulation = 1 Does nothing inside yade. I will let you brainstorm why that is the case and how to fix it.
Is it because I did not associate it with the engine? like: "flow.updateTri
If so, Is "flow.updateTri
[1] https:/
Robert Caulk (rcaulk) said : | #4 |
>Is it because I did not associate it with the engine? like: "flow.updateTri
Yes :-)
>If so, Is "flow.updateTri
flow.updateTria
meshUpdateInterval stays set at the number you choose, and will force flowEngine to update the triangulation every *meshUpdateInte
Cheers,
Robert
Robert Caulk (rcaulk) said : | #5 |
This should be in an answered state, user must have accidentally clicked "still need help."
Zoheir Khademian (zkhademian) said : | #6 |
This solved my problem