Class ColumnSpecification
java.lang.Object
neqsim.process.equipment.distillation.ColumnSpecification
- All Implemented Interfaces:
Serializable
Represents a column specification (degree of freedom) for a distillation column.
In a distillation column with a condenser and reboiler, there are two degrees of freedom that must be satisfied. Each specification constrains one degree of freedom. Common specification types include:
- Product purity (mole fraction of a component in distillate or bottoms)
- Reflux ratio (L/D for condenser or V/B boilup ratio for reboiler)
- Component recovery (fraction of a component recovered in a product)
- Product flow rate (total flow rate of distillate or bottoms)
- Condenser or reboiler duty
Example usage:
// Specify 95% methane purity in the top product
ColumnSpecification topSpec = new ColumnSpecification(
ColumnSpecification.SpecificationType.PRODUCT_PURITY,
ColumnSpecification.ProductLocation.TOP,
0.95, "methane");
// Specify reflux ratio of 3.0 at the condenser
ColumnSpecification condenserSpec = new ColumnSpecification(
ColumnSpecification.SpecificationType.REFLUX_RATIO,
ColumnSpecification.ProductLocation.TOP,
3.0);
column.setTopSpecification(topSpec);
column.setBottomSpecification(condenserSpec);
- Version:
- 1.0
- Author:
- esol
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumIndicates which end of the column this specification refers to.static enumTypes of column specifications. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Stringprivate static final intDefault maximum iterations for the outer adjustment loop.private static final doubleDefault tolerance for the secant/bisection solver.private final ColumnSpecification.ProductLocationprivate intprivate static final longSerialization version UID.private final doubleprivate doubleprivate final ColumnSpecification.SpecificationType -
Constructor Summary
ConstructorsConstructorDescriptionColumnSpecification(ColumnSpecification.SpecificationType type, ColumnSpecification.ProductLocation location, double targetValue) Creates a column specification that does not require a component name.ColumnSpecification(ColumnSpecification.SpecificationType type, ColumnSpecification.ProductLocation location, double targetValue, String componentName) Creates a column specification with a component name. -
Method Summary
Modifier and TypeMethodDescriptionReturns the component name (may be null for non-component specifications).Returns which end of the column this specification refers to.intReturns the maximum number of iterations for the outer adjustment loop.doubleReturns the target value for this specification.doubleReturns the convergence tolerance for the outer adjustment loop.getType()Returns the specification type.voidsetMaxIterations(int maxIterations) Sets the maximum number of iterations for the outer adjustment loop.voidsetTolerance(double tolerance) Sets the convergence tolerance for the outer adjustment loop.toString()private voidvalidate()Validates that the specification is internally consistent.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
DEFAULT_TOLERANCE
private static final double DEFAULT_TOLERANCEDefault tolerance for the secant/bisection solver.- See Also:
-
DEFAULT_MAX_ITERATIONS
private static final int DEFAULT_MAX_ITERATIONSDefault maximum iterations for the outer adjustment loop.- See Also:
-
type
-
location
-
targetValue
private final double targetValue -
componentName
-
tolerance
private double tolerance -
maxIterations
private int maxIterations
-
-
Constructor Details
-
ColumnSpecification
public ColumnSpecification(ColumnSpecification.SpecificationType type, ColumnSpecification.ProductLocation location, double targetValue) Creates a column specification that does not require a component name.- Parameters:
type- the specification type (REFLUX_RATIO, PRODUCT_FLOW_RATE, or DUTY)location- which end of the column this applies totargetValue- the target value for this specification
-
ColumnSpecification
public ColumnSpecification(ColumnSpecification.SpecificationType type, ColumnSpecification.ProductLocation location, double targetValue, String componentName) Creates a column specification with a component name.- Parameters:
type- the specification typelocation- which end of the column this applies totargetValue- the target value for this specificationcomponentName- the name of the component (required for PRODUCT_PURITY and COMPONENT_RECOVERY)
-
-
Method Details
-
validate
private void validate()Validates that the specification is internally consistent.- Throws:
IllegalArgumentException- if the specification is invalid
-
getType
Returns the specification type.- Returns:
- the specification type
-
getLocation
Returns which end of the column this specification refers to.- Returns:
- the product location
-
getTargetValue
public double getTargetValue()Returns the target value for this specification.- Returns:
- the target value
-
getComponentName
Returns the component name (may be null for non-component specifications).- Returns:
- the component name, or null
-
getTolerance
public double getTolerance()Returns the convergence tolerance for the outer adjustment loop.- Returns:
- the tolerance
-
setTolerance
public void setTolerance(double tolerance) Sets the convergence tolerance for the outer adjustment loop.- Parameters:
tolerance- the tolerance (must be positive)
-
getMaxIterations
public int getMaxIterations()Returns the maximum number of iterations for the outer adjustment loop.- Returns:
- the maximum iterations
-
setMaxIterations
public void setMaxIterations(int maxIterations) Sets the maximum number of iterations for the outer adjustment loop.- Parameters:
maxIterations- the maximum iterations (must be positive)
-
toString
-