Re: [Yade-users] [Question #691885]: thermo-hydro-mechanical modeling

2020-07-17 Thread Zoheir Khademian
Question #691885 on Yade changed:
https://answers.launchpad.net/yade/+question/691885

Status: Answered => Solved

Zoheir Khademian confirmed that the question is solved:
Thanks Robert Caulk, that solved my question.

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #691885]: thermo-hydro-mechanical modeling

2020-07-17 Thread Robert Caulk
Question #691885 on Yade changed:
https://answers.launchpad.net/yade/+question/691885

Status: Open => Answered

Robert Caulk proposed the following answer:
I am happy to help you, but please follow our posting guidelines [1] and
keep each thread to one question. These guidelines are in place so that
we can maintain an organized knowledge base here on launchpad.

Mark this current question as solved if it is solved and post your new
question in a new thread.

[1]https://www.yade-dem.org/wiki/Howtoask

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #691885]: thermo-hydro-mechanical modeling

2020-07-16 Thread Zoheir Khademian
Question #691885 on Yade changed:
https://answers.launchpad.net/yade/+question/691885

Status: Answered => Open

Zoheir Khademian is still having a problem:
Thank you Robert for the codes and notes.

Can we assign different initial temperature values to different bodies
(spheres) in a packing? Does "thermal.particleT0" or "body.state.temp"
do the trick for initializing  temperature gradient across a model? Or
only boundaries can be thermally initialized?

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #691885]: thermo-hydro-mechanical modeling

2020-07-16 Thread Robert Caulk
Question #691885 on Yade changed:
https://answers.launchpad.net/yade/+question/691885

Robert Caulk proposed the following answer:
>And also, can we do THM with any kind of body in Yade like box
elements, walls, or clumps?

At the moment, ThermalEngine is only computing conduction between
spheres, which I believe would include clumps but not walls or boxes.

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #691885]: thermo-hydro-mechanical modeling

2020-07-16 Thread Robert Caulk
Question #691885 on Yade changed:
https://answers.launchpad.net/yade/+question/691885

Robert Caulk proposed the following answer:
See other example scripts for a no-flow scenario and conduction only
validation here [1]. Or simply inside the examples/ThermalEngine folder
AFTER the merge request is complete [2].

[1]https://gitlab.com/yade-dev/trunk/-/merge_requests/505
[2]https://gitlab.com/yade-dev/trunk/-/tree/master/examples/ThermalEngine

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #691885]: thermo-hydro-mechanical modeling

2020-07-16 Thread Robert Caulk
Question #691885 on Yade changed:
https://answers.launchpad.net/yade/+question/691885

Status: Open => Answered

Robert Caulk proposed the following answer:
Hello,

The paper to reference is currently being published by CMAME: " A pore-
scale Thermo-Hydro-Mechanical coupled model for particulate systems".
With that paper, we have added supplementary test scripts including the
following. I will also push these scripts to the trunk as soon as
possible.

#*
#  Copyright (C) 2019 by Robert Caulk*
#  rob.ca...@gmail.com   *
#*
#  This program is free software; it is licensed under the terms of the  *
#  GNU General Public License v2 or later. See file LICENSE for details. *
#*/
#
# Script demonstrating the use of ThermalEngine by permeating warm fluid
# through a cold packing. Also serves as a validation script for comparison
# with ANSYS CFD. See details in 
# Caulk, R., Scholtes, L., Kraczek, M., Chareyre, B. (In Print) A 
# pore-scale Thermo-Hydro-Mechanical coupled model for particulate 
systems.Computer Methods in Applied Mechanics and Engineering. Accepted July 
2020.
#
# note: warnings for inifiniteK and Reynolds numbers = nan for boundary
# cells in regular packings are expected. It does not interfere with the 
# physics.These are warnings - NOT errors. 


from yade import pack, ymport
from yade import timing
import numpy as np
import shutil
timeStr = time.strftime('%m-%d-%Y')
num_spheres=1000# number of spheres
young=1e9
rad=0.003

mn,mx=Vector3(0,0,0),Vector3(0.05,0.05,0.05) # corners of the initial
packing

thermalCond = 2. #W/(mK)
heatCap = 710. #J(kg K) 
t0 = 333.15 #K

# micro properties
r = rad
k = 2.0   # 2*k*r 
Cp = 710.
rho = 2600.
D = 2.*r
m = 4./3.*np.pi*r**2/rho
# macro diffusivity

identifier = '-flowScenario'

if not os.path.exists('VTK'+timeStr+identifier):
os.mkdir('VTK'+timeStr+identifier)
else:
shutil.rmtree('VTK'+timeStr+identifier)
os.mkdir('VTK'+timeStr+identifier)

if not os.path.exists('txt'+timeStr+identifier):
os.mkdir('txt'+timeStr+identifier)
else:
shutil.rmtree('txt'+timeStr+identifier)
os.mkdir('txt'+timeStr+identifier)

shutil.copyfile(sys.argv[0],'txt'+timeStr+identifier+'/'+sys.argv[0])

O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=radians(3),density=2600,label='spheres'))
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='walls'))
walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)

sp = O.bodies.append(ymport.textExt('5cmEdge_1mm.spheres',
'x_y_z_r',color=(0.1,0.1,0.9), material='spheres'))

print('num bodies ', len(O.bodies))

triax=TriaxialStressController(
maxMultiplier=1.+2e4/young, 
finalMaxMultiplier=1.+2e3/young, 
thickness = 0,
stressMask = 7,
internalCompaction=True,
)

ThermalEngine = ThermalEngine(dead=1,label='thermal');

newton=NewtonIntegrator(damping=0.2)
intRadius = 1
O.engines=[
ForceResetter(),

InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=intRadius),Bo1_Box_Aabb()]),
InteractionLoop(

[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intRadius),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()],label="iloop"
),
FlowEngine(dead=1,label="flow",multithread=False),
ThermalEngine,  
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
triax,

VTKRecorder(iterPeriod=500,fileName='VTK'+timeStr+identifier+'/spheres-',recorders=['spheres','thermal','intr'],dead=1,label='VTKrec'),
newton
]

#goal = -1e5
#triax.goal1=triax.goal2=triax.goal3=goal

for b in O.bodies:
if isinstance(b.shape, Sphere): 
b.dynamic=False # mechanically static

flow.dead=0
flow.defTolerance=-1 #0.3
flow.meshUpdateInterval=-1
flow.useSolver=4
flow.permeabilityFactor= 1
flow.viscosity= 0.001
flow.bndCondIsPressure=[1,1,0,0,0,0]
flow.bndCondValue=[10,0,0,0,0,0]
flow.thermalEngine=True
flow.debug=False
flow.fluidRho = 997
flow.fluidCp = 4181.7
flow.getCHOLMODPerfTimings=True
flow.bndCondIsTemperature=[1,0,0,0,0,0]
flow.thermalEngine=True
flow.thermalBndCondValue=[343.15,0,0,0,0,0]
flow.tZero=t0
flow.pZero=0
flow.maxKdivKmean=1
flow.minKdivmean=0.0001;


thermal.dead=0
thermal.debug=False
thermal.fluidConduction=True
thermal.ignoreFictiousConduction=True
thermal.conduction=True
thermal.thermoMech=False
thermal.solidThermoMech = False
thermal.fluidThermoMech = False
thermal.advection=True
thermal.bndCondIsTemperature=[0,0,0,0,0,0]
thermal.thermalBndCondValue=[0,0,0,0,0,0]

[Yade-users] [Question #691885]: thermo-hydro-mechanical modeling

2020-07-15 Thread Zoheir Khademian
New question #691885 on Yade:
https://answers.launchpad.net/yade/+question/691885

I’m interested in the THM modeling by Yade and was wondering if someone could 
post a version of codes used for this paper [1].

And also, can we do THM with any kind of body in Yade like box elements, walls, 
or clumps?

Thanks
Zoheir

[1] R. Caulk, B. Chareyre, 2019. An open framework for the simulation of 
coupled Thermo-Hydro-Mechanical processes in Discrete Element Systems. 
https://www.researchgate.net/publication/335272631_An_open_framework_for_the_simulation_of_coupled_Thermo-Hydro-Mechanical_processes_in_Discrete_Element_Systems


-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

___
Mailing list: https://launchpad.net/~yade-users
Post to : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp