Custom type of network #2682
-
Dear Team, good day! Could you consult me, is it possible to create a custom type of network? What i mean by that. I have 3D Micro-CT image, and get a network from it with the PoreSpy as follows: snow_output = ps.networks.snow2(my_image, my_voxel_size) Then, i take this network and put it into the Openpnm as follows: pn = op.io.network_from_porespy(snow_output.network) This way, if i understand it correct, now i have a topology, but the shapes of pores and throats are not defined yet. On this stage, i can use modules - models - collections - geometry - and choose any "ready" geometry we have (for example, circles_and_rectangles, etc) For example, i can do pn.add_model_collection(op.models.collections.geometry.spheres_and_cylinders) Here is my question. If i want to assign my own custom shape of pores and throats, then what syntax should i use and do i have any choice? For example, pyramid pores and cuboid throats? Could you please provide an example? With respect, Evgeny |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
Hi @EvgenyUgolkov The first thing to note is that we no longer assume what the user wants to be as their official 'pore.diameter' in OpenPNM. You must assign your own, like THEN, and this gets to your point, you need to make an assumption about what shapes to use. For instance, if you want to assume spherical pores, then you would do either of the following:
In the 2nd case you are using a prewritten function which does essentially what is done in the previous line. SO, if you want to create your own volume, you can either do:
The advantage of the pore-scale model is that it allows you to update your pore volumes just by doing Here is an example on the details of creating your own pore-scale model. Lastly, you'll probably want to create some transport conductance models which account for the shape you wish to create. This can get considerably more complicated. We have started using the concept of 'size factors', which are explained here. As you cand see, this will be a bit of work if you want to use something oddly shaped. Anyway, I hope this is enough to get you started. |
Beta Was this translation helpful? Give feedback.
Hi @EvgenyUgolkov
This is a good question. When you do a snow2 extraction it includes numerous geometrical properties, like 'pore.inscribed_diameter', 'pore.region_volume', etc.
The first thing to note is that we no longer assume what the user wants to be as their official 'pore.diameter' in OpenPNM. You must assign your own, like
pn['pore.diameter'] = pn['pore.inscribed_diameter']
.THEN, and this gets to your point, you need to make an assumption about what shapes to use. For instance, if you want to assume spherical pores, then you would do either of the following:
pn['pore.volume'] = 3.14159/4*pn['pore.diameter']**3
pn.add_model(propname='pore.diameter', model=op.models.geometry.pore_…