Commit 95e9e4ab authored by Hines, Jesse's avatar Hines, Jesse
Browse files

Fix cooling disabled sims

parent 2d513cad
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ const columns = [
  "Rack Return Temperature (°C)",
];

export function CDUList({ metrics }: { metrics: CoolingCDU[] }) {
export function CDUList({ metrics = []}: { metrics?: CoolingCDU[] }) {
  return (
    <div className="col-start-1 col-end-8 row-start-4">
      <ConsoleHeader>Power and Temperature</ConsoleHeader>
@@ -43,31 +43,31 @@ export function CDUList({ metrics }: { metrics: CoolingCDU[] }) {
              {index + 1}
            </div>
            <div className="border-r-2 border-neutral-400 text-green-600 dark:border-neutral-900 dark:text-green-500">
              {cdu.rack_1_power.toFixed(1)}
              {cdu.rack_1_power?.toFixed(1)}
            </div>
            <div className="border-r-2 border-neutral-400 text-green-600 dark:border-neutral-900 dark:text-green-500">
              {cdu.rack_2_power.toFixed(1)}
              {cdu.rack_2_power?.toFixed(1)}
            </div>
            <div className="border-r-2 border-neutral-400 text-green-600 dark:border-neutral-900 dark:text-green-500">
              {cdu.rack_3_power.toFixed(1)}
              {cdu.rack_3_power?.toFixed(1)}
            </div>
            <div className="border-r-2 border-neutral-400 text-green-600 dark:border-neutral-900 dark:text-green-500">
              {cdu.total_power.toFixed(1)}
              {cdu.total_power?.toFixed(1)}
            </div>
            <div className="border-r-2 border-neutral-400 text-green-600 dark:border-neutral-900 dark:text-green-500">
              {cdu.total_loss.toFixed(1)}
              {cdu.total_loss?.toFixed(1)}
            </div>
            <div className="border-r-2 border-neutral-400 text-blue-500 dark:border-neutral-900">
              {cdu.facility_supply_temp.toFixed(1)}
              {cdu.facility_supply_temp?.toFixed(1)}
            </div>
            <div className="border-r-2 border-neutral-400 text-red-500 dark:border-neutral-900">
              {cdu.facility_return_temp.toFixed(1)}
              {cdu.facility_return_temp?.toFixed(1)}
            </div>
            <div className="border-r-2 border-neutral-400 text-blue-500 dark:border-neutral-900">
              {cdu.rack_supply_temp.toFixed(1)}
              {cdu.rack_supply_temp?.toFixed(1)}
            </div>
            <div className=" text-red-500">
              {cdu.rack_return_temp.toFixed(1)}
              {cdu.rack_return_temp?.toFixed(1)}
            </div>
          </div>
        ))}
+2 −2
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ import { CoolingCEP } from "../../../models/CoolingCEP.model";
import { ConsoleHeader } from "../../shared/simulation/consoleHeader";
import { sumBy } from "lodash"

export function Power({ cdus, cep }: { cdus: CoolingCDU[], cep: CoolingCEP }) {
export function Power({ cdus = [], cep }: { cdus?: CoolingCDU[], cep?: CoolingCEP }) {
  const total_power = sumBy(cdus, c => c.total_power)
  const total_loss = sumBy(cdus, c => c.total_loss)
  return (
@@ -32,7 +32,7 @@ export function Power({ cdus, cep }: { cdus: CoolingCDU[], cep: CoolingCEP }) {
          {((total_loss / total_power) * 100).toFixed(2)}%
        </span>
        <span className="border-2 border-l-0 border-t-0 border-neutral-400 dark:border-neutral-900">
          {cep.pue_output.toFixed(2)}
          {(cep?.pue_output ?? 0).toFixed(2)}
        </span>
      </div>
    </div>
+9 −18
Original line number Diff line number Diff line
import { CoolingCDU } from "../../../models/CoolingCDU.model";
import { ConsoleHeader } from "../../shared/simulation/consoleHeader";
import { sumBy } from "lodash"

const statistics = [
  {
    name: "Work Done by CDUPs (kW)",
    value: (metrics: CoolingCDU[]) =>
      (metrics?.reduce((prev, curr) => prev + curr.work_done_by_cdup, 0) ?? 0) /
      25,
      sumBy(metrics, d => d.work_done_by_cdup ?? 0) / 25
  },
  {
    name: "Facility Supply Pressure (psig)",
    value: (metrics: CoolingCDU[]) =>
      (metrics?.reduce(
        (prev, curr) => prev + curr.facility_supply_pressure,
        0,
      ) ?? 0) / 25,
      sumBy(metrics, d => d.facility_supply_pressure ?? 0) / 25,
  },
  {
    name: "Facility Return Pressure (psig)",
    value: (metrics: CoolingCDU[]) =>
      (metrics?.reduce(
        (prev, curr) => prev + curr.facility_return_pressure,
        0,
      ) ?? 0) / 25,
      sumBy(metrics, d => d.facility_return_pressure ?? 0) / 25,
  },
  {
    name: "Facility Flowrate (gpm)",
    value: (metrics: CoolingCDU[]) =>
      (metrics?.reduce((prev, curr) => prev + curr.facility_flowrate, 0) ?? 0) /
      25,
      sumBy(metrics, d => d.facility_flowrate ?? 0) / 25,
  },
  {
    name: "Rack Supply Pressure (psig)",
    value: (metrics: CoolingCDU[]) =>
      (metrics?.reduce((prev, curr) => prev + curr.rack_supply_pressure, 0) ??
        0) / 25,
      sumBy(metrics, d => d.rack_supply_pressure ?? 0) / 25,
  },
  {
    name: "Rack Return Pressure (psig)",
    value: (metrics: CoolingCDU[]) =>
      (metrics?.reduce((prev, curr) => prev + curr.rack_return_pressure, 0) ??
        0) / 25,
      sumBy(metrics, d => d.rack_return_pressure ?? 0) / 25,
  },
  {
    name: "Rack Flowrate (gpm)",
    value: (metrics: CoolingCDU[]) =>
      (metrics?.reduce((prev, curr) => prev + curr.rack_flowrate, 0) ?? 0) / 25,
      sumBy(metrics, d => d.rack_flowrate ?? 0) / 25,
  },
];

export function PressureFlowRate({ metrics }: { metrics: CoolingCDU[] }) {
export function PressureFlowRate({ metrics = [] }: { metrics?: CoolingCDU[] }) {
  return (
    <div className="col-start-1 col-end-8 row-start-2 row-end-4">
      <ConsoleHeader>Pressure and Flow Rates</ConsoleHeader>
+11 −11
Original line number Diff line number Diff line
@@ -12,15 +12,15 @@ export interface CoolingCDU {
  rack_3_loss: number;
  total_loss: number;

  work_done_by_cdup: number;
  rack_return_temp: number;
  rack_supply_temp: number;
  rack_supply_pressure: number;
  rack_return_pressure: number;
  rack_flowrate: number;
  facility_return_temp: number;
  facility_supply_temp: number;
  facility_supply_pressure: number;
  facility_return_pressure: number;
  facility_flowrate: number;
  work_done_by_cdup?: number;
  rack_return_temp?: number;
  rack_supply_temp?: number;
  rack_supply_pressure?: number;
  rack_return_pressure?: number;
  rack_flowrate?: number;
  facility_return_temp?: number;
  facility_supply_temp?: number;
  facility_supply_pressure?: number;
  facility_return_pressure?: number;
  facility_flowrate?: number;
}
+10 −10
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ function SimulationConsoleView() {
    summarize: !currentTimestamp,
  })
  
  const { data: cdus } = useReplay({
  const { data: cdus, isLoading: cdusIsLoading } = useReplay({
    sim: sim,
    query: (params) => simulationCoolingCDUQueryOptions(simulationId, params),
    timestamp: currentTimestamp,
@@ -42,7 +42,7 @@ function SimulationConsoleView() {
    summarize: !currentTimestamp,
  })
  
  const { data: cep } = useReplay({
  const { data: cep, isLoading: cepIsLoading } = useReplay({
    sim: sim,
    query: (params) => simulationCoolingCEPQueryOptions(simulationId, params),
    timestamp: currentTimestamp,
@@ -50,7 +50,7 @@ function SimulationConsoleView() {
    summarize: !currentTimestamp,
  })

  const { data: jobs } = useJobReplay({
  const { data: jobs, isLoading: jobsIsLoading } = useJobReplay({
    sim: sim,
    timestamp: currentTimestamp,
    stepInterval: search.playbackInterval,
@@ -62,17 +62,17 @@ function SimulationConsoleView() {
      {(sim && sim.progress_date == sim.start) ? (
        <Message>No data available {sim.state == 'running' ? 'yet' : ''}</Message>
      ) : (<>
        {cdus ? (
          <PressureFlowRate metrics={cdus.cdus} />
        {!cdusIsLoading ? (
          <PressureFlowRate metrics={cdus?.cdus} />
        ): (<LoadingSpinner/>)}
        {jobs ? (
        {!jobsIsLoading ? (
          <JobQueue jobs={jobs} />
        ) : (<LoadingSpinner/>)}
        {cdus ? (
          <CDUList metrics={cdus.cdus} />
        {!cdusIsLoading ? (
          <CDUList metrics={cdus?.cdus} />
        ) : (<LoadingSpinner/>)}
        {cdus && cep ? (
          <Power cdus={cdus.cdus} cep={cep}/>
        {!cdusIsLoading && !cepIsLoading ? (
          <Power cdus={cdus?.cdus} cep={cep}/>
        ) : (<LoadingSpinner/>)}
        {schedulerStatistics ? (
          <Scheduler statistics={schedulerStatistics} />
Loading