Fixed bug in OP
- The invasion points were being calculated as a range between the max and min throat capillary pressures, however, due to numerical error sometimes the end points were actually less than (or more than) the capillary pressures.
Fixed bug in trapping method, the method is STILL INCOMPLETE.
- It only finds groups of trapped pores, not single pores, or throats with invaded pores on each end
- It also does not yet update the inv_Pc list for throats
Improved Trapping algorithm
- Still not sure it's perfect, but looks pretty decent
Changes to OP
- Added a 'setup' method that must be called prior to calling 'run'
- This means that algorithms can be 're-run' just by calling 'run()' with no arguments.
- If you want to change the way it's run you just call 'setup(with all the arguments you want')
Adding throat_vector submodule to Geometry
- included one method for find the vector based on a direct path between pore centers
- outputs a normalized vector of unit length
test script for issue0092
First attempt at 'cloning' surface pores to create boundary pores
- Also deleted the stitch code (sorry debarun!) since this will be redundant now
Some additions to clone_pores
- The method 'tries' to increase the length of all the label list, but cannot at the moments since the set_pore/throat_label setters only allow adding of Trues.
Setting a very low conductance for super pore.

To prevent transport of the quantity through the super pore.
Added some flags to 'find_neighbor' methods in LinearSolver
Some changes to BC to make it more user friendly.

Now, it is possible for user to apply a value as Neumann BC to a group
of pores or add a value to each pore as Neumann BC. We had this
functionality before, but right now, it is easier. So, instead of
'Neumann_rate', two new BC have been added:
Neumann_rate_union  and Neumann_rate_individual.
Minor change to 'rate' method in LinearSolver.

- 'rate' method in Linear Solver is working famously.
- All types of Neumann _rate BC have been tested and in every one of
them , mass balance is satisfied.
- Neumann flux works too,  but it depends on 'cross_section' property of
the throat which is not available yet but is going to be implemented
soon.
- Some examples for BC have been added to run_script, so the user has no
problem for applying any type of BCs.
Removed old documentation for Boundary Conditions

Also an example for insulated BC has been added to run_script. It is
clear that eventually we should move all of these examples to another
folder, but in the meantime user can see different ways of applying BC
by using run_script.
Fixed up clone_pores
- This will be ready once the set_pore_info is fixed up
Changed name of some BCtypes.

Neumann_rate_union has been changed to Neumann_rate_group and
Neumann_rate_individual has been converted to  Neumann_rate_single
Added new modes to set_info

1- The mode='remove' has been added, so the user can do:
- Fickian_alg.set_pore_info(label='Dirichlet', mode='remove')   , this
will remove the label completely.
-
Fickian_alg.set_pore_info(label="Dirichlet,locations=loc1,mode='remove')
, this will change the values in loc1 for Dirichlet label to False.
2- Now set_info accepts to extend the size of label='all', and also for
the other labels, it will add False for the new added locations.
Added throat_area and throat_surface_area submodules to Geometry
- Also updated the name parsing step in GenericGeometry to accept propnames with multiple underscores
Merge branch 'develop' of https://github.com/PMEAL/OpenPNM into develop
Added documentation for the new set_pore/throat_info 'modes'
Work on clone_pores
- Also added a get_pore_labels methods which act the as get_pore_indices