from ovf.core.GVFManager import GVFManager import numpy as np import logging def get_logger(): logger = logging.getLogger("gvf_worst_rms_error") logger.setLevel(logging.INFO) if not logger.hasHandlers(): ch = logging.StreamHandler() ch.setLevel(logging.INFO) formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') ch.setFormatter(formatter) logger.addHandler(ch) return logger logger = get_logger() gvf = GVFManager() gvf.load_from_datasets("examples/data/mlin.json",npoles_cplx=2,max_points=20,parameter_type="s",min_freqs=10e9,max_freqs=200e9) gvf.save("outputs/mlin_gvf_2pole_s.pkl") # gvf = GVFManager.load("outputs/mlin_gvf_2pole_s.pkl") max_rms_error_info = { "max_rms_error": 0.0, "max_rms_error_l1": 0.0, "max_rms_error_lmax": 0.0, "max_rms_error_geom": None, "max_rms_index": 0 } max_rms_error_l1_info = { "max_rms_error": 0.0, "max_rms_error_l1": 0.0, "max_rms_error_lmax": 0.0, "max_rms_error_geom": None, "max_rms_index": 0 } max_rms_error_lmax_info = { "max_rms_error": 0.0, "max_rms_error_l1": 0.0, "max_rms_error_lmax": 0.0, "max_rms_error_geom": None, "max_rms_index": 0 } for ds in gvf.datasets: rmse = ds.vf_manager.eigenval_rms_error[-1] rmse_l1 = ds.vf_manager.eigenval_rms_error_l1[-1] rmse_lmax = ds.vf_manager.eigenval_rms_error_lmax[-1] # logger.info(f"Dataset: {ds.geometries}, RMS Error: {rmse}, RMS Error L1: {rmse_l1}, RMS Error Lmax: {rmse_lmax}") logger.info( f'W={ds.geometries["W"]},L={ds.geometries["L"]},rms={rmse},rms_l1={rmse_l1},rms_lmax={rmse_lmax},id={ds.id}', ) if rmse > max_rms_error_info["max_rms_error"]: max_rms_error_info["max_rms_error"] = rmse max_rms_error_info["max_rms_error_l1"] = rmse_l1 max_rms_error_info["max_rms_error_lmax"] = rmse_lmax max_rms_error_info["max_rms_error_geom"] = ds.geometries max_rms_error_info["max_rms_index"] = ds.id if rmse_l1 > max_rms_error_l1_info["max_rms_error_l1"]: max_rms_error_l1_info["max_rms_error"] = rmse max_rms_error_l1_info["max_rms_error_l1"] = rmse_l1 max_rms_error_l1_info["max_rms_error_lmax"] = rmse_lmax max_rms_error_l1_info["max_rms_error_geom"] = ds.geometries max_rms_error_l1_info["max_rms_index"] = ds.id if rmse_lmax > max_rms_error_lmax_info["max_rms_error_lmax"]: max_rms_error_lmax_info["max_rms_error"] = rmse max_rms_error_lmax_info["max_rms_error_l1"] = rmse_l1 max_rms_error_lmax_info["max_rms_error_lmax"] = rmse_lmax max_rms_error_lmax_info["max_rms_error_geom"] = ds.geometries max_rms_error_lmax_info["max_rms_index"] = ds.id print(f"Maximum RMS error across datasets: {max_rms_error_info}") print(f"Geometry with maximum RMS error: {max_rms_error_info['max_rms_error_geom']}") print(f"Index of dataset with maximum RMS error: {max_rms_error_info['max_rms_index']}") print(f"Maximum RMS L1 error across datasets: {max_rms_error_l1_info}") print(f"Geometry with maximum RMS L1 error: {max_rms_error_l1_info['max_rms_error_geom']}") print(f"Index of dataset with maximum RMS L1 error: {max_rms_error_l1_info['max_rms_index']}") print(f"Maximum RMS Lmax error across datasets: {max_rms_error_lmax_info}") print(f"Geometry with maximum RMS Lmax error: {max_rms_error_lmax_info['max_rms_error_geom']}") print(f"Index of dataset with maximum RMS Lmax error: {max_rms_error_lmax_info['max_rms_index']}") gvf.plot_vf_responses_with_index("outputs/mlin_gvf_2pole_s_responses",int(max_rms_error_info['max_rms_index'])) gvf.plot_vf_responses_with_index("outputs/mlin_gvf_2pole_s_responses_l1",int(max_rms_error_l1_info['max_rms_index'])) gvf.plot_vf_responses_with_index("outputs/mlin_gvf_2pole_s_responses_lmax",int(max_rms_error_lmax_info['max_rms_index'])) gvf.plot_poles_in_2d("outputs/mlin_gvf_2pole_s_poles.html") gvf.plot_vf_responses_with_index("outputs/mlin_gvf_2pole_s_responses",1399)