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

Group all methods expected by the interface but common to most of the boundary classes. More...

Inheritance diagram for simulator.geometry.boundaryConditions.AllBC:
simulator.geometry.boundaryConditions.BoundaryBulk simulator.geometry.boundaryConditions.BoundaryConstant simulator.geometry.boundaryConditions.BoundaryCyclic simulator.geometry.boundaryConditions.BoundaryGasMembrane simulator.geometry.boundaryConditions.BoundaryZeroFlux

Public Member Functions

abstract void init (Simulator aSim, Domain aDomain, XMLParser root)
 Initialises the boundary condition. Should be overriden by each boundary condition class file. More...
 
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...
 
abstract void refreshBoundary (SoluteGrid aSoluteGrid)
 Solver for then boundary condition. Initialises the course along the shape of the boundary during multigrid computation. 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...
 
abstract 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...
 
abstract void setBoundary (LocatedGroup aGroup)
 Change the status of a specified LocatedGroup to note that it has been identified as being outside this boundary. More...
 
abstract void applyBoundary (LocatedAgent anAgent, ContinuousVector newLoc)
 
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...
 

Static Public Member Functions

static AllBC staticBuilder (XMLParser root, Simulator aSim, Domain aDomain)
 Generic constructor called to dynamically instantiate a child class object. More...
 

Protected Attributes

String _mySide
 
IsShape _myShape
 
boolean isCyclic = false
 
boolean _isSupport = false
 
boolean hasBulk = false
 
boolean activeForSolute = true
 
boolean hasAgar = false
 

Static Protected Attributes

static DiscreteVector dcIn = new DiscreteVector()
 
static DiscreteVector dcOut = new DiscreteVector()
 

Detailed Description

Group all methods expected by the interface but common to most of the boundary classes.

Group all methods expected by the interface but common to most of the boundary classes

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

Member Function Documentation

abstract void simulator.geometry.boundaryConditions.AllBC.applyBoundary ( LocatedAgent  anAgent,
ContinuousVector  newLoc 
)
pure virtual
Bulk simulator.geometry.boundaryConditions.AllBC.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.AllBC.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
double simulator.geometry.boundaryConditions.AllBC.getDistance ( ContinuousVector  cc)

Returns the distance from a point to the boundary.

Returns the distance from a point to the boundary

Parameters
ccThe continuous vector of points to calculate how far the point is from the boundary
Returns
Double value stating the distance fromt the point to the boundary
ContinuousVector simulator.geometry.boundaryConditions.AllBC.getIntersection ( ContinuousVector  position,
ContinuousVector  vector 
)

Calculate the intersection between the boundary and a line (defined by a position and a vector)

Calculate the intersection between the boundary and a line (defined by a position and a vector)

Parameters
positionA continuous vector stating the point to be used in the calculation
vectorA continuous vector stating the line to be used in the calculation
Returns
ContinuousVector stating the point of intersection between the boundary and a line
ContinuousVector simulator.geometry.boundaryConditions.AllBC.getOrthoProj ( ContinuousVector  cc)

Calculate the orthogonal projection of a location on the boundary.

Calculate the orthogonal projection of a location on the boundary

Parameters
ccA continuous vector stating the point to be used in the calculation
Returns
ContinuousVector stating the point on the boundary after the orthogonal projection
IsShape simulator.geometry.boundaryConditions.AllBC.getShape ( )

Returns the Shape object that represents this boundary.

Returns the Shape object that represents this boundary

Returns
Shape object that has been constructed to represent this boundary
String simulator.geometry.boundaryConditions.AllBC.getSide ( )

Return the name of the side of the domain which this boundary is on.

Return the name of the side of the domain which this boundary is on

Returns
String containing the name of the side of the domain (e.g. x0z, xNz, etc)
String simulator.geometry.boundaryConditions.AllBC.getSideName ( )

Return the name of the side of the domain which this boundary is on.

Return the name of the side of the domain which this boundary is on

Returns
String containing the name of the side of the domain (e.g. x0z, xNz, etc)
boolean simulator.geometry.boundaryConditions.AllBC.hasAgar ( )

Determine if the boundary condition is modelling agar.

Determine if the boundary condition is modelling agar

Returns
Boolean noting whether this condition is modelling agar (true) or not (false)
boolean simulator.geometry.boundaryConditions.AllBC.hasBulk ( )

Determine if this boundary is attached to a bulk.

Determine if this boundary is attached to a bulk

Returns
Boolean noting whether this boundary is attached to a bulk (true) or not (false)
abstract void simulator.geometry.boundaryConditions.AllBC.init ( Simulator  aSim,
Domain  aDomain,
XMLParser  root 
)
pure virtual

Initialises the boundary condition. Should be overriden by each boundary condition class file.

Initialises the boundary condition. This method should be overriden by each boundary condition class file

Parameters
aSimThe current simulation object used to simulate the conditions specified in this protocol file
aDomainThe computation domain to which this boundary condition is assigned
rootSet of XML tags relating to one boundary condition

Implemented in simulator.geometry.boundaryConditions.BoundaryGasMembrane, simulator.geometry.boundaryConditions.BoundaryCyclic, simulator.geometry.boundaryConditions.BoundaryBulk, simulator.geometry.boundaryConditions.BoundaryConstant, and simulator.geometry.boundaryConditions.BoundaryZeroFlux.

boolean simulator.geometry.boundaryConditions.AllBC.isActive ( )

Determine if this boundary is active for solute.

Determine if this boundary is active for solute

Returns
Boolean noting whether this boundary is active for solute (true) or not (false)
boolean simulator.geometry.boundaryConditions.AllBC.isCyclic ( )

Determine if this boundary is cyclic.

Determine if this boundary is cyclic

Returns
Boolean noting whether this boundary is cyclic (true) or not (false)
boolean simulator.geometry.boundaryConditions.AllBC.isOutside ( ContinuousVector  cc)

Determines if a point is outside the boundary.

Determines if a point is outside the boundary

Parameters
ccContinuousVector to check
Returns
Boolean value noting whether this coordinate is outside the boundary (true) or not (false)
boolean simulator.geometry.boundaryConditions.AllBC.isOutside ( DiscreteVector  dc,
SpatialGrid  aSpatialGrid 
)

Determines if a discrete vector location is outside the boundary.

Determines if a discrete vector location is outside the boundary

Parameters
dcDiscreteVector to check
aSpatialGridThe grid to check whether a point is outside
Returns
Boolean value noting whether this coordinate is outside the boundary (true) or not (false)
boolean simulator.geometry.boundaryConditions.AllBC.isSupport ( )

Determine whether this boundary is the supporting structure (substratum)

Determine whether this boundary is the supporting structure (substratum)

Returns
Boolean noting whether this boundary is the supporting structure (true) or not (false)
abstract ContinuousVector simulator.geometry.boundaryConditions.AllBC.lookAt ( ContinuousVector  cc)
pure 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

Implemented in simulator.geometry.boundaryConditions.BoundaryGasMembrane, simulator.geometry.boundaryConditions.BoundaryBulk, simulator.geometry.boundaryConditions.BoundaryCyclic, simulator.geometry.boundaryConditions.BoundaryConstant, and simulator.geometry.boundaryConditions.BoundaryZeroFlux.

void simulator.geometry.boundaryConditions.AllBC.readGeometry ( XMLParser  geometryRoot,
Domain  aDomain 
)

Used during the initialisation, load the class describing the shape of the boundary defined in the parent class.

Used during the initialisation, load the class describing the shape of the boundary defined in the parent class

Parameters
geometryRootUsually an XML set of elements that describe the boundary to be created
aDomainThe computational domain which this boundary is associated with
abstract void simulator.geometry.boundaryConditions.AllBC.refreshBoundary ( SoluteGrid  aSoluteGrid)
pure virtual

Solver for then boundary condition. Initialises the course along the shape of the boundary during multigrid computation.

Solver for the variable concentration boundary condition. Initialises the course along the shape of the boundary during multigrid computation

Parameters
aSoluteGridGrid of solute information which is to be refreshed by the solver see ComputationDomain.refreshBoundaries()

Implemented in simulator.geometry.boundaryConditions.BoundaryCyclic, simulator.geometry.boundaryConditions.BoundaryGasMembrane, simulator.geometry.boundaryConditions.BoundaryBulk, simulator.geometry.boundaryConditions.BoundaryConstant, and simulator.geometry.boundaryConditions.BoundaryZeroFlux.

void simulator.geometry.boundaryConditions.AllBC.refreshDiffBoundary ( SoluteGrid  relDiff,
SoluteGrid  aSolutegrid 
)

Method used if a boundary modifies the local diffusivity constant. Most of boundaries do not modify it.

Method used if a boundary modifies the local diffusivity constant. Most of boundaries do not modify it

Parameters
relDiffRelative difference grid
aSolutegridGrid of solute information which is to be refreshed by the solver
abstract void simulator.geometry.boundaryConditions.AllBC.setBoundary ( LocatedGroup  aGroup)
pure 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

Implemented in simulator.geometry.boundaryConditions.BoundaryGasMembrane, simulator.geometry.boundaryConditions.BoundaryBulk, simulator.geometry.boundaryConditions.BoundaryCyclic, simulator.geometry.boundaryConditions.BoundaryConstant, and simulator.geometry.boundaryConditions.BoundaryZeroFlux.

static AllBC simulator.geometry.boundaryConditions.AllBC.staticBuilder ( XMLParser  root,
Simulator  aSim,
Domain  aDomain 
)
static

Generic constructor called to dynamically instantiate a child class object.

Generic constructor called to dynamically instantiate a child class object

Parameters
rootSet of XML tags relating to one boundary condition
aSimThe current simulation object used to simulate the conditions specified in this protocol file
aDomainThe computation domain to which this boundary condition is assigned
void simulator.geometry.boundaryConditions.AllBC.updateAgar ( SoluteGrid[]  soluteGrid,
SoluteGrid[]  reactionGrid,
double  timeStep 
)

If modelling an agar plate boundary, this method updates the boundary.

Parameters
soluteGridGrid of all solutes
reactionGridGrid of all reactions
timeStepCurrent internal timestep of the simulation
void simulator.geometry.boundaryConditions.AllBC.updateBulk ( SoluteGrid[]  soluteGrid,
SoluteGrid[]  reacGrid,
double  timeStep 
)

Updates the levels in the bulk. Allows reaction or flux-based bulk treatment.

Updates the levels in the bulk. Allows reaction or flux-based bulk treatment (BVM 151208)

Parameters
soluteGridArray of all solute grids
reacGridArray of all reaction grids
timeStepThe internal timestep currently being applied in this simulation

Member Data Documentation

boolean simulator.geometry.boundaryConditions.AllBC._isSupport = false
protected

Boolean noting whether this boundary is the supporting structure (substratum)

IsShape simulator.geometry.boundaryConditions.AllBC._myShape
protected

The shape of the boundary

String simulator.geometry.boundaryConditions.AllBC._mySide
protected

The name of the boundary describing its side (xOy,...)

boolean simulator.geometry.boundaryConditions.AllBC.activeForSolute = true
protected

Boolean noting whether this boundary can contain active solute

DiscreteVector simulator.geometry.boundaryConditions.AllBC.dcIn = new DiscreteVector()
staticprotected

Discrete coordinates of a voxel inside the computation domain but along the boundary

DiscreteVector simulator.geometry.boundaryConditions.AllBC.dcOut = new DiscreteVector()
staticprotected

Discrete coordinates of the voxel in front of the one outside the boundary

boolean simulator.geometry.boundaryConditions.AllBC.hasAgar = false
protected

Boolean noting whether this boundary is modelling agar

boolean simulator.geometry.boundaryConditions.AllBC.hasBulk = false
protected

Boolean noting whether this boundary has an attached bulk

boolean simulator.geometry.boundaryConditions.AllBC.isCyclic = false
protected

Quick test to know if the boundary is cyclic


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