Pore size
Hi,
I am working on a similar problem as explained in the question [1]. I am trying implement the solution suggested by Robert in #7 by using print all the vertices [2].
I have compacted spherical particles into a cylinder shape, and want estimates/measure pore size in the compact. I was running the suggestion by print all vertices..
When I am using this I am getting following error message:
"ArgumentError: Python argument types in
FlowEngineT
did not match C++ signature:
printVertic
"
My question how should implement this code to extract the vertices and type of the void/pore space? What should I use as an input?
Best regards,
Mithu
[1] https:/
[2] https:/
MWE:
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 15 16:29:55 2021
@author: njb18198
"""
#!/usr/bin/env python
#encoding: ascii
# Testing of the Deformation Enginge with Luding Contact Law
# Modified Oedometric Test
# The reference paper [Haustein2017]
from __future__ import print_function
from yade import utils, plot, timing
from yade import pack
import pandas as pd
import numpy as np
from PIL import Image
from yade import pack, export
from scipy.interpolate import interp1d
from csv import writer
import os
from scipy.integrate import odeint
import matplotlib.pyplot as plt
import csv
from matplotlib.pyplot import figure
from pylab import *
from scipy.optimize import curve_fit
readParamsFromT
from yade.params.table import *
o = Omega()
save=save
# Physical parameters
fr = 0.41
rho = 1561
Diameter = 7.9e-5
D=Diameter
r1 = Diameter/2
#r2 = Diameter/2
k1 = 10000
kp = 140000
kc = k1 * 0.1
ks = k1 * 0.1
DeltaPMax = Diameter/3.0
Chi1 = 0.34
if save==0:
g=-9.81
elif save==1:
g=0
o.dt = 1.0e-8
particleMass = (4.0/3.
Tab_rad=0.001
r_tab=r_tab*1e-3 #real size
h_tab=h_tab*1e-3
m_tab=m_tab*1e-3
v_tab=math.
v_1mm=math.
#m_tot=4e-06
m_tot=(
no_p=m_
#no_p=8000
Vi1 = math.sqrt(
PhiF1=0.999
#PhiF1 = DeltaPMax*
Cyl_height=0.005
cross_area=
Comp_press_up= comp_press
Comp_force_
Comp_press_lp= comp_press
Comp_force_
compression_
sc_por_15=2
#sc_por_2=2
#sc_por_1=1
data_to_
compression_
# Add material
mat1 = O.materials.
# Spheres for compression and walls
sp=pack.
sp.makeCloud(
sp.toSimulation
walls=O.
vtkRecorder = VTKRecorder(
tab_porosity=
tab_height=
##Single particle swelling model
def model(r,
Q=(
drdt =((Diff*
return drdt
P=[1.45,
# Add engines
o.engines = [
ForceResetter(),
InsertionSort
InteractionLoop(
[Ig2_
Ig2_
Ig2_
[Ip2_
[Law2_
),
NewtonIntegra
PyRunner(
#DeformContro
]
def checkForce():
if O.iter < 3000000:
return
if unbalancedForce() > 1:
return
global upper_punch
upper_
for i in upper_punch:
body= O.bodies[i]
global lower_punch
lower_punch= O.bodies.
for n in lower_punch:
body= O.bodies[n]
O.engines = O.engines + [PyRunner(
fCheck.command = 'unloadPlate()'
def unloadPlate():
force_up=0
for i in upper_punch:
body= O.bodies[i]
force_lp=0
for n in lower_punch:
body = O.bodies[n]
force_lp = force_lp + abs(O.forces.
if ((force_up > Comp_force_up) and (force_lp > Comp_force_lp)):
for i in upper_punch:
body= O.bodies[i]
for n in lower_punch:
body= O.bodies[n]
def stopUnloading():
#force_up=0
#for i in upper_punch:
#body= O.bodies[i]
force_lp=0
for n in lower_punch:
body = O.bodies[n]
force_lp = force_lp + abs(O.forces.
if force_lp==0:
for i in lower_punch:
body= O.bodies[i]
#if ((force_up==0) and (force_lp==0)):
for i in upper_punch:
for i in lower_punch:
if pos_up[2]> pos_lp[
for j in upper_punch: O.bodies.erase(j)
def Savecheck():
if save==1:
o.pause()
if save==0:
o.engines = o.engines+
fCheck.dead = True # (!!!)
if save==1:
O.run()
# when running with yade-batch, the script must not finish until the simulation is done fully
# this command will wait for that (has no influence in the non-batch mode)
waitIfBatch()
g=-9.81
if save==0:
read_
o.load(
utils.
from yade.params.
for b in O.bodies:
if isinstance(b.shape, Sphere):
o.dt=1e-6))
for j in lower_punch: O.bodies.erase(j)
for b in O.bodies:
if isinstance(b.shape, Sphere):
else:
g=0
walls=
FlowEngine(
FlowEngine.
Question information
- Language:
- English Edit question
- Status:
- Answered
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask Mithushan Soundaranathan for more information if necessary.