Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions constrain/api/brick_compliance.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@

HVAC_ZONE_NAME_PARSE_RE = r"\?(\w+) a brick:HVAC_Zone \."
CASE_KEY_NAMES = [
"no",
"verification_case_id",
"run_simulation",
"simulation_IO",
"verification_properties",
"idf",
"idd",
"weather",
Expand Down Expand Up @@ -100,9 +100,9 @@ def __init__(
self.idx = 1

self.verification_case_dict = {
"no": None,
"verification_case_id": None,
"run_simulation": None,
"simulation_IO": {
"verification_properties": {
"idf": "",
"idd": "",
"weather": "",
Expand Down Expand Up @@ -264,7 +264,7 @@ def query_verification_case_datapoints(
whether the queried datapoint is changed to E+ style variable name or not

default_verification_case_values: dict
default key values. ("no", "run_simulation", "idf", "idd", "weather", "output", "ep_path", "expected_result", "parameters",) keys must exist.
default key values. ("verification_case_id", "run_simulation", "idf", "idd", "weather", "output", "ep_path", "expected_result", "parameters",) keys must exist.

Returns:
self.queried_datapoint_all_dict: dict
Expand Down Expand Up @@ -339,7 +339,7 @@ def query_with_customized_statement(
whether to convert the queried datapoints' name to EnergyPlus style variable name.

default_verification_case_values: dict
default key values. ("no", "run_simulation", "idf", "idd", "weather", "output", "ep_path", "expected_result", "parameters",) keys must exist.
default key values. ("verification_case_id", "run_simulation", "idf", "idd", "weather", "output", "ep_path", "expected_result", "parameters",) keys must exist.

Returns:
queried result in the verification case format. `str` message from the `query_statement`'s quality check result.
Expand Down Expand Up @@ -467,7 +467,7 @@ def _convert_to_verification_case_format_helper(
):
verification_case_dict_copy = copy.deepcopy(self.verification_case_dict)

verification_case_dict_copy["no"] = self.idx
verification_case_dict_copy["verification_case_id"] = self.idx
self.idx += 1
verification_case_dict_copy["verification_class"] = verification_case_name

Expand Down Expand Up @@ -537,8 +537,10 @@ def _convert_to_verification_case_format_helper(
"output",
"ep_path",
):
verification_case_dict_copy["simulation_IO"][key_name] = (
default_verification_case_values["simulation_IO"][key_name]
verification_case_dict_copy["verification_properties"][key_name] = (
default_verification_case_values["verification_properties"][
key_name
]
)

verification_case_dict_copy["expected_result"] = (
Expand Down
2 changes: 1 addition & 1 deletion constrain/api/verification.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ def run_single_verification(self, case: dict = None) -> None:

# TODO: JXL to make this compatible with reporting API, save md json instead of md files directly.
# Output case summary
cases_file = f"{self.output_path}/{case['no']}_md.json"
cases_file = f"{self.output_path}/{case['verification_case_id']}_md.json"
with open(cases_file, "w") as fw:
json.dump(results, fw)

Expand Down
10 changes: 5 additions & 5 deletions constrain/api/verification_case.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,15 +152,15 @@ def _update_key_helper(
elif isinstance(value, list):
for idx, case in enumerate(casees):
if key in [
"no",
"verification_case_id",
"run_simulation",
"expected_result",
"datapoints_source",
"verification_class",
]:
case[key] = value[idx]
elif key in ["idf", "idd", "weather", "output", "ep_path"]:
case["simulation_IO"][key] = value[idx]
case["verification_properties"][key] = value[idx]

elif key in ["subject", "variable", "frequency"]:
case["datapoints_source"]["idf_output_variables"][
Expand Down Expand Up @@ -218,7 +218,7 @@ def _update_key_helper(
def validate_verification_case_structure(
case: Dict = None, verbose: bool = False
) -> bool:
"""Validate verification case structure (e.g., check whether `run_simulation`, `simulation_IO`, etc. exist or not). Check if required key / values pairs exist in the case. check if datatype of values are appropriate, e.g. file path is str.
"""Validate verification case structure (e.g., check whether `run_simulation`, `verification_properties`, etc. exist or not). Check if required key / values pairs exist in the case. check if datatype of values are appropriate, e.g. file path is str.

Args:
case (Dict): case information that will be validated.
Expand Down Expand Up @@ -290,9 +290,9 @@ def _validate_case_structure_helper(schema, instance, verbose) -> Union[bool]:
return None

case_schema = {
"no": int,
"verification_case_id": int,
"run_simulation": bool,
"simulation_IO": {
"verification_properties": {
"output": str, # all other are optional when data is already there.
},
"expected_result": str,
Expand Down
10 changes: 4 additions & 6 deletions constrain/checklib.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,8 @@ def add_md(
):
outcome_bool, outcome_dict = self.get_checks

img_folder = f"{img_folder}/VerificationCase{item_dict['no']}"
relative_path_to_img_in_md = (
f"{relative_path_to_img_in_md}/VerificationCase{item_dict['no']}"
)
img_folder = f"{img_folder}/VerificationCase{item_dict['verification_case_id']}"
relative_path_to_img_in_md = f"{relative_path_to_img_in_md}/VerificationCase{item_dict['verification_case_id']}"
if not os.path.exists(img_folder):
os.makedirs(img_folder)

Expand All @@ -106,7 +104,7 @@ def add_md(
"""

md_content = f"""
## Results for Verification Case ID {item_dict['no']}
## Results for Verification Case ID {item_dict['verification_case_id']}

### Pass/Fail check result
{str(outcome_dict)}
Expand All @@ -128,7 +126,7 @@ def add_md(
return {
"md_content": md_content,
"outcome_notes": outcome_dict,
"model_file": item_dict["simulation_IO"]["idf"]
"model_file": item_dict["verification_properties"]["idf"]
.split("/")[-1]
.split("\\")[-1]
.replace(".idf", ""),
Expand Down
12 changes: 6 additions & 6 deletions constrain/demo/G36_demo/data/G36_library_verification_cases.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"cases": [
{
"no": 1,
"verification_case_id": 1,
"run_simulation": false,
"simulation_IO": {
"verification_properties": {
"idf": "modelica_dataset_set",
"idd": "./resources/Energy+V9_0_1.idd",
"weather": "./weather/USA_GA_Atlanta-Hartsfield.Jackson.Intl.AP.722190_TMY3.epw",
Expand All @@ -25,9 +25,9 @@
"verification_class": "G36ReturnAirDamperPositionForReliefDamperOrFan"
},
{
"no": 2,
"verification_case_id": 2,
"run_simulation": false,
"simulation_IO": {
"verification_properties": {
"idf": "modelica_dataset_set",
"idd": "./resources/Energy+V9_0_1.idd",
"weather": "./weather/USA_GA_Atlanta-Hartsfield.Jackson.Intl.AP.722190_TMY3.epw",
Expand All @@ -50,9 +50,9 @@
"verification_class": "G36OutdoorAirDamperPositionForReliefDamperOrFan"
},
{
"no": 3,
"verification_case_id": 3,
"run_simulation": false,
"simulation_IO": {
"verification_properties": {
"idf": "modelica_dataset_set",
"idd": "./resources/Energy+V9_0_1.idd",
"weather": "./weather/USA_GA_Atlanta-Hartsfield.Jackson.Intl.AP.722190_TMY3.epw",
Expand Down
12 changes: 6 additions & 6 deletions constrain/demo/api_demo/demo_verification_cases.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"cases": [
{
"no": 1,
"verification_case_id": 1,
"run_simulation": false,
"simulation_IO": {
"verification_properties": {
"idf": "./test_cases/doe_prototype_cases/ASHRAE901_Hospital_STD2019_Atlanta.idf",
"idd": "./resources/Energy+V9_0_1.idd",
"weather": "./weather/USA_GA_Atlanta-Hartsfield.Jackson.Intl.AP.722190_TMY3.epw",
Expand All @@ -26,9 +26,9 @@
"verification_class": "SupplyAirTempReset"
},
{
"no": 2,
"verification_case_id": 2,
"run_simulation": false,
"simulation_IO": {
"verification_properties": {
"idf": "./test_cases/doe_prototype_cases/ASHRAE901_Hospital_STD2019_Atlanta.idf",
"idd": "./resources/Energy+V9_0_1.idd",
"weather": "./weather/USA_GA_Atlanta-Hartsfield.Jackson.Intl.AP.722190_TMY3.epw",
Expand All @@ -51,9 +51,9 @@
"verification_class": "SupplyAirTempReset"
},
{
"no": 3,
"verification_case_id": 3,
"run_simulation": false,
"simulation_IO": {
"verification_properties": {
"idf": "./test_cases/doe_prototype_cases/ASHRAE901_Hospital_STD2019_Atlanta.idf",
"idd": "./resources/Energy+V9_0_1.idd",
"weather": "./weather/USA_GA_Atlanta-Hartsfield.Jackson.Intl.AP.722190_TMY3.epw",
Expand Down
2 changes: 1 addition & 1 deletion constrain/demo/brick_demo/brick_workflow.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"Parameters": {
"verification_item_lib_name": "ZoneTempControl",
"energyplus_naming_assembly": false,
"default_verification_case_values": "{'run_simulation': False, 'simulation_IO': {'idf': 'EnergyPlus_data', 'idd': './resources/Energy+V9_0_1.idd', 'weather': './weather/USA_GA_Atlanta-Hartsfield.Jackson.Intl.AP.722190_TMY3.epw', 'output': './demo/brick_demo/brick_dataset/data_file.csv', 'ep_path': 'C:\\\\\\\\EnergyPlusV9-0-1\\\\\\\\energyplus.exe'}, 'expected_result': 'pass', 'parameters': {}}"},
"default_verification_case_values": "{'run_simulation': False, 'verification_properties': {'idf': 'EnergyPlus_data', 'idd': './resources/Energy+V9_0_1.idd', 'weather': './weather/USA_GA_Atlanta-Hartsfield.Jackson.Intl.AP.722190_TMY3.epw', 'output': './demo/brick_demo/brick_dataset/data_file.csv', 'ep_path': 'C:\\\\\\\\EnergyPlusV9-0-1\\\\\\\\energyplus.exe'}, 'expected_result': 'pass', 'parameters': {}}"},
"Payloads": {"query_result": "$"},
"Next": "instantiate verification case"
},
Expand Down
44 changes: 22 additions & 22 deletions constrain/demo/library_item_demo/LibraryShowCases.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@
{
"data": {
"text/plain": [
"{'no': 1,\n",
"{'verification_case_id': 1,\n",
" 'run_simulation': False,\n",
" 'simulation_IO': {'output': 'ASHRAE901_RetailStandalone_STD2019_Seattle.csv'},\n",
" 'verification_properties': {'output': 'ASHRAE901_RetailStandalone_STD2019_Seattle.csv'},\n",
" 'datapoints_source': {'idf_output_variables': {'oa_flow': 'PSZ-AC:1_OAINLET NODE:System Node Standard Density Volume Flow Rate [m3/s](Each Call)',\n",
" 'ccoil_out': 'PSZ-AC:1:Air System Cooling Coil Total Cooling Energy [J](Each Call)'},\n",
" 'parameters': {'oa_min_flow': 0.23157}},\n",
Expand Down Expand Up @@ -175,9 +175,9 @@
{
"data": {
"text/plain": [
"{'no': 5,\n",
"{'verification_case_id': 5,\n",
" 'run_simulation': False,\n",
" 'simulation_IO': {'output': 'ASHRAE901_OfficeLarge_STD2019_Seattle.csv'},\n",
" 'verification_properties': {'output': 'ASHRAE901_OfficeLarge_STD2019_Seattle.csv'},\n",
" 'datapoints_source': {'idf_output_variables': {'T_sa_set': 'VAV_BOT WITH REHEAT SUPPLY EQUIPMENT OUTLET NODE:System Node Setpoint Temperature [C](Each Call)'},\n",
" 'parameters': {'T_z_coo': 24.0}},\n",
" 'verification_class': 'SupplyAirTempReset',\n",
Expand Down Expand Up @@ -281,9 +281,9 @@
{
"data": {
"text/plain": [
"{'no': 14,\n",
"{'verification_case_id': 14,\n",
" 'run_simulation': False,\n",
" 'simulation_IO': {'output': 'ASHRAE901_OfficeLarge_STD2004_Seattle.csv'},\n",
" 'verification_properties': {'output': 'ASHRAE901_OfficeLarge_STD2004_Seattle.csv'},\n",
" 'datapoints_source': {'idf_output_variables': {'T_sa_set': 'VAV_BOT WITH REHEAT SUPPLY EQUIPMENT OUTLET NODE:System Node Setpoint Temperature [C](Each Call)'},\n",
" 'parameters': {'T_z_coo': 24.0}},\n",
" 'verification_class': 'SupplyAirTempReset',\n",
Expand Down Expand Up @@ -385,9 +385,9 @@
{
"data": {
"text/plain": [
"{'no': 6,\n",
"{'verification_case_id': 6,\n",
" 'run_simulation': False,\n",
" 'simulation_IO': {'output': 'ASHRAE901_RetailStandalone_STD2019_NewYork_a.csv'},\n",
" 'verification_properties': {'output': 'ASHRAE901_RetailStandalone_STD2019_NewYork_a.csv'},\n",
" 'datapoints_source': {'idf_output_variables': {'oa_flow': 'PSZ-AC:1_OAInlet Node:System Node Standard Density Volume Flow Rate [m3/s](TimeStep)',\n",
" 'oa_db': 'Environment:Site Outdoor Air Drybulb Temperature [C](TimeStep)'},\n",
" 'parameters': {'oa_min_flow': 0.23157, 'oa_threshold': 25.0}},\n",
Expand Down Expand Up @@ -479,9 +479,9 @@
{
"data": {
"text/plain": [
"{'no': 7,\n",
"{'verification_case_id': 7,\n",
" 'run_simulation': False,\n",
" 'simulation_IO': {'output': 'ASHRAE901_RetailStandalone_STD2019_NewYork_b.csv'},\n",
" 'verification_properties': {'output': 'ASHRAE901_RetailStandalone_STD2019_NewYork_b.csv'},\n",
" 'datapoints_source': {'idf_output_variables': {'oa_flow': 'PSZ-AC:1_OAInlet Node:System Node Standard Density Volume Flow Rate [m3/s](TimeStep)',\n",
" 'oa_db': 'Environment:Site Outdoor Air Drybulb Temperature [C](TimeStep)',\n",
" 'ret_a_temp': 'PSZ-AC:1 Supply Equipment Inlet Node:System Node Temperature [C](TimeStep)'},\n",
Expand Down Expand Up @@ -573,9 +573,9 @@
{
"data": {
"text/plain": [
"{'no': 8,\n",
"{'verification_case_id': 8,\n",
" 'run_simulation': False,\n",
" 'simulation_IO': {'output': 'ASHRAE901_RetailStandalone_STD2019_NewYork_c.csv'},\n",
" 'verification_properties': {'output': 'ASHRAE901_RetailStandalone_STD2019_NewYork_c.csv'},\n",
" 'datapoints_source': {'idf_output_variables': {'oa_flow': 'PSZ-AC:1_OAInlet Node:System Node Standard Density Volume Flow Rate [m3/s](TimeStep)',\n",
" 'oa_db': 'Environment:Site Outdoor Air Drybulb Temperature [C](TimeStep)',\n",
" 'oa_enth': 'Environment:Site Outdoor Air Enthalpy [J/kg](TimeStep)'},\n",
Expand Down Expand Up @@ -674,9 +674,9 @@
{
"data": {
"text/plain": [
"{'no': 9,\n",
"{'verification_case_id': 9,\n",
" 'run_simulation': False,\n",
" 'simulation_IO': {'output': 'ASHRAE901_RetailStandalone_STD2019_NewYork_d.csv'},\n",
" 'verification_properties': {'output': 'ASHRAE901_RetailStandalone_STD2019_NewYork_d.csv'},\n",
" 'datapoints_source': {'idf_output_variables': {'oa_flow': 'PSZ-AC:1_OAInlet Node:System Node Standard Density Volume Flow Rate [m3/s](TimeStep)',\n",
" 'oa_db': 'Environment:Site Outdoor Air Drybulb Temperature [C](TimeStep)',\n",
" 'ret_a_enth': 'PSZ-AC:1 SUPPLY EQUIPMENT INLET NODE:System Node Enthalpy [J/kg](TimeStep)',\n",
Expand Down Expand Up @@ -774,9 +774,9 @@
{
"data": {
"text/plain": [
"{'no': 10,\n",
"{'verification_case_id': 10,\n",
" 'run_simulation': False,\n",
" 'simulation_IO': {'output': 'ASHRAE901_RetailStandalone_STD2019_NewYork_zonetempctrl.csv'},\n",
" 'verification_properties': {'output': 'ASHRAE901_RetailStandalone_STD2019_NewYork_zonetempctrl.csv'},\n",
" 'datapoints_source': {'idf_output_variables': {'T_z_set_cool': 'CORE_RETAIL:Zone Thermostat Cooling Setpoint Temperature [C](Each Call)',\n",
" 'T_z_set_heat': 'CORE_RETAIL:Zone Thermostat Heating Setpoint Temperature [C](Each Call)'}},\n",
" 'verification_class': 'ZoneTempControl',\n",
Expand Down Expand Up @@ -864,9 +864,9 @@
{
"data": {
"text/plain": [
"{'no': 11,\n",
"{'verification_case_id': 11,\n",
" 'run_simulation': False,\n",
" 'simulation_IO': {'output': 'ASHRAE901_Hospital_STD2019_Atlanta.csv'},\n",
" 'verification_properties': {'output': 'ASHRAE901_Hospital_STD2019_Atlanta.csv'},\n",
" 'datapoints_source': {'idf_output_variables': {'T_oa_db': 'Environment:Site Outdoor Air Drybulb Temperature [C](TimeStep)',\n",
" 'T_hw': 'HeatSys1 Supply Outlet Node:System Node Temperature [C](TimeStep)',\n",
" 'm_hw': 'HeatSys1 Supply Outlet Node:System Node Mass Flow Rate [kg/s](TimeStep)'},\n",
Expand Down Expand Up @@ -967,9 +967,9 @@
{
"data": {
"text/plain": [
"{'no': 12,\n",
"{'verification_case_id': 12,\n",
" 'run_simulation': False,\n",
" 'simulation_IO': {'output': 'ASHRAE901_Hospital_STD2019_Atlanta.csv'},\n",
" 'verification_properties': {'output': 'ASHRAE901_Hospital_STD2019_Atlanta.csv'},\n",
" 'datapoints_source': {'idf_output_variables': {'T_oa_db': 'Environment:Site Outdoor Air Drybulb Temperature [C](TimeStep)',\n",
" 'T_chw': 'CoolSys1 Supply Outlet Node:System Node Temperature [C](TimeStep)',\n",
" 'm_chw': 'CoolSys1 Supply Outlet Node:System Node Mass Flow Rate [kg/s](TimeStep)'},\n",
Expand Down Expand Up @@ -1070,9 +1070,9 @@
{
"data": {
"text/plain": [
"{'no': 13,\n",
"{'verification_case_id': 13,\n",
" 'run_simulation': True,\n",
" 'simulation_IO': {'idf': '../resources/ASHRAE901_RetailStandalone_STD2019_Seattle.idf',\n",
" 'verification_properties': {'idf': '../resources/ASHRAE901_RetailStandalone_STD2019_Seattle.idf',\n",
" 'idd': '../resources/Energy+V9_0_1.idd',\n",
" 'weather': '../weather/USA_WA_Seattle-Tacoma.Intl.AP.727930_TMY3.epw',\n",
" 'output': 'eplusout.csv'},\n",
Expand Down
Loading
Loading