Sage Modeling and Simulation Library

Highpoint.Sage.Materials.Chemistry Namespace

Classes


  Class Description
Public class BasicReactionSupporter
A BasicReactionSupporter is used for testing. It is the simplest class that can implement the ISupportsReactions interface (it also implements IXmlPersistable...)
Public class Constants
A class that holds useful chemistry constants.
Public class MaterialCatalog
Class MaterialCatalog stands alone, or serves as a base class for any object that manages instances of MaterialType. In this case, to "manage" means to be a point of focus to supply a requester with a material type that is specified by name ur unique ID (Guid). This is often kept at the model level in a model that represents or contains chemical reactions.
Public class MaterialConduitManager
A MaterialConduitManager handles replenishment and drawdown from a primary resource manager (i.e. pool) to one or more secondary managers in the case that the primary resource manager either cannot satisfy a request from, or cannot accept a release to, the pool it manages. One might think of it as an intermediary between a ready tank and an inventory tank, or a waste tank and a reclamation plant.
Public class MaterialResourceItem
Class MaterialResourceItem is a resource pool that contains a quantity of a substance, and acts as a resource manager for that substance, processing Material Resource Requests.
Public class MaterialResourceRequest
Class MaterialResourceRequest is a Resource request that requests a specified quantity of a specified material type be added to or removed from a specified MaterialResourceItem.
Public class MaterialType
Public class Mixture
A Mixture is a collection of consituent materials that share the same temperature. Reactions can take place within a mixture, if that mixture is being watched by a ReactionProcessor.
Public class Mixture..::..MaterialChangeDistiller
Class MaterialChangeDistiller is an intermediary between a mixture and its change event listeners. When Hold() is called, it captures and stores all change events. When release is called, if issueSummaryEvents is set to true, it creates a set of summary events that summarize each of the change types (mass, temperature and constituents) into the minimum number of events necessary to represent those changes. This is useful for ongoing processes when you only want to log material changes at the start and end of a complex series of steps.
Public class Mixture..::..MixtureMemento
Class MixtureMemento creates a moment-in-time snapshot (see Memento design pattern) of a mixture.
Public class Reaction
A Reaction is a class that characterizes a chemical transformation. A reaction represents that when it occurs, 'a' mass units of substance 'A' reacts with 'b' nass units of substance 'B' to yield 'c' mass units of substance 'C' and 'd' mass units of substance 'D'. Additionally, it represents that the reaction will habben with a forward execution percentage of 'x' percent, and were it to execute 100%, it would yield or consume 'y' energy units - permitting it to be an endothermic or exothermic reaction.
Public class Reaction..::..ReactionParticipant
A ReactionParticipant is a struct that represents a material type and a mass, depicting the type and representative quantity of a material that will take place in a reaction. Note that the quantities are specified in proportion only.
Public class ReactionDefinitionException
An exception that is thrown if there is a cycle in a dependency graph that has been analyzed.
Public class ReactionInstance
A ReactionInstance is created every time a reaction takes place. It records what reaction took place, how much of the reaction took place (i.e. percent completion) in both the forward and reverse directions, and the percent of completion the reaction had been told to attempt to accomplish, in case the value were to be changed in the reaction, later (such as as a result of a change in temperature.)
Public class ReactionProcessor
A reaction processor knows of a set of chemical reactions, and watches a set of mixtures. Whenever a material is added to, or removed from, a mixture, the reaction processor examines that mixture to see if any of the reactions it knows of are capable of occurring. If any are, then it proceeds to execute that reaction, eliminating the appropriate quantity of reactants, generating the appropriate quantity of products (or vice versa) and changing the mixture's thermal characteristics.
Public class Substance
A substance is a homogeneous mixture - one constituent. Typically, this is a single element or compound. Temperatures externally are always presented in degrees celsius.
Public class Substance..::..SubstanceMemento
Class SubstanceMemento creates a moment-in-time snapshot (see Memento design pattern) of a substance.
Public class Vessel

Interfaces


  Interface Description
Public interface IContainer
Implemented by anything that can hold a mixture, and has a capacity.
Public interface IHasMaterials
Interface IHasMaterials is implemented by any object that serves as a librarian for material types, which are held in a MaterialCatalog.
Public interface IMaterial
Implemented by anything that is a material - Substances and Mixtures are current examples.
Public interface ISupportsReactions
ISupportsReactions is an entity that keeps track of reactions and materials, and provides each a place to acquire references to the other. If you define a reaction with Potassium in it, and use the Potassium material type to create some potassium, you can be sure the potassium will be able to react if the material is made from the MaterialCatalog, and the reaction is stored in the ReactionProcessor of, the same instance of ISupportsReactions.

Delegates


  Delegate Description
Public delegate MaterialChangeListener
Fired after a change in mass, constituents or temperature has taken place in this mixture.
Public delegate MaterialType..::..Filter
A delegate that indicates acceptance of a material type, for example, for inclusion in a mole fraction or partial pressure computation. This delegate returns true to indicate that the material passes the filter criteria.
Public delegate ReactionGoingToHappenEvent
Implemented by a method that can be notified when a reaction is going to happen.
Public delegate ReactionHappenedEvent
Implemented by a method that can be notified after a reaction has happened.
Public delegate ReactionProcessorEvent
Delegate implemented by a method that wants to be called when a reaction is added to or removed from, a ReactionProcessor.

Enumerations


  Enumeration Description
Public enumeration MaterialChangeType
An enumeration that describes the kind of change that has taken place in a material.
Public enumeration MaterialResourceRequest..::..Direction
Enum Direction specified whether a resource request aimed at a MaterialResourceItem intends to take from (deplete) or add to (augment) the quantity of substance in that MaterialResourceItem.
Public enumeration MaterialState
Enum MaterialState represents the current (or initial) state of a material. It is used if the modeler wishes to represent the thermodynamic effects of state change, and if they do, then Latent Heat of Vaporization and SpecificHeat must be provided. Note - the mechanisms for modeling thermal transition to the solid state are not present, as this is a rare transition to occur in manufacturing processes - at least no need has yet been encountered.
Public enumeration Reaction..::..MaterialRole
Describes the role a material plays in a reaction.