Esempio n. 1
0
def show_table(log: Dict[str, Any], console: Console) -> None:
    """Generate a rich table from an optimization status and display it on the console.

    Parameters
    ----------
    log : Dict
        Dictionary read from a json log file containing a c3-toolset optimization status.
    console : Console
        Rich console for output.
    """
    opt_map = log["opt_map"]
    optim_status = log["optim_status"]
    units = log["units"]
    params = optim_status["params"]
    if "gradient" not in optim_status:
        grads = [0] * len(params)
    else:
        grads = optim_status["gradient"]
    table = Table(show_header=True, header_style="bold magenta")
    table.add_column("Parameter")
    table.add_column("Value", justify="right")
    table.add_column("Gradient", justify="right")
    for ii, equiv_ids in enumerate(opt_map):
        par = params[ii]
        par = num3str(par)
        par_id = equiv_ids[0]
        table.add_row(par_id, par + units[ii], num3str(grads[ii]) + units[ii])
        for par_id in equiv_ids[1:]:
            table.add_row(par_id, "''", "''")

    console.clear()
    print(
        f"Optimization reached {optim_status.pop('goal', -1):0.3g} at {optim_status.pop('time', 0)}\n"
    )
    console.print(table)
Esempio n. 2
0
def show_table():
    if log:
        opt_map = log["opt_map"]
        optim_status = log["optim_status"]
        units = log["units"]
        params = optim_status["params"]
        grads = optim_status["gradient"]

        table = Table(show_header=True, header_style="bold magenta")
        table.add_column("Parameter")
        table.add_column("Value", justify="right")
        table.add_column("Gradient", justify="right")
        for ii in range(len(opt_map)):
            equiv_ids = opt_map[ii]
            par = params[ii]
            grad = grads[ii]
            par = num3str(par)
            grad = num3str(grad)
            par_id = equiv_ids[0]
            nice_id = "-".join(par_id)
            table.add_row(nice_id, par + units[ii], grad + units[ii])
            if len(equiv_ids) > 1:
                for par_id in equiv_ids[1:]:
                    nice_id = "-".join(par_id)
                    table.add_row(nice_id, "''", "''")

        console.clear()
        print(
            f"Optimization reached {optim_status['goal']:0.3g} at {optim_status['time']}\n"
        )
        console.print(table)
Esempio n. 3
0
 def __str__(self):
     val = self.numpy()
     ret = ""
     for entry in np.nditer(val):
         if self.unit != "undefined":
             ret += num3str(entry) + self.unit + " "
         else:
             ret += num3str(entry, use_prefix=False) + " "
     return ret
Esempio n. 4
0
 def __str__(self):
     val = self.numpy()
     use_prefix = True
     if self.unit == "Hz 2pi":
         val = val / 2 / np.pi
     elif self.unit == "pi":
         val = val / np.pi
         use_prefix = False
     ret = ""
     for q in num3str(val, use_prefix):
         ret += q + self.unit + " "
     return ret
Esempio n. 5
0
 def __str__(self):
     val = self.numpy()
     ret = ""
     for entry in np.nditer(val):
         ret += num3str(entry) + self.unit + " "
     return ret
Esempio n. 6
0
    print("Logfile not found.")

if log:
    opt_map = log["opt_map"]
    optim_status = log["optim_status"]
    units = log["units"]
    params = optim_status["params"]
    grads = optim_status["gradient"]

    print(f"Optimization reached {optim_status['goal']:0.3g} at {optim_status['time']}\n")
    table = Table(show_header=True, header_style="bold magenta")
    table.add_column("Parameter")
    table.add_column("Value", justify="right")
    table.add_column("Gradient", justify="right")
    for ii in range(len(opt_map)):
        equiv_ids = opt_map[ii]
        par = params[ii]
        grad = grads[ii]
        par = num3str(par)
        grad = num3str(grad)
        par_id = equiv_ids[0]
        nice_id = "-".join(par_id)
        table.add_row(nice_id, par+units[ii], grad+units[ii])
        if len(equiv_ids) > 1:
            for par_id in equiv_ids[1:]:
                nice_id = "-".join(par_id)
                table.add_row(nice_id, "''", "''")

console = Console()
console.print(table)