Conditions for a single Boundary connector
Information
Extends from
Modelica.Icons.Package (Icon for standard packages).
Package Content
Material source for a Boundary connector
Information
Extends from
FCSys.Icons.Conditions.SingleShort (Short icon for a single-connector boundary condition).
Parameters
| Type | Name | Default | Description |
| Specification |
| Material |
| replaceable function materialSpec | Material.current | Quantity |
| Boolean | internalMaterial | true | Use internal specification |
| RealExpression | materialSet | redeclare Sources.RealExpres… | Source of internal specification |
| First transverse |
| replaceable function afterSpec | Translational.velocity | Quantity |
| Boolean | internalAfter | true | Use internal specification |
| RealExpression | afterSet | redeclare Sources.RealExpres… | Source of internal specification |
| Second transverse |
| replaceable function beforeSpec | Translational.velocity | Quantity |
| Boolean | internalBefore | true | Use internal specification |
| RealExpression | beforeSet | redeclare Sources.RealExpres… | Source of internal specification |
| Thermal |
| replaceable function thermalSpec | Thermal.temperature | Quantity |
| Boolean | internalThermal | true | Use internal specification |
| RealExpression | thermalSet | redeclare Sources.RealExpres… | Source of internal specification |
| Measurement |
| replaceable function materialMeas | Material.pressure | Material quantity |
| replaceable function afterMeas | Translational.force | First transverse quantity |
| replaceable function beforeMeas | Translational.force | Second transverse quantity |
| replaceable function thermalMeas | Thermal.heatRate | Thermal quantity |
Connectors
| Type | Name | Description |
| Boundary | boundary | Connector to transport material, translational momentum, and thermal energy |
| RealInputBus | u | Bus of specifications |
| RealOutputBus | y | Bus of measurements |
| Specification |
| Material |
| replaceable function materialSpec | Quantity |
| First transverse |
| replaceable function afterSpec | Quantity |
| Second transverse |
| replaceable function beforeSpec | Quantity |
| Thermal |
| replaceable function thermalSpec | Quantity |
| Measurement |
| replaceable function materialMeas | Material quantity |
| replaceable function afterMeas | First transverse quantity |
| replaceable function beforeMeas | Second transverse quantity |
| replaceable function thermalMeas | Thermal quantity |
Modelica definition
model Source
"Material source for a Boundary connector"
import Modelica.Blocks.Sources;
extends FCSys.Icons.Conditions.SingleShort;
// Specification
// -------------
// Material
replaceable function materialSpec = Material.current constrainedby
Material.Partial "Quantity";
parameter Boolean internalMaterial=true "Use internal specification";
replaceable Sources.RealExpression materialSet if internalMaterial
constrainedby Modelica.Blocks.Interfaces.SO
"Source of internal specification";
//
// 1st transverse
replaceable function afterSpec = Translational.velocity constrainedby
Translational.Partial "Quantity";
parameter Boolean internalAfter=true "Use internal specification";
replaceable Sources.RealExpression afterSet if internalAfter constrainedby
Modelica.Blocks.Interfaces.SO "Source of internal specification";
//
// 2nd transverse
replaceable function beforeSpec = Translational.velocity constrainedby
Translational.Partial "Quantity";
parameter Boolean internalBefore=true "Use internal specification";
replaceable Sources.RealExpression beforeSet if internalBefore constrainedby
Modelica.Blocks.Interfaces.SO "Source of internal specification";
//
// Thermal
replaceable function thermalSpec = Thermal.temperature constrainedby
Thermal.Partial "Quantity";
parameter Boolean internalThermal=true "Use internal specification";
replaceable Sources.RealExpression thermalSet(y=298.15*U.K) if
internalThermal constrainedby Modelica.Blocks.Interfaces.SO
"Source of internal specification";
// Measurement
// -----------
// Aliases
Q.PressureAbsolute p "Pressure";
Q.TemperatureAbsolute T "Temperature";
// Material
replaceable function materialMeas = Material.pressure constrainedby
Material.Partial "Material quantity";
// 1st transverse
replaceable function afterMeas = Translational.force constrainedby
Translational.Partial "First transverse quantity";
// 2nd transverse
replaceable function beforeMeas = Translational.force constrainedby
Translational.Partial "Second transverse quantity";
// Thermal
replaceable function thermalMeas = Thermal.heatRate constrainedby
Thermal.Partial "Thermal quantity";
Connectors.Boundary boundary
"Connector to transport material, translational momentum, and thermal energy";
Connectors.RealInputBus u if not (internalMaterial and internalAfter and
internalBefore and internalThermal) "Bus of specifications";
Connectors.RealOutputBus y "Bus of measurements";
// Inputs
protected
Connectors.RealInputInternal u_material if not internalMaterial
"Material specification";
Connectors.RealInputInternal u_after if not internalAfter
"First transverse specification";
Connectors.RealInputInternal u_before if not internalBefore
"Second transverse specification";
Connectors.RealInputInternal u_thermal if not internalThermal
"Thermal specification";
Connectors.RealOutputInternal _u_material
"Internal, working value of material specification";
Connectors.RealOutputInternal _u_after=afterSpec(
boundary.p,
boundary.Ndot,
boundary.phi,
boundary.mPhidot,
boundary.T,
boundary.Qdot,
orient=Orient.after)
"Internal, working value of first transverse specification";
Connectors.RealOutputInternal _u_before=beforeSpec(
boundary.p,
boundary.Ndot,
boundary.phi,
boundary.mPhidot,
boundary.T,
boundary.Qdot,
orient=Orient.before)
"Internal, working value of second transverse specification";
Connectors.RealOutputInternal _u_thermal
"Internal, working value of thermal specification";
public
Sources.RealExpression materialOut(y=materialMeas(
boundary.p,
boundary.Ndot,
boundary.phi,
boundary.mPhidot,
boundary.T,
boundary.Qdot)) "Generate the material output";
Sources.RealExpression beforeOut(y=beforeMeas(
boundary.p,
boundary.Ndot,
boundary.phi,
boundary.mPhidot,
boundary.T,
boundary.Qdot,
orient=Orient.before)) "Generate the 2nd transverse output";
Sources.RealExpression afterOut(y=afterMeas(
boundary.p,
boundary.Ndot,
boundary.phi,
boundary.mPhidot,
boundary.T,
boundary.Qdot,
orient=Orient.after)) "Generate the 1st transverse output";
Sources.RealExpression thermalOut(y=thermalMeas(
boundary.p,
boundary.Ndot,
boundary.phi,
boundary.mPhidot,
boundary.T,
boundary.Qdot)) "Generate the thermal output";
equation
// Aliases
p = boundary.p;
T = boundary.T;
_u_material = materialSpec(
boundary.p,
boundary.Ndot,
boundary.phi,
boundary.mPhidot,
boundary.T,
boundary.Qdot);
_u_thermal = thermalSpec(
boundary.p,
boundary.Ndot,
boundary.phi,
boundary.mPhidot,
boundary.T,
boundary.Qdot);
// Material
connect(u_material, _u_material);
connect(materialSet.y, _u_material);
connect(u_material, u.material);
connect(materialOut.y, y.material);
// First transverse
connect(u_after, _u_after);
connect(afterSet.y, _u_after);
connect(u_after, u.after);
connect(afterOut.y, y.after);
// Second transverse
connect(u_before, _u_before);
connect(beforeSet.y, _u_before);
connect(u_before, u.before);
connect(beforeOut.y, y.before);
// Thermal
connect(thermalSet.y, _u_thermal);
connect(u_thermal, u.thermal);
connect(u_thermal, _u_thermal);
connect(thermalOut.y, y.thermal);
end Source;
Material sink for a Boundary connector
Information
Extends from
Source (Material source for a
Boundary connector).
Parameters
| Type | Name | Default | Description |
| Specification |
| Material |
| replaceable function materialSpec | Material.pressure | Quantity |
| Boolean | internalMaterial | true | Use internal specification |
| First transverse |
| replaceable function afterSpec | Translational.force | Quantity |
| Boolean | internalAfter | true | Use internal specification |
| RealExpression | afterSet | redeclare Sources.RealExpres… | Source of internal specification |
| Second transverse |
| replaceable function beforeSpec | Translational.force | Quantity |
| Boolean | internalBefore | true | Use internal specification |
| RealExpression | beforeSet | redeclare Sources.RealExpres… | Source of internal specification |
| Thermal |
| replaceable function thermalSpec | Thermal.heatRate | Quantity |
| Boolean | internalThermal | true | Use internal specification |
| Measurement |
| replaceable function materialMeas | Material.current | Material quantity |
| replaceable function afterMeas | Translational.velocity | First transverse quantity |
| replaceable function beforeMeas | Translational.velocity | Second transverse quantity |
| replaceable function thermalMeas | Thermal.temperature | Thermal quantity |
Connectors
| Type | Name | Description |
| Boundary | boundary | Connector to transport material, translational momentum, and thermal energy |
| RealInputBus | u | Bus of specifications |
| RealOutputBus | y | Bus of measurements |
| Specification |
| Material |
| replaceable function materialSpec | Quantity |
| First transverse |
| replaceable function afterSpec | Quantity |
| Second transverse |
| replaceable function beforeSpec | Quantity |
| Thermal |
| replaceable function thermalSpec | Quantity |
| Measurement |
| replaceable function materialMeas | Material quantity |
| replaceable function afterMeas | First transverse quantity |
| replaceable function beforeMeas | Second transverse quantity |
| replaceable function thermalMeas | Thermal quantity |
Modelica definition
model Sink
"Material sink for a Boundary connector"
extends Source(
redeclare replaceable function materialSpec = Material.pressure,
redeclare replaceable function afterSpec = Translational.force,
redeclare replaceable function beforeSpec = Translational.force,
redeclare replaceable function thermalSpec = Thermal.heatRate,
redeclare replaceable function materialMeas = Material.current,
redeclare replaceable function afterMeas = Translational.velocity,
redeclare replaceable function beforeMeas = Translational.velocity,
redeclare replaceable function thermalMeas = Thermal.temperature,
redeclare Modelica.Blocks.Sources.RealExpression materialSet(y=U.atm),
redeclare Modelica.Blocks.Sources.RealExpression thermalSet(y=0));
// Note: In Dymola 2014, the paths must be explicitly given to prevent
// the error "Cannot show the parameter dialog for redeclared class […]".
// The materialSet and thermalSet blocks are redeclared as not replaceable
// because y is set directly and can't be undone at instantiation.
end Sink;