Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ChillerAbsorption is missing implementation of tertiary nodes for Generator Loop #3111

Closed
jmarrec opened this issue Apr 23, 2018 · 0 comments · Fixed by #3847
Closed

ChillerAbsorption is missing implementation of tertiary nodes for Generator Loop #3111

jmarrec opened this issue Apr 23, 2018 · 0 comments · Fixed by #3847

Comments

@jmarrec
Copy link
Collaborator

jmarrec commented Apr 23, 2018

ChillerAbsorption doesn't have tertiary nodes implemented to be able to connect the Generator loop. Connecting the Chilled Water and Condenser loop is now possible, but not the generator.

A very similar object, ChillerAbsorptionIndirect does have these connections defined (see here), and there is no override of the addToNode nor addToTertiaryNode methods currently.

After implementing the tertiaryInletPort and tertiaryOutletPort for ChillerAbsorption, in both ChillerAbsorption and ChillerAbsorptionIndirect I suggest overwriting the addToNode and addToTertiaryNode like I did in CentralHeatPumpSystem so that it'll work in the OS App.

Basically in the addToNode, you check if the object is trying to be connected to the *demand side of a plant loop, and its already connected to the *condenser water loop but without a tertiary loop, then you connect it to the tertiary loop. See docstrings

/* This function will perform a check if trying to add it to a node that is on the supply side of a plant loop.
* If:
* - the node is on the supply side of a loop
* - the CentralHeatPumpSystem already has a cooling loop (supply side)
* - the node isn't on the cooling loop itself
* - the CentralHeatPumpSystem doesn't have a heating (tertiary) loop,
* then it tries to add it to the Tertiary loop.
* In all other cases, it will call the base class' method WaterToWaterComponent_Impl::addToNode()
*/
and actual implementation here,
and a note I left in

// Note: Julien Marrec, 2018-01-04
// When you have a WaterToWaterComponent that has a tertiaryPlantLoop, you should override the addToNode method
// to call addToTertiaryNode when needed. This will work with addSupplyBranchForComponent (etc) too
// Take a look at CentralHeatPumpSystem::addToNode (and CentralHeatPumpSystem::addToTertiaryNode) for an actual example
auto zone = hvacComponent->optionalCast<model::ThermalZone>();
if ( zone ) {
added = zone->multiAddToNode(node.get());
} else {
added = hvacComponent->addToNode(node.get());
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant