Re: [Yade-users] [Question #691885]: thermo-hydro-mechanical modeling
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
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
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
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
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
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
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