## org.ascape.model.rule
Class ParameterizedDiffusion

    java.lang.Object
      org.ascape.model.AscapeObject
          org.ascape.model.rule.Rule
              org.ascape.model.rule.ExecuteThenUpdate
                  org.ascape.model.rule.Diffusion
                      org.ascape.model.rule.ParameterizedDiffusion

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, HasName, RandomFunctions

    public abstract class ParameterizedDiffusion

extends Diffusion

A rule causing some agent value to diffuse to its neighbors at a particualar constant. Also supports evaporation at a given rate.

Since:
  1.2.5
Version:
  1.9.2
Author:
  Miles Parker
See Also:
  Serialized Form

Field Summary

Fields inherited from class org.ascape.model.AscapeObject
`ARBITRARY_SEED, name, PLATFORM_DEFAULT_COLOR, scape`

Constructor Summary
`ParameterizedDiffusion(java.lang.String name)` Constructs a paramterized diffusion rule with the provided name.
`ParameterizedDiffusion(java.lang.String name, float diffuseConstant, float evaporationRate)` Constructs a paramterized diffusion rule with the provided name and paramaters.

Method Summary
`void` `execute(Agent agent)` Calculate and store diffusion value to neighbors.
`double` `getDiffusionConstant()` Gets the diffusion constant.
`double` `getEvaporationRate()` Gets the evaporation rate.
`void` `setDiffusionConstant(double diffuseConstant)` Sets the diffusion constant.
`void` `setEvaporationRate(double evaporationRate)` Sets the evaporation rate.

Methods inherited from class org.ascape.model.rule.Diffusion
`getDiffusionValue, isRandomExecution, setDiffusionValue, update`

Methods inherited from class org.ascape.model.rule.Rule
`getScape, isCauseRemoval, isIterateAll, setScape`

Methods inherited from class org.ascape.model.AscapeObject
`clone, diffDeep, diffDeep, diffDeepBFS, diffDeepDFS, diffDeepValidate, diffDeepVisit, equalsDeep, equalsDeep, equalsDeep, getComparisonStream, getName, getRandom, getRandomSeed, randomInRange, randomInRange, randomIs, randomToLimit, reseed, setComparisonStream, setName, setRandom, setRandomSeed, toString`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### ParameterizedDiffusion

    public ParameterizedDiffusion(java.lang.String name)

  Constructs a paramterized diffusion rule with the provided name.

  Parameters:
    `name` - the name of this object

### ParameterizedDiffusion

    public ParameterizedDiffusion(java.lang.String name,
                                  float diffuseConstant,
                                  float evaporationRate)

  Constructs a paramterized diffusion rule with the provided name and paramaters.

  Parameters:
    `name` - the name of this object
    `diffuseConstant` - the diffuse constant
    `evaporationRate` - the evaporation rate

Method Detail

### execute

    public void execute(Agent agent)

  Calculate and store diffusion value to neighbors.

  Overrides:
    `execute` in class `Diffusion`
  Parameters:
    `agent` - the playing agent

### getDiffusionConstant

    public double getDiffusionConstant()

  Gets the diffusion constant.

  Returns:
    the diffusion constant

### setDiffusionConstant

    public void setDiffusionConstant(double diffuseConstant)

  Sets the diffusion constant.

  Parameters:
    `diffuseConstant` - the new diffusion constant

### getEvaporationRate

    public double getEvaporationRate()

  Gets the evaporation rate.

  Returns:
    the evaporation rate

### setEvaporationRate

    public void setEvaporationRate(double evaporationRate)

  Sets the evaporation rate.

  Parameters:
    `evaporationRate` - the new evaporation rate