Version 1.2 (June 2013)
 All Classes Namespaces Files Functions Variables Pages
Public Member Functions | Protected Attributes | Static Protected Attributes | List of all members
simulator.geometry.boundaryConditions.BoundaryGasMembrane Class Reference

BoundaryMembrane : defines a boundary impermeable to everything except to gas. More...

Inheritance diagram for simulator.geometry.boundaryConditions.BoundaryGasMembrane:
simulator.geometry.boundaryConditions.AllBC

Public Member Functions

 BoundaryGasMembrane ()
 Declare a gas membrane boundary and set hasBulk to true to note this is the case. More...
 
void init (Simulator aSim, Domain aDomain, XMLParser aBCMarkUp)
 Initialises the boundary from information contained in the simulation protocol file, and builds the list of solutes to let diffuse through the membrane. More...
 
void refreshDiffBoundary (SoluteGrid relDif, SoluteGrid aSoluteGrid)
 Computes and applies gas diffusivity across the gas membrane boundary. More...
 
void refreshBoundary (SoluteGrid aSoluteGrid)
 Solver for the gas membrane boundary condition. Initialises the course along the shape of the boundary. More...
 
Bulk getBulk ()
 Return the bulk that is connected to this boundary. More...
 
double getBulkValue (int soluteIndex)
 For a specified solute, returns the level of that solute in the bulk. More...
 
ContinuousVector lookAt (ContinuousVector cc)
 Method used by another which gets the indexed grid position of a continuous vector. Some boundary conditions need the input corrected, some don't and just return the input. More...
 
void setBoundary (LocatedGroup aGroup)
 Change the status of a specified LocatedGroup to note that it has been identified as being outside this boundary. More...
 
void applyBoundary (LocatedAgent anAgent, ContinuousVector target)
 
- Public Member Functions inherited from simulator.geometry.boundaryConditions.AllBC
void readGeometry (XMLParser geometryRoot, Domain aDomain)
 Used during the initialisation, load the class describing the shape of the boundary defined in the parent class. More...
 
boolean isOutside (ContinuousVector cc)
 Determines if a point is outside the boundary. More...
 
String getSideName ()
 Return the name of the side of the domain which this boundary is on. More...
 
void refreshDiffBoundary (SoluteGrid relDiff, SoluteGrid aSolutegrid)
 Method used if a boundary modifies the local diffusivity constant. Most of boundaries do not modify it. More...
 
boolean isCyclic ()
 Determine if this boundary is cyclic. More...
 
boolean isSupport ()
 Determine whether this boundary is the supporting structure (substratum) More...
 
boolean isActive ()
 Determine if this boundary is active for solute. More...
 
boolean hasBulk ()
 Determine if this boundary is attached to a bulk. More...
 
void updateBulk (SoluteGrid[] soluteGrid, SoluteGrid[] reacGrid, double timeStep)
 Updates the levels in the bulk. Allows reaction or flux-based bulk treatment. More...
 
boolean hasAgar ()
 Determine if the boundary condition is modelling agar. More...
 
void updateAgar (SoluteGrid[] soluteGrid, SoluteGrid[] reactionGrid, double timeStep)
 If modelling an agar plate boundary, this method updates the boundary. More...
 
boolean isOutside (DiscreteVector dc, SpatialGrid aSpatialGrid)
 Determines if a discrete vector location is outside the boundary. More...
 
ContinuousVector getIntersection (ContinuousVector position, ContinuousVector vector)
 Calculate the intersection between the boundary and a line (defined by a position and a vector) More...
 
ContinuousVector getOrthoProj (ContinuousVector cc)
 Calculate the orthogonal projection of a location on the boundary. More...
 
Bulk getBulk ()
 Return the bulk that is connected to this boundary. More...
 
IsShape getShape ()
 Returns the Shape object that represents this boundary. More...
 
String getSide ()
 Return the name of the side of the domain which this boundary is on. More...
 
double getDistance (ContinuousVector cc)
 Returns the distance from a point to the boundary. More...
 
double getBulkValue (int soluteIndex)
 For a specified solute, returns the level of that solute in the bulk. More...
 

Protected Attributes

boolean[] isPermeableTo
 
double[] permeability
 
Bulk _connectedBulk
 
- Protected Attributes inherited from simulator.geometry.boundaryConditions.AllBC
String _mySide
 
IsShape _myShape
 
boolean isCyclic = false
 
boolean _isSupport = false
 
boolean hasBulk = false
 
boolean activeForSolute = true
 
boolean hasAgar = false
 

Static Protected Attributes

static ContinuousVector vectorIn
 
- Static Protected Attributes inherited from simulator.geometry.boundaryConditions.AllBC
static DiscreteVector dcIn = new DiscreteVector()
 
static DiscreteVector dcOut = new DiscreteVector()
 

Additional Inherited Members

- Static Public Member Functions inherited from simulator.geometry.boundaryConditions.AllBC
static AllBC staticBuilder (XMLParser root, Simulator aSim, Domain aDomain)
 Generic constructor called to dynamically instantiate a child class object. More...
 

Detailed Description

BoundaryMembrane : defines a boundary impermeable to everything except to gas.

BoundaryMembrane : defines a boundary impermeable to everything except to gas. A membrane boundary has a selective permeability, meaning it behaves like a zero-flux boundary for agents and most of the solutes, but for selected solutes includes specification of the diffusivity in the membrane and the opposing-side solute concentration

Author
Laurent Lardon (lardo.nosp@m.nl@s.nosp@m.upagr.nosp@m.o.in.nosp@m.ra.fr), INRA, France

Constructor & Destructor Documentation

simulator.geometry.boundaryConditions.BoundaryGasMembrane.BoundaryGasMembrane ( )

Declare a gas membrane boundary and set hasBulk to true to note this is the case.

Declare a gas membrane boundary and set hasBulk to true to note this is the case

Member Function Documentation

void simulator.geometry.boundaryConditions.BoundaryGasMembrane.applyBoundary ( LocatedAgent  anAgent,
ContinuousVector  target 
)
virtual

Modify the movement vector : the new position is the orthognal projection of the outside point on the boundary surface

See Also
LocatedAgent.move();

Implements simulator.geometry.boundaryConditions.AllBC.

Bulk simulator.geometry.boundaryConditions.BoundaryGasMembrane.getBulk ( )

Return the bulk that is connected to this boundary.

Return the bulk that is connected to this boundary

Returns
Bulk object that is connected to this boundary
double simulator.geometry.boundaryConditions.BoundaryGasMembrane.getBulkValue ( int  soluteIndex)

For a specified solute, returns the level of that solute in the bulk.

For a specified solute, returns the level of that solute in the bulk

Parameters
soluteIndexIndex of the solute in the simulation dictionary
Returns
Value of solute in the connected bulk
void simulator.geometry.boundaryConditions.BoundaryGasMembrane.init ( Simulator  aSim,
Domain  aDomain,
XMLParser  aBCMarkUp 
)
virtual

Initialises the boundary from information contained in the simulation protocol file, and builds the list of solutes to let diffuse through the membrane.

Initialises the boundary from information contained in the simulation protocol file, and builds the list of solutes to let diffuse through the membrane

Parameters
aSimThe simulation object used to simulate the conditions specified in the protocol file
aDomainThe domain which this boundary condition is associated with
aBCMarkUpThe XML tags that have declared this boundary in the protocol file

Implements simulator.geometry.boundaryConditions.AllBC.

ContinuousVector simulator.geometry.boundaryConditions.BoundaryGasMembrane.lookAt ( ContinuousVector  cc)
virtual

Method used by another which gets the indexed grid position of a continuous vector. Some boundary conditions need the input corrected, some don't and just return the input.

Method used by another which gets the indexed grid position of a continuous vector. Some boundary conditions (e.g. BoundaryCyclic_ need the input corrected due to the condition, some don't and just return the input. Maybe we'll change this at some point as to just return the input looks a bit daft - but we'll leave it here for the moment

Parameters
ccContinuousVector that gives the current location of an agent to check on the grid

Implements simulator.geometry.boundaryConditions.AllBC.

void simulator.geometry.boundaryConditions.BoundaryGasMembrane.refreshBoundary ( SoluteGrid  aSoluteGrid)
virtual

Solver for the gas membrane boundary condition. Initialises the course along the shape of the boundary.

Solver for the gas membrane boundary condition. Initialises the course along the shape of the boundary

Parameters
aSoluteGridGrid of solute information which is to be refreshed by the solver

Implements simulator.geometry.boundaryConditions.AllBC.

void simulator.geometry.boundaryConditions.BoundaryGasMembrane.refreshDiffBoundary ( SoluteGrid  relDif,
SoluteGrid  aSoluteGrid 
)

Computes and applies gas diffusivity across the gas membrane boundary.

Computes and applies gas diffusivity across the gas membrane boundary

Parameters
relDifSupplied RelDiff grid
aSoluteGridGrid of solute information which is to be refreshed by the solver
void simulator.geometry.boundaryConditions.BoundaryGasMembrane.setBoundary ( LocatedGroup  aGroup)
virtual

Change the status of a specified LocatedGroup to note that it has been identified as being outside this boundary.

Change the status of a specified LocatedGroup to note that it has been identified as being outside this boundary

Parameters
aGroupLocatedGroup object which has been detected to be outside the boundary

Implements simulator.geometry.boundaryConditions.AllBC.

Member Data Documentation

Bulk simulator.geometry.boundaryConditions.BoundaryGasMembrane._connectedBulk
protected

The defined bulk in the simulation to which the liquid phase is connected

boolean [] simulator.geometry.boundaryConditions.BoundaryGasMembrane.isPermeableTo
protected

The list of solutes to let diffuse through the membrane

double [] simulator.geometry.boundaryConditions.BoundaryGasMembrane.permeability
protected

Level of permeability for each solute that can diffuse through the membrane

ContinuousVector simulator.geometry.boundaryConditions.BoundaryGasMembrane.vectorIn
staticprotected

A vector normal to the boundary and starting from the orthogonal projection


The documentation for this class was generated from the following file: