From 7945997874b62e53e1a37fb17b676101182e51f7 Mon Sep 17 00:00:00 2001 From: SoundsSerious Date: Sat, 23 Aug 2025 17:18:20 -0400 Subject: [PATCH 1/2] Refactor project structure and update packaging - Removed legacy egg-info files and setup.py in favor of pyproject.toml for modern packaging. - Updated project version to 0.2.0 and adjusted dependencies in pyproject.toml. - Cleaned up test files and ensured compatibility with the latest dependencies. - Fixed minor formatting issues in test_costs.py. --- .github/workflows/build.yml | 47 +- .github/workflows/docs.yml | 32 +- .github/workflows/release.yml | 94 + .gitignore | 16 +- CLAUDE.md | 218 + .../engforge.analysis.Analysis.doctree | Bin 312067 -> 0 bytes .../_autosummary/engforge.analysis.doctree | Bin 7105 -> 0 bytes ...forge.analysis.make_reporter_check.doctree | Bin 4268 -> 0 bytes ...e.attr_dynamics.IntegratorInstance.doctree | Bin 29799 -> 0 bytes .../engforge.attr_dynamics.TRANSIENT.doctree | Bin 4176 -> 0 bytes .../engforge.attr_dynamics.Time.doctree | Bin 109155 -> 0 bytes .../engforge.attr_dynamics.doctree | Bin 7779 -> 0 bytes .../engforge.attr_plotting.PLOT.doctree | Bin 112627 -> 0 bytes .../engforge.attr_plotting.PlotBase.doctree | Bin 100391 -> 0 bytes ...ngforge.attr_plotting.PlotInstance.doctree | Bin 27193 -> 0 bytes .../engforge.attr_plotting.PlotLog.doctree | Bin 52486 -> 0 bytes ...gforge.attr_plotting.PlottingMixin.doctree | Bin 14476 -> 0 bytes .../engforge.attr_plotting.Trace.doctree | Bin 117289 -> 0 bytes ...gforge.attr_plotting.TraceInstance.doctree | Bin 27682 -> 0 bytes .../engforge.attr_plotting.conv_ctx.doctree | Bin 4135 -> 0 bytes .../engforge.attr_plotting.conv_maps.doctree | Bin 4148 -> 0 bytes .../engforge.attr_plotting.conv_theme.doctree | Bin 4171 -> 0 bytes .../engforge.attr_plotting.doctree | Bin 18910 -> 0 bytes ...orge.attr_plotting.install_seaborn.doctree | Bin 4832 -> 0 bytes ...r_plotting.save_all_figures_to_pdf.doctree | Bin 10986 -> 0 bytes .../engforge.attr_signals.Signal.doctree | Bin 93493 -> 0 bytes ...gforge.attr_signals.SignalInstance.doctree | Bin 23341 -> 0 bytes .../engforge.attr_signals.doctree | Bin 7002 -> 0 bytes .../engforge.attr_slots.Slot.doctree | Bin 109021 -> 0 bytes .../engforge.attr_slots.SlotLog.doctree | Bin 52048 -> 0 bytes .../_autosummary/engforge.attr_slots.doctree | Bin 6691 -> 0 bytes ...engforge.attr_solver.AttrSolverLog.doctree | Bin 53160 -> 0 bytes .../engforge.attr_solver.Solver.doctree | Bin 151093 -> 0 bytes ...ngforge.attr_solver.SolverInstance.doctree | Bin 29767 -> 0 bytes .../_autosummary/engforge.attr_solver.doctree | Bin 8064 -> 0 bytes .../engforge.attributes.ATTRLog.doctree | Bin 52046 -> 0 bytes .../engforge.attributes.ATTR_BASE.doctree | Bin 88318 -> 0 bytes ...forge.attributes.AttributeInstance.doctree | Bin 18235 -> 0 bytes .../_autosummary/engforge.attributes.doctree | Bin 8043 -> 0 bytes .../engforge.common.ForgeLog.doctree | Bin 51623 -> 0 bytes .../engforge.common.chunks.doctree | Bin 4484 -> 0 bytes .../_autosummary/engforge.common.doctree | Bin 10245 -> 0 bytes .../engforge.common.get_size.doctree | Bin 4802 -> 0 bytes .../engforge.common.inst_vectorize.doctree | Bin 10530 -> 0 bytes .../engforge.common.is_ec2_instance.doctree | Bin 4229 -> 0 bytes ...omponent_collections.ComponentDict.doctree | Bin 472112 -> 0 bytes ...omponent_collections.ComponentIter.doctree | Bin 447529 -> 0 bytes ...nent_collections.ComponentIterator.doctree | Bin 482309 -> 0 bytes ...ponent_collections.check_comp_type.doctree | Bin 5062 -> 0 bytes .../engforge.component_collections.doctree | Bin 13818 -> 0 bytes ...rge.component_collections.iter_tkn.doctree | Bin 5957 -> 0 bytes .../engforge.components.Component.doctree | Bin 424769 -> 0 bytes ...orge.components.SolveableInterface.doctree | Bin 295463 -> 0 bytes .../_autosummary/engforge.components.doctree | Bin 6349 -> 0 bytes .../engforge.configuration.ConfigLog.doctree | Bin 52806 -> 0 bytes ...gforge.configuration.Configuration.doctree | Bin 177095 -> 0 bytes ...forge.configuration.comp_transform.doctree | Bin 4128 -> 0 bytes .../engforge.configuration.conv_nms.doctree | Bin 3909 -> 0 bytes .../engforge.configuration.doctree | Bin 15817 -> 0 bytes .../engforge.configuration.forge.doctree | Bin 5234 -> 0 bytes .../engforge.configuration.meta.doctree | Bin 5434 -> 0 bytes ...forge.configuration.name_generator.doctree | Bin 4552 -> 0 bytes ...rge.configuration.property_changed.doctree | Bin 5132 -> 0 bytes ...onfiguration.signals_slots_handler.doctree | Bin 7223 -> 0 bytes .../engforge.dataframe.DataFrameLog.doctree | Bin 52705 -> 0 bytes .../engforge.dataframe.DataframeMixin.doctree | Bin 18695 -> 0 bytes .../engforge.dataframe.dataframe_prop.doctree | Bin 4240 -> 0 bytes ...forge.dataframe.dataframe_property.doctree | Bin 18906 -> 0 bytes ...engforge.dataframe.determine_split.doctree | Bin 5526 -> 0 bytes .../engforge.dataframe.df_prop.doctree | Bin 4170 -> 0 bytes .../_autosummary/engforge.dataframe.doctree | Bin 14674 -> 0 bytes .../engforge.dataframe.is_uniform.doctree | Bin 5010 -> 0 bytes .../engforge.dataframe.key_func.doctree | Bin 3874 -> 0 bytes ...engforge.dataframe.split_dataframe.doctree | Bin 6669 -> 0 bytes ...forge.datastores.data.DBConnection.doctree | Bin 83250 -> 0 bytes ...rge.datastores.data.DiskCacheStore.doctree | Bin 80515 -> 0 bytes ...datastores.data.addapt_numpy_array.doctree | Bin 4329 -> 0 bytes ...tastores.data.addapt_numpy_float32.doctree | Bin 4365 -> 0 bytes ...tastores.data.addapt_numpy_float64.doctree | Bin 4365 -> 0 bytes ...datastores.data.addapt_numpy_int32.doctree | Bin 4329 -> 0 bytes ...datastores.data.addapt_numpy_int64.doctree | Bin 4329 -> 0 bytes ...stores.data.autocorrelation_direct.doctree | Bin 4329 -> 0 bytes ...atastores.data.autocorrelation_fft.doctree | Bin 4290 -> 0 bytes ...astores.data.autocorrelation_numpy.doctree | Bin 4316 -> 0 bytes .../engforge.datastores.data.doctree | Bin 16393 -> 0 bytes ...gforge.datastores.data.nan_to_null.doctree | Bin 4188 -> 0 bytes .../_autosummary/engforge.datastores.doctree | Bin 6058 -> 0 bytes .../doctrees/_autosummary/engforge.doctree | Bin 37521 -> 0 bytes .../engforge.dynamics.DynamicsMixin.doctree | Bin 392423 -> 0 bytes .../engforge.dynamics.GlobalDynamics.doctree | Bin 405810 -> 0 bytes .../engforge.dynamics.INDEX_MAP.doctree | Bin 12390 -> 0 bytes .../_autosummary/engforge.dynamics.doctree | Bin 13108 -> 0 bytes .../engforge.dynamics.valid_mtx.doctree | Bin 4086 -> 0 bytes .../engforge.eng.costs.CostLog.doctree | Bin 51900 -> 0 bytes .../engforge.eng.costs.CostModel.doctree | Bin 352784 -> 0 bytes .../engforge.eng.costs.Economics.doctree | Bin 456236 -> 0 bytes .../engforge.eng.costs.cost_property.doctree | Bin 33125 -> 0 bytes .../_autosummary/engforge.eng.costs.doctree | Bin 22338 -> 0 bytes .../engforge.eng.costs.eval_slot_cost.doctree | Bin 7723 -> 0 bytes .../engforge.eng.costs.gend.doctree | Bin 4932 -> 0 bytes .../_autosummary/engforge.eng.doctree | Bin 12646 -> 0 bytes .../engforge.eng.fluid_material.Air.doctree | Bin 443632 -> 0 bytes ...rge.eng.fluid_material.AirWaterMix.doctree | Bin 463194 -> 0 bytes ...ng.fluid_material.CoolPropMaterial.doctree | Bin 460054 -> 0 bytes ...eng.fluid_material.CoolPropMixture.doctree | Bin 468824 -> 0 bytes ...e.eng.fluid_material.FluidMaterial.doctree | Bin 446642 -> 0 bytes ...gforge.eng.fluid_material.Hydrogen.doctree | Bin 449757 -> 0 bytes ...gforge.eng.fluid_material.IdealAir.doctree | Bin 439350 -> 0 bytes ...gforge.eng.fluid_material.IdealGas.doctree | Bin 438818 -> 0 bytes ...ngforge.eng.fluid_material.IdealH2.doctree | Bin 438161 -> 0 bytes ...rge.eng.fluid_material.IdealOxygen.doctree | Bin 442917 -> 0 bytes ...orge.eng.fluid_material.IdealSteam.doctree | Bin 441728 -> 0 bytes ...engforge.eng.fluid_material.Oxygen.doctree | Bin 447307 -> 0 bytes ...gforge.eng.fluid_material.SeaWater.doctree | Bin 449757 -> 0 bytes .../engforge.eng.fluid_material.Steam.doctree | Bin 446082 -> 0 bytes .../engforge.eng.fluid_material.Water.doctree | Bin 446082 -> 0 bytes .../engforge.eng.fluid_material.doctree | Bin 21334 -> 0 bytes .../engforge.eng.geometry.Circle.doctree | Bin 221129 -> 0 bytes .../engforge.eng.geometry.GeometryLog.doctree | Bin 52982 -> 0 bytes ...engforge.eng.geometry.HollowCircle.doctree | Bin 227673 -> 0 bytes ...orge.eng.geometry.ParametricSpline.doctree | Bin 12734 -> 0 bytes .../engforge.eng.geometry.Profile2D.doctree | Bin 220437 -> 0 bytes .../engforge.eng.geometry.Rectangle.doctree | Bin 224771 -> 0 bytes ...gforge.eng.geometry.ShapelySection.doctree | Bin 308742 -> 0 bytes .../engforge.eng.geometry.Triangle.doctree | Bin 224128 -> 0 bytes ...orge.eng.geometry.calculate_stress.doctree | Bin 9854 -> 0 bytes .../engforge.eng.geometry.conver_np.doctree | Bin 4139 -> 0 bytes .../engforge.eng.geometry.doctree | Bin 18411 -> 0 bytes ...ngforge.eng.geometry.get_mesh_size.doctree | Bin 4193 -> 0 bytes .../engforge.eng.pipes.FlowInput.doctree | Bin 437567 -> 0 bytes .../engforge.eng.pipes.FlowNode.doctree | Bin 434600 -> 0 bytes .../engforge.eng.pipes.Pipe.doctree | Bin 467931 -> 0 bytes .../engforge.eng.pipes.PipeFitting.doctree | Bin 463799 -> 0 bytes .../engforge.eng.pipes.PipeFlow.doctree | Bin 452189 -> 0 bytes .../engforge.eng.pipes.PipeLog.doctree | Bin 51900 -> 0 bytes .../engforge.eng.pipes.PipeNode.doctree | Bin 429966 -> 0 bytes .../engforge.eng.pipes.PipeSystem.doctree | Bin 515404 -> 0 bytes .../engforge.eng.pipes.Pump.doctree | Bin 429667 -> 0 bytes .../_autosummary/engforge.eng.pipes.doctree | Bin 17138 -> 0 bytes ...rge.eng.prediction.PredictionMixin.doctree | Bin 43902 -> 0 bytes .../engforge.eng.prediction.doctree | Bin 5415 -> 0 bytes ...orge.eng.solid_materials.ANSI_4130.doctree | Bin 227941 -> 0 bytes ...orge.eng.solid_materials.ANSI_4340.doctree | Bin 227941 -> 0 bytes ...forge.eng.solid_materials.Aluminum.doctree | Bin 227377 -> 0 bytes ...ge.eng.solid_materials.CarbonFiber.doctree | Bin 229053 -> 0 bytes ...forge.eng.solid_materials.Concrete.doctree | Bin 227352 -> 0 bytes ...gforge.eng.solid_materials.DrySoil.doctree | Bin 226735 -> 0 bytes .../engforge.eng.solid_materials.Rock.doctree | Bin 225104 -> 0 bytes ...ngforge.eng.solid_materials.Rubber.doctree | Bin 226203 -> 0 bytes ...ngforge.eng.solid_materials.SS_316.doctree | Bin 226270 -> 0 bytes ....eng.solid_materials.SolidMaterial.doctree | Bin 231517 -> 0 bytes ...gforge.eng.solid_materials.WetSoil.doctree | Bin 226720 -> 0 bytes .../engforge.eng.solid_materials.doctree | Bin 19872 -> 0 bytes .../engforge.eng.solid_materials.ih.doctree | Bin 4399 -> 0 bytes ...e.eng.solid_materials.random_color.doctree | Bin 4034 -> 0 bytes .../engforge.eng.structure_beams.Beam.doctree | Bin 661392 -> 0 bytes .../engforge.eng.structure_beams.doctree | Bin 7896 -> 0 bytes ...beams.rotation_matrix_from_vectors.doctree | Bin 5398 -> 0 bytes ...ng.thermodynamics.SimpleCompressor.doctree | Bin 447473 -> 0 bytes ...thermodynamics.SimpleHeatExchanger.doctree | Bin 456426 -> 0 bytes ...orge.eng.thermodynamics.SimplePump.doctree | Bin 447126 -> 0 bytes ...e.eng.thermodynamics.SimpleTurbine.doctree | Bin 443069 -> 0 bytes .../engforge.eng.thermodynamics.doctree | Bin 17459 -> 0 bytes ...orge.eng.thermodynamics.dp_he_core.doctree | Bin 5633 -> 0 bytes ....eng.thermodynamics.dp_he_entrance.doctree | Bin 5286 -> 0 bytes ...orge.eng.thermodynamics.dp_he_exit.doctree | Bin 5222 -> 0 bytes ...ng.thermodynamics.dp_he_gas_losses.doctree | Bin 5258 -> 0 bytes ...modynamics.fanning_friction_factor.doctree | Bin 4881 -> 0 bytes ...rge_attributes.AttributedBaseMixin.doctree | Bin 125276 -> 0 bytes ...gforge.engforge_attributes.EngAttr.doctree | Bin 53362 -> 0 bytes .../engforge.engforge_attributes.doctree | Bin 8304 -> 0 bytes ...forge_attributes.get_attributes_of.doctree | Bin 6547 -> 0 bytes .../engforge.env_var.EnvVariable.doctree | Bin 76442 -> 0 bytes .../_autosummary/engforge.env_var.doctree | Bin 9585 -> 0 bytes .../engforge.env_var.parse_bool.doctree | Bin 4987 -> 0 bytes .../engforge.locations.client_path.doctree | Bin 4725 -> 0 bytes .../_autosummary/engforge.locations.doctree | Bin 4918 -> 0 bytes .../_autosummary/engforge.logging.Log.doctree | Bin 50964 -> 0 bytes .../engforge.logging.LoggingMixin.doctree | Bin 54102 -> 0 bytes ...orge.logging.change_all_log_levels.doctree | Bin 7851 -> 0 bytes .../_autosummary/engforge.logging.doctree | Bin 9427 -> 0 bytes ...gforge.patterns.InputSingletonMeta.doctree | Bin 10908 -> 0 bytes .../engforge.patterns.Singleton.doctree | Bin 12777 -> 0 bytes .../engforge.patterns.SingletonMeta.doctree | Bin 10641 -> 0 bytes .../engforge.patterns.chunks.doctree | Bin 4512 -> 0 bytes .../_autosummary/engforge.patterns.doctree | Bin 13169 -> 0 bytes .../engforge.patterns.flat2gen.doctree | Bin 4081 -> 0 bytes .../engforge.patterns.flatten.doctree | Bin 4068 -> 0 bytes .../engforge.patterns.inst_vectorize.doctree | Bin 10566 -> 0 bytes ...rge.patterns.singleton_meta_object.doctree | Bin 5235 -> 0 bytes ...ge.problem_context.IllegalArgument.doctree | Bin 4487 -> 0 bytes .../engforge.problem_context.ProbLog.doctree | Bin 52778 -> 0 bytes .../engforge.problem_context.Problem.doctree | Bin 239669 -> 0 bytes ...gforge.problem_context.ProblemExec.doctree | Bin 237534 -> 0 bytes ...gforge.problem_context.ProblemExit.doctree | Bin 6947 -> 0 bytes ...problem_context.ProblemExitAtLevel.doctree | Bin 7773 -> 0 bytes .../engforge.problem_context.doctree | Bin 25475 -> 0 bytes .../engforge.properties.PropertyLog.doctree | Bin 52690 -> 0 bytes .../engforge.properties.cache_prop.doctree | Bin 19201 -> 0 bytes ...ngforge.properties.cached_sys_prop.doctree | Bin 4251 -> 0 bytes ...orge.properties.cached_system_prop.doctree | Bin 4281 -> 0 bytes ....properties.cached_system_property.doctree | Bin 28069 -> 0 bytes .../engforge.properties.class_cache.doctree | Bin 21832 -> 0 bytes .../_autosummary/engforge.properties.doctree | Bin 21540 -> 0 bytes .../engforge.properties.engforge_prop.doctree | Bin 19303 -> 0 bytes ...ngforge.properties.instance_cached.doctree | Bin 20871 -> 0 bytes .../engforge.properties.solver_cached.doctree | Bin 20813 -> 0 bytes .../engforge.properties.sys_prop.doctree | Bin 4179 -> 0 bytes .../engforge.properties.system_prop.doctree | Bin 4209 -> 0 bytes ...ngforge.properties.system_property.doctree | Bin 26095 -> 0 bytes .../engforge.reporting.CSVReporter.doctree | Bin 72489 -> 0 bytes ...ngforge.reporting.DiskPlotReporter.doctree | Bin 74558 -> 0 bytes ...gforge.reporting.DiskReporterMixin.doctree | Bin 73369 -> 0 bytes .../engforge.reporting.ExcelReporter.doctree | Bin 72933 -> 0 bytes .../engforge.reporting.GdriveReporter.doctree | Bin 70416 -> 0 bytes ...engforge.reporting.GsheetsReporter.doctree | Bin 66108 -> 0 bytes .../engforge.reporting.PlotReporter.doctree | Bin 61567 -> 0 bytes .../engforge.reporting.Reporter.doctree | Bin 60089 -> 0 bytes .../engforge.reporting.TableReporter.doctree | Bin 60856 -> 0 bytes ...ge.reporting.TemporalReporterMixin.doctree | Bin 67008 -> 0 bytes .../_autosummary/engforge.reporting.doctree | Bin 17542 -> 0 bytes ...rge.reporting.path_exist_validator.doctree | Bin 4591 -> 0 bytes .../engforge.solveable.SolvableLog.doctree | Bin 52544 -> 0 bytes .../engforge.solveable.SolveableMixin.doctree | Bin 200800 -> 0 bytes .../_autosummary/engforge.solveable.doctree | Bin 6259 -> 0 bytes .../engforge.solver.SolverLog.doctree | Bin 51784 -> 0 bytes .../engforge.solver.SolverMixin.doctree | Bin 238152 -> 0 bytes .../_autosummary/engforge.solver.doctree | Bin 11789 -> 0 bytes ...ngforge.solver_utils.SolverUtilLog.doctree | Bin 53306 -> 0 bytes ...forge.solver_utils.arg_var_compare.doctree | Bin 4382 -> 0 bytes ...engforge.solver_utils.combo_filter.doctree | Bin 6182 -> 0 bytes ...rge.solver_utils.create_constraint.doctree | Bin 8081 -> 0 bytes .../engforge.solver_utils.doctree | Bin 22543 -> 0 bytes ...engforge.solver_utils.ext_str_list.doctree | Bin 4839 -> 0 bytes .../engforge.solver_utils.f_lin_min.doctree | Bin 10452 -> 0 bytes .../engforge.solver_utils.filt_active.doctree | Bin 5209 -> 0 bytes ...ngforge.solver_utils.filter_combos.doctree | Bin 5255 -> 0 bytes .../engforge.solver_utils.filter_vals.doctree | Bin 4809 -> 0 bytes ...orge.solver_utils.handle_normalize.doctree | Bin 4570 -> 0 bytes .../engforge.solver_utils.objectify.doctree | Bin 6125 -> 0 bytes ...solver_utils.ref_to_val_constraint.doctree | Bin 7471 -> 0 bytes ...engforge.solver_utils.refmin_solve.doctree | Bin 11667 -> 0 bytes ...ngforge.solver_utils.secondary_obj.doctree | Bin 5949 -> 0 bytes .../engforge.solver_utils.str_list_f.doctree | Bin 5504 -> 0 bytes .../engforge.system.System.doctree | Bin 495443 -> 0 bytes .../engforge.system.SystemsLog.doctree | Bin 51945 -> 0 bytes .../_autosummary/engforge.system.doctree | Bin 19415 -> 0 bytes .../engforge.system_reference.Ref.doctree | Bin 32499 -> 0 bytes .../engforge.system_reference.RefLog.doctree | Bin 52763 -> 0 bytes .../engforge.system_reference.doctree | Bin 15678 -> 0 bytes ...engforge.system_reference.eval_ref.doctree | Bin 4756 -> 0 bytes ...e.system_reference.maybe_attr_inst.doctree | Bin 5138 -> 0 bytes ...ngforge.system_reference.maybe_ref.doctree | Bin 6782 -> 0 bytes ...gforge.system_reference.refset_get.doctree | Bin 4762 -> 0 bytes ...orge.system_reference.refset_input.doctree | Bin 6149 -> 0 bytes ...ngforge.system_reference.scale_val.doctree | Bin 6363 -> 0 bytes .../engforge.tabulation.TableLog.doctree | Bin 52207 -> 0 bytes ...ngforge.tabulation.TabulationMixin.doctree | Bin 234481 -> 0 bytes .../_autosummary/engforge.tabulation.doctree | Bin 6897 -> 0 bytes ...forge.typing.NUMERIC_NAN_VALIDATOR.doctree | Bin 3995 -> 0 bytes .../engforge.typing.NUMERIC_VALIDATOR.doctree | Bin 3941 -> 0 bytes .../engforge.typing.Options.doctree | Bin 5236 -> 0 bytes .../engforge.typing.STR_VALIDATOR.doctree | Bin 3889 -> 0 bytes .../_autosummary/engforge.typing.doctree | Bin 8361 -> 0 bytes .../_autosummary/examples.air_filter.doctree | Bin 8653 -> 0 bytes .../doctrees/_autosummary/examples.doctree | Bin 5672 -> 0 bytes .../_autosummary/examples.spring_mass.doctree | Bin 4988 -> 0 bytes .../_build/doctrees/_autosummary/test.doctree | Bin 17454 -> 0 bytes .../_autosummary/test.test_airfilter.doctree | Bin 6786 -> 0 bytes .../_autosummary/test.test_comp_iter.doctree | Bin 12703 -> 0 bytes .../test.test_composition.doctree | Bin 9301 -> 0 bytes .../_autosummary/test.test_costs.doctree | Bin 10990 -> 0 bytes .../_autosummary/test.test_dynamics.doctree | Bin 9408 -> 0 bytes .../test.test_dynamics_spaces.doctree | Bin 5155 -> 0 bytes .../_autosummary/test.test_four_bar.doctree | Bin 4928 -> 0 bytes .../_autosummary/test.test_modules.doctree | Bin 4906 -> 0 bytes .../test.test_performance.doctree | Bin 9333 -> 0 bytes .../_autosummary/test.test_pipes.doctree | Bin 4972 -> 0 bytes .../test.test_problem_deepscoping.doctree | Bin 12577 -> 0 bytes .../test.test_slider_crank.doctree | Bin 5128 -> 0 bytes .../_autosummary/test.test_solver.doctree | Bin 6396 -> 0 bytes .../_autosummary/test.test_tabulation.doctree | Bin 8769 -> 0 bytes docs/_build/doctrees/api.doctree | Bin 4866 -> 0 bytes docs/_build/doctrees/environment.pickle | Bin 4991909 -> 0 bytes docs/_build/doctrees/examples.doctree | Bin 5131 -> 0 bytes docs/_build/doctrees/index.doctree | Bin 4195664 -> 0 bytes docs/_build/doctrees/tests.doctree | Bin 5075 -> 0 bytes docs/_build/doctrees/tutorials.doctree | Bin 2582 -> 0 bytes docs/_build/html/.buildinfo | 4 - .../engforge.analysis.Analysis.html | 1109 -- .../html/_autosummary/engforge.analysis.html | 167 - ...engforge.analysis.make_reporter_check.html | 160 - ...orge.attr_dynamics.IntegratorInstance.html | 247 - .../engforge.attr_dynamics.TRANSIENT.html | 162 - .../engforge.attr_dynamics.Time.html | 458 - .../_autosummary/engforge.attr_dynamics.html | 166 - .../engforge.attr_plotting.PLOT.html | 495 - .../engforge.attr_plotting.PlotBase.html | 447 - .../engforge.attr_plotting.PlotInstance.html | 248 - .../engforge.attr_plotting.PlotLog.html | 332 - .../engforge.attr_plotting.PlottingMixin.html | 207 - .../engforge.attr_plotting.Trace.html | 503 - .../engforge.attr_plotting.TraceInstance.html | 250 - .../engforge.attr_plotting.conv_ctx.html | 170 - .../engforge.attr_plotting.conv_maps.html | 170 - .../engforge.attr_plotting.conv_theme.html | 170 - .../_autosummary/engforge.attr_plotting.html | 211 - ...ngforge.attr_plotting.install_seaborn.html | 170 - ...attr_plotting.save_all_figures_to_pdf.html | 189 - .../engforge.attr_signals.Signal.html | 414 - .../engforge.attr_signals.SignalInstance.html | 225 - .../_autosummary/engforge.attr_signals.html | 163 - .../engforge.attr_slots.Slot.html | 444 - .../engforge.attr_slots.SlotLog.html | 322 - .../_autosummary/engforge.attr_slots.html | 163 - .../engforge.attr_solver.AttrSolverLog.html | 323 - .../engforge.attr_solver.Solver.html | 584 - .../engforge.attr_solver.SolverInstance.html | 245 - .../_autosummary/engforge.attr_solver.html | 168 - .../engforge.attributes.ATTRLog.html | 323 - .../engforge.attributes.ATTR_BASE.html | 392 - ...engforge.attributes.AttributeInstance.html | 210 - .../_autosummary/engforge.attributes.html | 168 - .../engforge.common.ForgeLog.html | 325 - .../_autosummary/engforge.common.chunks.html | 164 - .../engforge.common.get_size.html | 164 - .../html/_autosummary/engforge.common.html | 180 - .../engforge.common.inst_vectorize.html | 176 - .../engforge.common.is_ec2_instance.html | 164 - ...e.component_collections.ComponentDict.html | 1581 -- ...e.component_collections.ComponentIter.html | 1505 -- ...mponent_collections.ComponentIterator.html | 1597 -- ...component_collections.check_comp_type.html | 164 - .../engforge.component_collections.html | 187 - ...gforge.component_collections.iter_tkn.html | 170 - .../engforge.components.Component.html | 1486 -- ...ngforge.components.SolveableInterface.html | 1036 -- .../_autosummary/engforge.components.html | 162 - .../engforge.configuration.ConfigLog.html | 329 - .../engforge.configuration.Configuration.html | 698 - ...engforge.configuration.comp_transform.html | 167 - .../engforge.configuration.conv_nms.html | 167 - .../engforge.configuration.forge.html | 171 - .../_autosummary/engforge.configuration.html | 195 - .../engforge.configuration.meta.html | 172 - ...engforge.configuration.name_generator.html | 168 - ...gforge.configuration.property_changed.html | 168 - ...e.configuration.signals_slots_handler.html | 169 - .../engforge.dataframe.DataFrameLog.html | 329 - .../engforge.dataframe.DataframeMixin.html | 214 - .../engforge.dataframe.dataframe_prop.html | 168 - ...engforge.dataframe.dataframe_property.html | 205 - .../engforge.dataframe.determine_split.html | 172 - .../engforge.dataframe.df_prop.html | 168 - .../html/_autosummary/engforge.dataframe.html | 197 - .../engforge.dataframe.is_uniform.html | 172 - .../engforge.dataframe.key_func.html | 167 - .../engforge.dataframe.split_dataframe.html | 179 - ...engforge.datastores.data.DBConnection.html | 423 - ...gforge.datastores.data.DiskCacheStore.html | 405 - ...ge.datastores.data.addapt_numpy_array.html | 170 - ....datastores.data.addapt_numpy_float32.html | 170 - ....datastores.data.addapt_numpy_float64.html | 170 - ...ge.datastores.data.addapt_numpy_int32.html | 170 - ...ge.datastores.data.addapt_numpy_int64.html | 170 - ...atastores.data.autocorrelation_direct.html | 170 - ...e.datastores.data.autocorrelation_fft.html | 170 - ...datastores.data.autocorrelation_numpy.html | 170 - .../engforge.datastores.data.html | 207 - .../engforge.datastores.data.nan_to_null.html | 170 - .../_autosummary/engforge.datastores.html | 160 - .../engforge.dynamics.DynamicsMixin.html | 1385 -- .../engforge.dynamics.GlobalDynamics.html | 1421 -- .../engforge.dynamics.INDEX_MAP.html | 196 - .../html/_autosummary/engforge.dynamics.html | 181 - .../engforge.dynamics.valid_mtx.html | 162 - .../engforge.eng.costs.CostLog.html | 334 - .../engforge.eng.costs.CostModel.html | 1231 -- .../engforge.eng.costs.Economics.html | 1588 -- .../engforge.eng.costs.cost_property.html | 249 - .../engforge.eng.costs.eval_slot_cost.html | 180 - .../_autosummary/engforge.eng.costs.gend.html | 177 - .../html/_autosummary/engforge.eng.costs.html | 218 - .../engforge.eng.fluid_material.Air.html | 1544 -- ...gforge.eng.fluid_material.AirWaterMix.html | 1568 -- ...e.eng.fluid_material.CoolPropMaterial.html | 1545 -- ...ge.eng.fluid_material.CoolPropMixture.html | 1569 -- ...orge.eng.fluid_material.FluidMaterial.html | 1530 -- .../engforge.eng.fluid_material.Hydrogen.html | 1544 -- .../engforge.eng.fluid_material.IdealAir.html | 1521 -- .../engforge.eng.fluid_material.IdealGas.html | 1519 -- .../engforge.eng.fluid_material.IdealH2.html | 1521 -- ...gforge.eng.fluid_material.IdealOxygen.html | 1521 -- ...ngforge.eng.fluid_material.IdealSteam.html | 1521 -- .../engforge.eng.fluid_material.Oxygen.html | 1544 -- .../engforge.eng.fluid_material.SeaWater.html | 1544 -- .../engforge.eng.fluid_material.Steam.html | 1544 -- .../engforge.eng.fluid_material.Water.html | 1544 -- .../engforge.eng.fluid_material.html | 225 - .../engforge.eng.geometry.Circle.html | 852 -- .../engforge.eng.geometry.GeometryLog.html | 339 - .../engforge.eng.geometry.HollowCircle.html | 859 -- ...ngforge.eng.geometry.ParametricSpline.html | 207 - .../engforge.eng.geometry.Profile2D.html | 845 -- .../engforge.eng.geometry.Rectangle.html | 856 -- .../engforge.eng.geometry.ShapelySection.html | 1047 -- .../engforge.eng.geometry.Triangle.html | 856 -- ...ngforge.eng.geometry.calculate_stress.html | 185 - .../engforge.eng.geometry.conver_np.html | 177 - .../engforge.eng.geometry.get_mesh_size.html | 177 - .../_autosummary/engforge.eng.geometry.html | 215 - .../html/_autosummary/engforge.eng.html | 185 - .../engforge.eng.pipes.FlowInput.html | 1534 -- .../engforge.eng.pipes.FlowNode.html | 1531 -- .../_autosummary/engforge.eng.pipes.Pipe.html | 1614 -- .../engforge.eng.pipes.PipeFitting.html | 1590 -- .../engforge.eng.pipes.PipeFlow.html | 1580 -- .../engforge.eng.pipes.PipeLog.html | 337 - .../engforge.eng.pipes.PipeNode.html | 1521 -- .../engforge.eng.pipes.PipeSystem.html | 1746 --- .../_autosummary/engforge.eng.pipes.Pump.html | 1541 -- .../html/_autosummary/engforge.eng.pipes.html | 213 - ...gforge.eng.prediction.PredictionMixin.html | 279 - .../_autosummary/engforge.eng.prediction.html | 170 - ...ngforge.eng.solid_materials.ANSI_4130.html | 820 - ...ngforge.eng.solid_materials.ANSI_4340.html | 820 - ...engforge.eng.solid_materials.Aluminum.html | 820 - ...forge.eng.solid_materials.CarbonFiber.html | 820 - ...engforge.eng.solid_materials.Concrete.html | 820 - .../engforge.eng.solid_materials.DrySoil.html | 820 - .../engforge.eng.solid_materials.Rock.html | 820 - .../engforge.eng.solid_materials.Rubber.html | 820 - .../engforge.eng.solid_materials.SS_316.html | 820 - ...rge.eng.solid_materials.SolidMaterial.html | 821 - .../engforge.eng.solid_materials.WetSoil.html | 820 - .../engforge.eng.solid_materials.html | 222 - .../engforge.eng.solid_materials.ih.html | 180 - ...orge.eng.solid_materials.random_color.html | 179 - .../engforge.eng.structure_beams.Beam.html | 2072 --- .../engforge.eng.structure_beams.html | 178 - ...re_beams.rotation_matrix_from_vectors.html | 174 - ...e.eng.thermodynamics.SimpleCompressor.html | 1509 -- ...ng.thermodynamics.SimpleHeatExchanger.html | 1518 -- ...ngforge.eng.thermodynamics.SimplePump.html | 1521 -- ...orge.eng.thermodynamics.SimpleTurbine.html | 1506 -- ...ngforge.eng.thermodynamics.dp_he_core.html | 186 - ...rge.eng.thermodynamics.dp_he_entrance.html | 182 - ...ngforge.eng.thermodynamics.dp_he_exit.html | 182 - ...e.eng.thermodynamics.dp_he_gas_losses.html | 182 - ...hermodynamics.fanning_friction_factor.html | 175 - .../engforge.eng.thermodynamics.html | 206 - ...gforge_attributes.AttributedBaseMixin.html | 533 - .../engforge.engforge_attributes.EngAttr.html | 323 - ...engforge_attributes.get_attributes_of.html | 166 - .../engforge.engforge_attributes.html | 171 - .../engforge.env_var.EnvVariable.html | 393 - .../html/_autosummary/engforge.env_var.html | 171 - .../engforge.env_var.parse_bool.html | 165 - docs/_build/html/_autosummary/engforge.html | 240 - .../engforge.locations.client_path.html | 159 - .../html/_autosummary/engforge.locations.html | 158 - .../_autosummary/engforge.logging.Log.html | 323 - .../engforge.logging.LoggingMixin.html | 324 - ...ngforge.logging.change_all_log_levels.html | 171 - .../html/_autosummary/engforge.logging.html | 171 - .../engforge.patterns.InputSingletonMeta.html | 197 - .../engforge.patterns.Singleton.html | 198 - .../engforge.patterns.SingletonMeta.html | 197 - .../engforge.patterns.chunks.html | 167 - .../engforge.patterns.flat2gen.html | 166 - .../engforge.patterns.flatten.html | 166 - .../html/_autosummary/engforge.patterns.html | 191 - .../engforge.patterns.inst_vectorize.html | 179 - ...gforge.patterns.singleton_meta_object.html | 172 - ...forge.problem_context.IllegalArgument.html | 165 - .../engforge.problem_context.ProbLog.html | 326 - .../engforge.problem_context.Problem.html | 866 -- .../engforge.problem_context.ProblemExec.html | 842 -- .../engforge.problem_context.ProblemExit.html | 173 - ...ge.problem_context.ProblemExitAtLevel.html | 174 - .../engforge.problem_context.html | 224 - .../engforge.properties.PropertyLog.html | 332 - .../engforge.properties.cache_prop.html | 214 - .../engforge.properties.cached_sys_prop.html | 171 - ...ngforge.properties.cached_system_prop.html | 171 - ...rge.properties.cached_system_property.html | 235 - .../engforge.properties.class_cache.html | 221 - .../engforge.properties.engforge_prop.html | 209 - .../_autosummary/engforge.properties.html | 206 - .../engforge.properties.instance_cached.html | 218 - .../engforge.properties.solver_cached.html | 218 - .../engforge.properties.sys_prop.html | 171 - .../engforge.properties.system_prop.html | 171 - .../engforge.properties.system_property.html | 232 - .../engforge.reporting.CSVReporter.html | 388 - .../engforge.reporting.DiskPlotReporter.html | 391 - .../engforge.reporting.DiskReporterMixin.html | 388 - .../engforge.reporting.ExcelReporter.html | 388 - .../engforge.reporting.GdriveReporter.html | 381 - .../engforge.reporting.GsheetsReporter.html | 372 - .../engforge.reporting.PlotReporter.html | 361 - .../engforge.reporting.Reporter.html | 358 - .../engforge.reporting.TableReporter.html | 358 - ...forge.reporting.TemporalReporterMixin.html | 373 - .../html/_autosummary/engforge.reporting.html | 204 - ...gforge.reporting.path_exist_validator.html | 169 - .../engforge.solveable.SolvableLog.html | 322 - .../engforge.solveable.SolveableMixin.html | 778 - .../html/_autosummary/engforge.solveable.html | 162 - .../engforge.solver.SolverLog.html | 322 - .../engforge.solver.SolverMixin.html | 892 -- .../html/_autosummary/engforge.solver.html | 180 - .../engforge.solver_utils.SolverUtilLog.html | 335 - ...engforge.solver_utils.arg_var_compare.html | 173 - .../engforge.solver_utils.combo_filter.html | 178 - ...gforge.solver_utils.create_constraint.html | 180 - .../engforge.solver_utils.ext_str_list.html | 173 - .../engforge.solver_utils.f_lin_min.html | 189 - .../engforge.solver_utils.filt_active.html | 173 - .../engforge.solver_utils.filter_combos.html | 173 - .../engforge.solver_utils.filter_vals.html | 173 - ...ngforge.solver_utils.handle_normalize.html | 173 - .../_autosummary/engforge.solver_utils.html | 219 - .../engforge.solver_utils.objectify.html | 174 - ...ge.solver_utils.ref_to_val_constraint.html | 174 - .../engforge.solver_utils.refmin_solve.html | 186 - .../engforge.solver_utils.secondary_obj.html | 174 - .../engforge.solver_utils.str_list_f.html | 178 - .../_autosummary/engforge.system.System.html | 1688 --- .../engforge.system.SystemsLog.html | 322 - .../html/_autosummary/engforge.system.html | 187 - .../engforge.system_reference.Ref.html | 244 - .../engforge.system_reference.RefLog.html | 328 - .../engforge.system_reference.eval_ref.html | 166 - .../engforge.system_reference.html | 194 - ...orge.system_reference.maybe_attr_inst.html | 167 - .../engforge.system_reference.maybe_ref.html | 167 - .../engforge.system_reference.refset_get.html | 166 - ...ngforge.system_reference.refset_input.html | 167 - .../engforge.system_reference.scale_val.html | 171 - .../engforge.tabulation.TableLog.html | 322 - .../engforge.tabulation.TabulationMixin.html | 879 -- .../_autosummary/engforge.tabulation.html | 165 - ...engforge.typing.NUMERIC_NAN_VALIDATOR.html | 162 - .../engforge.typing.NUMERIC_VALIDATOR.html | 162 - .../_autosummary/engforge.typing.Options.html | 167 - .../engforge.typing.STR_VALIDATOR.html | 160 - .../html/_autosummary/engforge.typing.html | 170 - .../_autosummary/examples.air_filter.html | 136 - docs/_build/html/_autosummary/examples.html | 129 - .../_autosummary/examples.spring_mass.html | 127 - docs/_build/html/_autosummary/test.html | 177 - .../_autosummary/test.test_airfilter.html | 143 - .../_autosummary/test.test_comp_iter.html | 157 - .../_autosummary/test.test_composition.html | 153 - .../html/_autosummary/test.test_costs.html | 154 - .../html/_autosummary/test.test_dynamics.html | 157 - .../test.test_dynamics_spaces.html | 139 - .../html/_autosummary/test.test_four_bar.html | 139 - .../html/_autosummary/test.test_modules.html | 139 - .../_autosummary/test.test_performance.html | 153 - .../html/_autosummary/test.test_pipes.html | 139 - .../test.test_problem_deepscoping.html | 162 - .../_autosummary/test.test_slider_crank.html | 139 - .../html/_autosummary/test.test_solver.html | 142 - .../_autosummary/test.test_tabulation.html | 148 - docs/_build/html/_config.yml | 3 - .../html/_modules/engforge/analysis.html | 410 - .../html/_modules/engforge/attr_dynamics.html | 344 - .../html/_modules/engforge/attr_plotting.html | 1009 -- .../html/_modules/engforge/attr_signals.html | 239 - .../html/_modules/engforge/attr_slots.html | 335 - .../html/_modules/engforge/attr_solver.html | 561 - .../html/_modules/engforge/attributes.html | 461 - .../_build/html/_modules/engforge/common.html | 199 - .../engforge/component_collections.html | 408 - .../html/_modules/engforge/components.html | 162 - .../html/_modules/engforge/configuration.html | 747 - .../html/_modules/engforge/dataframe.html | 310 - .../_modules/engforge/datastores/data.html | 677 - .../html/_modules/engforge/dynamics.html | 859 -- .../html/_modules/engforge/eng/costs.html | 965 -- .../_modules/engforge/eng/fluid_material.html | 406 - .../html/_modules/engforge/eng/geometry.html | 1097 -- .../html/_modules/engforge/eng/pipes.html | 1369 -- .../_modules/engforge/eng/prediction.html | 467 - .../engforge/eng/solid_materials.html | 592 - .../engforge/eng/structure_beams.html | 971 -- .../_modules/engforge/eng/thermodynamics.html | 408 - .../engforge/engforge_attributes.html | 494 - .../html/_modules/engforge/env_var.html | 341 - .../html/_modules/engforge/locations.html | 127 - .../html/_modules/engforge/logging.html | 442 - .../html/_modules/engforge/patterns.html | 594 - .../_modules/engforge/problem_context.html | 2034 --- .../html/_modules/engforge/properties.html | 635 - .../html/_modules/engforge/reporting.html | 739 - .../html/_modules/engforge/solveable.html | 1080 -- .../_build/html/_modules/engforge/solver.html | 450 - .../html/_modules/engforge/solver_utils.html | 840 -- .../_build/html/_modules/engforge/system.html | 255 - .../_modules/engforge/system_reference.html | 411 - .../html/_modules/engforge/tabulation.html | 383 - .../_build/html/_modules/engforge/typing.html | 209 - docs/_build/html/_modules/index.html | 143 - .../engforge.analysis.Analysis.rst.txt | 133 - ...forge.analysis.make_reporter_check.rst.txt | 6 - .../_autosummary/engforge.analysis.rst.txt | 40 - ...e.attr_dynamics.IntegratorInstance.rst.txt | 51 - .../engforge.attr_dynamics.TRANSIENT.rst.txt | 77 - .../engforge.attr_dynamics.Time.rst.txt | 77 - .../engforge.attr_dynamics.rst.txt | 34 - .../engforge.attr_plotting.PLOT.rst.txt | 85 - .../engforge.attr_plotting.PlotBase.rst.txt | 75 - ...ngforge.attr_plotting.PlotInstance.rst.txt | 44 - .../engforge.attr_plotting.PlotLog.rst.txt | 50 - ...gforge.attr_plotting.PlottingMixin.rst.txt | 33 - .../engforge.attr_plotting.Trace.rst.txt | 87 - ...gforge.attr_plotting.TraceInstance.rst.txt | 45 - .../engforge.attr_plotting.conv_ctx.rst.txt | 6 - .../engforge.attr_plotting.conv_maps.rst.txt | 6 - .../engforge.attr_plotting.conv_theme.rst.txt | 6 - ...orge.attr_plotting.install_seaborn.rst.txt | 6 - .../engforge.attr_plotting.rst.txt | 51 - ...r_plotting.save_all_figures_to_pdf.rst.txt | 6 - .../engforge.attr_signals.Signal.rst.txt | 72 - ...gforge.attr_signals.SignalInstance.rst.txt | 44 - .../engforge.attr_signals.rst.txt | 33 - .../engforge.attr_slots.Slot.rst.txt | 77 - .../engforge.attr_slots.SlotLog.rst.txt | 50 - .../_autosummary/engforge.attr_slots.rst.txt | 33 - ...engforge.attr_solver.AttrSolverLog.rst.txt | 50 - .../engforge.attr_solver.Solver.rst.txt | 85 - ...ngforge.attr_solver.SolverInstance.rst.txt | 48 - .../_autosummary/engforge.attr_solver.rst.txt | 34 - .../engforge.attributes.ATTRLog.rst.txt | 50 - .../engforge.attributes.ATTR_BASE.rst.txt | 69 - ...forge.attributes.AttributeInstance.rst.txt | 39 - .../_autosummary/engforge.attributes.rst.txt | 34 - .../engforge.common.ForgeLog.rst.txt | 50 - .../engforge.common.chunks.rst.txt | 6 - .../engforge.common.get_size.rst.txt | 6 - .../engforge.common.inst_vectorize.rst.txt | 24 - .../engforge.common.is_ec2_instance.rst.txt | 6 - .../_autosummary/engforge.common.rst.txt | 43 - ...omponent_collections.ComponentDict.rst.txt | 189 - ...omponent_collections.ComponentIter.rst.txt | 178 - ...nent_collections.ComponentIterator.rst.txt | 190 - ...ponent_collections.check_comp_type.rst.txt | 6 - ...rge.component_collections.iter_tkn.rst.txt | 24 - .../engforge.component_collections.rst.txt | 43 - .../engforge.components.Component.rst.txt | 173 - ...orge.components.SolveableInterface.rst.txt | 123 - .../_autosummary/engforge.components.rst.txt | 33 - .../engforge.configuration.ConfigLog.rst.txt | 50 - ...gforge.configuration.Configuration.rst.txt | 87 - ...forge.configuration.comp_transform.rst.txt | 6 - .../engforge.configuration.conv_nms.rst.txt | 6 - .../engforge.configuration.forge.rst.txt | 6 - .../engforge.configuration.meta.rst.txt | 6 - ...forge.configuration.name_generator.rst.txt | 6 - ...rge.configuration.property_changed.rst.txt | 6 - .../engforge.configuration.rst.txt | 47 - ...onfiguration.signals_slots_handler.rst.txt | 6 - .../engforge.dataframe.DataFrameLog.rst.txt | 50 - .../engforge.dataframe.DataframeMixin.rst.txt | 35 - .../engforge.dataframe.dataframe_prop.rst.txt | 34 - ...forge.dataframe.dataframe_property.rst.txt | 34 - ...engforge.dataframe.determine_split.rst.txt | 6 - .../engforge.dataframe.df_prop.rst.txt | 34 - .../engforge.dataframe.is_uniform.rst.txt | 6 - .../engforge.dataframe.key_func.rst.txt | 6 - .../_autosummary/engforge.dataframe.rst.txt | 47 - ...engforge.dataframe.split_dataframe.rst.txt | 6 - ...forge.datastores.data.DBConnection.rst.txt | 69 - ...rge.datastores.data.DiskCacheStore.rst.txt | 64 - ...datastores.data.addapt_numpy_array.rst.txt | 6 - ...tastores.data.addapt_numpy_float32.rst.txt | 6 - ...tastores.data.addapt_numpy_float64.rst.txt | 6 - ...datastores.data.addapt_numpy_int32.rst.txt | 6 - ...datastores.data.addapt_numpy_int64.rst.txt | 6 - ...stores.data.autocorrelation_direct.rst.txt | 6 - ...atastores.data.autocorrelation_fft.rst.txt | 6 - ...astores.data.autocorrelation_numpy.rst.txt | 6 - ...gforge.datastores.data.nan_to_null.rst.txt | 6 - .../engforge.datastores.data.rst.txt | 49 - .../_autosummary/engforge.datastores.rst.txt | 33 - .../engforge.dynamics.DynamicsMixin.rst.txt | 161 - .../engforge.dynamics.GlobalDynamics.rst.txt | 159 - .../engforge.dynamics.INDEX_MAP.rst.txt | 33 - .../_autosummary/engforge.dynamics.rst.txt | 42 - .../engforge.dynamics.valid_mtx.rst.txt | 6 - .../engforge.eng.costs.CostLog.rst.txt | 50 - .../engforge.eng.costs.CostModel.rst.txt | 144 - .../engforge.eng.costs.Economics.rst.txt | 190 - .../engforge.eng.costs.cost_property.rst.txt | 41 - .../engforge.eng.costs.eval_slot_cost.rst.txt | 6 - .../engforge.eng.costs.gend.rst.txt | 6 - .../_autosummary/engforge.eng.costs.rst.txt | 44 - .../engforge.eng.fluid_material.Air.rst.txt | 183 - ...rge.eng.fluid_material.AirWaterMix.rst.txt | 189 - ...ng.fluid_material.CoolPropMaterial.rst.txt | 183 - ...eng.fluid_material.CoolPropMixture.rst.txt | 189 - ...e.eng.fluid_material.FluidMaterial.rst.txt | 176 - ...gforge.eng.fluid_material.Hydrogen.rst.txt | 183 - ...gforge.eng.fluid_material.IdealAir.rst.txt | 177 - ...gforge.eng.fluid_material.IdealGas.rst.txt | 176 - ...ngforge.eng.fluid_material.IdealH2.rst.txt | 177 - ...rge.eng.fluid_material.IdealOxygen.rst.txt | 177 - ...orge.eng.fluid_material.IdealSteam.rst.txt | 177 - ...engforge.eng.fluid_material.Oxygen.rst.txt | 183 - ...gforge.eng.fluid_material.SeaWater.rst.txt | 183 - .../engforge.eng.fluid_material.Steam.rst.txt | 183 - .../engforge.eng.fluid_material.Water.rst.txt | 183 - .../engforge.eng.fluid_material.rst.txt | 46 - .../engforge.eng.geometry.Circle.rst.txt | 113 - .../engforge.eng.geometry.GeometryLog.rst.txt | 50 - ...engforge.eng.geometry.HollowCircle.rst.txt | 115 - ...orge.eng.geometry.ParametricSpline.rst.txt | 34 - .../engforge.eng.geometry.Profile2D.rst.txt | 112 - .../engforge.eng.geometry.Rectangle.rst.txt | 114 - ...gforge.eng.geometry.ShapelySection.rst.txt | 150 - .../engforge.eng.geometry.Triangle.rst.txt | 114 - ...orge.eng.geometry.calculate_stress.rst.txt | 6 - .../engforge.eng.geometry.conver_np.rst.txt | 6 - ...ngforge.eng.geometry.get_mesh_size.rst.txt | 6 - .../engforge.eng.geometry.rst.txt | 49 - .../engforge.eng.pipes.FlowInput.rst.txt | 183 - .../engforge.eng.pipes.FlowNode.rst.txt | 182 - .../engforge.eng.pipes.Pipe.rst.txt | 204 - .../engforge.eng.pipes.PipeFitting.rst.txt | 196 - .../engforge.eng.pipes.PipeFlow.rst.txt | 190 - .../engforge.eng.pipes.PipeLog.rst.txt | 50 - .../engforge.eng.pipes.PipeNode.rst.txt | 179 - .../engforge.eng.pipes.PipeSystem.rst.txt | 199 - .../engforge.eng.pipes.Pump.rst.txt | 178 - .../_autosummary/engforge.eng.pipes.rst.txt | 40 - ...rge.eng.prediction.PredictionMixin.rst.txt | 43 - .../engforge.eng.prediction.rst.txt | 32 - .../_autosummary/engforge.eng.rst.txt | 38 - ...orge.eng.solid_materials.ANSI_4130.rst.txt | 114 - ...orge.eng.solid_materials.ANSI_4340.rst.txt | 114 - ...forge.eng.solid_materials.Aluminum.rst.txt | 114 - ...ge.eng.solid_materials.CarbonFiber.rst.txt | 114 - ...forge.eng.solid_materials.Concrete.rst.txt | 114 - ...gforge.eng.solid_materials.DrySoil.rst.txt | 114 - .../engforge.eng.solid_materials.Rock.rst.txt | 114 - ...ngforge.eng.solid_materials.Rubber.rst.txt | 114 - ...ngforge.eng.solid_materials.SS_316.rst.txt | 114 - ....eng.solid_materials.SolidMaterial.rst.txt | 114 - ...gforge.eng.solid_materials.WetSoil.rst.txt | 114 - .../engforge.eng.solid_materials.ih.rst.txt | 6 - ...e.eng.solid_materials.random_color.rst.txt | 6 - .../engforge.eng.solid_materials.rst.txt | 51 - .../engforge.eng.structure_beams.Beam.rst.txt | 291 - ...beams.rotation_matrix_from_vectors.rst.txt | 6 - .../engforge.eng.structure_beams.rst.txt | 40 - ...ng.thermodynamics.SimpleCompressor.rst.txt | 177 - ...thermodynamics.SimpleHeatExchanger.rst.txt | 180 - ...orge.eng.thermodynamics.SimplePump.rst.txt | 181 - ...e.eng.thermodynamics.SimpleTurbine.rst.txt | 176 - ...orge.eng.thermodynamics.dp_he_core.rst.txt | 6 - ....eng.thermodynamics.dp_he_entrance.rst.txt | 6 - ...orge.eng.thermodynamics.dp_he_exit.rst.txt | 6 - ...ng.thermodynamics.dp_he_gas_losses.rst.txt | 6 - ...modynamics.fanning_friction_factor.rst.txt | 6 - .../engforge.eng.thermodynamics.rst.txt | 47 - ...rge_attributes.AttributedBaseMixin.rst.txt | 72 - ...gforge.engforge_attributes.EngAttr.rst.txt | 50 - ...forge_attributes.get_attributes_of.rst.txt | 6 - .../engforge.engforge_attributes.rst.txt | 41 - .../engforge.env_var.EnvVariable.rst.txt | 62 - .../engforge.env_var.parse_bool.rst.txt | 6 - .../_autosummary/engforge.env_var.rst.txt | 40 - .../engforge.locations.client_path.rst.txt | 6 - .../_autosummary/engforge.locations.rst.txt | 31 - .../_autosummary/engforge.logging.Log.rst.txt | 50 - .../engforge.logging.LoggingMixin.rst.txt | 50 - ...orge.logging.change_all_log_levels.rst.txt | 6 - .../_autosummary/engforge.logging.rst.txt | 41 - ...gforge.patterns.InputSingletonMeta.rst.txt | 25 - .../engforge.patterns.Singleton.rst.txt | 25 - .../engforge.patterns.SingletonMeta.rst.txt | 25 - .../engforge.patterns.chunks.rst.txt | 6 - .../engforge.patterns.flat2gen.rst.txt | 6 - .../engforge.patterns.flatten.rst.txt | 6 - .../engforge.patterns.inst_vectorize.rst.txt | 24 - .../_autosummary/engforge.patterns.rst.txt | 46 - ...rge.patterns.singleton_meta_object.rst.txt | 6 - ...ge.problem_context.IllegalArgument.rst.txt | 6 - .../engforge.problem_context.ProbLog.rst.txt | 50 - .../engforge.problem_context.Problem.rst.txt | 146 - ...gforge.problem_context.ProblemExec.rst.txt | 141 - ...gforge.problem_context.ProblemExit.rst.txt | 6 - ...problem_context.ProblemExitAtLevel.rst.txt | 6 - .../engforge.problem_context.rst.txt | 43 - .../engforge.properties.PropertyLog.rst.txt | 50 - .../engforge.properties.cache_prop.rst.txt | 36 - ...ngforge.properties.cached_sys_prop.rst.txt | 38 - ...orge.properties.cached_system_prop.rst.txt | 38 - ....properties.cached_system_property.rst.txt | 41 - .../engforge.properties.class_cache.rst.txt | 38 - .../engforge.properties.engforge_prop.rst.txt | 34 - ...ngforge.properties.instance_cached.rst.txt | 37 - .../_autosummary/engforge.properties.rst.txt | 43 - .../engforge.properties.solver_cached.rst.txt | 37 - .../engforge.properties.sys_prop.rst.txt | 38 - .../engforge.properties.system_prop.rst.txt | 38 - ...ngforge.properties.system_property.rst.txt | 38 - .../engforge.reporting.CSVReporter.rst.txt | 61 - ...ngforge.reporting.DiskPlotReporter.rst.txt | 62 - ...gforge.reporting.DiskReporterMixin.rst.txt | 61 - .../engforge.reporting.ExcelReporter.rst.txt | 61 - .../engforge.reporting.GdriveReporter.rst.txt | 59 - ...engforge.reporting.GsheetsReporter.rst.txt | 57 - .../engforge.reporting.PlotReporter.rst.txt | 55 - .../engforge.reporting.Reporter.rst.txt | 54 - .../engforge.reporting.TableReporter.rst.txt | 54 - ...ge.reporting.TemporalReporterMixin.rst.txt | 57 - ...rge.reporting.path_exist_validator.rst.txt | 6 - .../_autosummary/engforge.reporting.rst.txt | 49 - .../_sources/_autosummary/engforge.rst.txt | 59 - .../engforge.solveable.SolvableLog.rst.txt | 50 - .../engforge.solveable.SolveableMixin.rst.txt | 95 - .../_autosummary/engforge.solveable.rst.txt | 33 - .../engforge.solver.SolverLog.rst.txt | 50 - .../engforge.solver.SolverMixin.rst.txt | 101 - .../_autosummary/engforge.solver.rst.txt | 33 - ...ngforge.solver_utils.SolverUtilLog.rst.txt | 50 - ...forge.solver_utils.arg_var_compare.rst.txt | 6 - ...engforge.solver_utils.combo_filter.rst.txt | 6 - ...rge.solver_utils.create_constraint.rst.txt | 6 - ...engforge.solver_utils.ext_str_list.rst.txt | 6 - .../engforge.solver_utils.f_lin_min.rst.txt | 6 - .../engforge.solver_utils.filt_active.rst.txt | 6 - ...ngforge.solver_utils.filter_combos.rst.txt | 6 - .../engforge.solver_utils.filter_vals.rst.txt | 6 - ...orge.solver_utils.handle_normalize.rst.txt | 6 - .../engforge.solver_utils.objectify.rst.txt | 6 - ...solver_utils.ref_to_val_constraint.rst.txt | 6 - ...engforge.solver_utils.refmin_solve.rst.txt | 6 - .../engforge.solver_utils.rst.txt | 53 - ...ngforge.solver_utils.secondary_obj.rst.txt | 6 - .../engforge.solver_utils.str_list_f.rst.txt | 6 - .../engforge.system.System.rst.txt | 190 - .../engforge.system.SystemsLog.rst.txt | 50 - .../_autosummary/engforge.system.rst.txt | 33 - .../engforge.system_reference.Ref.rst.txt | 44 - .../engforge.system_reference.RefLog.rst.txt | 50 - ...engforge.system_reference.eval_ref.rst.txt | 6 - ...e.system_reference.maybe_attr_inst.rst.txt | 6 - ...ngforge.system_reference.maybe_ref.rst.txt | 6 - ...gforge.system_reference.refset_get.rst.txt | 6 - ...orge.system_reference.refset_input.rst.txt | 6 - .../engforge.system_reference.rst.txt | 46 - ...ngforge.system_reference.scale_val.rst.txt | 6 - .../engforge.tabulation.TableLog.rst.txt | 50 - ...ngforge.tabulation.TabulationMixin.rst.txt | 118 - .../_autosummary/engforge.tabulation.rst.txt | 33 - ...forge.typing.NUMERIC_NAN_VALIDATOR.rst.txt | 6 - .../engforge.typing.NUMERIC_VALIDATOR.rst.txt | 6 - .../engforge.typing.Options.rst.txt | 6 - .../engforge.typing.STR_VALIDATOR.rst.txt | 6 - .../_autosummary/engforge.typing.rst.txt | 34 - .../_autosummary/examples.air_filter.rst.txt | 15 - .../_sources/_autosummary/examples.rst.txt | 14 - .../_autosummary/examples.spring_mass.rst.txt | 12 - .../html/_sources/_autosummary/test.rst.txt | 30 - .../_autosummary/test.test_airfilter.rst.txt | 13 - .../_autosummary/test.test_comp_iter.rst.txt | 18 - .../test.test_composition.rst.txt | 20 - .../_autosummary/test.test_costs.rst.txt | 16 - .../_autosummary/test.test_dynamics.rst.txt | 21 - .../test.test_dynamics_spaces.rst.txt | 12 - .../_autosummary/test.test_four_bar.rst.txt | 12 - .../_autosummary/test.test_modules.rst.txt | 12 - .../test.test_performance.rst.txt | 20 - .../_autosummary/test.test_pipes.rst.txt | 12 - .../test.test_problem_deepscoping.rst.txt | 23 - .../test.test_slider_crank.rst.txt | 12 - .../_autosummary/test.test_solver.rst.txt | 13 - .../_autosummary/test.test_tabulation.rst.txt | 15 - docs/_build/html/_sources/api.rst.txt | 12 - docs/_build/html/_sources/examples.rst.txt | 14 - docs/_build/html/_sources/index.rst.txt | 27 - docs/_build/html/_sources/tests.rst.txt | 14 - docs/_build/html/_sources/tutorials.rst.txt | 4 - .../_sphinx_javascript_frameworks_compat.js | 123 - docs/_build/html/_static/basic.css | 925 -- docs/_build/html/_static/css/badge_only.css | 1 - .../_static/css/fonts/Roboto-Slab-Bold.woff | Bin 87624 -> 0 bytes .../_static/css/fonts/Roboto-Slab-Bold.woff2 | Bin 67312 -> 0 bytes .../css/fonts/Roboto-Slab-Regular.woff | Bin 86288 -> 0 bytes .../css/fonts/Roboto-Slab-Regular.woff2 | Bin 66444 -> 0 bytes .../_static/css/fonts/fontawesome-webfont.eot | Bin 165742 -> 0 bytes .../_static/css/fonts/fontawesome-webfont.svg | 2671 ---- .../_static/css/fonts/fontawesome-webfont.ttf | Bin 165548 -> 0 bytes .../css/fonts/fontawesome-webfont.woff | Bin 98024 -> 0 bytes .../css/fonts/fontawesome-webfont.woff2 | Bin 77160 -> 0 bytes .../_static/css/fonts/lato-bold-italic.woff | Bin 323344 -> 0 bytes .../_static/css/fonts/lato-bold-italic.woff2 | Bin 193308 -> 0 bytes .../html/_static/css/fonts/lato-bold.woff | Bin 309728 -> 0 bytes .../html/_static/css/fonts/lato-bold.woff2 | Bin 184912 -> 0 bytes .../_static/css/fonts/lato-normal-italic.woff | Bin 328412 -> 0 bytes .../css/fonts/lato-normal-italic.woff2 | Bin 195704 -> 0 bytes .../html/_static/css/fonts/lato-normal.woff | Bin 309192 -> 0 bytes .../html/_static/css/fonts/lato-normal.woff2 | Bin 182708 -> 0 bytes docs/_build/html/_static/css/theme.css | 4 - docs/_build/html/_static/doctools.js | 156 - .../html/_static/documentation_options.js | 13 - docs/_build/html/_static/file.png | Bin 286 -> 0 bytes docs/_build/html/_static/jquery.js | 2 - docs/_build/html/_static/js/badge_only.js | 1 - .../_static/js/html5shiv-printshiv.min.js | 4 - docs/_build/html/_static/js/html5shiv.min.js | 4 - docs/_build/html/_static/js/theme.js | 1 - docs/_build/html/_static/language_data.js | 199 - docs/_build/html/_static/minus.png | Bin 90 -> 0 bytes docs/_build/html/_static/plus.png | Bin 90 -> 0 bytes docs/_build/html/_static/pygments.css | 75 - docs/_build/html/_static/searchtools.js | 620 - docs/_build/html/_static/sphinx_highlight.js | 154 - docs/_build/html/api.html | 113 - docs/_build/html/examples.html | 116 - docs/_build/html/genindex.html | 12440 ---------------- docs/_build/html/index.html | 446 - docs/_build/html/media/air_filter_calc.png | Bin 32385 -> 0 bytes .../html/media/olib_spring_mass_clac.png | Bin 38894 -> 0 bytes .../media/olib_spring_mass_clac_damp 1.png | Bin 40602 -> 0 bytes docs/_build/html/objects.inv | Bin 33447 -> 0 bytes docs/_build/html/py-modindex.html | 417 - docs/_build/html/search.html | 126 - docs/_build/html/searchindex.js | 1 - docs/_build/html/tests.html | 116 - docs/_build/html/tutorials.html | 115 - engforge.egg-info/PKG-INFO | 9 - engforge.egg-info/SOURCES.txt | 79 - engforge.egg-info/dependency_links.txt | 1 - engforge.egg-info/not-zip-safe | 1 - engforge.egg-info/requires.txt | 30 - engforge.egg-info/top_level.txt | 2 - engforge/test/test_costs.py | 2 +- pyproject.toml | 86 + setup.py | 47 - 944 files changed, 459 insertions(+), 183083 deletions(-) create mode 100644 .github/workflows/release.yml create mode 100644 CLAUDE.md delete mode 100644 docs/_build/doctrees/_autosummary/engforge.analysis.Analysis.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.analysis.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.analysis.make_reporter_check.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_dynamics.IntegratorInstance.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_dynamics.TRANSIENT.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_dynamics.Time.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_dynamics.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.PLOT.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.PlotBase.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.PlotInstance.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.PlotLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.PlottingMixin.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.Trace.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.TraceInstance.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.conv_ctx.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.conv_maps.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.conv_theme.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.install_seaborn.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_plotting.save_all_figures_to_pdf.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_signals.Signal.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_signals.SignalInstance.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_signals.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_slots.Slot.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_slots.SlotLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_slots.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_solver.AttrSolverLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_solver.Solver.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_solver.SolverInstance.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attr_solver.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attributes.ATTRLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attributes.ATTR_BASE.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attributes.AttributeInstance.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.attributes.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.common.ForgeLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.common.chunks.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.common.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.common.get_size.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.common.inst_vectorize.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.common.is_ec2_instance.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.component_collections.ComponentDict.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.component_collections.ComponentIter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.component_collections.ComponentIterator.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.component_collections.check_comp_type.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.component_collections.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.component_collections.iter_tkn.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.components.Component.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.components.SolveableInterface.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.components.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.configuration.ConfigLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.configuration.Configuration.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.configuration.comp_transform.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.configuration.conv_nms.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.configuration.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.configuration.forge.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.configuration.meta.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.configuration.name_generator.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.configuration.property_changed.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.configuration.signals_slots_handler.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dataframe.DataFrameLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dataframe.DataframeMixin.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dataframe.dataframe_prop.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dataframe.dataframe_property.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dataframe.determine_split.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dataframe.df_prop.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dataframe.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dataframe.is_uniform.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dataframe.key_func.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dataframe.split_dataframe.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.DBConnection.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.DiskCacheStore.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.addapt_numpy_array.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.addapt_numpy_float32.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.addapt_numpy_float64.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.addapt_numpy_int32.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.addapt_numpy_int64.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.autocorrelation_direct.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.autocorrelation_fft.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.autocorrelation_numpy.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.data.nan_to_null.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.datastores.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dynamics.DynamicsMixin.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dynamics.GlobalDynamics.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dynamics.INDEX_MAP.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dynamics.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.dynamics.valid_mtx.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.costs.CostLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.costs.CostModel.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.costs.Economics.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.costs.cost_property.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.costs.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.costs.eval_slot_cost.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.costs.gend.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.Air.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.AirWaterMix.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.CoolPropMaterial.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.CoolPropMixture.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.FluidMaterial.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.Hydrogen.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.IdealAir.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.IdealGas.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.IdealH2.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.IdealOxygen.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.IdealSteam.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.Oxygen.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.SeaWater.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.Steam.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.Water.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.Circle.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.GeometryLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.HollowCircle.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.ParametricSpline.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.Profile2D.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.Rectangle.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.ShapelySection.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.Triangle.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.calculate_stress.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.conver_np.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.geometry.get_mesh_size.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.pipes.FlowInput.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.pipes.FlowNode.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.pipes.Pipe.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.pipes.PipeFitting.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.pipes.PipeFlow.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.pipes.PipeLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.pipes.PipeNode.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.pipes.PipeSystem.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.pipes.Pump.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.pipes.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.prediction.PredictionMixin.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.prediction.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.ANSI_4130.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.ANSI_4340.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.Aluminum.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.CarbonFiber.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.Concrete.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.DrySoil.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.Rock.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.Rubber.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.SS_316.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.SolidMaterial.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.WetSoil.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.ih.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.random_color.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.structure_beams.Beam.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.structure_beams.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.structure_beams.rotation_matrix_from_vectors.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimpleCompressor.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimpleHeatExchanger.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimplePump.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimpleTurbine.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_core.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_entrance.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_exit.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_gas_losses.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.fanning_friction_factor.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.engforge_attributes.AttributedBaseMixin.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.engforge_attributes.EngAttr.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.engforge_attributes.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.engforge_attributes.get_attributes_of.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.env_var.EnvVariable.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.env_var.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.env_var.parse_bool.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.locations.client_path.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.locations.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.logging.Log.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.logging.LoggingMixin.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.logging.change_all_log_levels.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.logging.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.patterns.InputSingletonMeta.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.patterns.Singleton.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.patterns.SingletonMeta.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.patterns.chunks.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.patterns.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.patterns.flat2gen.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.patterns.flatten.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.patterns.inst_vectorize.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.patterns.singleton_meta_object.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.problem_context.IllegalArgument.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.problem_context.ProbLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.problem_context.Problem.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.problem_context.ProblemExec.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.problem_context.ProblemExit.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.problem_context.ProblemExitAtLevel.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.problem_context.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.PropertyLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.cache_prop.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.cached_sys_prop.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.cached_system_prop.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.cached_system_property.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.class_cache.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.engforge_prop.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.instance_cached.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.solver_cached.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.sys_prop.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.system_prop.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.properties.system_property.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.CSVReporter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.DiskPlotReporter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.DiskReporterMixin.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.ExcelReporter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.GdriveReporter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.GsheetsReporter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.PlotReporter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.Reporter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.TableReporter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.TemporalReporterMixin.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.reporting.path_exist_validator.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solveable.SolvableLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solveable.SolveableMixin.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solveable.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver.SolverLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver.SolverMixin.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.SolverUtilLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.arg_var_compare.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.combo_filter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.create_constraint.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.ext_str_list.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.f_lin_min.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.filt_active.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.filter_combos.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.filter_vals.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.handle_normalize.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.objectify.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.ref_to_val_constraint.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.refmin_solve.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.secondary_obj.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.solver_utils.str_list_f.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system.System.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system.SystemsLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system_reference.Ref.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system_reference.RefLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system_reference.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system_reference.eval_ref.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system_reference.maybe_attr_inst.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system_reference.maybe_ref.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system_reference.refset_get.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system_reference.refset_input.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.system_reference.scale_val.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.tabulation.TableLog.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.tabulation.TabulationMixin.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.tabulation.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.typing.NUMERIC_NAN_VALIDATOR.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.typing.NUMERIC_VALIDATOR.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.typing.Options.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.typing.STR_VALIDATOR.doctree delete mode 100644 docs/_build/doctrees/_autosummary/engforge.typing.doctree delete mode 100644 docs/_build/doctrees/_autosummary/examples.air_filter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/examples.doctree delete mode 100644 docs/_build/doctrees/_autosummary/examples.spring_mass.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_airfilter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_comp_iter.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_composition.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_costs.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_dynamics.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_dynamics_spaces.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_four_bar.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_modules.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_performance.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_pipes.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_problem_deepscoping.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_slider_crank.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_solver.doctree delete mode 100644 docs/_build/doctrees/_autosummary/test.test_tabulation.doctree delete mode 100644 docs/_build/doctrees/api.doctree delete mode 100644 docs/_build/doctrees/environment.pickle delete mode 100644 docs/_build/doctrees/examples.doctree delete mode 100644 docs/_build/doctrees/index.doctree delete mode 100644 docs/_build/doctrees/tests.doctree delete mode 100644 docs/_build/doctrees/tutorials.doctree delete mode 100644 docs/_build/html/.buildinfo delete mode 100644 docs/_build/html/_autosummary/engforge.analysis.Analysis.html delete mode 100644 docs/_build/html/_autosummary/engforge.analysis.html delete mode 100644 docs/_build/html/_autosummary/engforge.analysis.make_reporter_check.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_dynamics.IntegratorInstance.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_dynamics.TRANSIENT.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_dynamics.Time.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_dynamics.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.PLOT.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.PlotBase.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.PlotInstance.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.PlotLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.PlottingMixin.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.Trace.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.TraceInstance.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.conv_ctx.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.conv_maps.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.conv_theme.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.install_seaborn.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_plotting.save_all_figures_to_pdf.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_signals.Signal.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_signals.SignalInstance.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_signals.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_slots.Slot.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_slots.SlotLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_slots.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_solver.AttrSolverLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_solver.Solver.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_solver.SolverInstance.html delete mode 100644 docs/_build/html/_autosummary/engforge.attr_solver.html delete mode 100644 docs/_build/html/_autosummary/engforge.attributes.ATTRLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.attributes.ATTR_BASE.html delete mode 100644 docs/_build/html/_autosummary/engforge.attributes.AttributeInstance.html delete mode 100644 docs/_build/html/_autosummary/engforge.attributes.html delete mode 100644 docs/_build/html/_autosummary/engforge.common.ForgeLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.common.chunks.html delete mode 100644 docs/_build/html/_autosummary/engforge.common.get_size.html delete mode 100644 docs/_build/html/_autosummary/engforge.common.html delete mode 100644 docs/_build/html/_autosummary/engforge.common.inst_vectorize.html delete mode 100644 docs/_build/html/_autosummary/engforge.common.is_ec2_instance.html delete mode 100644 docs/_build/html/_autosummary/engforge.component_collections.ComponentDict.html delete mode 100644 docs/_build/html/_autosummary/engforge.component_collections.ComponentIter.html delete mode 100644 docs/_build/html/_autosummary/engforge.component_collections.ComponentIterator.html delete mode 100644 docs/_build/html/_autosummary/engforge.component_collections.check_comp_type.html delete mode 100644 docs/_build/html/_autosummary/engforge.component_collections.html delete mode 100644 docs/_build/html/_autosummary/engforge.component_collections.iter_tkn.html delete mode 100644 docs/_build/html/_autosummary/engforge.components.Component.html delete mode 100644 docs/_build/html/_autosummary/engforge.components.SolveableInterface.html delete mode 100644 docs/_build/html/_autosummary/engforge.components.html delete mode 100644 docs/_build/html/_autosummary/engforge.configuration.ConfigLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.configuration.Configuration.html delete mode 100644 docs/_build/html/_autosummary/engforge.configuration.comp_transform.html delete mode 100644 docs/_build/html/_autosummary/engforge.configuration.conv_nms.html delete mode 100644 docs/_build/html/_autosummary/engforge.configuration.forge.html delete mode 100644 docs/_build/html/_autosummary/engforge.configuration.html delete mode 100644 docs/_build/html/_autosummary/engforge.configuration.meta.html delete mode 100644 docs/_build/html/_autosummary/engforge.configuration.name_generator.html delete mode 100644 docs/_build/html/_autosummary/engforge.configuration.property_changed.html delete mode 100644 docs/_build/html/_autosummary/engforge.configuration.signals_slots_handler.html delete mode 100644 docs/_build/html/_autosummary/engforge.dataframe.DataFrameLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.dataframe.DataframeMixin.html delete mode 100644 docs/_build/html/_autosummary/engforge.dataframe.dataframe_prop.html delete mode 100644 docs/_build/html/_autosummary/engforge.dataframe.dataframe_property.html delete mode 100644 docs/_build/html/_autosummary/engforge.dataframe.determine_split.html delete mode 100644 docs/_build/html/_autosummary/engforge.dataframe.df_prop.html delete mode 100644 docs/_build/html/_autosummary/engforge.dataframe.html delete mode 100644 docs/_build/html/_autosummary/engforge.dataframe.is_uniform.html delete mode 100644 docs/_build/html/_autosummary/engforge.dataframe.key_func.html delete mode 100644 docs/_build/html/_autosummary/engforge.dataframe.split_dataframe.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.DBConnection.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.DiskCacheStore.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_array.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_float32.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_float64.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_int32.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_int64.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_direct.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_fft.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_numpy.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.data.nan_to_null.html delete mode 100644 docs/_build/html/_autosummary/engforge.datastores.html delete mode 100644 docs/_build/html/_autosummary/engforge.dynamics.DynamicsMixin.html delete mode 100644 docs/_build/html/_autosummary/engforge.dynamics.GlobalDynamics.html delete mode 100644 docs/_build/html/_autosummary/engforge.dynamics.INDEX_MAP.html delete mode 100644 docs/_build/html/_autosummary/engforge.dynamics.html delete mode 100644 docs/_build/html/_autosummary/engforge.dynamics.valid_mtx.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.costs.CostLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.costs.CostModel.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.costs.Economics.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.costs.cost_property.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.costs.eval_slot_cost.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.costs.gend.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.costs.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.Air.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.AirWaterMix.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.CoolPropMaterial.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.CoolPropMixture.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.FluidMaterial.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.Hydrogen.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealAir.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealGas.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealH2.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealOxygen.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealSteam.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.Oxygen.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.SeaWater.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.Steam.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.Water.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.fluid_material.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.Circle.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.GeometryLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.HollowCircle.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.ParametricSpline.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.Profile2D.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.Rectangle.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.ShapelySection.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.Triangle.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.calculate_stress.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.conver_np.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.get_mesh_size.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.geometry.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.pipes.FlowInput.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.pipes.FlowNode.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.pipes.Pipe.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.pipes.PipeFitting.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.pipes.PipeFlow.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.pipes.PipeLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.pipes.PipeNode.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.pipes.PipeSystem.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.pipes.Pump.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.pipes.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.prediction.PredictionMixin.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.prediction.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.ANSI_4130.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.ANSI_4340.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.Aluminum.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.CarbonFiber.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.Concrete.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.DrySoil.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.Rock.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.Rubber.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.SS_316.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.SolidMaterial.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.WetSoil.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.ih.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.solid_materials.random_color.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.structure_beams.Beam.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.structure_beams.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.structure_beams.rotation_matrix_from_vectors.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleCompressor.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleHeatExchanger.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimplePump.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleTurbine.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_core.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_entrance.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_exit.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_gas_losses.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.thermodynamics.fanning_friction_factor.html delete mode 100644 docs/_build/html/_autosummary/engforge.eng.thermodynamics.html delete mode 100644 docs/_build/html/_autosummary/engforge.engforge_attributes.AttributedBaseMixin.html delete mode 100644 docs/_build/html/_autosummary/engforge.engforge_attributes.EngAttr.html delete mode 100644 docs/_build/html/_autosummary/engforge.engforge_attributes.get_attributes_of.html delete mode 100644 docs/_build/html/_autosummary/engforge.engforge_attributes.html delete mode 100644 docs/_build/html/_autosummary/engforge.env_var.EnvVariable.html delete mode 100644 docs/_build/html/_autosummary/engforge.env_var.html delete mode 100644 docs/_build/html/_autosummary/engforge.env_var.parse_bool.html delete mode 100644 docs/_build/html/_autosummary/engforge.html delete mode 100644 docs/_build/html/_autosummary/engforge.locations.client_path.html delete mode 100644 docs/_build/html/_autosummary/engforge.locations.html delete mode 100644 docs/_build/html/_autosummary/engforge.logging.Log.html delete mode 100644 docs/_build/html/_autosummary/engforge.logging.LoggingMixin.html delete mode 100644 docs/_build/html/_autosummary/engforge.logging.change_all_log_levels.html delete mode 100644 docs/_build/html/_autosummary/engforge.logging.html delete mode 100644 docs/_build/html/_autosummary/engforge.patterns.InputSingletonMeta.html delete mode 100644 docs/_build/html/_autosummary/engforge.patterns.Singleton.html delete mode 100644 docs/_build/html/_autosummary/engforge.patterns.SingletonMeta.html delete mode 100644 docs/_build/html/_autosummary/engforge.patterns.chunks.html delete mode 100644 docs/_build/html/_autosummary/engforge.patterns.flat2gen.html delete mode 100644 docs/_build/html/_autosummary/engforge.patterns.flatten.html delete mode 100644 docs/_build/html/_autosummary/engforge.patterns.html delete mode 100644 docs/_build/html/_autosummary/engforge.patterns.inst_vectorize.html delete mode 100644 docs/_build/html/_autosummary/engforge.patterns.singleton_meta_object.html delete mode 100644 docs/_build/html/_autosummary/engforge.problem_context.IllegalArgument.html delete mode 100644 docs/_build/html/_autosummary/engforge.problem_context.ProbLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.problem_context.Problem.html delete mode 100644 docs/_build/html/_autosummary/engforge.problem_context.ProblemExec.html delete mode 100644 docs/_build/html/_autosummary/engforge.problem_context.ProblemExit.html delete mode 100644 docs/_build/html/_autosummary/engforge.problem_context.ProblemExitAtLevel.html delete mode 100644 docs/_build/html/_autosummary/engforge.problem_context.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.PropertyLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.cache_prop.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.cached_sys_prop.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.cached_system_prop.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.cached_system_property.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.class_cache.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.engforge_prop.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.instance_cached.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.solver_cached.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.sys_prop.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.system_prop.html delete mode 100644 docs/_build/html/_autosummary/engforge.properties.system_property.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.CSVReporter.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.DiskPlotReporter.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.DiskReporterMixin.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.ExcelReporter.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.GdriveReporter.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.GsheetsReporter.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.PlotReporter.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.Reporter.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.TableReporter.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.TemporalReporterMixin.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.html delete mode 100644 docs/_build/html/_autosummary/engforge.reporting.path_exist_validator.html delete mode 100644 docs/_build/html/_autosummary/engforge.solveable.SolvableLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.solveable.SolveableMixin.html delete mode 100644 docs/_build/html/_autosummary/engforge.solveable.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver.SolverLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver.SolverMixin.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.SolverUtilLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.arg_var_compare.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.combo_filter.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.create_constraint.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.ext_str_list.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.f_lin_min.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.filt_active.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.filter_combos.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.filter_vals.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.handle_normalize.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.objectify.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.ref_to_val_constraint.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.refmin_solve.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.secondary_obj.html delete mode 100644 docs/_build/html/_autosummary/engforge.solver_utils.str_list_f.html delete mode 100644 docs/_build/html/_autosummary/engforge.system.System.html delete mode 100644 docs/_build/html/_autosummary/engforge.system.SystemsLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.system.html delete mode 100644 docs/_build/html/_autosummary/engforge.system_reference.Ref.html delete mode 100644 docs/_build/html/_autosummary/engforge.system_reference.RefLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.system_reference.eval_ref.html delete mode 100644 docs/_build/html/_autosummary/engforge.system_reference.html delete mode 100644 docs/_build/html/_autosummary/engforge.system_reference.maybe_attr_inst.html delete mode 100644 docs/_build/html/_autosummary/engforge.system_reference.maybe_ref.html delete mode 100644 docs/_build/html/_autosummary/engforge.system_reference.refset_get.html delete mode 100644 docs/_build/html/_autosummary/engforge.system_reference.refset_input.html delete mode 100644 docs/_build/html/_autosummary/engforge.system_reference.scale_val.html delete mode 100644 docs/_build/html/_autosummary/engforge.tabulation.TableLog.html delete mode 100644 docs/_build/html/_autosummary/engforge.tabulation.TabulationMixin.html delete mode 100644 docs/_build/html/_autosummary/engforge.tabulation.html delete mode 100644 docs/_build/html/_autosummary/engforge.typing.NUMERIC_NAN_VALIDATOR.html delete mode 100644 docs/_build/html/_autosummary/engforge.typing.NUMERIC_VALIDATOR.html delete mode 100644 docs/_build/html/_autosummary/engforge.typing.Options.html delete mode 100644 docs/_build/html/_autosummary/engforge.typing.STR_VALIDATOR.html delete mode 100644 docs/_build/html/_autosummary/engforge.typing.html delete mode 100644 docs/_build/html/_autosummary/examples.air_filter.html delete mode 100644 docs/_build/html/_autosummary/examples.html delete mode 100644 docs/_build/html/_autosummary/examples.spring_mass.html delete mode 100644 docs/_build/html/_autosummary/test.html delete mode 100644 docs/_build/html/_autosummary/test.test_airfilter.html delete mode 100644 docs/_build/html/_autosummary/test.test_comp_iter.html delete mode 100644 docs/_build/html/_autosummary/test.test_composition.html delete mode 100644 docs/_build/html/_autosummary/test.test_costs.html delete mode 100644 docs/_build/html/_autosummary/test.test_dynamics.html delete mode 100644 docs/_build/html/_autosummary/test.test_dynamics_spaces.html delete mode 100644 docs/_build/html/_autosummary/test.test_four_bar.html delete mode 100644 docs/_build/html/_autosummary/test.test_modules.html delete mode 100644 docs/_build/html/_autosummary/test.test_performance.html delete mode 100644 docs/_build/html/_autosummary/test.test_pipes.html delete mode 100644 docs/_build/html/_autosummary/test.test_problem_deepscoping.html delete mode 100644 docs/_build/html/_autosummary/test.test_slider_crank.html delete mode 100644 docs/_build/html/_autosummary/test.test_solver.html delete mode 100644 docs/_build/html/_autosummary/test.test_tabulation.html delete mode 100644 docs/_build/html/_config.yml delete mode 100644 docs/_build/html/_modules/engforge/analysis.html delete mode 100644 docs/_build/html/_modules/engforge/attr_dynamics.html delete mode 100644 docs/_build/html/_modules/engforge/attr_plotting.html delete mode 100644 docs/_build/html/_modules/engforge/attr_signals.html delete mode 100644 docs/_build/html/_modules/engforge/attr_slots.html delete mode 100644 docs/_build/html/_modules/engforge/attr_solver.html delete mode 100644 docs/_build/html/_modules/engforge/attributes.html delete mode 100644 docs/_build/html/_modules/engforge/common.html delete mode 100644 docs/_build/html/_modules/engforge/component_collections.html delete mode 100644 docs/_build/html/_modules/engforge/components.html delete mode 100644 docs/_build/html/_modules/engforge/configuration.html delete mode 100644 docs/_build/html/_modules/engforge/dataframe.html delete mode 100644 docs/_build/html/_modules/engforge/datastores/data.html delete mode 100644 docs/_build/html/_modules/engforge/dynamics.html delete mode 100644 docs/_build/html/_modules/engforge/eng/costs.html delete mode 100644 docs/_build/html/_modules/engforge/eng/fluid_material.html delete mode 100644 docs/_build/html/_modules/engforge/eng/geometry.html delete mode 100644 docs/_build/html/_modules/engforge/eng/pipes.html delete mode 100644 docs/_build/html/_modules/engforge/eng/prediction.html delete mode 100644 docs/_build/html/_modules/engforge/eng/solid_materials.html delete mode 100644 docs/_build/html/_modules/engforge/eng/structure_beams.html delete mode 100644 docs/_build/html/_modules/engforge/eng/thermodynamics.html delete mode 100644 docs/_build/html/_modules/engforge/engforge_attributes.html delete mode 100644 docs/_build/html/_modules/engforge/env_var.html delete mode 100644 docs/_build/html/_modules/engforge/locations.html delete mode 100644 docs/_build/html/_modules/engforge/logging.html delete mode 100644 docs/_build/html/_modules/engforge/patterns.html delete mode 100644 docs/_build/html/_modules/engforge/problem_context.html delete mode 100644 docs/_build/html/_modules/engforge/properties.html delete mode 100644 docs/_build/html/_modules/engforge/reporting.html delete mode 100644 docs/_build/html/_modules/engforge/solveable.html delete mode 100644 docs/_build/html/_modules/engforge/solver.html delete mode 100644 docs/_build/html/_modules/engforge/solver_utils.html delete mode 100644 docs/_build/html/_modules/engforge/system.html delete mode 100644 docs/_build/html/_modules/engforge/system_reference.html delete mode 100644 docs/_build/html/_modules/engforge/tabulation.html delete mode 100644 docs/_build/html/_modules/engforge/typing.html delete mode 100644 docs/_build/html/_modules/index.html delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.analysis.Analysis.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.analysis.make_reporter_check.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.analysis.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.IntegratorInstance.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.TRANSIENT.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.Time.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PLOT.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotBase.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotInstance.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlottingMixin.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.Trace.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.TraceInstance.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_ctx.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_maps.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_theme.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.install_seaborn.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_plotting.save_all_figures_to_pdf.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_signals.Signal.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_signals.SignalInstance.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_signals.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_slots.Slot.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_slots.SlotLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_slots.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_solver.AttrSolverLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_solver.Solver.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_solver.SolverInstance.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attr_solver.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attributes.ATTRLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attributes.ATTR_BASE.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attributes.AttributeInstance.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.attributes.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.common.ForgeLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.common.chunks.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.common.get_size.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.common.inst_vectorize.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.common.is_ec2_instance.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.common.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentDict.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentIter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentIterator.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.component_collections.check_comp_type.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.component_collections.iter_tkn.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.component_collections.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.components.Component.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.components.SolveableInterface.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.components.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.configuration.ConfigLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.configuration.Configuration.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.configuration.comp_transform.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.configuration.conv_nms.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.configuration.forge.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.configuration.meta.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.configuration.name_generator.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.configuration.property_changed.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.configuration.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.configuration.signals_slots_handler.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dataframe.DataFrameLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dataframe.DataframeMixin.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dataframe.dataframe_prop.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dataframe.dataframe_property.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dataframe.determine_split.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dataframe.df_prop.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dataframe.is_uniform.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dataframe.key_func.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dataframe.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dataframe.split_dataframe.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.DBConnection.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.DiskCacheStore.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_array.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_float32.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_float64.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_int32.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_int64.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_direct.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_fft.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_numpy.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.nan_to_null.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.data.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.datastores.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dynamics.DynamicsMixin.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dynamics.GlobalDynamics.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dynamics.INDEX_MAP.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dynamics.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.dynamics.valid_mtx.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.costs.CostLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.costs.CostModel.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.costs.Economics.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.costs.cost_property.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.costs.eval_slot_cost.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.costs.gend.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.costs.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Air.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.AirWaterMix.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.CoolPropMaterial.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.CoolPropMixture.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.FluidMaterial.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Hydrogen.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealAir.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealGas.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealH2.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealOxygen.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealSteam.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Oxygen.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.SeaWater.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Steam.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Water.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Circle.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.GeometryLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.HollowCircle.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.ParametricSpline.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Profile2D.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Rectangle.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.ShapelySection.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Triangle.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.calculate_stress.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.conver_np.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.get_mesh_size.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.geometry.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.pipes.FlowInput.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.pipes.FlowNode.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.pipes.Pipe.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeFitting.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeFlow.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeNode.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeSystem.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.pipes.Pump.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.pipes.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.prediction.PredictionMixin.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.prediction.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ANSI_4130.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ANSI_4340.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Aluminum.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.CarbonFiber.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Concrete.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.DrySoil.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Rock.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Rubber.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.SS_316.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.SolidMaterial.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.WetSoil.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ih.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.random_color.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.Beam.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.rotation_matrix_from_vectors.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleCompressor.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleHeatExchanger.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimplePump.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleTurbine.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_core.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_entrance.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_exit.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_gas_losses.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.fanning_friction_factor.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.AttributedBaseMixin.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.EngAttr.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.get_attributes_of.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.env_var.EnvVariable.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.env_var.parse_bool.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.env_var.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.locations.client_path.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.locations.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.logging.Log.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.logging.LoggingMixin.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.logging.change_all_log_levels.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.logging.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.patterns.InputSingletonMeta.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.patterns.Singleton.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.patterns.SingletonMeta.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.patterns.chunks.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.patterns.flat2gen.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.patterns.flatten.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.patterns.inst_vectorize.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.patterns.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.patterns.singleton_meta_object.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.problem_context.IllegalArgument.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.problem_context.ProbLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.problem_context.Problem.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExec.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExit.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExitAtLevel.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.problem_context.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.PropertyLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.cache_prop.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.cached_sys_prop.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.cached_system_prop.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.cached_system_property.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.class_cache.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.engforge_prop.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.instance_cached.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.solver_cached.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.sys_prop.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.system_prop.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.properties.system_property.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.CSVReporter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.DiskPlotReporter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.DiskReporterMixin.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.ExcelReporter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.GdriveReporter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.GsheetsReporter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.PlotReporter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.Reporter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.TableReporter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.TemporalReporterMixin.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.path_exist_validator.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.reporting.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solveable.SolvableLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solveable.SolveableMixin.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solveable.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver.SolverLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver.SolverMixin.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.SolverUtilLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.arg_var_compare.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.combo_filter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.create_constraint.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.ext_str_list.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.f_lin_min.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.filt_active.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.filter_combos.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.filter_vals.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.handle_normalize.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.objectify.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.ref_to_val_constraint.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.refmin_solve.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.secondary_obj.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.solver_utils.str_list_f.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system.System.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system.SystemsLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system_reference.Ref.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system_reference.RefLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system_reference.eval_ref.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system_reference.maybe_attr_inst.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system_reference.maybe_ref.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system_reference.refset_get.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system_reference.refset_input.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system_reference.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.system_reference.scale_val.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.tabulation.TableLog.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.tabulation.TabulationMixin.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.tabulation.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.typing.NUMERIC_NAN_VALIDATOR.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.typing.NUMERIC_VALIDATOR.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.typing.Options.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.typing.STR_VALIDATOR.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/engforge.typing.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/examples.air_filter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/examples.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/examples.spring_mass.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_airfilter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_comp_iter.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_composition.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_costs.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_dynamics.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_dynamics_spaces.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_four_bar.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_modules.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_performance.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_pipes.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_problem_deepscoping.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_slider_crank.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_solver.rst.txt delete mode 100644 docs/_build/html/_sources/_autosummary/test.test_tabulation.rst.txt delete mode 100644 docs/_build/html/_sources/api.rst.txt delete mode 100644 docs/_build/html/_sources/examples.rst.txt delete mode 100644 docs/_build/html/_sources/index.rst.txt delete mode 100644 docs/_build/html/_sources/tests.rst.txt delete mode 100644 docs/_build/html/_sources/tutorials.rst.txt delete mode 100644 docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js delete mode 100644 docs/_build/html/_static/basic.css delete mode 100644 docs/_build/html/_static/css/badge_only.css delete mode 100644 docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff delete mode 100644 docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 delete mode 100644 docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff delete mode 100644 docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 delete mode 100644 docs/_build/html/_static/css/fonts/fontawesome-webfont.eot delete mode 100644 docs/_build/html/_static/css/fonts/fontawesome-webfont.svg delete mode 100644 docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf delete mode 100644 docs/_build/html/_static/css/fonts/fontawesome-webfont.woff delete mode 100644 docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 delete mode 100644 docs/_build/html/_static/css/fonts/lato-bold-italic.woff delete mode 100644 docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 delete mode 100644 docs/_build/html/_static/css/fonts/lato-bold.woff delete mode 100644 docs/_build/html/_static/css/fonts/lato-bold.woff2 delete mode 100644 docs/_build/html/_static/css/fonts/lato-normal-italic.woff delete mode 100644 docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 delete mode 100644 docs/_build/html/_static/css/fonts/lato-normal.woff delete mode 100644 docs/_build/html/_static/css/fonts/lato-normal.woff2 delete mode 100644 docs/_build/html/_static/css/theme.css delete mode 100644 docs/_build/html/_static/doctools.js delete mode 100644 docs/_build/html/_static/documentation_options.js delete mode 100644 docs/_build/html/_static/file.png delete mode 100644 docs/_build/html/_static/jquery.js delete mode 100644 docs/_build/html/_static/js/badge_only.js delete mode 100644 docs/_build/html/_static/js/html5shiv-printshiv.min.js delete mode 100644 docs/_build/html/_static/js/html5shiv.min.js delete mode 100644 docs/_build/html/_static/js/theme.js delete mode 100644 docs/_build/html/_static/language_data.js delete mode 100644 docs/_build/html/_static/minus.png delete mode 100644 docs/_build/html/_static/plus.png delete mode 100644 docs/_build/html/_static/pygments.css delete mode 100644 docs/_build/html/_static/searchtools.js delete mode 100644 docs/_build/html/_static/sphinx_highlight.js delete mode 100644 docs/_build/html/api.html delete mode 100644 docs/_build/html/examples.html delete mode 100644 docs/_build/html/genindex.html delete mode 100644 docs/_build/html/index.html delete mode 100644 docs/_build/html/media/air_filter_calc.png delete mode 100644 docs/_build/html/media/olib_spring_mass_clac.png delete mode 100644 docs/_build/html/media/olib_spring_mass_clac_damp 1.png delete mode 100644 docs/_build/html/objects.inv delete mode 100644 docs/_build/html/py-modindex.html delete mode 100644 docs/_build/html/search.html delete mode 100644 docs/_build/html/searchindex.js delete mode 100644 docs/_build/html/tests.html delete mode 100644 docs/_build/html/tutorials.html delete mode 100644 engforge.egg-info/PKG-INFO delete mode 100644 engforge.egg-info/SOURCES.txt delete mode 100644 engforge.egg-info/dependency_links.txt delete mode 100644 engforge.egg-info/not-zip-safe delete mode 100644 engforge.egg-info/requires.txt delete mode 100644 engforge.egg-info/top_level.txt create mode 100644 pyproject.toml delete mode 100644 setup.py diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 343ba92..ee927a5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,11 +9,13 @@ on: - reopened paths: - '**.py' + - 'pyproject.toml' push: branches: - main paths: - '**.py' + - 'pyproject.toml' jobs: test: @@ -21,31 +23,56 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ "3.9", "3.10" ] + python-version: [ "3.9", "3.10", "3.11" ] steps: - uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} - name: Install Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip - pip install flake8 pytest - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + pip install flake8 pytest black + pip install -e . if [ -f ./engforge/datastores/datastores_requirements.txt ]; then pip install -r ./engforge/datastores/datastores_requirements.txt; fi - name: Display Python Version run: python -c "import sys; print(sys.version)" + - name: Check for existing release + if: github.event_name == 'pull_request' + run: | + VERSION=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['project']['version'])") + echo "Checking for existing release v$VERSION" + if gh release view "v$VERSION" >/dev/null 2>&1; then + echo "::error::Release v$VERSION already exists. Please bump the version in pyproject.toml" + exit 1 + else + echo "Version v$VERSION is available" + fi + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Auto-format with Black + if: github.event_name == 'pull_request' + run: | + black ./engforge + if ! git diff --quiet; then + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add -A + git commit -m "Auto-format code with Black [skip ci]" || exit 0 + git push + fi + - name: Run tests - run: python -m unittest discover ./test/ + run: python -m unittest discover -s engforge/test -p "test_*.py" -v - - uses: psf/black@stable - with: - version: "24.8.0" - options: "--check --verbose" - src: "./engforge" \ No newline at end of file + - name: Verify Black formatting + run: black --check --verbose ./engforge \ No newline at end of file diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 9a4df6f..7266178 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,26 +1,19 @@ name: "docs" on: - push: - branches: - - main + pull_request: paths: - '**.py' - '**.md' - '**.rst' - - '**.yml' + - 'docs/**' permissions: - pages: write - id-token: write + contents: read jobs: docs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - - uses: actions/checkout@v4 - name: Install Python @@ -35,22 +28,13 @@ jobs: if [ -f "./engforge/datastores/datastores_requirements.txt" ]; then pip install -r ./engforge/datastores/datastores_requirements.txt; fi pip install -r ./docs/requirements.txt - - name: make html + - name: Test documentation build run: | cd docs make html - - # - uses: actions/upload-artifact@v4 - # with: - # name: DocumentationHTML - # path: docs/_build/html/ - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 + - name: Upload documentation artifact + uses: actions/upload-artifact@v4 with: - # Upload entire repository - path: 'docs/_build/html/' - - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 \ No newline at end of file + name: documentation-preview + path: docs/_build/html/ \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..e594446 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,94 @@ +name: release + +on: + push: + branches: + - main + paths: + - '**.py' + - 'pyproject.toml' + - '**.md' + - '**.rst' + - '**.yml' + +permissions: + contents: write + pages: write + id-token: write + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install Python + uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install build twine + pip install -e . + if [ -f "./engforge/datastores/datastores_requirements.txt" ]; then pip install -r ./engforge/datastores/datastores_requirements.txt; fi + pip install -r ./docs/requirements.txt + + - name: Get version + id: version + run: | + VERSION=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['project']['version'])") + echo "version=$VERSION" >> $GITHUB_OUTPUT + echo "Version: $VERSION" + + - name: Check if release exists + id: check_release + run: | + if gh release view "v${{ steps.version.outputs.version }}" >/dev/null 2>&1; then + echo "exists=true" >> $GITHUB_OUTPUT + echo "Release v${{ steps.version.outputs.version }} already exists" + else + echo "exists=false" >> $GITHUB_OUTPUT + echo "Release v${{ steps.version.outputs.version }} does not exist" + fi + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Build documentation + run: | + cd docs + make html + + - name: Upload pages artifact + uses: actions/upload-pages-artifact@v3 + with: + path: 'docs/_build/html/' + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 + + - name: Build package + if: steps.check_release.outputs.exists == 'false' + run: | + python -m build + + - name: Create GitHub Release + if: steps.check_release.outputs.exists == 'false' + run: | + gh release create "v${{ steps.version.outputs.version }}" \ + --title "Release v${{ steps.version.outputs.version }}" \ + --notes "Automated release for version ${{ steps.version.outputs.version }}" \ + --generate-notes \ + dist/* + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Publish to PyPI + if: steps.check_release.outputs.exists == 'false' + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://upload.pypi.org/legacy/ \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8b0e6e4..830264b 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,18 @@ dist/* *.profile *.log -docs/_autosummary* \ No newline at end of file +# Build artifacts and packaging +*.egg-info/ +*.egg +.eggs/ +MANIFEST +.installed.cfg + +# Claude Code tracking files +*.claude.rar +.claude/ +claude_session_* + +# Documentation build +docs/_autosummary* +docs/_build/ \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..ebc162a --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,218 @@ +# EngForge - Claude Development Guide + +## Overview +EngForge is a sophisticated engineering systems framework that provides tabulation, analysis, and solver capabilities for complex engineering problems. It's built on a component-system architecture with dynamic programming optimizations and integrated reporting. + +## Core Architecture + +### Key Design Patterns + +1. **Component-System Architecture**: The framework uses a hierarchical design where: + - `Component`: Basic building blocks that encapsulate engineering calculations and properties + - `System`: Orchestrates multiple components, manages data flow, and provides solver capabilities + - Both inherit from `SolveableInterface` which provides tabulation, configuration, and solving capabilities + +2. **Configuration-Based Design**: Uses the `@forge` decorator (similar to `@attrs.define`) to automatically configure classes with: + - Attribute validation and transformation + - Property change tracking + - Signal and slot management + - Automatic name generation + +3. **Cached Property System**: Implements dynamic programming through cached properties: + - `@system_property`: Basic cached properties + - `@cached_system_property`: Only recalculates when dependencies change + - Properties automatically track dependencies and invalidate when inputs change + +4. **Signal-Slot Pattern**: Data flow between components is managed via: + - `Signal.define(source, target, mode)`: Defines data flow connections + - `Slot.define(ComponentType)`: Defines component mounting points + - Supports pre/post execution modes and control signals + +### Core Classes and Concepts + +#### Configuration (`engforge/configuration.py`) +- `@forge` decorator: Main class decorator that configures all EngForge classes +- `Configuration`: Base class providing attribute management and property change callbacks +- Automatic name generation using randomized technical terms +- Property change tracking with `property_changed` callback + +#### Component (`engforge/components.py`) +- `SolveableInterface`: Common base providing tabulation, configuration, and solving +- `Component`: Basic building block with evaluation and caching capabilities +- `DynamicsMixin`: Provides time-based integration capabilities + +#### System (`engforge/system.py`) +- `System`: Orchestrates components, manages solver execution, provides plotting +- Inherits from `SolverMixin`, `SolveableInterface`, `PlottingMixin`, `GlobalDynamics` +- Manages component slots and signal routing +- Provides solver execution with constraint handling + +#### Solver Framework (`engforge/solver.py`, `engforge/attr_solver.py`) +- `SolverMixin`: Core solver capabilities using scipy optimizers +- `Solver.define(dependent, independent)`: Defines solver equations +- Constraint system with min/max limits and custom functions +- Supports multiple solver combos and variable sets + +#### Attributes System (`engforge/attributes.py`, `engforge/attr_*.py`) +- `ATTR_BASE`: Base attribute system with dependency tracking +- `Time`: Time integration attributes for dynamics +- `Signal`: Data flow attributes +- `Slot`: Component mounting attributes +- `Plot`/`Trace`: Plotting and visualization attributes +- All attributes support instance-level customization and caching + +### Property and Caching System + +The framework implements sophisticated caching through several property decorators: + +```python +@system_property +def calculated_value(self) -> float: + """Basic cached property""" + return expensive_calculation() + +@cached_system_property +def dynamic_value(self) -> float: + """Only recalculates when dependencies change""" + return self.input_a * self.input_b +``` + +Properties automatically: +- Cache results until dependencies change +- Track inter-property dependencies +- Support type validation and conversion +- Integrate with the solver system for constraint handling + +### Data Flow and Tabulation + +The framework provides comprehensive data capture through: + +1. **System References** (`engforge/system_reference.py`): Lightweight references to nested attributes +2. **DataframeMixin** (`engforge/dataframe.py`): Automatic pandas DataFrame generation +3. **TabulationMixin** (`engforge/tabulation.py`): Data collection and organization + +All component attributes and system properties are automatically captured into structured DataFrames suitable for analysis and reporting. + +## Engineering Domain Libraries + +### Fluid Mechanics (`engforge/eng/fluid_material.py`) +- `FluidMaterial`: Base class for fluid property calculations +- `CoolPropMaterial`: Integration with CoolProp thermodynamic database +- Built-in materials: Air, Water, Steam, Hydrogen, Oxygen +- Support for mixtures and ideal gas approximations + +### Solid Mechanics (`engforge/eng/solid_materials.py`) +- `SolidMaterial`: Material property definitions +- Standard materials: Steel (SS_316, ANSI_4130/4340), Aluminum, Carbon Fiber, Concrete +- Stress/strain calculations and safety factors + +### Thermodynamics (`engforge/eng/thermodynamics.py`) +- Component models: Compressor, Turbine, Heat Exchanger, Pump +- Cycle analysis capabilities +- Heat transfer and pressure drop correlations + +### Structural Analysis (`engforge/eng/structure_beams.py`, `engforge/eng/geometry.py`) +- Beam analysis with PyNite FEA integration +- Cross-sectional property calculations +- Geometric primitives and section properties + +### Pipe Networks (`engforge/eng/pipes.py`) +- Flow network modeling with pressure drop calculations +- Pump and fitting models +- System-level flow analysis + +### Cost Analysis (`engforge/eng/costs.py`) +- Engineering economics with time value of money +- Cost categorization and breakdown analysis +- Integration with system design parameters + +## Testing Framework + +The project uses Python's built-in `unittest` framework: + +### Test Structure +- Tests located in `engforge/test/` directory +- Import tests in `test_modules.py` verify all modules load correctly +- Domain-specific tests for components, solver, dynamics, etc. + +### Running Tests +```bash +# Install package in development mode +pip install -e . + +# Run all tests +python -m unittest discover -s engforge/test -p "test_*.py" -v + +# Run specific test module +python -m unittest engforge.test.test_modules -v +``` + +### Test Dependencies +The full test suite requires all optional dependencies. Core functionality can be tested with: +- `attrs>=23.2.0` - Core attribute system +- `numpy>=1.24.3` - Numerical computations +- `scipy` - Solver algorithms +- `matplotlib>=3.8.1` - Plotting +- `pandas` - Data handling + +## Examples and Usage Patterns + +### Air Filter Analysis Example +Located in `examples/air_filter.py`, demonstrates: +- Component definition with `@forge` decorator +- System assembly with slots and signals +- Solver configuration for flow balancing +- Plotting integration and data analysis + +### Spring-Mass-Damper Example +Shows dynamic system analysis with: +- Time integration using `Time.integrate()` +- Solver constraints and variable handling +- Multi-parameter studies with `run()` method + +### Analysis and Reporting +The `Analysis` class provides: +- System wrapping with additional post-processing +- Multiple reporter integration (CSV, Excel, plots) +- Automated data collection and storage + +## Development Guidelines + +### Code Quality Focus +- **Only modify non-scientific code**: Algorithmic and engineering calculations should not be altered +- **Follow existing patterns**: Use `@forge`, inherit from appropriate base classes +- **Maintain property caching**: Ensure expensive calculations are properly cached +- **Preserve signal-slot architecture**: Data flow should use defined patterns + +### Key Files to Understand +1. `configuration.py` - Core class configuration system +2. `components.py` - Component base classes +3. `system.py` - System orchestration +4. `properties.py` - Property and caching decorators +5. `attributes.py` - Attribute system foundation + +### Common Patterns +```python +@forge # Always use this decorator +class MyComponent(Component): + # Use attrs.field for inputs + input_value: float = attrs.field(default=1.0) + + # Use system_property for calculated outputs + @system_property + def output_value(self) -> float: + return self.input_value * 2.0 + +@forge +class MySystem(System): + # Define component slots + comp: MyComponent = Slot.define(MyComponent) + + # Define data flow + set_input = Signal.define('external_param', 'comp.input_value') + + # Define solver if needed + solver = Solver.define('constraint_equation', 'control_variable') +``` + +The framework emphasizes declarative configuration over imperative programming, extensive use of caching for performance, and clear separation between data flow definition and execution. \ No newline at end of file diff --git a/docs/_build/doctrees/_autosummary/engforge.analysis.Analysis.doctree b/docs/_build/doctrees/_autosummary/engforge.analysis.Analysis.doctree deleted file mode 100644 index 3b2ca981363e40fdd4f91fe617cbd522cc7bcb27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312067 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 Tyc;LcvwV~kwbE(QB^vsF^d*fR diff --git a/docs/_build/doctrees/_autosummary/engforge.analysis.doctree b/docs/_build/doctrees/_autosummary/engforge.analysis.doctree deleted file mode 100644 index 25d1b863a5ad42adf90624be2bb1a3d41d18e407..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7105 zcmd5>TaO$^6<+UUZr-aeD?95o6Gg@w;oTt)4`^dKK!67t=vb~i?ZtTa2*r%s)!I(4pJ ze}Cz{54Ps?pIqZ1v;E;7u`EBZC{JX=3e4D}zDS-XFa98Tlw*l_P{P*O7F%Z5*aF*@q~rOb zV|Kp5X~a8UkHgOELeR(~!ZvyPi%}5vf?<``$u+2Cl(FTHVBH>RHtMa{d0d-hS!P+qWO( z--%kTTP`P~|M?~F-+p=jPQ?`N;?|*CxtX~tykf614F9M+8PLJFgI#Um&m#xah-er@ zFi68>)I4alaz|U5oRcXFmnjBO5Qmk^EM2({Eq_QQH!$VUwggM=wUk~x=+(j1`DvWV z1I5g%N8~94e7h<@1(sf5jgD;;2DuOghsWqT7AcRII;DxILIx2DS!JU9(tbGF4|>l2 zTT`^zzH`h`_NK7ieJfS^oLmm6Z`uC97$T}vmSMlh!e8CBaaY7WKDH?@P7$4yp7h(< zo&?|53(EO$l*n2*+Qo?yS`8ISvA@R6{0bp+_EprdZA7g^UOzc(CCDC%(<8Q@u;0r% zp2R3bCRtD`%ky}q!_c)&TO?2P@F9u(FB` zznyU*I@3Uuq$k+TyMaGQBN~}BYZJ4L z$=OvV*&KTAJ`ag1bsAwrk;)%ZZ7UBjH_Pm?EOp zs^_$9v~2sP8(Xw*yJ;_)L5a}S)w7fZSK$e-=gXajQ+ZMbX9Qygh5M?Qi1S-R}2sF1v z1nEbpZne-b;GzvCld1|?Gr%iiS7gPUmG3muuRZ>}^GwM-uMV6qC{z0H3WQw7kH$B~ zj>eyNX2(p~DKdY45!2FrK9=YB_wxlDOIfjMYJPK^v?&|;#4>|B_K9}C!+v*q{&xCW zcV|f9?1O5Kb~xspJx#Meus^atb=jZgbI0>;aWWOUKcZwi#iLaIbb6<#Lv0cH)_JT{ zuT!pLsGn!cy3Tzq{sbfXX|9Zqjq7g8kJX;asQ+H3ceZ_&sIM+N?Nq|6BMESf#8p z{tCjg)*0n-%X`>icS;m#m*hYb%~6tautY#e4xOmWZK3#ENDC1SH~@s1Z4CwZ#BRw; zA|gI_0RaWRfiyZm@=U>}B@qa8clYLGE9apW9%HrMIk{@ak%G320?1mC@O$=?c= zLSQqV0v9=iZKV|IQcW=qZNZEjio;sjgse#H%H_1SF8mFdo|6PK|TTuxzeCEgU4620X;b~eB538b z7gAqIvvB3-(dXc*(npx+hVm>}4*Ew1`}crIe0BY%Tn%Xm@T^bak0^t&2*8^V_Kv+P zw~$wu5Fy|1bU@~N;YhH+-vg%IN#te4sW$*l1C=_iN9f*?hPyXD{Tb+UHR_ua;uWP7 z|H)jus?3$i9?)pdrlPOcfa`ad@LVj`MB585(g0gSZo?)$qj1mS0Dwl7g&fIsKJo<_ z8q6Lr7a!Q~qH3NKxy*q<3*&n+{F*~i7xi=cXt;q%vbJ>FWI)PHg(+&MgqF1mG5Y|p z;gNnjpdtS(4jjRH0@L>Uuz@@+wiuoodfOY>s|XmY+fM`9kzAnuL-jg9Hu6?UnIhnH8_pqspDGkd zzY5sEreInEuQw39(T%IXEia5w(-#CFLt4LhP~ez)w*Y!w5!2t!Katj)f8ZaNO+{8X zm}1fcN1Qzm@LrFjXTGDb^bFF@{VDGbGQdiMC2=p7D^(lRN?8Hem!?E0Dy67Ulk=t8uTqqM zXew;h>jB;$W4$y%EV!FvY|VUCE$PCTd}NJCs5EtXQdTyCG>t%L2C)irfGvSZxv&>l z2J&zHwT%80xA{2v8k`ysGQtC1C2^Q>x?m9x$H?akGUOutX3!5Tf1ut+wJa5~v*?yK HBYXb=0zqt< diff --git a/docs/_build/doctrees/_autosummary/engforge.analysis.make_reporter_check.doctree b/docs/_build/doctrees/_autosummary/engforge.analysis.make_reporter_check.doctree deleted file mode 100644 index 790a4a16df463d95b86bb207e5a4e3242d11dad2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4268 zcmbVP-EJf~70x8nNjj5ser9I`>}1G-hDpSBHv%ruXoZlLy+F|fiN70WDBM-9j7mvi?hd_PPJepSo_v-WXk1Dfey-D^elztm4YQ_O3_E zt<23}wtvg;)Jm<|?V=+##nx+oD!Q&?rOo-mlzYzAWUQ+RA27x8Ya`8|V3+(=Qt?t( zmRGNmRPglDlL~0K{~JD~tG#XGTDx&=w($!et=KFX?rgm{bls#iQf#=*nQa&Del8XF z7xjp_9cFDMN3{hegu#Z)4B5Mt=FAuf@!e6Zh+o@TUCsw1mR?qTOlxYlW!Z$Lyx14- zi(TF~FPS7!L@x*Yz}!q|dYnVOTISGpYO>7s1d;55Y5%`joL)ut{A zR$aGK%Mi9eL>vZ{f$dMv*Xxm3a~-KNK3#A`^pW^BY!x2>>F?tI4FBi&pOM{wu9Csp zQy?bQ1b%csB44c>bb5AjD%DA$vpVM|&9&RRoq6}{mN58yMUNMo7uK^{d|&kE$X$r1 z@DD7wk7!MA8E}f39?c|10(M(hOVRe7yY6eROP*LAVLA(eMryi2O>kY438Ld3-k~AJ z=Ht8PX5j}5&ZF<61#AiGQ@4%#_QPSwK-@ok@+B8^r$zq4l#J4FyR0}u=Zbs6=NHia z$tlnGgpht@#)Nv>Vd$hq;%!-d?rk#LRSkI zzAMkWATGoA^SMc=yBqos~lP-pmb)$-(D{e#D51 zz`w{3?{+9l^ypKR7{8nxoAIjN9X3(iG7jzRH5@hu2~ z{p;m5vVL5vSX@_(&ve10^5S1^3+PZrS}h6|=}{3^IlW#j>Kr;6Xf)2;>sOo!PLia*XyUuBkDhSsdJnZgWRt zt*z3QFHD}_b9>aqsk%s}XwC``Nsp>PnWVa)=FmXp`%%Jk9wf;dX+_esM>uh|Vb(8Q zxZUX3B^oQ(2+ zbv>zoQNk4{kiyS(Ydh}$q#ty^Edsy*QS6PzrlB0Q3 zDRpBPZWDPp1~&o@nITZY%2Q&x9(9PxT;$fl)^0DWi!y2B52yx#1Z7p|ze(YKkc7x4 z-_J#*;dQ1HbRk%Ez^A1)JXzcsLL{}xl{7NO=YEn&!$vt7GP~tglNZRbT^M6P79q)? zbZ@pS8Ot2TA>|*_7Y;$M6B3at(w4#B5AY~~pW+blc^K+u4)#YB=CY91zdU&EdL=K> zSdKYTG7W(3l4QhicghU+4Pk9*UJQp2n?ZSPg;oPRNQT}$qLtwSSeaN}z&$oJU%c!; z`@xTaXRjKkE9yxySO2|6Ju;P1yk7EZAh{ifGm!m5VT&AxbuAkqg)%Gr`L;VoKo&`x zo2>y!?Eh}ufw@+eO%ov}BF7)Wdq39{_qzs<0-OA)Mp7F9^)QU%Fv)ewX3!p|0*zS; z$H!y?$^k;`zN||W0(#no_u7mEZV){>m1>L_XjtKhc*4}9m36Y9;LSCQsYvgtOOKc- zMm$6QUgHXaqs6#!k5a6Ug<)fK(Z+;&qWC=^l4 zB$C4>v2h83bBIeJv@FOK{GHKj>@)9^7%{O-D=mL9mr2Mt`)bYc_+r2HHqG8mpJ(k1|S~2vZUP+babw+VApi5SyyOe*v{pknsQj diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_dynamics.IntegratorInstance.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_dynamics.IntegratorInstance.doctree deleted file mode 100644 index dd63726974e1d9c23072b34b93f6b57e0d5a0cf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29799 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_dynamics.Time.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_dynamics.Time.doctree deleted file mode 100644 index 51f5c7976f0162d917c1191f0757d6afdb62be6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109155 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�S(gU9R<$0B)=<$})KD+C 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 O1#(_QKhL2$`Tqfgyu9}S diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_dynamics.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_dynamics.doctree deleted file mode 100644 index ccd126ccd60466e0ecc21ee415e1ca4555dd5f1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7779 zcmdT}ZEsvh6?S5;*WUOwZ46T4uq6t0MC>I6D&$5HRRIyAE>as%1&MBE@15Pb>-)yN zbK_lAK_C?PNcHCjALDSitSYpq#$64EoXg_t+VNrxi{H|ds>8}MV4$4A@nR_Acl1!}XlJ%%5 z5v$^?SQ6*Ntk_iDmg~uu+4@Sv!>ILg9JIbHB@bODvA5>uLOs+4DC}#vL)EYPM(bK}EBv(#1!xIq?)!c>$k`_&klzCE6%- z720}xTWT&~c9^L1u5ZN-f3BG?W^~3xZKeX-6WYamTP7?P9~axDF52QeG!9eFhjAyg z&B_{8{e?{1+S(gsIWsCo`E07ubQCsmKQ!sJa#C>_npxMHS(B_2J1jIz-!Y3SFhZA^_hG5cS6&(%jwkq|Hj_C&wP6KY6TkC001agZDei?U)iZNCu+S? zGN6c2=lfLyf7d<9dm)p4c-@O6^Gx1oJm0jq>BoV?t!88c-%iuc8k^E@20Vn%x=kNH zfN0-~n!eX$&1e`&?iQkr#?6SJN?}|hYj7ldbA_&92UKHCsq86S_-&l*3wxLcR z9yuv}{pXW?9WhGJr%ndLM9l}oZR{!G)sRNI{V9y|6U6t))|kht5n>Z{;TSPCLGB}Q zm)Tw-eyQpx$zgyzI7`#3Qz-L6;Mk@ulLxwapM_p>0Amby(_opXjia@UObQ_l_oS^S zk_?GZChF4B9gZ-I4n#jj!g(J9(2WyNdNNJvWSJj|P4Nc=WfJ}Y+4*4|UW4HG;Ah_- z^Rw6Uviib%6Q)vNZ@g#2m3V%8GM>kQ3-!G3Hhk+5%)%#n7#aHkYV&MO1yb@vVFG1FOCsv-kAns9C*@DBYs^C zBmLPEGc(7JB;q&Xx8iqg@q0DlRJK#@j8y+Y2nPS0rj{%i^v^&ISv>g1ae?>usqx@S zamFAl>A<>s=bIB^DIGx4oVFzZkD_Y{kN!nkp+3)NXV?N}YU`0^5CtClEgF-qHXFFw z&~c`S7X2$@(~Tyv0+2`=+iB7`D*N@fG0HUcPeSE$=vP5yEuCUC!yQyIT#3uGQ#AZR z$xqsrac6qeLJaP|NJh|Es{hf<9@Df*V5UR`U``+VF(TsSG9m&flY=1|55>X0pv4o; zO6V0;hoR?YTNRr}-LnelO*?k=`xs-IswM$%AN?x8d&t4+{|t8BhbScvh6iMT6m};4 zJl^@Je@72L<%smjn~!_L+E9 z>tK2teKVGc6h_p_Ewx&i*pRs0os1}Y_86C@ zqpm4x`#2rTlZ@IrmOLd;K0;-+`+os?zMHiBf6c!CroXvbaM{4(0q*f%`Zxa6T+i`4 zxOmk~7HGn$hR*XXjrDb5- zAX=7M!5zP*PIrA@dcNe9>KiB2GO^QM>>2|iuoBd)M4&+fkb^Ff-Vp{no7QlL>l$O< zmcr1-AuJnnWgRl+vaOav9{8a&9DbKWaVJ$nFsCTi)H)y7(3fN~j&h-zs#&}f_b}cH zF$Tn^U|h~z)GR{rCa3LyQ&_P*Xvg55=@aV$Mk1Eo?ayq3mP^#R(ME%Zp&uH8d6vV$ z=g!koO%MvJsg5h7)buD|bjMo8hUi~7iR`?Rj$5uF?|p8xVXU)Sqdfp+k${RE9n6*; z=JjIMp zCv5<0*^1r3D8L8B>IxzeLlBrW;Hs|CuqN}DRYAmK%Qp~oA+-iZ$B(#C?Ws{>O5?5_ z*(o?z4a<&*P{l^FRn~K-fP*bzGZEZCdl&{?&cuv7mZ}ZjDFLU^q>oB8od>a<)t0b$ph3BRwhYCBTf^;TBwYh$RRP67N8rF(I{QaFBU7h9cA#dtcbA@~)Iu6g;J<((UUh6ZhXi*|)S!NrTF0UQEs1A0zy{fw z0=GInQky`|ncndI$d^wMf;(aFUR2IEchkctg_dNNHE; zAt&Q0^AKJfGK$Bht1QoBdA7m>RRlgXc|Zx$Mo{_h_^$lQ*`oAWK8fMl4?9xS^Lq5w zkc*Aw(2RD_$EdgytK}*hwR)C8=%&dLDobl9=;U jZ0tDY_Qubvt-z8WDYRtg?_^ z91&a0XVoK}9vL6`Bb1b|&Ww+hwIE?5B;wVE0v@PooK_tm2N*#nuD_7gzYe?JPhNt1 uR0uP)K0G&=)M8=WoQ$@ALJ{jhBo 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 E2f>LEX#fBK diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_plotting.PlotBase.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_plotting.PlotBase.doctree deleted file mode 100644 index aefef9009b650643182fc381bd45cc5726ac4b1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100391 zcmdUY3z!^7b*@(0x1`m>_Qv*Fb{kvPNM5ZhnU~kLjF1hHg$39q7;G`>o$1}4*1R;` zBWVK$12I^*F)uxelx{^xISn|7ssa>gu|>y5JIcKp$D zqtvchb+2<@XZssFw|5HuSj#-&HrlO{)$vzBj*?xemRnZ6bGYMAV0N!kb!Qm;h-;O+ zN~0c-+e7xSJ#x5Hu*du%ui{lL>6LF-^@aIHYr&c^J+F0Ju~}_+UZuV;^D=mNq3K#3 zqy^H!o2`?`Q;1?!1jU^l%J*>71TMXfy~!Ud2F|zT?N>$T!ArYR3>Sm2Tjh5R@@ng;`9c@|jn5XTJc;*7W>ew6XDSMrL zp1sE2;x~5H>fWx>u2;BL%iVQTySeM7o@cdcrdKJs#vcNNXH z*Kpgln%PnOJJtuLaWa|xVk-Oukwc~^|EzR5<1m~eF3!6z7T|a5&XXu{@(`w zZ^ssc&{`GJ&H~5^v;jKvcW{ju1tJlnQdgB1@Ugw)U%;7<;jm*5AM!e8+rHG^DTH*$ zJ|9#8EDwSymby4Dz?%ttQ*DtrKhzjJW)NQL(@vQQ+QL{V~GMiT)YSf_+Z?S2y$5Nwy+-iZ&*zcn! zij8`8@#+_uRTpwv$5^^`ta#K~WIr0MazH?y<#+X>3$=mSvCP1y>5}K|#O$%b8%TrA zdc6TTRb2UdZoTRv4`4BCY$Gb!ws+dNiVLXdHqDYXYXn)0ZF~2Eh6xlW{UJipVORkj z9HfRC=pc|ZElARaKVVQ)PU4d&;T3WTrea_Iz=@728yRZ;CakqRXDK=5O#ax(T6LDR z1KdutWdU}MTOFi50JPUJXx-5}w78k>LM;RaJkwm9MbH5X>I+6=KE}=^A9eo00b;mg zMEV5%+?2Xew^!;Hbr9@CQ$st(#dS=%CrZ?8sK!+6OOr%Zv zv^A5yNDwR^>V@U&3Cj@g zYzo|RqiMA;YLh+qz}38FcoJ2vol}g4epOq(Q-RmvZi%ai)l!#hq1qrlIbb}b zn)mDL`o(Zv$@-uy^rDXmb=1(Ml(FDF*Nl`R)bkl_lVa5KNgzt8o=3IiYt_SQNw1#& zqpzz6^-vaiQO|m15Z9%h5%!wvCipEh^FwWGVl?xE^qLu1t?N;>nqjplni(RaRo))< zOSEQ#zP288Lz(DBHzRCB-KCY))-m1yd=%UlwA{z&;$k35iIV4P%h&3H)uQM^>%^|r z*VTh2C=0!4Vy!f#(WQ-H`jTse{}fs|tZhk*R$i4}D@V2EYqi2^Nw1YfeO*0hg|g6# zR>sBLQkPPO$UCkR_DiVbo!Vx^sN|mXD)~)q`C65*TGFfJBl@~}PzhzB7nMw?Q+!=& z84KQX)krBqJzvx|DMmeCNUxr+Y0KBDht-l^J&)__>Onn}gOm!xh14q1XY|jh!NN+Vhy&(gFw+V@VOAN3vGyCf zC!t}GMVA_3y<+Bg#X3=f^~R3Bfj<__ddXG>`$@}GW3b}pnXq)|!Fp4%)+o2DmK!XM zsWbYpbO*UB<&J&KABHEG-S7C*S=Q8W)xmL4FTuhCT`G}8b(M*0X|Qw%v-KT+9OvvC za}KPBc9f}lf0#1c@hAEEgSt!x+|tz7wb(zMF5pvG~G$H(hsxK^JDG8L1Sb|8mH*VajJ+)2f$YrKNZhG$Yr% zBV(1YOgvJBWxSSIm5OoRjaA|*GR(0BOiC>MW{4$quD;+862AP^%|%>=THHx>qo@>( z<2_i+l=ExwM>m@p*q^fqIbm@ft+8fS>K*4{Oc;R#GC9MIz+Vd~*2!kIQi93OQzXL) zvsH)3F;EG!C1MW99@P;Vx(tvlT8$Coei!n;#a|w)X&^|n6y53|%KRR}v-3Ip18ZGC zbvHf|lXu<$kHNgu`Ey{!22q^>8xD*n>@P5+C4XihN!dhy^F>yXy@mP#)oSFWIl<`i z5v~vufM&SWo@-U)1$Tes2FtS>umgh0CHO4_@Qq9Y_&Vkm>H!Zm4I0}(Jkv(coNHIj zR{Zg%jlHlh z1NJ!hlTvRez3%v%q+dmli?UtjmNSP|tr~~_h#lkHGHz_J#>e@SYrvGXSE*UXKHSLw z8Z^8H-vD75o^2UN!FMdUMiV!+khho!v(?a-GZHAiQLRF^RV1t8mAdN%Nv>g5tE8L& zJFt7g^`Q5*Tmmf9a2H+Ass$v)Qq>K9M9_DW)#ob z`RN-MMK)&{ZIlmeazXjj%%c{O2I=c0IdN9G3}jUxAx}3JD#xulaX8ytNUeBAs{tFQ z>Y%(*%K{}9dDijq{UiYzC&+<2xj2w1=x=TP`7Gmqj{1=A=sYE3YKx@Uloqq1X8 z&jg(}T(<%i1;sYo9yJU0Tyc#mFwqKZrECB}7YC-tO2g9Ia|#!dIp#7x>v*Gj9K^D} z(OfiKt2$4#Y&M(KMbNQXU$ESn@$vaqqXzz>UB}&GL^X&DcwMf_qO3Qdffx~#K6-$Vjv=Xw`v9xVX`&RBdCdh1OINIt1*_V$flLP0kt+>fufi`U6r7 zunxckx(wrl4Q7nZuT{z*YOKJ7ZB?aq%LNMu2;rg~$Qt%vH4NCagfKEH-i71i?K*5o zItr>nVF;X%T{lJaNuY8HVXC1S`lpD|5A5SZ|3U->?qr4tnaIvM38N0yP2mQ^kjG@* z2lR2?0syWl#f9`0Zc7{if0wb_83mFPm9l4d4vu60J~T+Wx7F|m#*@SFhesYs9hg+o ztGh}9=7zkvMtL!k?=`K)iO3g2xPz~oMvaILU~~=Rli857G_F!&MX@W2?_!!!o$Fp2 z?>i4bXUiMyOrty?=5`*8N`**#LM=oJ$9E$s*)$mySQVTPL5VaNABJEY8laA@P=+iN zpCQ_a56m>7_?18^h2m?l8Z{8VOA5rDPXSLP0(U+QPxdkAGsxsjHbM3&3h!H-LgMKi z2{IJHt#bn^jz;0z@R3B}@zO`it(b4hc^0X}xdi@j3!<=5E%t`KhB-X6?Q^LjKt9Zb zaJoha{Z;&{8TY!eY?lh9$&k>lV$5n_kyFkV_ybPzLinRki5=gS`B9jnZ6Ds={&y1>pTvmxxLP%X}t~# z0I{2Y*0R6d=HDa;Q1UlFMy*kQ^Cf&t?{6L@l_dI`LcG6GCtbLkNlzfW%MeUS#rJsq zp9k%)x>hspbvBPGV}U9a{8D?DS4iH4PcVtOurzL_n<~=Z6tMMO{)VT5zd4gmx2cnH zlH=K_Rel!7vja-fDM90So(H749nZ6q9Z$DVm!$`~Btepr2ReZ2qaNrYd`$0w3{pv= z2fA+=PTLY^R{-P2uU^SiR=PQ5$?RXngvBE&n5J0^vvV-DO1|fm=4AWuOEc#!H6bhny;r0wb<1M? zh0JUG0#ks_=SYs9+Pl7q`G>bJk8u2aV35V_bDBt}e;>BI%jxq}Fr>}G>GOglwZDrA zj@!PlT(bEg!}Q$!#Bx=7IbP7X{D*)vx69v?-sJ~!K$BQ*A?Ljba+DnY@1ydl!@ma~ z(>wgTNhOI6|1vQ}hl>PUZt=@sJoL;?D4gm4VoixQN!g@?D3*^W`g|{nSZYsnPh`bT zyYiW^5SF9&c_KlG0&>piaNvFZkttCpexzjMu5Xh{61`6$?aDd#I_U|7w>cYI0giKJ zdYiKt_n8F0)ZXTbz}v8mD2YpuG+(4|xe{C0 zDc1vOZkKXNQcT0zz8pQt6$!GFJjrdSFdD}^7a!BdF_)7{5#};;ZAfAd*7$ue*&p&Hbn#J)v0VVb5c>Wzo zb32~ID2%mzIr^J_NRXZ6Zw5yKfAfEt?sQT|N;aPRCaEOR-xy>M@DAJryhGXryn}56 z-Z4X*3eM#Zk(`n-or%0jqcoVJAGK;tIIpPU%JcKXv~=#B2C*)wnDax$#Lre@>(0a6 zQx4WmrsUU3OiP7^d2_Y^0pAMcj|I)+OpUPiN=00ji?4whsi-hFdN;G&=J7W%L1Z#K zeG~gRkKesbJ=v>v(?ojM!`SjJ56e>l6PvpWlGHw@wV*8Cwg@HZ#IG6iR)I9Pw@sYK zkC4N1^t`tw$WijVuSez4NbeSWOdsjJf>e^^c@s9R2b{nMT`8DmPM=o2)YuavtI)?F z$-oN{M569t6n7Wucq)#pLZwKM`xsMIbj+Fsavx5Rx(0He1k&7)OB`8+g|Hm)_Q3=p z23Eesc@#BA@%90HOpmwskxG*A<`>d_sKjG}^aNte^mmN)X!~34>tv7hBKW2DHsT{1 z_4~18XQSqi^ff=j7I*m?o(jHZLM=pcHG`wnN~2Ys#nlWzNj>)N6F{2V)g*pI6OzGl z^fW&uPC!3)V4t!Zs5t6r{wtfoKTRr0^fZ^Cyplg`R{AowQ=6NMJd7mzO6

N$bR2%g!hww3d9CMIVlH^^|j~m{Yf@y{^TJ=(6 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_plotting.PlottingMixin.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_plotting.PlottingMixin.doctree deleted file mode 100644 index 7112454b2007bf65ccb697726da4ac55a42fe02f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14476 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_plotting.Trace.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_plotting.Trace.doctree deleted file mode 100644 index efd48623db5c8f31ef0ef896344bb457f138a4f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117289 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_plotting.TraceInstance.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_plotting.TraceInstance.doctree deleted file mode 100644 index 2521a0ee96cffcaf9d197e3c9cb0ec503aa9d8dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27682 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 AvH$=8 diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_plotting.conv_ctx.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_plotting.conv_ctx.doctree deleted file mode 100644 index b0db1ac05b8231ece15fa7af2bc0a6e3d77b52d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4135 zcmbVPOK%*<5vEA(lFP^PAxlVLQKk?$CK2s!4n7!y5d?622naDiUKdO0^v?8dkJ-~b zndzaH2LtxOMhNuHoj;IUenIjR4EX=#oUgifW*>@RBnvDsU0vN%^;OkZHD7lA_V{Qc z{M=zx$V|_MJWaJpMdjU2YLYq^+WK$(#aI3df9`rEe_ffnOoVqE&`4ya(o$&u%DX

Wi1FH*s?Kv>-nLr- zwp9oSfniy}>nE3+^;mAWPNq{aTY^1CM7{?vjXh|^7AeeO-!xzos zE0~?T9T+hP*P?J>RCp9CSoUVQdR`Trs%NJt1)_f=JURVq-2Ul2Illb=lcPa-MCrRo zh2r)(r48b!r)OsJmM|>^mZf@ z6jrVTB;StC6P>OY!`LfM=a}Y!Fu6?1kSnQo-9K_wqwO_x=enl0MQ#0+JiKzfsnDY27A1^D$}uNc zo)=i`#TOD=Tw}RAU)H6<>VOiM<^$Tri#st??qp(&)y9gY&C7f4fCeaC=WK?#DEE-` ziNp(*n4IRa3Rk`xB|?cHVXreQSu>^Jjq?NZvE|C`m!dGGWlG!#z_;mkC0FgT&HtM1~f+>uWqcJbVuX> z60MTJM}-c3ptzpad@2Apk@qIXT=$?9i78W-ib7zL(g}@5SFVfNn}7)cN0uT{!M>PQ zyRJ`z8e53mCRo`Wq;+1fHvfQX5M-dKQgcNY9tKIsY>NFtR8*o)4Z|b>ts^ljOeNUz z$&ez6Wj9%s#r!;EX;$&EB1h&{ZZ~y-8rz366$b54WVrNTuEr*rf^#VLNA!f3U|tD@ zC^X%cBHnxW9zdMp68U)?nxq2PBMViQXV$+s`oQ%IQ80iaP?AXiY@Z}!4%?|R+>fNS zMfH3%g18zMw^kZG#J9l6yN9G141gxHB1d>^7@$Nkc>m`g0?&RqN!G3>$>RE-HrJz4 zIpyoMD2JJ_lkg5y|47QUml{P~0jLLI9hXd*gwLTpO(dqP1c8sm29yJYIDK6gAboqL!->zWDl zEXD8vNGu!7KAwNVAz9TVa@w8S68eTdliW_^5)>~|5&bJeaab0ol#n>bFbb(DaoeO_(AYxXTu|R8VSJX~%kL`JBSC0v*p}blRq`o)y?lqB_Obl5 zb_dH53s)Q@8RAYh;Mypm!ff=St;>?Ahtx-e^RZEF5(L$E)`YEgZ{@~b^VV?aWaWMk zY-x$nAFkgu-$7pkZ6u~9Qt)msF-iel_<+8#{mESZEfDzH{}v^HNeRUSC@Ta#zOZGF f74cpx4sqMdbfW5%@?=W2zMB%k&AA{BQp5iM3He+M diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_plotting.conv_maps.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_plotting.conv_maps.doctree deleted file mode 100644 index 6c45b25b8d221fb354508b5e0b9a76646afdfe14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4148 zcmbVP%WfpM71c=7-D*8rkMRr=cr=z1IF=B1cNSR$10x9Fco7Jr0C{aP6NX*IZkEL& zD^)B_YhfT>IEVo5%=|!h`GVvV4ETSt&bee)^LXG2+&iFIl0CwV9rc5~FWl zvYZ!{r`1^e@Hb*kQEjZ*T3@pj*L>+??A?MRQtRc3>$CP~a>sQSC%SeIRi=f%t|#2> zQ4rarwm^bTzLTXDowAoGUR5ySxuba=pLWx_SPmvUxhchzd}`OTd`44V9?5s*fqW`= zZ*TEg}hm**FmKF>{BD{U~WJ2LIbs%60=M0ORE7$f6r zz+Jdq#4!vTqks@scob`Z_UE~JUKO0GXtyW@IB+XGo%qMGz1*LDR#y*tAa>%6h?mZTZu4*M< zJ>!rlcxS1XFI*Q-$i8>O|4BOnE$^2Hi=-DzL_g*v7!XMC-n%_wznOdn<@f8P@5WHQ zd(yCTT_F%_kXERG+nv@*1zsTVJ!VZpcw6ZI-{p(Hc<48oVv+5)HG6Rxg8f9EMf4H$ z&xkOA!3TkF@U^QAt?5Y1<7|i@rS%`pM)K^9(}$yP7k4P+X{}?s+ca-L}~|LJ-F z#@-cZ1^5X$O#d=5*GHiM=z3g@vT5(7_)zZ>;J)tYY&YNCBaP9%lomj~7qu7<+ zUZ8DrmLIuyY{_+{&?1dyMQLVG&e)tg)>y9m)t1|9d_;<2P49c)21#8~>t}7FKWHqm z;X|||Fu3)c(A6MZW2R+bOX^+scU;wIfQ{t2uBmNNTYoK&u3dj7v?#en8Do%gTp29S z3k>$-3rR6r!EKNF1iC0?p#ZotP|lIyJ^>W5vqk)dP1(w<%rcY>rD(?qL~_ zk{2v7IbG5!Z24}q2ql7rz0Ry;&4mSTTr61JV6NRkDGF0sro^oPeA{kMa@7ty?nKNp zpk~oltH!D0I;oh{GrVr_nwJ{A1RkZ}IV^p^p9ngX|En8h8W=I5p?UB^+17SC{K+r~ z#nbgkCd$&3OmdwnQ37!a6&m7>BGN0nbiyv)oo&o)Y$5;c265A60L{{;>k}I*-7y^i zM5`q5QK3yADz0ZWp9#QC0=|tquX|LA#FQyZMImsf(g|IXu3Z;JGKCldjw}UHp}=!e zwE^AP*wW;-q0H_ut@DDl`~#}NkU^+Q%@u8U6fA++l>4Qrs6?F_hU)~pj>Wt%m0+tY z14RC>7)$EL2&ZS^whrLpLZy!2pUtNhSfX1F}pwVyDV*-;vf9 z)${Qf=4w>jS!whL9|mLZ9+PJX0G`Z>9O<#)7A1<|2S55T@EnxWWMg}>EVutbvpp)6 z6JKvcIm(2chIgR)$I|8sFY8-AK?$W+`m0@c214ent$ebK}98d?HfR?;S#r0(Xjg_c(#q4HM{E zis5UJR5pZtviP0@S=BUZ+P&Km`j)dlK%5f<1!`G{EA%_1 z@1xJXJ6*F&o@X5Lz3ig=xdOT#MC4T-r>rl6wt*P&^LOYEbLzafiL~9Py)Ctp_l+=g`~$9w(7BF d-fztzZ~K`}RGkt}W>o8YDGA&{3*uF3^dAgFV9Nji diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_plotting.conv_theme.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_plotting.conv_theme.doctree deleted file mode 100644 index 81086b807a5a5c81cd6e72d4c332d842767eb911..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4171 zcmbVP&2A&d5!OmeO4JYav))Avuhv=^jwQq-bI2iB7=Z!Dhd@{b$loQq=`?4W?6G>f z$1^=z>R`YQ;J^a<=FSV`mM2Ia!GPZ<=X}-8AvxSEjD!Gz>FVm5>Z-54s`;|>w~voD z!p|L6h0OG9$kSAtR8-#Wq$a6zp{@VcUwq}i@aL{q@>i9q%S3p$0gXgvDlLWfFTLxN zy3JHIoS)yWL}D|e7sq8scIEa7G7%9eXi=;_3iQ!(V$mM>VLjJ27b4ilqq zUN9>~E<7E_>HEJEGjeO~&_?^v#{AINK6>9RIDEBU9=je}TuyGe?)*+y?!L;j@K^Pi zyIpc48`l=Gpu2BnX+`(kP86>y2=Uy}JdaO1XVnRB#+qQg4TV5W@cjUf& zEVtyT`+SsZJ4!~suS8jmep?r#Ut256oZBp^&VE^%Vr*usvQZPC5nQiEjMvswb)NI` zcCi&g*A7CA!LY1w?f-P8ZR6H?q{xO-(iujNnVU>U6|`2;zE z=l6lkS?Da1+Z`R>BDu4O^q0+>A zL||S5qqu!WAVN;{^vq1&kg!%-o?PAw88`_MLnQ&xz^lpttd-DpR_e4#%0l_giU&>h z*m^Ej4L$;G1R7XoK)pEw?w`NyKZMvD;2;2&v%(M2?g9%UjAJ^|EmY1lPH$k{<410 zFM_w9$kP~qc>OU!CSZ9#pbpA*waYbaYI&bEI;6z@qcJ2;U%P&|`(|;Anx51;_Q17^ zrzYo__VS-@8$(3sz;S|}ZA z)5sbq?<-8qJE*OhKcuV|T2vT=~llx7+B56w8|4chB{c zx}uvO!EWn;>DeqE_X69#%g25%I4)gcR)jy zu5&iS?38;*`b6smOH59)TLqKvM2S$CpdewdGAmg##o&$e1M{)w%I%k;Fr{Tm+z5nk z)9p&G7R!!17PAadvuLzcqttPoRE+B>Ue|xcOO3_?jZ*L&k{-gJ2)dO2#`QCe7%`#2 zd(cAV)^;-Z`5a9QUDb!JR@T3(;&x|BDV>4b_Z#l7i@t)L^TL9P*th9B7=uP5|B-~Uy6!K)Tv>Z zEueKIW`(H)TRj;dl2~?=RawO6AxpE0j}={H?&Wq<7pSp)T&BV>9*PV`59VrYk||sc z<^G7C@DfZgp%8^8Ybo-*hi?YtDK3G}7#}E9S)N({{OAMMFGRr*6oHaVLcsP( zGUo7|D#QIqT3b}lMk9!;VR37v(L;PMjJ$hDn!y2RGAnYV$A*zg6odDF`ZL6{Urv%W z^CVfC|8Zj;mC6aP*P#RXWL>h9c8 zb*n9(F_}%J!XMzhuMFXSzryTp+2=KixjDjczP!Tc)SLwFfF6@%dIAhItZ+g+QPtx$y(}m2D#K$b(&x{$2WIlINKwDHa6t;p z6?g7o0kt9S&%FEJEf1NFT6WxNvW#`F|17%3mRYOn+)pPB#h7Ud-+}EdL#(V4cqejyGlN# zZ=3JX*FKV;*6v_6W5L8hk|FQp1I$JV6=tIseO;AAJwP8B&c{YAKoC^lS`#j`do7E- z=B?q-Ny|P6wzS0P57%wYchJ{B8;Plj6ujF@j8cd$?ts3r{mESZEh6x>{|!n2^Ad^) np{$Vf_`(Hyw8VQ0amd?VrV~}Cgp(=N`ff@DH|K&lOb!17xO!?F diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_plotting.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_plotting.doctree deleted file mode 100644 index 2035abf4530e3e8c37ee468d05e317adca797664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18910 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_plotting.save_all_figures_to_pdf.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_plotting.save_all_figures_to_pdf.doctree deleted file mode 100644 index 494c69812be57f476aabb19d48619d285e905784..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10986 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_signals.SignalInstance.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_signals.SignalInstance.doctree deleted file mode 100644 index 699ffbe783a98f563b87b0e7b935806755875f0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23341 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 ZYLNG=QBCIws+}k5;voTIB^}ik{vYy!(CYvI diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_signals.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_signals.doctree deleted file mode 100644 index 5c8cb7350558d6468bd14785cdbe03de4cb976c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7002 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_slots.Slot.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_slots.Slot.doctree deleted file mode 100644 index 95d5348edd4bc03061e5115b3ca9af3bb16f4edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109021 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 VIZvGzjz&VLC!!((NON}j{{yl${&4^R diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_slots.SlotLog.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_slots.SlotLog.doctree deleted file mode 100644 index ef99be8f597e4b2b6cde555798976b7882e20800..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52048 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_slots.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_slots.doctree deleted file mode 100644 index 375110c683393d364bc093eaf2ba785ebeabed4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6691 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_solver.AttrSolverLog.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_solver.AttrSolverLog.doctree deleted file mode 100644 index a4a3898173ce836b7072a35a48de04fcfd5bad19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53160 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�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 K1LOG diff --git a/docs/_build/doctrees/_autosummary/engforge.attr_solver.doctree b/docs/_build/doctrees/_autosummary/engforge.attr_solver.doctree deleted file mode 100644 index 7cc5b2b80035c5b499a4445c9c3ef6af820ab9ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8064 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.attributes.ATTR_BASE.doctree b/docs/_build/doctrees/_autosummary/engforge.attributes.ATTR_BASE.doctree deleted file mode 100644 index 37990fd4bc2395c8068caf88c5ea858b596bfbee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88318 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.attributes.doctree b/docs/_build/doctrees/_autosummary/engforge.attributes.doctree deleted file mode 100644 index 33f7adc7a7cd2dd64860579183d61867c50365a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8043 zcmd5>+ix6K8Fy^2?cMmAi$NrAr>a8SHugd&5;9RBv>=6)jnss45!K}E%-KD&o?B+l z#Jfa6^r0x0jsVdCArKNg@x&`a0;Gb35Fi1sv_j&Ir?!ZHp!~iwGrO~EukA!tgQfNE zIp;gK@ACW3`JHc8zJKfS3H_&*;!rq#cazz+AJ{xj)tntziN}4JzLq}qN_sC{SJjB^ z#6c2SJXI5ru!Q5<5%<%VQ?*Fq(sAR>y#H*>E$IY)zq_c288Q2Ex-P1!A|2`SQjFJxiOUu|_=+!h^-Au@^7MY3_RWbJQnr( zO(oTAMlp8!*tN-|DJE3K@onBMsWa2GcpN(uPe6xH;&Tq4^Y}bPyM&@5NAGQ2O^3{h zQgy})?8N1tG>Vm!rc2d_veu3L8pTXQrYsT9h>em8Za=&Vib?7NBW;GgEz%5@?YE7f zweKp$W3Vk8rV3YJ?TCei(2i6PMuy#|pJ$_n*#! zRaDdqfsds-(qQx*OXgdgG zlG}RA>ta=XV9coLUktduW7 z8P}nRRrSn+>~GBS`H>7TRWd+T%|uBva;)+;XP?VqMMK)E>X!%8#z)`c?P5CE{{rm4 zqETR3vS#A4$g~32j6+^tz+r$et>xA7*S>uBqxbG!yjOgum@}vF1Z+NB36uUlK46hl^(1OC?4@cZ z>}_DZDKF<>($rs}>c8MLG8SV1CA@{WNtJQfi6F)CjAT9L_^EhP&7wr`o~kLDTOCK4 zcSF~)9GTwN%{wge(_LiC-d2{~$DFX#93-@Jrwu)eWH_iv92pMKyGD*b;VAT|5JP9h zKOCf8G6AK~|K=(5_hit+I=l{>{TAWzyOHo1-qtT{@4%@WJi~=P@tO&F!*yZN#`8to30su+gr7& zsucCQ=OFGoPakNab@9gGQQtX_F%I&ye&CCLm*cwgEczWiw8dNEZShV+{70>gi_~m$ z6bX+yRy$7~qLVyaJD(%{>qBqHpr1zz+RmCD{s4FCynmU$K!f*l$^pi_lxt0_9r2R! zNHL~!J>(XfO--#E~KM?;{y7~^3O z=sx;A3<90o7lB6A^nY<`=K%LT9+wKk;>tp*sJ7K<5pT zLZ>%%rxEiEJZfEB8nC<@eM&CI-6`iV2hF9+Udjq;lRU2m`%h(uXiblRBt7VgmD9uG zf;uH5=EttS-xwlp&b)!VnA1V zTz(VT+W5pq?BMs=;YO23Q4pCKivyy2hL&pK`nr_qxHL*dkCLjjk(QAmI`v5;!NqLc z!5WI*XNMa`I;&;c1H3F2P?4+gYr$oHJ7H}OjoZMpNj$2klM%Oq$Tks}@DWTygndKJ zWLz|9#IfO}fSztDX4E19oH?jclMWnf!A`u;>^mP6t1BG%UF0)>bwe%b8tv9({y|k3 z^TZBJ;4Gw;K^_D#H_JV>msrxgEU| zA^aU{r?5~T6jFxqR=tku7|#k)1pX#op6aPOO_F*6kTfOtU>>Q{3lBHWedJl_b1`aJ zBg0e8VE7Lg!y`-?x$HIwMu*Fmo&%v@7t(VvSrwTNQKX5tIkg6#^vr&E5?Q0UauB)X zA-ifh?)j2+P2seKix2#Fn(}9==3~4PN%MAsxQ?Nyle(N0O*gPumYLL=CGad_!SGqU zLCac&=)Da(aaX_LWmJ8J1H15^z;gT+e4qe^69g4_9~hAX&k5&s1C~W2J+y77@ENbk zZG>4 z#J^ZoshY?%64DL3v3LTHYq}lD>=Ir%W^z`nfbinIb3pE0Vnq@wvK3zLVo-1CeM*f9 z<^rGdNZ!rLPe_ScDEpyS%mP@$EG7UHA;V137s1xxD^0SoGEOMFck9 r3;_{%@QvZh*@S&e9I8Ivuh!mpJU;=#``h$tT(b$bbA-#T1e^Z@IS=MO diff --git a/docs/_build/doctrees/_autosummary/engforge.common.ForgeLog.doctree b/docs/_build/doctrees/_autosummary/engforge.common.ForgeLog.doctree deleted file mode 100644 index 9d8815313e887d6603dc3e991781252c4ebfd9d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51623 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.common.chunks.doctree b/docs/_build/doctrees/_autosummary/engforge.common.chunks.doctree deleted file mode 100644 index 0ba3e01f0bc043d57f77ced84290a059dcc11a0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4484 zcmc&%-Hs$T6`r5%p6U7N*_q9bg0hoz6hdaiPB#}^pj8AyM7dyKkRTu-v6S3Z?sjEd zc2RcC_8>(9q(qG5yA&_LYjB5<5N`pG5GfD9ckHU_>JAHp8(M0qe0*#lf9E?t{!Q-> zcgGw4=Z;J+QneVfBvCryrgFQ9j?0WITYXwx{I>e2I(LJDy)e2gVqUooXv89wNx@b1 zymCWQx2ZJadi{>!u}!sVmy4e0i=F4yxfr;fO|9geDR;`%e5Q*zAICb&v>L~vR5zxg z6RM13>Mi+9J@i(UO{ZTer@@+dmvNAtLt*g+#a*GNT;R6jp>Hl zX=3O$JF#TOK#1?2Vp;gwP0D;Zn6mh$;4{)G-Hv5*nySQ+cugFLCt_Qix!ELBb`np1 zYItELKPmIckF4cI#%vm!(R+o?r+U$qO&Sy?Fx^ZdR$6V!EMvu8JGBbXxG=cv>sMRl zRBX6jsuI5F;2IzoZ{Tv`O(6Le{%_;|4*nN(QD9Z1{(9$tC{=T~#eFq^e||AKPt_>X zNh$fLF|9uT;^n>&{cBsXQhZ%pcEHI0cQBfxCp9!AdP)GQWu_xv}E9ycwaYxA$qRgrR!-stXT;Zeh?^e zEyyOe;*fK<3kxp&mIymon$J%YGigke{ z1aE-geBCQuCGiXKoD?|}8E!iZ2@!tBc0NPNFGx;lZfVmeFSki7{-s5~`w|xM6+*3> z?!J0^H?j}Ex1j^MEx6(+vWw!MF(+r@$;0+WMs-X z=EkJAe55W-`fHwy!kMF4p|cUfX&hL3`ejxux%;<&!`)6XAtwD5*ZVdx2-o{dxZY~A z>vEG8{JFs)EJSkb_{=+OE5Ad^o0TfG6Kmc|bjDHy;osd3+-dJ}l;D4aEZPo~z6^Eo z-t8#ed=4A&CDp*Y>fRmHlg;=T8nsVMt8}DvBWv_%CpyediDJCj$N?vPqjRc6rw9cNZSGNfK2kH{HVYOv*NLBb{XlITTh zMbvbKII&((w~5#8py0VKY$W+D2Yg#@PcYdId+wMoQlMthXP8E*=XwdBmUA38e8CC@ z?m(m9EQ4eK_+w6&s($Z=sRBk3SIEM|FgGae?DAU(c6>isos4)<=pqtKC6X6FoJ>WU zb4LN`&MrN_OXbeiX4ba&@Quw4^h#mhr47yMC#w@{i`_%I1Gr`cAd&yv_ix2Z`3MUSE+HEb&B zBDIw}O=uv@4saQRl;GnGn;zC`(JYm?9ECZ3;SjWQJ{Gy6-4eKbACE1#Dhxr=jL3?r#yRzrIh3)IXQjt}t$ls$x4eN*O0_w;1-@6b9A+=D$jPSp$?XcEH-r3zC{ z*Ywhi$SXAq(MT`Kn+lxCraVCi-@ydI(dgW}$1${SB91C0BfPFD(R#Cw>-RCpDrX_B z-MekBZs}#}c0)Qr{DO+8SSf|*<`>ojfZ9i49EED3%oML@1 Np#)dwg3ud{{|S(G*Zlwh diff --git a/docs/_build/doctrees/_autosummary/engforge.common.doctree b/docs/_build/doctrees/_autosummary/engforge.common.doctree deleted file mode 100644 index ce25b7ca9b98bea610e0e0e910e016d56c198aba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10245 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.common.get_size.doctree b/docs/_build/doctrees/_autosummary/engforge.common.get_size.doctree deleted file mode 100644 index 518ddaba8702c38d45830645b41ad989d806f89f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4802 zcmc&&-EJgD6}HzN+vA_{+Sy$;$~t%zZDNbHhYK#yDggmeE-(yI__@l`s_CwoYP-9t z>8joxBOw7&qP0|aDR=|KBk%;g26qSv@eq8cs=KFW5-(A1SZP+>r%qL!^PTVfw140G z)87tP{6D*|3z5p%IZG0$60V)yN>p6sTpIVeJN<+EojbAplD*WbDr4^K3N&JoW=YAV zd+zLj)J>Y{^LqcL=CMhYY`2S^*btk~-HGVio=Hu{J4^OWE~gV!PWgGP@?6RDDL0=) zI{htovwL(pVpVSgK;IW?k8^!D0y0^)OW8Xy( z{OKpB$0w;g&Q(%n{J1f%w&B#-hf5-gULCxRk#VdN-x6mXNXoAdNpsV%=1Fn=j8KC0 za(b*L%f@vqc^kn7HtV2w`~_%Euri<(n2i{ks$8Jw!^WW#HNJd$tT~q-jFjZ3o}IM0 z?>GDCHwhzpcB|PJSp1+PsJRMMeiDc>5@aD;2-1n&f<0&cSfnKE^N)NXc>P(PJ<|oF zyxb~E4xYW>jxhf*PXDN;;r|Eoi&YQ$p+^T}f3Eew`sX?7`R%CNRq0q4V#4wYSWcJY(^V3mi07opp~&F%B$Q3Cpx^SP z_AG0c)@i9BM|hc=_}T3yirJSM_(zZSL5qhfc*%?^yU4A6(Ayxy6~oXH4GL@&YOih^KwbaPnV^;?PK@jZo=^*&ee#uBhOZER zpL-JOPY0Rz8TASDLzEzAx2X^z>Co2QV*S|&w!zt^IMscNvX}VKNGiHF7eG1*Q zWQFL`|MAB>u1cN0;Mw)@1dUQ3)0jcMBX|dsXySNazk=qR)c?7i)LkADS^o`pzDKNq zJO2vqELQ#H4gYNX4ja)WI#Kc=x>H=E_D?DqX0E09Br0dAbeC(ZD=T&rUYhHIyUTTY z^-ZPwF4b9>9&YTWRL$d{5ueedaP4mFZoSyNA3&oHhHjPirD|l29-Tz@X>JU9c1Wo2 zd-P~#^3W`JIG-+XKFx+_pvRdX4Lv~#t+~$fV1yD<4><(=HjrEkkrGeCxO6-8?X)PK z+IyyCQfHXil#Gf}P0?nflfIsHslzU|dsRTw5mng%;GTX1rWPv-<(*&M7^AinB*cD@#XQ{*Y2@5YC<3(CmJ+xUjU@-X$NvH7x*9=Eu6d zjLB)mrW}YgG;9`$bSg6Zz~A*u5%qWd zxD?g%(ko0V^YJOlRLp8SK}qUG$-XukR}d&g5gBAce1Cg5a2RZtVRST2~QA%gQ4BJ%S1?!t}}> z)PGR`S+hwfYd3a{%NO(&Z?{4@LH>e@=vpa~!$e_z^29lSQJ|JVeMJe!m`UZ^9xg~} z{P1F&HfdjIuA)B)Kz);h;ra3#$nnd2_)ptDiG5Rpl3%#d;xRt9{W`kZ`{JX@?scQ* zkK2n=aDeQ=6+uEt+UNzlyON-XG(fcTvC3LPc-4DL!dAP#aALo?)o(gnI3M-4G*sa4 zFP~Mfpv|F##HykK;p|SVvJ6PW2egsRAJy{Dfy1ZnW26ISFeDaW)gVB)u&pEu;+ zx_{@K`<-*oz31HfO69w^txbr3d@1k@)7fjOy6(6-3u0c=T`lS{Cyd{S*Itb;$4y@M z)k}dJ`5KG)1bS$OY3n|7;um7RNZmuz4qD0hnSg1b={nhPqheHznHS=wQRkJ=3~g3u z;&(Eq+j0FaYiVw;=Q=IZ3Bu=Zl7|@)jOg*6a&1kk71gOM!#Zi0mtENX@ zUTCY@uFpEuC*m`q+NGx0STar+^TtVI%2?&jM$ZX1w2fy1<_8;3N8ZL4!;twsH8i!L z@tE&=ZFjF&w~^wq0nvjEMU6r?hT5=wZrhuhkI*nA$M3}XhpX#d; zD$U2nMs+)k)yTNtSkDpKHcmkg5O^9^s13;5M9U(zD1ixh!^kgL(X(aon%;gVa=H z@T=$U31Od`jne{`)924N&ZW{Sfv0M0vypXaoIZaZV2dTO!Yg7#oLDUY*^(xc0g_Ey z5-LE$CmV8ktk73Z;h7=@wWMl3c_~(l`X)6zOVJ^jq10NuAo76xLH0sEhTNx-X-`7t7|6 zg4SQ1Bj}Dsu*qvMk#)fW&JrdmK3Nej!!mXWoL&x&VPi>38IK7W;ho?m-~((E>$M>4 z6aO*e&1_eiP{y&yttz=mNGA9~X0`nomO8HRw3uV|t27S#COz~Ue=-xRjBoMGd7%vZ5L6@i?5 zIOT}1oY_xCGvkx)AS!Ps?CQK~I%0b&n8q|YvXqT1-bw^k-6 zCdN!-=%TQWVbCGaw>~kR_)rC;#1E$f>%s9XZbS_U=bO>QT;UuspofZROqGz7at&;a zpTTeqeBqE9cy>JT;TlMY=NhPp15!2vS;}Y79na*3bRc=(j1Csd$F~7B)U)<PU#^>KNygtnZI!aYM?GoDZ#x@g4acJ#0g!LOYw19Y|2b z8Axn7Ux)Wi&Xehp34T)ssW@S`E}HC;hDbH$OX;VgI+{`1jIS5t)Df+PDuT{1=C><7 zSC4EKWMNfu21UGwZl)d^7kCw4v~BVGZy*q(^Re|a(nK~Td8jWybWWuJ4B;m1GUl^% zvUJ-Pg5S7wpyX94BxaqSl#_T1Qpy0rsPbATvTbp0gUGW==xPLU7{u0lB*lfRF(P5A zP5RIl|ERGlafXnep*=txb>_uUM{}L9ma=0m>e9P~>&;x=fHZn6XV9u~oY; z(E0~4p{&9RuV-Qvg!r&ei1G=w$)|-R{D`+t!O;G?#J{93()>S(%n9r7_%rU5o7tB2 z4tgTjLYCH3O((WKqKX+*P!yXfn$Mwz?RmDTnOHQU!zI;s@L31!iJ=IUlXy}OWW+_Q zU+U9}u+_hj#H;*&8^!@LvVw7kAwu^9A*;1?1R^7_!l?JDMj9{<&wkYQ&0-#b&pgRO z!$npn(S26V-Tv)FO(bmOLM>~)7~zo!E7UvZi-mL+qAZC8bTm}kk*)fQ=GutcSy7Vf zd8cX7pC5hxD=$58`K1Rhr+dPsIp?Oxg+CDB@k1+SRvGdB6%ilV8uttid4MzfqUX&_aB#e?kL z>Anr9FBQ{DX_V7^+3JLU`R0EwO(eaVZMIvK|D!aW(#DRI?>+_bM85HnGE`0Dv9yBs zA&`x1p25i>INLaLW*2U^8>A^hCmUJIF_7C#UXlBn?~wLJ`kJQkqVZB`OG!g*&k-^3uShCDMg zP3lVN%R;V?x5u*>e&m-dM!SeqX-HvNKa}F+5Y$o&8bIO5nG6Q{%!Pb+ypY3jc&8tS zsx;gbiL{urd4D{c;aEsEH-g3ZzSd8%p{FrH!Q`zUkaQxMniH_Dpi-Wtt#>ib`Zaz^ z>&N;HY6g$b)^Aa5T(Evet+$n(Ubf_8>-T83J_3({Tr$rW_iM5B2O@LF2r|tzkut}T zJDUUS;#vYWHoiY$bh<+1#%KMxP{n&sG2DDO4b}J6{h)El42?!;um%$Hh^higl<&xV z?oOlayQ;3KLD*<%r2ordb@jU8zVI}O}x&~?sEnlIXEC1$z8@4i0U zf{jj1l^q*4;U#hHr_i|-S8}*UEaWt6sl=H%CK>7692fd1mbcg9)=0bP9Q8h7kr-J0 zD|~e<6k`Op=0PG=2d_%dQYri0$DJQb#){Czp=GJ1T1%xFT*420EO~0FIUHJ~+1zka zp@wA|AN^QjO}56!lRJa{J592RBwlze@f|RbiA0of!5NMGBUWHxnPTxuA~U6N>GYIlUP-ihJifg1|*>Tt9y)D8!$4x&M)9Q7)quocqH=i`7gBvRjwAui$XWI;Hwll-9T=+v2@a9n5TSCCrzksR z6Vta|rXP!bF4NC$_GRPi!0L%#NBp|t*Au@N#IH}k(36pfk1O{9De^06phK?=fNl`3 zXMPbEBFWi4?>YQ(9X*qaa$-4)q{);##EIAsSMH;IQ}*t_ILmJhebotUagnTezT1Td zm+uZLA?}y$cx!^srhS->VnqBV`Jxv2^r}J0-Z0FkHS#S3ZYQNq@swj3DJ%IlqvMNI zjvn*sm+1y5$UHEwx>4vwVZ3cDZS#7UImy))3c8A$piu33@iw263@LH9i{fljjC>oV z1xhN>D+p=@&-JamF^E_nElEve`uj_>S;dL&bepQmpW0wr2u0+}%e(UR%*w zJL-boB4to0%LKYi?V+X)_%%k8im%b84~!J-T`uLKkVlKc&ibdnCCpc3=dzLq``){kK0d{NTPWk^S#EI0HG=0|A`u(iMdL^kFW z^95UVx{=ytK%7#kNAQ-1-{LdP^>syOlyL(adIYk~tMDBiBqxE0sl!&065T^=#}_H6 zRq`r+1gTQoA0ykRWF`n;MTLn(qVM2=1;{Lk8e!a|{=CWySfslOo*JOnQDnH>fGNe1 z!b&t;Vw!OaKQbA8f#Cl5R@JM8cPz^sLYqnBYN! zh!&Yc)O4tP4v(IoDp`byE{l}4jp!GKXq!Fc-kv;qnlF0H%MUg*86+${5p^oGIQZ>G z7<$3x#s;c`mbZ^E+G*jz(?-mXQ%@lPdMY97K|LYVQA7Ruy`OvtcrN-Kt&cp_P*5w$ z-lqrUamKwEFeVhU1X9D z#M3c(FqD4a0M_Gbrqh89q>kYjxr!ia_w_S-WV|*`xMDTZJFeXrHq&b}9ZPs0A{Y$W z{R4hnL$6(hA){(5c;!Zp7V=%=%gH-67^~fpZtZ|iG3O$^2jeyAPOyGqir9ZmERGP_ zGrBVnhO-QzU|J#kE0PSjUMKg>kCkdE%`U1zt&a7j~!3K)`y4G|Q9u$4cN`~-vlPyR)|Q`J4U^^(g=1_ruL-Ol;W`OZ1@htA)Af4mWX z?#Prvs@Z^LnbH|I-tA^OtqZQKf9)^+=)d&mu3NE}M%Pu!z1zTwRLDH5xbiQ&>(O#6 zb2Di6?--t1snvYD=!k8x^TMBtuIpH7bG|g?9&2BPiB!fi zg*$08_TK*mpOI4Ev}J>~Y%I3C@=^2cl0i@F#fj@CbHl`z+ivU`x%;_P+>h!pb9>C% zN{(v_9LVl1nHjQiC(W5L5aPR|SP{Q=v$|Xi#w@+A_=MKfZpX4IO?h!7-WLbrk=PPv zP7e!Zhw1Q_hF50zMO_YmW-YG@W@T#npH;dX>)Enw*kUt;>Sma*+Gl7Qw!J# zf;j?%%E0Omt~Tqj*l-=GGCo^^J$giZ2rI>7p!+TSKf?bB{ug91K&xc1^Bh=7HHFvQ zr8Fy-oL}_MrRo$^{f`(5tmCi-Tv=5wHFSXU@C8) z5p=LcP5XMXuH%~ueSkm!VD~|V^bNeuG1H@Owp*40WVpRAd8ei1^Kc6Gz95E3n` zM8_SiZHSTn?wj%^oPp6#Vl0gWDauwHcMres9r-Lm2c z#T)L)13$*;pEr^EfAzrCz2Jh=02%lT9)TsfL_jZLx7nb(0>QGW;<m?hAd{idoPKEFmsMJ(TL=MWis<( z_APoJE`+Lrm>ORORP>4xWgJRUWw74JTfYYV!VAr>=XE(iL(egbpC{bE4cO`xHi?w zE|;0MP9W8H$?emMm14;U?#ZWur`LTs=`+=Dt3zL!epM?K2(J2{{Q8SQOQZjI{eoVv z-%hXP*do*Z3e$c_@dVTU5=~p> z47V1D`#VD7M*%dda{-YR!xl9F=Tm)04Y@?2f|^Zr4-rdPEtbBerg_%ZC%SbHaBf9+ ziKnsBy&eB~y%$g2JGNrVzF|Jn7V0!9f}$kG&Zu3Ov5 z)fk#0SBAa}_5S514nNH9eVAV07 zmD+H0l8c=oL{gjFNF!r>9wnJHY@CxJjg~ttFTk+_7-Ntj0?BabVY4im$Q;Ij?C;VS zwX3`eMC6K2%i!;Qyf)ycI7ED&5V;UGYKkb#Wg)Hq>G2cSD|wj!6b?$J0k8v-j2Uz% zX1Mo+wWWDB971dc<*gNXUErlL^zI?83<_XnVtE1g*w7L2^75naejj-Ds!6(bJV_SE zf4e;%Ol1_W*Ss1?ZYSXmuzx6Qk>j$iWn)k%v%+8Px-$f1k<7U{Hz0{k*_}H!x5~0v zBIH!$_#=4l=bGaFz@YQD$?s~A+5o5rVH}4^u2a@PdzK26&lK*9WCO|pLhQb-OJsj~ zvxSFPlLYP%Jvxp@;$|K@OY5-YNvn36w%; zStM8F?~I;YUwU`CBBh=rh;iCvKA@h9UUXQ#L&Eqiz7}5@*Cj!yY?u~b-x=|k-bP=c zsC_IxuifFY$HEbZsf6E22OJwEM9g+w)OA@B*CF)b;bN@wc@Tu9@2m;utGg>FcH3LS zrqh-4kzgxJ8U5kD=zpbHyNH+DX4 zzBew6msWO`d1bHaYCm;Ob89ox_2!Jbu27$C)N3esd#+HgR(US1b(>`J=5oPXpp1~u z(ret^RKY0mB?j^5E$|jCZ{$&bWOqnsWzKJKX`jw=(avq1rPXrHUD(#1%6G={p4Ti- zwLR#E^s!I5*rK-YTd3w+EhOT4SuH=yuT~V>4fV%VzOb|DPSZW@&c0rLhJIQo9aLIf z+Q0PZ(mthQI?q@?Tl3Zz)?eFlo2~U%w;SuP@I1FUoA=6vmb1B8Z%oy9>uKwy&eo&q zt@XKl+pD+Qv$Of;y#JF@XK!_^Yqp?*W4G?zo+>TrEGyTF?rzOC+-#-e(B#tbQ2UAa z|H=6O8vK7PH6I#mmRY06p}2Bw2Bz&iE?_Wcoax9Z*Bn{t=$frv=uDXJ==Ox=+q{K* zyY!gSX-b#dO2@)tXv|Xhav{`~ar|;1{gP{yVF<6?4EW-c163bCb;2QIU9jznYc9ET z+Y=`o?lc!{gO^S?g?5u%C|CB}S#^u=#5r%i;jU%=N~IpeO3l}5bq{6@L`Ub$r=5SI z2Y;S))-YwQ*)ZXpFKd}=HSz^_((!L`)@;}S1F(Qv)mg?Q7KC3z5nH)a`HJwH%QMnc z(%H-5;k1gbR1VkbIphQ8@9Z_Vkk@^H)PFUV+MaR)cj`BFR_>myPO^3Y9*w38Ki}mp zknE+9eS!#sSEUaF={W0^`gMdf<|ipo;HCyiQRs7?AE=QORZ!kVc{#uSX$OO zAmB4npYpAnVJ?wrj zf+}7BO80a>sk7(d#@k`Z=ks0-w%cD1Z@*~=__gk~^-`9=x}a4Z{)e*cyG-@2h3owe zROhXzPRFm#UKdFB!IjGRBfT>&y(Scmqz=k+@*~MosH>mEE}l<}M4JgXCo{Un`UXy-nO$b|uE> zULMmBZ=tg$H(M{Zt8U95Oh=C^FzAO=xwufexw9Ns7-KAS9-n$NP6MLK4B5kPFCWEe z`a3^Qqj1bXFj83PjL~?ZK2^a~X(2F7=q%?gSm+!phepw(ZZv@pAWO?TE2i7kD(~TL z?u_NUdV$R0wH7M3QKfEv{sQJolq&8av~MaM!)<~(UqmsEkX_Q*pY@=Hdd;Ibmg;}h zJa8o$dZw9gl(e5ag^hX4rY4<94A@w;CU@LwuD=?qU5WwEj){P%J_Mw>6-^*_2$Zer z>?;aWJ#FR1UBN(2X}Gl_hK;%1FtA?N$EU6&kJ*)-eXE!{H1kz0*UD?D2E02{Lr7|x zR?9bb)iM}|OOrs~?vn#uBCzb-p&u8=H z+Ct@Bl&~)n7>T4Ob@oGwySq^>7s`lWcEeo0S;OT@*i|?t^C_wxH#CKi9)gLdf=oBm z94u)p!CZQXClOFKIT#{jRcG%BZN?SyyUJa-&mS%vuX|c=pRT+?6RLcc)WIETh4g*R zhdxg~v(*QVm@Xfxyc54C^`LujZ%PlkkBYJIpvuP}z+9*Daa@&du6%-WI6O)#45!>H zDxajAF-!7IpdqzuRfBx#MRfZyy3`$%!thq<;L^9vxmROS_Xc|T1*y^=dC$4u!nP<{9VqH?8UqKv6eA64UqJWzV+`^+b~Ua4Mm zX51Q0DBU8dn^xyq4i*s|hB_xOBVQ*qokmpY`2VHQapfTrI(F+ma68o?nwd4*Q_Zrz zJk{BkH>@RV>;J8)uQg(mm z;O*Bx{fuWm{mf^|e_6O4(OqcgCFvJ+vafAUo^j?mljm!zqZ_c=iS@zGDsA|v{k+gQ zMEffTEd|!9ufOQ%B}>NeKP;B#rps=%*cuzVVwc;TYoaGdSeFs$bq76Md3xTd)@NpD zy-D6!DCKK2ZVp7q;ip`6SCz6Vl-$D39D2-Lt6KNiqT$$B)5Y|vRo>-R=N)zf07EOy z4&B2&9Sm`Hy7QbeO&2SfH586Sy2YUm8F^RTe3KPYZLxA$p!hYX8+dvHOU!Q5o6jLf zG%4bTYJSSC`acov%2g_XUr@;^kV)%c+X{Kd6eSAA7W_QAZZ- zMiJDLwIJW&IbgjHSj08@oI=yZJuL@KUBevG-3@Mo6#p~tzhSJL$h-%`c)u^rsj!l+|oSNX9(9w`mka%QUaseF}`;@>L# zGROSZW!}R4nzz5zp5j3#+sE9Nn$SQ)_`h(q+H`pamd&-WuFoQ(F|W5ek6?t4h~*N8 z-GxdNnr#u^07l*^Ao?(*cB(F7euDZmvC@VXH0FsS_@OzEaKYsyMK`~-l`Fb#V-inS zJj{G(-8YzCs?RyI`5ItE8MlzD+aN?yt`p8_XE@Lig_V}&q!Y+#GEjX{KT$d6T&Fwb zX$Ma=oR;fBDa`l$Xu%^a^mBMbB!5A1TD-8CYgZh~J9E>nTl7i@%9&D*<+EG<#6efC zHQF9phZ1&o<$;GYXcc^LvlPj(yHn@0(a)#e_E0R@9j2^#TEoc9N$PY(cV1~5x5>|l zc~zD=ZRyG?s!H5-BlS(vWjw6Rqf5Kkfyq3q<#0cnoo(0f1JS3>T&Y=yukb-ITn5j9 znoiC2=IYIz_?bsb6N-eR)bQU{8!=UMr`j`PV^5)87U>>*2%~E5(=uChspx5|E|^=S zXCJe)np8vo=YpD4bv$#!<53x={ynTt;yxCg{5~G2$g4apc!6FYVS^Qo-Q;w&{0u72 zDm+(40Kwf*qxpK9>LWS?q*3=xy*?T<59dIS1O1_d2`aV*L_$>DQT7~qR7?*_^Uid> zTycm&--)re2f1|$77)HUNb{6_{3 z(x>rIkwuLdrmWk-Zg)1fzuC&2k^BbelDF3_)q9%{bXbWVteKkbaQ4(ut*E7s>=amXU=^a+PQK1QXsg^gZf zfjbbkv$%0=OcH_?{qxNn?^VaJo{eV#tg}Gt1PQ3hthEK~K!STw-%*|=& zRtP_FX$mE>6ls=up&DLN5;!hqJgBT7bB>0^In0h~UYU)DYiJ(WjN1WGluCgqYPGAJ z=Vpd0@*k_^sU~_cFS1X#QxI& zg!zf4Tb#g!Tbr17sh69W!n5CrS@beBFF#S3&(|gpA)b39+SpRvG#Z4i1r7HNlG4gb zKE}{B>{`QUQ=8vnM2t#yg*}G*@CrF)rnr|QeGD#Gh!QjNSVhucF*b(0T9|mXYq_0R z&7MIPZmos=Lo~_2MxcTxx-6Pi3O5E5(0(qcl6W5|(s_@pe&m_pM_LR}Q^K*a%ZZ;1 zbM%vrDk_joR3KGHAY3|4kx#u6jmoF%K+J^0dMVy!^q=U8X5i@PlMe0at#&bnABs2@-KJsDGFkKV2*%kMC`qQryUxQ)G7krS-ZX{`*5&RF=qIYI4 zgoz}&FY0%j04eepvr<+X?e3$+Enh~DAh!1pvtjis8wrabYE>}|&%t#t)am71qh3Xt63nQ+n=x%okKLSyT4b{k60P}pj zq7?~^@LDL3#qc=~af~}08dp*d>PI$+@k5BbX>5#DN9$v0-icLh|1Ley*l#_;48PS{ zWpvN!{E;spChS_oYNK4J9UHrrEu$iW_^PhxMSLQ&j;uy{M~|YqNI6sEZboZyV`Cy~ zZLw->O!i#Hc*1%yyl%(hUOf3;B72-F!`(YV# zByI15c<_X$V;)li)%Jc~c0Is^Z-rz&UTANe#l z?$MW)(+#1VP`PE^RJ}MKS?_(C^|{C&mLUR~VVU4l=54eC0MpIM9oizy`AK)i(6$$P zze5D=2EGL*u*abCG*Sw-3j{Y2$W&}t(4Ki|+X!}$SfXtN%drs!EeLK?A|<|_o{_Gu z+{nxk+=ie(xi)M=sX$cQM6eGP6WoMyhqei&#}-=)TpJC$mB-*W#aGI0Zd<%@r7&tCdCSU?Lxv%E#b|?^ln> zJEG#r9+UH}9>Z$7J4IVe+iOBbFz;=-g0fs)xg7rhe^=t4puNUpZFrMUqwphb$Bs(j z3?k|Dw^Zj4on$KLbZ9sujZz;X@xD;%159hZ1HwS5PeC*@r7pChRD@EGG*kL=26^=`UMPOEpaLgG9$%`IzjPB54G_=9QI!Hq~ zL`LbK$OfS(m8po*!y-1jXkohdKK%;Qzr>is5T^U15}CvFBFiuh>30N16@Q4)u^%1B zRE{OX@;H5%d?b0C{+1OI7pI*k_^Salx97WJ_-w^y!;~Cz^eHzrB3Wm2Y<-lgls2p* zlE;X)Bpi`&0}h&Yn-%S7%bP9VNG6hKPo~C(h$d4(G`u_kS&d=W8BIN|?W>NP5M7O& zOiDH|YzIU$Gwe(|hA};m`wsW$;))opssOAs$&{R0m(yi(YF)|-iKABX(Z#b8R9cKK zc+rE7w<#^&_zqH9|7(c_2J7$(XAv2VZzd~*qEV(I8V{HIS@qgz!TB~}#^{-$O>n*? z#v+E`d>=$J2j|6>!5P-@2#he^7^7q@RzFRa<+1uYx=bFcuV#hxFIK;jpwc2%dC`N8 z)nX`C<-P{C+dE~j2J(oE*8e3tgrZfZB3h4-(Hh803)f!@OJ)z(U&I*25UziOXy$O; zm?~U@dKvz{^=C0!*5dWRrGC6VAgpW}>yV@fnxC*j`WLUOQ4_182OY1a-to#`!pIu2 zJeSCrJ&(*1idmV8m_0HSvphE~YA>QZz~AgqdqIq83{iU-L^DV2=4??bG&B5h`}i0= zYjL}sjLZAkbLcX8Kl@l#NdMxtoS@PI8NBF0$L*DYxD^`=QpBo|jEv7aN#~*Xl&Of% z{U|;~4q8mUMA#~OOui^a?S`0q4Ma1?PPxEHojVz(>pu~WO;*giq|=CLGPaskD! z1DEltF9v??C)#3)6EdI}mvJ);nqS*P{GzUnZRJggE?+*9T4#_FLe!F}pw=OhT7Etn zu+A~MgAK4Ai=0e`FaYZ!h-L=XhE%{(IvIXet&h>L#;U8xtejO7beWu0Ygr+&thzA7 zDs2}py&*#Q67MfX9dsZOmN_3qwkgrj#Xz=P8lw%GY}!*8(cO#f%vs>3XA#M_=aDKx ze3Pl*n>>ukKLh}t*wPU9LZe^UAnpaoDJ9|-AetF*mQP_Kj5GpIVV)DCWQ}s~Aj@*f z-A0$mDfdiPNG#>n_>?1@`J4B#H(lY4&Rvl-OMJhg)`vyK7X!8aE{zceO)YJGTLc8X zKBm1ul5$kml}jYMzD)`Vu}h|cT}R5XSyyfvzP@jC5F32`J90{iuLmHS8DEy`+tJn< z0fK!qM$a0-eow~b1iPOulN0P;Ss`%*s~k+Z!UN%JX=aOK%Xy_11D*C2Z83!anMTYO zxq=5xr%GtHsJ+OXWn9&rO(dTtNF^aY$yE5vQIb#H*=c|}!{{S6fLe!~Ox7_>AAYU0JeF zBe5Gr^A-c^Zb)OQL96356&j&kL* z)BcR%mhH={xfuAgw`hwgAjnu^zRFcTXg*!9%~t~lAzQO4ARWo2HKc$Lmt-oqbdY>{ zCr((_m^5K@1REx;MNTFY7$&9XKr}OxEMIUJ&zhx1hMz|#$LLq%(IsS5&Z86PGC7Zq zV}-==sI&H}q=$LS!Iy=E8bw_%D!&*gb!{3$>{&|T;4OLNdJ0Nu(vg&UIw>GTDVZuM zrRAbg>NcYz*ih=3$SEbIUI@`gfKs|fhM!XNG5Xag^#(F3r_?UGOirm5D{s^L0LiCB_bM{IM^tz*km;|}D1Xpo+Nh16@ZkpA&b=`o$)K-NQ$q}r zsbJ7j`T&Clp8JhldCiz?Ae@akkF<0S54?5QL{Ys5_I-5}cbV`cY>&_xF7LQpG6^k+zv55Uj;o4}i zc>-ksGe$GmCN_^lPAOw^0-~8?({{g7gj$9_R#(R;S&P*TWLX}oN6}^SSUrLj5*Mr2 zugBSjR);7alj^PoWckCF&=r>MbxZwOfUC6jodf*;d$gqUzo3ux!AW=pF0$O ztOoJjeq`=vhx zvHo_USIL@Sr0TIAcW%^MSr`Q66Gr;qLR5?NbO-5LZrbUg=@FO|yeUS}+CbwoWL=KC z*VAS4fyQfCA#no@>?LG+#0rGAD>~}ydU72ixq#x>zly3y`>5_?s_DaejNQMaF~gua zR#l4;JS?VAmMlYL<0Ly+IqiGe;l_Q{8!LnZnOPg#&l46zNK~_jC%g&H2qjx%zd{A?bgWUVOortnvQ2cEd_;B;E2RGv z+nAbS8#RZW7mZmAW3*jq3^QnoX|J#G80r3oPr4CWcP^1MdjlyXL^GKRnjI-<)}5Q? zAa5}`hz-%+gq%_m?QbBOnP`@;uSHvH1gQ497(HuL`y?5cQ|;AsnVf11tdRaw?TXY? zyFzo?uZYGh2C982jbR2&HSN({AWpIj&H`U9i{#laNfjZU$yD&{@F354Z8X35tR(M+a-W~&6vx-!$e z<5Ht{*zjx%ax&S)Fx|WwqM3PSd0btjsYZZk8)MY05zQsr^0C>4beVi?c0Mbl|3ur8 znrK@zpKXiAEQYaJGmT*eO|;Ou8Rtiqp_!gTB+FhyiU_exrfTbEdQO^CywT_sHXwT) za!LuZcS1BX$WpDF1++p881CZ-?uyZ|MzN2PVL8QKNtekf_A*vTEXCIFPLj?Y#({P8 zabrh#dhirG$*#ortCjwL78PF%#QJ<1BMh2Ymub&2%U-#VuUe0~xL72c9;7CR*d$ZI zrWJ)I7uSIFE2GVAfb?_ZloCjPfM{kQoo)G0QmA71DfH7A#cC8fU_YNi|1At_G6_kF zXOREN3W=rAlP`9fSidOOT>3&W-tU-g*Wky15&k4HHS2YczKPB#tAW2feNbM@v< zB=OItH}Uim8#3^r^j53wN?r{hXGOMSNH2?IcKImL7AwOJnr!MrgGG0$J!6SACKJiD zi>R?7rpZ(=Z5fl*fc6BVscnF^5jmNZY?vxu0nyArv-{8>*TeABY(tDzHJatglzdEe z9$h9MQ=Q8SiKW>oPeF%Bucvv~A6Bi;Ic$TsL|L^y<4oiAHUHGiq_->X+$^fS7)DgJ zG$t4{cW(7ZR7KZwo3rScay5K;)Wyk}G)OMjYx(9pyL7Fg6qjKnu@*>8A!5l?5bK2a znrb+Etld(xO-(5&00SXZ8&<_BlkGR+r^WY+`K z>=3(TD%dqv^fS;H^}j~T+c4^<$SEbG{vSj$GwN}6j8e)Neir>#jA}I&t=!*d(SHcj znv6n{Vix&BR!A(1=JS|3);xE&hc&EPeg>07HaVOt<7`cwLWhyqe7#NMFmaSQ(&+p3 z`PvM=HB+0%?pG{&VfhQ>njoCj940F6D0|LSzOWN_VOTevFISybe%f{B^7H;s?h&kk zBIePg=S4CrT_xILv zm$)9u=iptvZ%}NR6;)ddqp?aFH4mCC>VP?PW6eB1wm0jxTIkDcDHD{A`qdcp0WvCQ(2M9YIfL$C zg~Tx^`C%%bN>FJrIOIhSIxe^Pvm~tDVFkxB9Jx?r6n>vH9g0GkiYQ#pg|*=O4`G~W z3flzV4`cLf==T2?qM3v5u~su9p@`w{_rDvXRxRfKLbl{F_iegN9&_Jdg~Y{NCwEPW zo{JSc{D(j0$FUb~b2?ve*;h4pU^FmOuFb65!W?^tv${g4d9he5SJU3tDb00cEP19SZz>(R!DaXJ1cQ!3OldQ7I;u2i;ABem|jnE^T6r(oj zwrGGouhsT!&GwXXzTzN-BYTMJsrjKELZ%|}4h&|ZIo6Fv$Fk`uZa_{Z{Tq6U8Hi@? zDbBO&DFP-Lfl=CZG3wQNjCryt?=h~X%j7-Am8_7s9wYfE?fD5REn<=vJ?NNJJE5kV z_1T^7ymd4RvB)@l2WdMLhcXp$xI&hyMd05E6UnYF*b&)8;Jae9ZHU0XhiK*qwA%^g ztAadtxc6heEk?0g?0tc($z$&=beTN%-oy&&U+mqVpwc4tc+rE7y^H+*aK`m4r$>;8 zjJV&BjzbYAQxS3dKvD~~-wB&!54MM5)N2T~eGcqHu$^wz-H{fCKhAy~qf;%;j(`qD zoc%)B)HL`YN#X1dvO@Y7XD6U0Rz(jw&Wd`R<@h(obNoDw6d%cf=Y;c!jKz&)l29zl zRK(&Dk$Gv+`9#VA#LOO@n`4Y(h|VWNG;>$D(Kb56Iv#;|y(mV@TD%s>w7g%ufG(5w zi<7L7xOnYsdLlX%wiDPDdlayiQFpleWB%J{)6?0OTXgC*c3-RE7Rp$wC_1z~-EEfh z{!`k%olOnWz%W~pLB9YAhDK$03e3=U7FC|e8@4qnG*#_?qBBzvi{~bg#^WA~gh>vrc{r@6I`mW_<=PD75G`Ib0X$5}@aOMpd%* z5h+{Ia5d?+=M-?X#>z*DwpcmGplNuezdFE|1oEEOv>hF5l96oOKn)MEQKo{8`)N67 zh}>i}z6~NTLQW>N8%DrSf@o$$o@+J#*R?VHq&z=Hw;CyPWKcfleLP(zAM>8W3W+0S z@+VQ%1eF$$=0y)W4zKEpL%wUmdUS$i4YA=OG7>wa^-v_rR7B$b-1m6tS}49;m@9fz zY7>etiP5|v6kiX~%%S-B6rm{8G5oRk!WiXhvG`uHD38S#&}H&id@d^_E*3jy)G&WU zZ^D+@XdvQZR}j*?b_3Hzc3CaAJbqOyW51CcbEJ?|BZg0k#zcGSXpI;?p2jePCe;lZ zsqk)VwR-h6n=i+fFzY>zv>{9vk0jO)Nd+Nd$y5;Q;O=ZRYW>9M3pUjHF>*>dfcOPO zGgIpVOKJr*I|9!Rz8|Atja+*j?33%?g@H|`AxY7de~T3oORnRe;^L_Q=1g-mg=%?4 zdI5sAJhCSUUcTu`QYE-kk?9bs_ad3g94OjirT9UUNu9(dS2eNfkEw9Y#fSB*hf;i9 zRLdcfPiK)LLVS{`;L~9dbRaMbeVj7HNgsrrPOhFe9o5e=_#jFC!K{P99}Xi_C7@@S5$N{jGd;^D1Fd` zQeP*K2FvzbvPUkFq`HF?5+apM1*wkgk()-V7aJYKhE^{`PAO^iYKUg0mEG3~dTD0( ziS_&#J!{1JYceh;)^q4GIk9eIg~Sr;&DzsFdiF@O!!lO0arBWq=7R=VbER^j#MZF` z&m^5X`(Pg4N+}j`XdX_~p=E9Ml(4n4++Z){2L;$ePmF|{V!a%XC)>56+iVr;SR@~B zG|Ri_$hcj3Z1$L{x@#pdhrXVQ*dG&yS`5Vga2lr@G_fPbl>RG6smGKmhe%R?mlP2q zwM-3+DOFAyrGI2}3L8p)A33F@^v@ugnbIl8l$utCpU~ei>KHrW@sV=;??yI>=kHxr z{zMk$sQxBhCP(%Cth88EZ(~bypeui!FIUUYy6b3cnZrvG>&_=~ug62fhJ!yhOgdM& z)AVj2jzXa+GQA4eEEip;nD_EITH2Fj?RT~cga;hL)vy>qI40U+iahdbv8usMI%p8; z%YI^N%r{e}rl1gyMBwS9f)D~_Dqr>s)CLgGNw!5*xLl|9Yrp`KjV)`+PIUKOSrOOg$hQ8GS9%d#JCIsffM< z0(od*xLa5(dlqT38kh@3a%S~mQJj&f;LLI^tRcoBk-p4BjzLZ- z5pya;Gb6_Cj8~zE;it>dF>2N5az5FT(`6N1Ca23`tdKamB%k$PnxN8RCc=vzbj+!* z&v3)j0kF26JPTG5jEuc9X*|@&%T&bPm?~L|znU;qG;M9V_?z*?oOR zQ^xSe;7p8awHSOM*^|d$kuHx3esV`Q}EK(9{Y6oaOtdR8jF0+FMG0&>`kQ}fF6mYj^rB9fS&BvpinDN{kr!=tj& z*m;l9FKpQPkH{(I*yUb`W@e||v(iYl3_nFb5u;>{qTeUWa*BSGE|XLA?^z+S6#X-{ z{9?Nq-tPhJaH2M#Nhe(hsO~D~`5rcWlav2gEl)M^DNbjSUPyI>0VbWvR-;s|?at-f zUcFc^{6BY<-}@ls6^;4RSSbr`cOUY4l!b%(f6tsL zn1g<+VMw*&@BkK;@q#-0Q8&B0Q7sqB-ol-X8*}+)ZQ;(!$53SDHu}%UsqmXCpTIx7 zaVoSi0_RcjP(;lt&s?!&NnWoX1WTVoJIE&Ng9Fcz9^`xQBj9_gWAFAAb3ZrS9}oDM z@HPlJ&DSZ+&6?wJp3!vi|CJWBnB#_Fd9v zAPX&LGe+!F_1${fdig+SJ$jbbde+CZ+OxChhWww{-fH%uDqaYyR$Vq^Z>`%T-{#wl zP1Ng}EpPISGtZekpL!{g!-fR`k_%#VN-Yq($9Iq+IesSTGI^)`I95n(r+i@Gz$$;{ z(VeXL(Gb;;eNAstt7Z(VA!gI4bkO`zySM%IE9a72gGw0N9D~F=$??k0q(FNbx*3C>+VE|EA`LSS3@zssn?WXry}3=mj>U z`XA(!l2i{tG&8B}K9FLRI9~LiV^V#;0qd(+@$5PyC0D50zFpBXpU6nPgX|HCRGErMJ-TOpTF|~& zST%Z#XcM$Aj4_ZQXkQJ{%t34S{f6GU8UFZvevGEI`2A}#FOT2n&}H)Yy^R$T7r&kL zP1kET@qJJ_Dy7w)VhhhWDutbDLZ^J^olW)Hba_U6vq5f9wU$%UnvaQwM7!*0jW#}< z#wdd(n_7lJl(g{m;&v^!6VDB1QUEO=9?7xqk_ti`lc}@}(_ISlurlgTcIA=iZv&CIM#@|jVh2SYs+GyLRQ z7o%p4Tu&z3a&kR}E|ZgMoD~vFuGLJ7G`_;SK>WoZpo;TLj;)OMC`#o;1s4OQZc3x< zK~w5_MX74t%V`G*+HJva1f?Un^juOvh)XgRTso*L7Y#^v8Xds~NY6)3DS`A#h-L;- zCcTcpd|i2gl9T4^beWtq_pw4^Npsny({zF(eZsQ_&`j5H zKJJ9WKIzFq_SXp1SZ$O*)}kDGGP+`2@KsOk+mNXMRCBo#S=nxF=U_$5=puYD1@B&{** z45Ptq7`6^MnN)3<%AE(%%nUorZYn17@|OOeeeZ9CU3AKcQ}o z(XB?Pw~#?Op`K2c$qBWa6%tFR6SwlmJUBxei{sPH`mE#b%2)C9hu->W)vI`kNv<*_ zx>u3t1ERuEj}63J9XB9((iqHi0GZ$qMQ zAg7ch`VWZiX%cDL7=99cEk?H*iGE84JySq;tbG@o^B%j6b_mH#B7oKmAULQLRS5OUa&`ekampa{4)}kU07!-xYaX zf=Y`RMt87?;cK{R18u<7A6<`^`a)a#-wBK#K=Ef;Bm!jXhJ z_UI@=$y5;Pz+fgCq)sGJIC8WX*g(obPAMUE8bmWg%I1l1(|M zj;71xoLa>S87@v;A({~Fp`$g1x;%|J2FSRt`I zI#0fpM%$$63^cr;SzxD+QUZM`!6}xfS+ZBg@#XaS1lmyT(JBHtC)_Yo9%|M1uS5eE z1Fh~(W2`~bN`27`FZAG(be3~Hl8NNh=c%zFPRUd_$TC)*2B|L_O>G0IFCwRukoq@> zW`>mA7tOdHhM!QMjnS$`sQ)HYazcHEE|U}LQ>>6ULM30}{Y`>Oixpm8^q}KS9~~fe zF0b33^vB!#x#l?G)dI^QOqD$ zvrk(A47RVCcS%Qbr9=t{_2x1aTsf#K7Y#47Mn|ye*DJ^=C0^zrni(%C#zx92Bkj|<_zXgEeDvP4(a<$NGvk;##Tqgo=laoN8(!S9YjKXnS1PyoKnW#(GYzEVvng}_+xKH zjAFIedkk5V$KEo!OdflCvqIuxud@ao$WL!z-YXX#`Bz=(n;`f?hUf0~Gy;&Rf<*H3sJu6lgC35_DKhP^Fi__ z!JUdcFBO$t4CLvgQT(9EqjtE%fJJvY->%v|@KA!0^!Xq)J47Fu3i^zx3^e|H#AtaN z{(J~IrR2|NAexy!c01fPWeh)o-XEh{jX+-~dvXH3moAeN=-sT4I07Y~gZwZ-rNtbC z7d_}0yvg4k(JIf>^3_)QgPp<|M8@QjM@Pk^Ohrr{8qP?I&1EFsml?|5$SGxP9t6?M zv3a4@-iZjM41bLNIf1*246jq9!%Gm_s+hP=M z2*eLSG;<)HV>f8RSLri7a!SF7ZfKJwz%9u}Y?b zRR?$1LPORcjJ{xltcQ_P%CW<;WBPzByKe!6R5JYJ`b~_2HF6yZg$i>0N*LH=8j=*< z_s>}&vE({Qo8^#?8s|94ZdQC+L$&WY_Z}@iog~^~rT#(lsi;Oz_*Ai%YvE((UJi$_ z<)`t{d)xDmT2XmKlIk*2Mu=206{I>MGA|8RR~TKx23MCOCzDYOBdn)FH1h~+qumHA zO2;Fxx9pM_Eo;o$Nv7qattZfB^3m2tR!A(f&Sq}ja+IG>x!#=1&Ou^Z%RC3iwzctK zhaM^K$~VjTn&EL(pF#Gl6uZk)y1`geuM!kdPkUGsN#b>QaB$741qNaveBU9lCOG#9t%R@#x z+tB6zkW)&!EIGChbg?_liK$`udGd=GrD{Am6iO64c~BVDWDb%Pv$_9ag~ahB`E%vt zP!p@72OVqL-VXH{P0MFAzF=hBT}a9g#hpw=+>Oc8G2NCHeVa+F=N#51`Yw*qxnZKR z4WgO*cFVmTzBWf-c5*?CYPA^LLH6W*`XpT@@6#X03W@>q5*w3{t_3dE^5Tpa3xC!P3KNS&Po+r~#h%HHvEZ`;t|<-bv6_8!&b@zw1dKt6n-T&KSW`f3JM<>%tRycYm8oCL*iE!VsdGt@ZypwUxoIQu`yDJ5qgf@o&WKGAMzzPECQpSeGYQMJb0703C^ z{jo5$$w(wAW}!b|g~T$qw5dKjRjy$Sis5M!qg9+g<(CnF?0zuVlTlU$?uW&Loq2+5t9dZXQRdCkA>-?xoi`cKZvn{VfgSML^H>w z-R{khN`^l+|2;;*T5SHAtjc5aTXdN`Hvf$k5*M2tZ9^v0q&{4j#;3p8oJ$TGlHIJv z3I{s8%F#YKS~HyeL|aTf78y?PiK~Cmd{VnNVZ2(aOizX~K`NX_B&p6IWrRp2Q$eaD zBI~2!>KvnM*x>51$jM|B1FkNDXl7j5?cR*m%kVR6eTj%L<8O zR<=D)Q=&?Xfl0YE>K!zbw)pdxR3G!^LXp&YE;Tnq9hnO1Ea$=+X6`gv+XgewM@}g* z^Gb+j#>``_W-CGw!_Spx$Ea1~%G=47oGZ_w%j8^n1}h|%D}P5{;)Q>~lPo{Z{r93i zivcPhOrzUDLq#2R%so3-oUi3)%LUtYkuK>-%zTp+5WxL#m5auk?;0J!hBx0v zPAPfwUl7gA8@ruz-5MEw@cdhhel_qsOh)D4`5Ij&2hUeoA#vd8Tykv#Z=&GImhaVU zYnJ-J88#8PHG1lW?{l+9VsmA-6^nnQoA1slVJn!NsP!*HHJMv+Ja779VB9j%7E^$c z1Bl5SH{+lgr(RkS(KPM4MX%JXw`WS0kNv|LM3U|?q=pdbWGYB^XgDJccBdOX!UlGy zAt#e940E_ih-QYJ-AgMGN*R9Mt&LH!#=FbOuAFzL&}DMooyZD_<=qOoKT7gSB`Dr( z7ey}y-aIvp8VAiA^`J>Obh*~R2H{j4KNF2)%(JNJA;!p5FlK+fbd4_0HQL{XF1I76 zlyrFsL^IRH?m<&P9mCI+XT~U3~jJybTQCpiD-+-#Yy#I{=^kHX!=a`pwDa`$8_&bH?9$|;8{d+=VVevXnZ46 z!JWf{+~HYi&^guU7dFsYgPcqjG0dXQf@o&wT$}+qLM_8T-Z?Qw$r^FCkYzb>9J)+S zoMTuaS&4IH95iu4Gbr`}8!m!%vi5G0N45@>;SeCrXPhlM|)E3du^8zZQiq2BN$pjRFTv zlcDx zOt)f&pFIB@qh^gf50Y&;c|K2<$;tCitdOka`J*UwF_7nXX%skU@~9X1aq?Z69!K(b zPAx|>LE%W!9D8CEX=Ex$b6_wNjW8#YC|obv3v3AEAg7dsISrzj31jyHf0sgrpDd4# zQLjdp3(2OOEJxF2a9{l{p_ZGQUDJG}@0xYh(1~X^b{#nyF2QFgBgzY4=o%3q{ha zNzDz7lVmFBwVVrU)S5F|+lE>ma!N_9+aa2nT6UWdg(8NZR*e|7YP5PK*^<+0mM)Xi zs=^A1qt&bSTC&#?`d{+5rtVHqd$AD9>oDlxyTqTw%;lRkI-$xg`h-+u_GSPZ2Gr?r?rQ_%s?D5dpi8n5Ej>xyY zdaFH))63_f*xC$xp>`qPt%p;29;Za)q2F4nly*{)C-K|w05ti;KxlAVd#bV=zsV=T zow1AkueHhnot~u3cJfIwt8JxYkxj52dL5|zW!>eMCg7d7q4ZT+=`k>`IJmcRJpMyj z9?_j;=RNCZYu@_8`fFQmv$g)}c4Pe&p6534%!GD8Z^kJ>Q}x|?+IqSZ!h{dF8 z)n%tpwbnJ}CyVt$3lGRZX$*m-+`8!7aV!fze{eHCbi3|a_O+$SGbYd1Y`bBBX{~ay z*8J-imM>W{hW~Miu`$dr5m)qnA>VVvM+#$O*Rve;-`S#yIE;O4?5UyO`2#xthJ0-v zM{d<-a)na9Hscn@#^}sKIt`{?%i&|AbQpp>xeEbabV-eL&`cR;9|~DV$WGt@#um;` zXu)eK4@?%QHaR#h&hu(l@vU)I2sYt*CDcQ-g(tSqh*pli2Rt?=KkdU?Nkl<~<{cbr z;~!PSW*%j>OQPUHls<|r-ux%Mv6%@ryyK^$sh!`VaM8&Y#x4qqaJsnI=CYzjAlo^*=W1e{9nK*sTAtMgL=~{s(i` zPy*Eh8c>CDpA4sjZe-4_-^Z5_Wq#8*F^)IrVy9Lvzz6G2DZdLR9L?10MfywbqZ}K9 zZEGIRlp7oCp6!ZrlIFPw&z0d3Q@-O-4>vWBIAEVbMmDqsFqhhMCmehZ8^KY-`FHpd zj6AT3<;r?gm>Nfwc9jDEWqX7?cQ;&j#^sZ8N~NqQ)oHeI3aRjSej3yos2sJ=P0vDx zUsiDzUse85ugR-cxmp+3Gj5Zv{EhYO4@7sfTu_b1?;@#`Z?(S(J!t79`@D#fUiCsEq2%vhy`q8u!%T zy6sx|<~H1}=uF{QE-bg;x8iuqtxm5U8}rIMYWYn$sdj%SBp?lTk|l^?^snlkNUM}W zSYW?!1PX+~cI@mh`o(91{J7277#j&x9;0G;*W}fxg zt-1(Bkgs4dVM*zjksCg4-3y^oWJ)isDlJz-b4uf*d_FYqJuRWui_bjYK|*}Om>2SK zgL<)AaucgU?1XVu^k`PjGJ5^2n)UjwX7%TA*%z-;9!I9Z>@ZIz9EeEMO@ zJ}wl?zD#*Xuz@B3tUs|zb z9~X*cU#7ex*!QTD75jMJ8v7niKlWvhz){G_6fOq#odVH4%s!!rQD@)bOzA=PQJQX2 zb5w|N-?=2j*>{MLHyM-kCdPdSvMR)~??^T73#>v)`1Sl<(Qj*4!xk_7E=gkovz@b# z{GR5|dga=$TsOAlV7GV=BC6vgy9F|r7eUD;shp1x5AH5cR5I%1tTOcn$w_I}Mi5kvcio_Z7KoIKS8ERyH{Q zB62dty#eRnfM{l%+iiA{nizG8f0k)INO4NDruYLS#3}w6A#bv#M)6OvD#TL!borcz z&-vq@YfJjt3o2^&5AX6z#H>^2w#G1lIB*d9| zw2(KMRAcHYR)sjG#_SWL{8&v^SFU9Fndv8%GkDSF_GO<-KglP9zgfvLTz$D7Ot`$C zB}CA`Ba8BJ)k?oE8VYs^i%0M0v>917V~l4&!EF%DjDmBlw)rVtj5-HuOz%MsP?|Ld zUO_^f13QI$LJpKz72-J1S#8+nCx=nSd(?>O?OhEtGlPR}G@mZNHH|3-%|$iO6q_q; zsmS*;^kIwLL&Gm2CsXtoX!tFNW~QOtJX307)LHm> zru85TDb1RNKP4f~!haI-CTnVAqEE9b#IkUcoM&d(%q*GNm%J2P|J0?h#mm;;r!noI z*{a5z{#JEMy83cG_^QU7{+;Pdh+ynVYkbD8^h?kvdkX#Dm+9vT$jKC!2Fjie(ae;! z8*?gMj5=qJWqJ>CmeO>qn&U*wJvWjN=j>`BZ?dPx*`rt$VmW(U-u#k>WN7StijUWJ zHFWXv@v1Z?G26YLb8`Rn99w$H*LvdlDDO;PLIfY5L24Cqa=#54A8$1}n9V5k7UX1# zCj%evfasp)qtv#3M(e1(Cdl@A?_zon@{!W4`S>~#;(Tlgd6PXgJ~mhtV)?kGKQFdP zjP@%#McemwscrGn_T6a=JZReH{q;%pielQ6uOo8kLEs&OE;WM6_mlcLl@E)ksmAAT z7+una&tF4Mrg%2+`G*kA%;$@&)=Z(guEAKYCol@-vUJ#4}i4w7GrR=X+09^iank*oLr@?7@pG`&~)|A$F5x`3PgbqNm&l@W4M>)tk>Flo@$4k{VvO+& zB=`nIGn2q_jojD8sB_@6Oz%MsP?|Ld9v~skfzJr}gdF%3t3v-c@G#3S5eInDd!7Ru zQ%32=#2m;_LIejMy*A8&jT#4zrQiE9S$Gt3GWm^x1LF{VggCHqo`D0mK=cvfz^0MsK#A!+$N@^T=0JypI0sxIpO6DntP1_( zz#CY8i8#QE-t!#ToRR~Z6LTO#2@xFlG+DHZ1DiDt+#@WWodchWF`j_~_d@g$;=tyS z=fKCA-h&*VG;0ogpM*FEJ|g53a^OR(3jO22&slznIKYeE^BmZck^@^3b09+r5ga)5 z)G!COXdF14e(%e?;9%rr@*4vOj)mwW#DOg%&w>4!-h&*VG~KG^I1%%L(@BVPV5N{Z z*;AVrEN4~d9|taC`6c22FWTI`LCg!brsTlZ#2m;_LIekjWYMniz*da|)57A}#{*L_ z#xroB0ntZ@16xO)12-|f2RT4#)*N^?32_cQO~@zY!1b&O{o}wZSbm8(z>6L<2d-65 z_r&@#JFPn<3z%#V9$Yhsk|Mb9VX`pi!U6JJcvdfs4IdR=kev-5iZQ5x4fjAaGaDxD zo+j!x9(g{zpXolx2THT%!~G=0`S4yLpO6plW>x4PAO4f&mxvF%=t1*A+o7cU4m+tn z3nW+uJxHPLP#Q#;5zJWe7@rx32AILBsexmRZtTnCVmWd$Ihg?*heI?oI4pN4g$yzB z^w^sjAV?2N)6Hv+E-}kEg@iag{$fXuKlYg(=ddOvq6aV9+`jCyjHiV9d~tN9-526y zNOIvG)KFiv4c?xTQnIWFTHHVe=Oc^*gJo%?*xuzzL95tog}y$U_Lo_of?7m&w zrI1nIt8fidevlHBW=)CRB*ZE4WFc?DzqS^!ja8w4V~jgkenEfKzh)9DdeD^6-lP!S z3=h66gA6T)9=y=rq!>)85#)FeS)P;QuwbBc4>aB) zwix-5#ygk=f()TFYleJ@gg8U~O2{W<$la_8{bR^?Sbm8Z!iyd>L&EDA{0ju>1{zGZ z2RFj&7=0)yf)#%z3wNz!u#&Vv#*&Gk7X=MsGsyU3j6n^Q7(*p8QzG3u2G_@^k1-x* zx)1V!(yaOLXmSV6hu;eMgnallt3vCIMS_SXi6D%dR)c~5TpmC z>E<;@msrQBkr1cH6NP-j5Z=tH&_8&tLz+J2gaRlf%abGrO-dkFg;6`;0#@D-=YUT!q-DsY8d0!f%>^U~d zk5XH*QHsT~QQnw3{|Gkzo>VH>DD&6Y_(!8}*-Wq=Moy++GO%&^X?vWFzA8qYjlW@P z53-Tctl4-Jj3C(fD>A`Kfwa?A01=Ps;XSt6IzIV@VN|y^7Q<*0KU6X{f!%=yW!yy%IT@ z3~E5_O%TmI47FR!3hHCjd3!n2eUP`5rsKpMKVml8AR#^$y;R7XY^w2g3#&pbZ;SGr z;iTWQnQ*4so`WO4cDYTj<*;+|-Il}b*K)kNFv#`->#R+5HwFZ!)RI?l-Y2#Ik$s zjO!6@9nwD`nT1!gU7K*~P4+`0-*ju<8voPe77~i0|K8R3#Y@p|r7_c>DXPAuQLWG9 zrf01I%B6a+Q+-P#W9|{e+@MVs4~odZww zpNx{<)N3gqP_OkMz?S~x9TEHQAS?3NU(V~T1^&B)iL*a%eOrvR41xbah-MD_$67sa z6^a=3sK1*jJs9=<3$XELlpc(FO4ChhjtVi_FOd-M_b(Rm z2}5rKt3v;xemBc6QNPcNHn%VPXkX3xYxP>STyyibf$z)phGLV8ar-zud91&Q{cgxYJ-w{jx*a1j}r^I?Cz91RW|>6X6CBR0g? z(g26cA(|Nuc6%)X>KJu0OfuC6$v|nkVa<^vW)nA&5FbT6PRJ(=&$Cz+`bUNu%P-L= zf){OWU-sFAdgrrIt$X>Ys!OkXmg%Bp$%k+TJt(2x`3#Hnq09(kyn?LGiE(JSOpO~0 z!acGNDqa?2X#+Rj1kudguzTk-LMfw8j}9|HkRFs~O^^4J5U0nTLOvlqp3kZfM~}`8 zn@VnBCw9x$tL@oZ%bCXhta=Uc=aupvuB!8F`&PbOa|GWVZ@z)wabGFF%dM^PoGI6> zIqvR8wOlBB5NPczHyUn{#RA?H8)Ok`FW5hIsn^Uo4(HK)%k0x>9AVHbS0{;)^>Y-{ zY2Mur3in{RI!P>eyCuJa!jY>*KP6Rjb{`nLUE}tHM$fa^F7^O&GKIH++YdoBGq>$d z66;dPs5ARNnev0orZj72uQ~rf^#MsS%g1aG_83lHGdVE!kIssn7)E*=NrCAf;gCxWW@FF3fkN|hED)f&4 z_ptmD5r7xH#|dEj!C2vKy}n2rB0&25BM9(cWX&J}^v}^gAdH=z0RI_dHv<8F4bex2 z0Hgmk+8;8t2MIuF)&y93rcZ$H3HgKs_ztT={|In6YGPIN9w&h9r(y*GdVPyFM1b`9 zM-bp#GHj3l`iE#I>F1vFQk&_(IWcxK5MVPz9~lCS{6WNHr*fYNlMnj=Ka0-2r$j^OEd=HMVs3$K>|>kH38m5LYx4%3;BcuxRq6*e+2j_%P$cD zc+q>D0Jfip6$I$@{n-!!(&ryRfbWtug9Ok&KKp%P?Cb>iPK@0Q1b6_Vj|>4u|J$?Q zU}_H%fYPi9@Ou*C1o*m;Pe_3KSQYw5fU(CWo(1rt_c#G;KMX4f(Cf>yAp)e&KY{@3 zpw2D==%1ZEoqq1iEMOwWZUzEOLiCX#!03N7AwFZ(P&z30=KZ+Y%)u3WTz7$D_(JPlCq`ShWL2nyUr7UkoB zm3|4@1A%7?i)SAQ+!|v%0|q(}&5QxN_k5HtM*WGvEllr04p5pk2i`?TCrNT8#e#huXHfyHe zKu)HxGGOvQA(|PJXIO2aU}_k3LVk^@JV;1NvnJ$2B*Y2%RUvOOrM7G0URH%TLMGoe zvHUEv7ln!*bfiDok4O&mT#A>QG|3)ue`UW*iJ-u#P_3ZAep-z*7);O|eVICq$C%Lo zgL5F783yNC!9dr>s59XtruiTfC{4GkIcCJ{=@Js+OgLW1CuG90tP1^O!u2da^9V=m zq~b-J+n0Uzq~4BhH;Q@B&6RQfZ4<|sTMh)eq81W3UG#@D()K!|s ziCcv~WS?8z5@T8eC+>h~W=`0>9o?;wQD?<2ru`r*D9xG`uOlJOik6U1$chH5LjPFt zZkAsnR`8++%?dSBn8P=HEJKz=dQd^l6jJ9K5&!=}))O-Y%2x~e`-EY$2mQS0e|j4@NqrSx5SVB*Y{Ab3#60q~F7;(7#CkBg-#Qr1PQ&9qH-~ zxk7!mfp;uxUXEU+w2b+naF6I$Z^#92&sbIj5uCGqA{-bjOJlj@4#y%VlS3KU zFagobY_NMnu1g`KPKie`nsubVjD&ckmxX-7NS|g^=wGDY&GJhW>AdJcN4h!}snBlH z$8d6GJZZIzcwMwdb`pqfUlTG1UjjKxx)w_%R7_GJHbFCnUp1Srz(6hF`P%5|M!yJ!mqhvz7T*vMghj z3-zFZI$JqY-Vp>?b&gMfrq|P@Y>`P=lF$JJ}wV}As*>DA)hePx3enrFVgQ~`6Y^UUi6?NU2U_ZS>trmKHPn| z9x<=BS^9TcjwXD$$OE!IP8Q|SztX=`L%=@>i)Tl`M`MgIO- z#c_r^gqL4<&QYpGJ&N%^0|Z@&X$T5i+I`H(Cf zyRAJ{TG<(!F1yuYjvW~G%7wMJFFbQ$ytGVg*jm|H#(rMt{$*TAvd&Qb-Wj_xPn^Ss z2>;u^dXn10dh+9Bg|@NE1e>n6gj#VT-MzZv&_BnNCg5n$u&TvWy*MALC4Sy-s$H$R zUUd7Y6)UObY-J`SUg25cf7Qub6^!qI?a4Fhtzs)M$4hIl$L3+3r@Vd0L>%EtWUY`xg7x(k)tNMHpL3ivcNJn&|p&#NoG2KQQP zP+;${rL5TWW_9Jlm?qM#7jSJ%vRf+~@Q-vRZkC{btrqk3@lEpSq4NyqYW9|eaJb47 zwJbVv4lZ0w{;5p&3M#(ml)O8>gp<95RW{^gl&t3!;bfJY^xCcTTOl1wOHp-vXIH+x zeTEb&-0N+uj=gWy-K*l^W()WFYusMhjsM(HnWsx~r^+q33OEwiQn1DQz+AGe>{_+* zA4xv3B}6Ml8R2LS7Q39gh%8zDsS3X@P2pdGkg4;|qT;V1@1!b*BL-r%+Yb}P>Wg9; zV;`$W>Px=PICTO!Z)YtsPJ^rEB3grq%2n>t84S5|UTY245YKQbV{)ejBQ@e6Yb|NkuHd7ObA})T+byatgf7$z&#(!Z>15pX)Z$*IF{eKIzg^S^IO$ygb)5p z>w;sW(s48oIsV3l(uw&0$@u>o{D19@3!Q!OB(+&~TMIYhhRM!x*Lpb&4;?jZ+FUMp zPNP|GxJ_?ULxO6&~t9A8d!A;Ub$Xtt;3kLSTA5GUarkJ^=U`St&6_hA7D{? z*U4(LS>1&}U5=MF%Y@G1(PCKP882Pt-*xuW&Ogy}cYBl08mY)N8z!9di*BocuL0wW zz>R#topk)WoHZLZz&xgT&dXqNS8!cK=0_D7niPv zrKlK_w~9$|=~CSLH+}&_Z`G}PVdhu!HMU%uo3G5tKb7w8^_vzow;nIuQhK_pN0n5| zY(OoQFH<&H($O_qc{>vG6qe(aTWECrbo?ifS>;(Y2Rqj6zYAqWlH&L{1Djnn38f|$OH2@>;_EhBsxJ@cBYW}qwnkkr zYjt^fpiDlEs63A!_ZL6PzYoD3g*x7ksd+8`rh{sAnI`X}oT$8(>v;g+!kuKz4QwPK z_^Y)ueQ$Ane|rm_-N^M8vf7rtg%lfnZ*dZQP#;Cc_ZAaf5?wJA-CIyG-BF_ls>CAo z7LH%Qu=W|EUVt)(ImusiyQp9c6oYqZy}q8 z-hyXh*;`bWqP&Vn|5--=Y14m}`&awo>dwjv_TQE4zhmsb`?3G-&;EM={WpT@etptY z{i*$>I?rz8s4lB*Np&eUc&fh?9$-iHS9eKt`Fb?fshFfxf019nuu@%`Cq#AmgP^+j zQxWDpe$(u!uGCWb8_K4e>d!;sfT=Fp!>RshlozJDxJ6R^Gq_1oUDg^@zk?c(jOs_K zIY7Pbg(m?$e^*-nqA1OZ>n|W7&h^jvwe9ltXs*k~f$KbzR9yc73guk?Azd-9v#Tsz z_v@3I>nG-m#T%%yq}>pPD#Pc+vBW{&Grmc9A@@;$%CQ?1X;VA`|p za{lj=%Dc<8KwaaY?(}Nrc+)M^n@|*Aol%PjW4bChMD!%((!Uoj8ST>M#e|1^+0IaE zl`X8?Cf5aMj}a-0Px_x9o&3(|Hr9t9+t>S$@6gU z$^`dTTr3!{f!DJjp$t-4LAC29`!8Xzev|#EUcR}&>3#+(5~92Ai-Pc-NA=2ReC>iH zzibuS`hUXt60H8LxndVSq}Rm5B77LNjIX2C9qcG5PvcX1JR%*=A-Nos_}TlpxoKWaH5@@JxF349hu57Xqt8e7yf;6v_LAtLTdL3+yUO zzu?y-OYBRY)DPNnx;d;GS|1YrX9lA2^-ABA*&-W1pxiKWCKQ`zJiBJRL zI*w!GG8p{4pxPA~@vA*vmqZs>qvr)wOwxHl$uFQYI+pHwN^o#@m`Heqe^8XV({H%_ ztU)QQatCG8-M363vEO}5ocr<~=8Y&h)Wd|;AZHS9!tJs@ku5=g;!>lM%_MfW@l95I zoE67@=CGul_q?XVIZItjk+w(9mTNd3blQB6fup|AO8u7T@roqGd%U;$`tFMF z=(&(I4|+VFNv|HS#}g6W=luf;<$c~K>5BDv>?%v2=hr87p9g=)73s-#@2>7FyRMGs z*Sm*%?ibJ*db@UY zWBUrvm%W$&w*t*?{MOlbT1qpO|D$ZWJFTxEvEQ9m57*><)r#{X`YONCvWr@YyJQz7 z>y0kzKB0*OQ=Zf1snz^JHvmH&*1VH%qFbu5&Wr7#_K&od2Cx@YmO2>Kww?riRoDgX zJ3z=MoCHaApiAJHr0NpZpitf=jMEkC64+IiF2S!)>Mr5TLdnJVzp?u%*Q(a}VN>CC zGHyeEwd^9RP9ma&o*f1cy^>+`(WyZqM`S*Zcz!J3Lm3hN8}0y^*A^PRACkQ@zK%TsO7ZLPalUKTgvFnhi_ z8DYK!PEYOG^I?&9@zuu2-xMlt^0iERw&P=CTrB!6pzzR?EYc<9 z>fed6S!>IH((LFnCQ(w)Y1?@4Eu1G{0l3|4m3O(-dCarG*OtQxN{Hp#!)RIuMonPm zR&-=1N{Mufqi<*KQ*O%1-YA+PN0wda>6#bu8PzB<1Xg>Uvf87tXIL(}^R0X1mE$7P zPSVmk`(5RF?Iy-C+V=85n$qeAt+XoMMEqM4^4~-UN=~j#y0(8G!K|aZPjn$RIV;V!Z3Qs4;vGR0t1;i^NvICHPomoii zik5wSw9t6v38-qv@WhLL=Tp5JU9qViyUH-t6BDDfZ@8SmFv;IO4~&5Hmt5>lukds1 zIhpIcdCyNg3JIQXX*G{q|2s0EtaX~?;8y_efb-}mil0=ztV^PcBGD^=RE#O`)EozsS17;Lx0Hf)t6N?5um@65B*yBK(r5;cbxs)m+icGkM&{thK&4FVcnD3 zcv@R^pOkMjXjh+TZTBkF-dL|-L*rgAyGnl3#x2#Z%90BtpKu1v{_Lepu?(S~>T+BX zqeP660oPbjWvWA{E{S$Eg-5^p(zz})Jr5uAauBi&9`kZ%;$vP8fUIeTDzsYJkE-57 zv1+hc`5!n`zrlZ4L?p@0aMbed*BwQK$d$0J=SR%Fw6!nkA86dqL^MP`59;}nHI3~B zUu6a|6qRDwE1-NDV;E3xLUTA-H`5g(E4#`-){Fz{Qw!A=wouJB%2hYaRyNWQdo{4T z*zQYmTFyN=+j;FC!;;oJ)TYZb?Izw*uh+06TK_9h=eR-j>Tbu?G$|;*2cFs7M3JjO zCw_Q6-6hdAwul~HQ!z=0*EjeD47Yu|2G)2e=37v9$AL6O`ltIXv>#k6?Nn}|Y%=wP zk(ntjRjxq^{RZ~YJ^fx_`?V-EgzbPPCA^IxB!}@*OF;Njgx(_&9(;OnnV=dy$;T#U zhO!92{5sJ%P7gym>M3mtxWx`kAHjrMHSU$zG)^9HS=**O3sP zB)r+ziCI!~Vp4^eB=AgnO%ejuID=?iAKbLUO!7^U>g_i z7cn4XD83W?ZkI$?>_m5hR7}!N@IJqQ&M107SKqiQI z20i6h+hYDdd2a$|S5f7UcSwMc0J0g77`PB19qcp-i$FtykjO5mfW}F%^V0pg``vWE z*Sz;SNh@d^aY3KsLO>9I;(&@W>bT4}?FP+Z+&*uZ&zVFtlQ|FvITb-(6CbJS@9Sq41DHiz~XhAs%<2U_TYht?1;ol3f zz<3@n+J~ZEBc_wXhdJaxN|?iQ&?PsAYw3xZL-y2-IaJt`Hiu`+IZHkcmBxj3j&6`P zBVYDR7!C#5Z~hLzAz`h?>YTyv@`q+9(FAYRzpS@$3 ztk%={y<<~skkiBQi=GG92IoOI?{}qYdmwi57a~8iGrAb^2=x1tdi*E_06Wx;w0A5R*1BMkh$RL#XJp{N9KT>-O* zq)5W&f9Njm2zT+7L>HaoTQk$sSj8A_O;wuh+h!UlT;#_{QMCu}S=&5&)c zPLIN>F}y70Qov4CaYNupRTmg?ry?3}HfE-=!F4;T5#{o@6uPeAXp#DYKwriZxg3xy zs1c9HKd*5esyo+%k*xmXlVcomNJk6vum$t`fE`S?Cnh z!vD7r&Z5NWKhVfg;zX}aN71o-lRO?A3kk*;q~us{wHz$HED1j>2cqn0F&c$D&-B7i z?&JPDXBaM;F_2^md#_m-Me{vY1Ib7w!Rdch`O_%GszDNo~S#ci5*H!5L8iN`RyD~MctXy zWlCkFq9eQDQ)C&X4e&SY=hP2m8HqbQtZLB{3#-^uH(?dmd>BUQunI?bvV)3;M`uwI zQX9#NtS&dEZT{?{3EUf8iN(LbHly?0j)4h1JAygEHDakh-9KtI+5zuOHJy~^a2)e; z)%HNtX=TPSCKcs&pE(F+9#&K-5XwA=MtMS+_lAMH{dEC6XDIXWa2JI_8Q!yBnVO-@ z1Dph~$z}dbY+A z(ad2_aYQq2btD5CPa@Ww$VN;f$BdZfC4xD5Vw&qzOhYMB0lP)V*t3mMEJNB_vTiWC zxi(cDtl>Q9aTFs|mz+BoZQ>>+x~7g}E+__)TDGS!wQ_zONa$D2wrv-Cs186mba7P- zo*gL$2cD$^vEJ^QI-?LBMJ#q2HOjxoWDy;C!R0|KT6@6tsV@R2ff z5Pfu&TKGbljz3?30r6kq;{vILf57KvY9T~kJGEd-tKY*jQVTE57z}+X)DX?;LTV_C zfJiM!>nzi(;YK2@Al)!`qkc~HKuUqQ!cz)ME|)0<_S8j6K?LDtx3sO5!F3HjpHZ-r zu3Az%9X6H9C|K~lNrldP=YPRcYAjjHxKDCN6&9R+_X_Tb9u`UG-21!spU!}|nHD9f z#=}{VNVPpUSz|5n>IFn&Sy#X8Hk~mW!?oj+fG(rj_M<{+x7`!_a=ivQn z%uGd`$52TMfob;X+hi!Ng&;ncu(Lz)lku|Gq4=4(CXI;3Yd|2iw&aH)iu6cUn*FJzjH2Cv-zq*l z_f|18>ygGj%MM=do^Ljw{wfZ_8{V-?6gJhy>y2iW{gJM3I?2Z@X&(I_=(+P2A^YyR z6Sj|UR&6^636m^~_yjMt841nurz6cz#jo0+9WH*AlvjUiLVs8h%V{~?rtPoLD9_@- z=fc38}PE%j+3Vx z+t#web6NvhraULV(v+@K^6+Dn?ebM=yA#8AlH-T(^uL6NIM*|h8>xoG(QmYqorj>P z|Hk16Bh4zzato)vjjdvrL{xX!fJS>GxX%A~aiVO2Gnpw_O z!IM&jC>pT+e$|`ip70Es4BX8X0X!#Hz7+1F5LbB5CAo4Gr@7E=DV8jjKTCe-7n&JA4iCo7 zj34A=#&5#F-OLccb28)5jlJ`fdCw)8A2V)(+&JiM~1H>=at`Y86@&>c%g2^*dJEoasK??}(s zSA<2=9RzL@5(5IhOtg2Fh4rw4=1qn06cscNP@@&GKo?4KZujTBzYxx%i004H2-@5( zqM_I3l4q}rXg+Jf4=YQUZ4nJ=jr9H;PS4y$H2ccXLG;m85zT*=>G&4~ z7!ZFK9~UU1`87T_i)cdRwTozMY4uwswRpEYerLvD=u=TdLlZk^5zT!$po$_Ismqkg zNM)$ZRb?Z!C9R0RVLzvSVDXT+!&6&pH_6l%d+H{&#Wi0y`*T!kE8n_dxzv^c``}7# zB@oX_ZC&b4Z5c3%EEFnt$Y?Je2l+yLskv zWw4^?R3I01D;njA{u5ntf9Y5B#FhftQ#byS!lv|6AXcaN@lfK}jX>e? zr3GuO5^()~(p%?#36RE&6D;a&9DdB!&2biR3nwXvx7T3tnjM5i3!{QA*x^fVX<)N; zDy5Sczo)nuCmtm}lO9p(z4nHVerkDdXo+guIcUgkt>NiRY54-;GZh(}&W_sV$JyYiG-bP?H1u>udUq*HK8_P%VBClaZ7g- zI!;--l=Mq0mpbVvF?kFNCkF{#e>jadU!m}7ep8-2G+63`Ry01@*j|~WVi%&1i$ zhu06Y1D>mnBMz-Y?2Fql1G?Xa9gv&Ey{7=#RLQnoj(KH_8}o_^Ce2Ve37p;vz;qExroOOw3l4Z^{tkKuLvyURJ10Rd#UZE)QFp@ ze^8?cw-iB^95l=n2U5aJ{TN+xGxZaCVrGgxbz`O!Hl@uJ4vm_gMXW(H8Jj$ZalA*{ zap8*E;#u_2s5EfDse0%@gj*pM=0ZLz)_SJxTBd>YPgZetwJ7#u&#mFnYIS=3nso!X z&$?0{ua1ge-TOXqmP{I|oJ#H=_1sx>C3iaAb0@4t`&8S`!NDvmLK`ebdEr~=4C)fy zUi_wGu0z>xk_+N5P4?xAbS~rNIp_C8G|H33UL6MRjv58k_iu+;cnawG9h^W^E_F}b7R>p4Q1DedQmfxCGkfNP!{vSyte z1U+ipC&S;^xAOa&qDBFmN{)1aQrT;Lfi< z4R=w96TIh=oY48FTzl0&6vo?4nh$WgYqjUC)cb50yqm2Ye39{ozfCTzX!8{xN7&h^ zrvHLx)@#2#b!?o&a&zbXM?fj%yt}Qr^x#v+#-)K9ZoC{bwCaB=2RMEimLTL3A-{k< zS**AD9DG0yhgo7*X|umZW|}w>yB#sF5jm)l=1i*w-v-|{qDnMUZMG}5dc-vH0G*FL zS{L%a zi*ThD_K}%L3`Ge@Lx};45sBfj4PtAf+E`R?fEZPN8d^U}d3GKc!Wnkrm)10#&|2+; zKG3g^)30x+kLc$-qU~|`jDIym-?&a_`yc9s=N%W~6QlnHR|Vb8_z_4KKNV{6^z0hO z%e_^5vFia^CWF+Xm(Uiuj{ktRr9h+j0c|uT69=@h!BGP99>Qn^<_ixff9Jr=e?A-W z1a953&YcMnJ5a)^O|dO3e&tFu5Q~?8AYH=A@G}fdB(&2f8}_h-^}L`^+0r9QSl3dc z6|q1U3~-gOUVLF%8*WIwORhd2Yp9y2AL8#ke?H-Zin)?_r`d2rq2Y;Y*K5&;303mQ zIC^bXC}mc=G7)#r3IC&x}TemU1{GWDF*&0^?+bpbP^EGw&o1#qO;B%WWIb?l# zd{xF^Xj-g?xIkHLVxPuY!t;3HAV>Xl_G9P*1LZmk=BU55;M|QqO=kP4PKXM@c{M{c zRVGcZO<0+NW1IuJti%7%n7!SC7RF47&RZE~{!dNOiFf1U0yVjh;`40L;k3zJ^8AT1 zqZEB~Rr37hG97;rje_R%2&^iOHm2ah;r0f6T!6e^#pij+YnMFRl9y{{b}|N&nwep! z7x77ac@C(ekebX(Xx)Yo5EmV+$pKXqQcH`f3|A`kY+E~#vz8vdzhOV;X`qmrc+PXy zCtr;xma}G0-Q=vf{iTYPvL_R+<0m|*dk&_sYrQs7bFHzeymi4-nAi~#=??t4>pz|Q z+_l^bIk<@*&fOAs$$4?lN?i|FscR1)PrcAdKCZ~rkN*R0CeDYPnMNn6`@_lUwW@9B zpx}m;o7UNz^3_AvDH1r7%G2hWot@G-8!vmE(y>p`@yrvk19KJ_q|!S6xgb+J_9;4^PK@-996x-|HAIShg+=}H zxSWb{Bf$2!3SV@r(KK>CavJAvpr`d83w+#bP9}%RN{YC0fEw|*@`Y+Ve%YXw!uHAG z!}f6?DWjQP6nj6q+7SnPvQI}Ipuc;+}$hCU#c}0r?rsmUVlrS}infNU0$Uil^z8UVu zZE|=w`Ap6y8A^V&k~TS73gZ7w*x4rMQM~N6$+3^4^-fW~l<-@ikg_>}=^>5I>b%o* z^)X#O@iCIZE@LrsT3hloTo0N8W*vxDMu=OV_*#v(@YbJu#tIzp7MXDB4}*v|`&z1XEQ z=KxkP3FBYWSdXT~*EC2sB-S*JN)V4Gw!OOXBnOWE)s0m_>Nw}v^7sr#7xt$j(LzF$ zGtqKP4yYp0B4>`&41VijIGR%9xf^9WnLB|WcQSX;6LT`zQx{IAaK_3eR|bTe#dLDE zYgurYI=5RU>@J*2`|gA^@PIpcyknfw#5jM`)BiQ#RoNs(N44#|alWODl5AmajZq<; z^bw65Me>JS&f_DB3I&|Uhta5*^Z1wHZrsiz@5Vp<&3wg!45cE@qvn77Cc@5k9$$u+ zy>=c?b9!|NZgaQs>*ze?HaaJRbQtZOg^nqxT}3%y_$hbM*!P#Kc!iwDgX&dY!~$=vRoiTYic; ziAMrfNhk4SG%fBVk|rqVBrbN~=ywtq1*v0uer$Fvj~6()us;<}A_-AWC-JB3)9~~b zPNJMSlBa$vVK|9W*SQ;IJBc@8)Z9tDnVy)F$es?IlektmPmP&2B6r$8Lf68!9h)50 z0$jnn!MGu@;dkLIp5ruvb_W56@kGyHINDU)znRB7 z6(tHdk9*LlnDh9$a5rw}k$2-)3#RjUJ44B@chZ?hEd%lM2|L?)9L39CJCF8VTb_x@ z9mw|qfs_O3ofy)IbSF1$p)yvw zV~&FXf2|p?pPk7s6{4eXCci+94hCoP-w08!Gx^it*o!%nKL)Il&g5^yOp*}gbS6Ka1FCQ)<;;ySF;OlK~5Mf4!jFD(p@7ZY?VM=uCk`ruupIeRT>%h zkJ@{@77X)CdDwfrQnfu02StQet`o%Dzpi6Nk)eR=cqmV>|!{{S=+op#D9Y`uo{kd{-eN3U~2QYIHET zi=QP#z3$@YgJUn|E`A!YO1g_*L(}5!A}NDB?&3X%^kEYo{sF_}KDL4xfUHFcJ&J?5tKahc3<{q##IliB@2e}HY^UHhKgIuZF zb{?E>`A3U{``3rupa@aGha5tqVm{>c;cnbMB=5$r5KJHP$qXgGYmxRLwFtx)5O%f? zc?w?k+J|(zc{anj7deUkQ(mNRR!Be6UCeKFV0e;pD6X3_!vHy*pmTox1hmm*V zpZ=!9csxVN??I#;M$P~DIKs|$7=I5v&})a$UF?|PHun~<0Y)ir(K#8UtLQFvG(j7F zq8u>%l>f#s^ZJRac#OyQ#W2wBeKB(O=KfyK=x2rn#d&z{K`?(o=o`hzaJ0{Ub_mA{ z(NH*qqtxhNa0vgH5cN8QcLv8^%pu$ZSS208KS9&t4k69@f)3&B4jlas;ck3g*dd&8 zbm4IbNr-Yfgq0jng+nN3j@!4hQISWC2)*WRl-qoX!66dUtb;=A>r*7n&UWwIUMz_! zjh23)tA2VU_rT$|W_jk8bd_-|{bDy3~dK-QwQHY{3B z2Q>ai!EsP%jc6Zo9E`k$Bq%nkb08&71Gx%aa#M9RJuy?op1Lqq8k^Fmfkg5E-sEX9 z(R8yhjk9-WSMTkdU(8zZ1AYC*>Ht(3jL6Hb+*ji98@wdmS*Gjp)>M@3;O&~12wkw{ z(v|J%?)Ff$O44%GhJonP(Q0dCxP_}STGN%0>QJPL%nL%7~t>4|=ZZ;6PM`72~UQebC`T@}Z zA;S%8I=IcoA5kN44^+5MQ6bz?L^qOXFdH0*&ur+)o;bHUUUV@m#rx1HHyrP$CuTU< zQ#Xb~;ZxdhoIbj_J=&&AL?gfHcyb}rp&dDLXJps4`$nVqt(t&)EJAK5lx@?#{|YU zBY%UJy*49W5#@&DF?5+SB*ws{Dfu6KCrydO9ZK}mG>m+vB0oSx(~BM$9rZ1B*cTy1Zd2QngHE$|C@k|Ecwqi0Z*}7STn|L z0;rq3Cg6P4!MrsAnnO(gPUtfwk01}1%>n7N8gI1PxkZh!xCzkoiEkz_wh0)-%l&Nv z)F8PDsG&=T2~b~26ARV0UiRAJ9PbcsasK&_ z&|S*f2%(k>Bv$H6C=zwXtQ-c6&l_n(`Hau>v#~Bow@)K!6-~mtuxpxVrG%D7uml>7 z;dbi5!9f_J85}Z87u>-_wI&)flcP(vS8+)kZm*-WXQ!&IR%M((ZO3v8H)hq{$bg{@ zT8ua7D!WEq`Vjd#-nZv%J?mI2hhGZ%xRrywkk9H-SHurcBW}=srs(SzIb&@_vI7Q< z1MwNOz%3(-pDxYW5%k2&8GGu+oGENdo3l&6{%Ugyi)+L6YNc6i@yoG!IGcG-_KgK? zT~=3KL&!B-$n-qbo|{>H^|#lr9f&rIE2wW_|4;8_KRug1azfIxpaZAjY{o9++hr2Birz}<8gz;n|5=%5pH5Rk$H6k1n$6ETt}I zLEg``sr|7)#%*fd-r~V$SV8rF)l}clmEn&SBB`hh|2;K27%Ib`@C+cz^Ae7G5th@h ze$TDYUC$>1R%n?faM$yhXj;57oD@XC%JAbIIQlEY9~Y#KbFwXuk92fle=4>Lk`RTm z_7t{>3n+ifJ`G2BqB3009H}Dw_Q41XrIK?u%B~E5E=J8WoWu0QLPGY`MMx+DrLy-T ztQ@V4ja6~m{YW*C;=Hg}*rz~x!@JH~=01#(V;HWqaU;+686;5#FPD#_S5#V6UNEjH zlAZsw&VtfS1G^TN=&z)SGhb;lHXEE-;fQfYwLNG^ZDmRq%k$(}tSR!UvyBDH)K8LLLSDzk%f&L2Pww8VZ!kW5-Mzi5#e6nWL# zs1eVr{;eYU#1WmxjaJ8Mb?hW))Q2Z)t@hr#_pW}?-aAl%d?-$`BKPWu&I#5xys}b% z*ok-5+7nT$Iyp9|1*gA`Wz+Sm>eXGt^t5Uq+F6;LsYdHj_rGhHJ+F=`E%q1KI#wGW zTC#GqfskTmYz&M6ME-gpYG98*gRx`@<3vA@T12Ts1KZA3JwihA`Z_C?^HP85-y4*71@s78QmCB(zcHp&f1kg=y_+weA$b|{x&sz9h>1B{U6 zWt}TLp!e;0qX52d&;JU8Hze%w&jcZi&?i3WC}S84frw=Hf?=cC3aeR|F((2h7(;zQ z8kcpBNexa5ij7d1k4Zr}44p{k*c^FCD;rw-LJh~*%p|+Cu~peg>tLG>LPR(rkF}>%7*W!RGZC4GZ48KD^6n2 z{6YJCsjU%cW)&w{!8s=t`|m(B)f!*FYE^pq_fP>_6e;n)wB)`xD7oQ~{DrFRyeU!= zgSA&_k4g|pxE4A9H)*67XwA3FI^r))xi_fMJ40}HYog|ek)Z2UU*t+9-J80WD- zUn9B@@1@tmo;8y1D}&^_dB>S+o1X{+cPAkPaJ|NM$f{Kmd3w~ie=!Wc(E1wh)vsLB zbPs=~{%1pj<$#3T4$D}2LFy0E2kc(A1$ zNC{i|xSOOcJ%*l`EoD#L*iwZ}XgtY3|eDq4g)J3u)*1S*nB1{O7E- zZ*XyfcZe7C3$1OgQUi2Z@v#4+i4$K*U~IJ?;bpJYzE3>4=HG%IQ<`57TPXi{D?US3 zh;2WYn1k6XX%N12b5hesmq$3kgq>e9QQ27?Ky7UU`^_6s1A$r-+t8&+&;C&JVnp;` zNb{dgjkxCDrtr7sfqRpO94<6J2jbKG!Hwh3L#I5BdOkfd-Orx7(ftaa(z^dt2tPvQ zKp=IVTs|DksX$reeb^1{y%mz3H4vDWBL&D6R_9f7ulJpYWAR~UuX8>zStTT>g;YkP zIhqcl4wGQH8zcYJqI-`JJ-6tF)yQjA+xbUDYYFo(P9Q$Hb^Mfgt>co!>t$33Lew=p z{CBF6yOgiz?5ek;QQi>hEjhkTy7HPC@xz3jt4q2p1^}+(MePdfZw$MhAoFk>=PC&vA=@Gj8!i8sEuyIcpqufN8-Fh)64+$^RDnc zLK9!>E*m$03LmLlMi5(u-)f%wdBU@OWoH%p^?EIl!!%bvP1 zx(b`pM)!&1)po$*t}SG70m~a^adjEmOmcNnrx0R0whWBkx;k33A=1;5=3}BLzDQpGL zQf)hT&Y3SU(wLmAvbC+&U}gKr;M1^%Mdxj@Au`o(Z1q^&zhfZU0ur(rYVPk?u!B!p zZTjRJY?0Vu%-+k@APX40^=K5DTQXjwdYX&bw-YcK>;$yNG&|N~(pUrUEW{8vy4rv* z7)=d8yukoWi#=Rs09y(S;Mw`Ujc*}Du9D$ReMjKO=T77SPD#oD8Y2z0GCH6a(+DV?{ z7XfT%DH^n;4ox*iXRvoa-a`!*0A54rfu;}@cB z4jGJ>0tbBVB(mmGd>X*@+KW0irSXId^$?BwsKl>(J4|y)|H;awlCoT_oF^$I7}iQa z@;Xlwr&3|iX_#9p@vkT36ab|AqDexHvg>XC0_}OQ`Iq#>>>hjS!tM!MQg*?PbmcH# ztsSn_r)St0%oz=J$06<`Hg>#wZ9Fb+iZnW<{CHnRTa<_!Lt zso2Yz*o_KAthak4?y{bnnVWc)q_fZMJ;%9Bg4;Md67OB5AQ+}WbTfnCO zGa4a+$XsIk&oFTJ5}N?7m)H(vf-J`%{?a2@a7)nM6k2HGeJAyrsSHhL<-42++6_6< zoM~xZh+pM64wrxHk(?YJiF-|U85-r`MSmE$n->DO=EWk?B60})4~_qm!(9~O1n;>d zCzfa}m*T@B`b~|1{h>#2V|WB^4qTU$1Gk2OyE!0$YYt@0h8^Kf3h{vVU6Kb!DC?49 z!9x5bIl!JZ1MUo??`FWBoD6tf7`U4O0(fo)ygA%SAqMciOETc7giTK|;c)S@WQ6)# zGvkBdp}3jxmpPg7nJ{oSGX(J5%=mh^lS0hkeV1g$BJ!vN5473zZjkv|7;iUme!?lQ z&Ho{yOC%}jQ8V@rVeoFoa_~jQAO1EO*lGta{tkH!%!Seb;!ojauVXIjrY*NK$CoCb z_$)^h=J9xCTy|z2XI)2Xa@dH}J|p}lXVHqab7tdJ)i!d~RAnkQ4zlc*s6b^g4fej! z8F;9Ortd`jj2Coa3POX5D$eZ*EG=edf@t|N0Xj8%khu3?(&=J!U{ZRscYl29g*qq0 zb1MDu8OFQLlBZYb^g(byol$GP(qtSeL`JdK`$B3I-0OX@fs90OL+V{};rx6NP(*9i zMAy_uCTDPByO1<-7eNi@SFuBQDF%(&v(qvM8((F>?x;vaZu6FriXQeYg@%14po1yT zKqI!cacHz}&)t!s^XL~-7@-tb=O2Pb%Z8(Mlq++>3h0-|H!!r40k0WXko>RbBe;%z z8fS6h3K2eJazcJbtcd!@CL5LZ0M=33t3__y;){$*Bwys;ngB1b2pJxg;LG#as6g`+ zU+5Q$FBb;+5*Uz1(uSIgOS>47;qesX(nSea>!l(%or1S6M6EHZ{i zA-M9emn-y(#g(-|uDHga*9EIC`UB*z#uUN)dyy!elv^WusfyNC^!kB+ka!j(z7as@Yd;RxmC zI1A2 zW{?d!7lW2FOv8gpSduW*i!Q|Qmd97;V7oY_h1|bTl`J_N;*^&2*{9k5>fz7iclM}+ zf&5$3>Nyr0!UPbW>a(a(&{Iw9)qT?C_I(d*Yo5A{%!q?jTvMox9!^|nIKtH%N2AbM zBT-&3iALUICN1SmVOC2rD)CN_?q!8WCzy37HOkMdMRf54!^6GC%zxK7y)idV=Gt-R zkm=dIY;Cx@dwQ}qQfp&v_;AF-WH7LDY%L{sc(3v93;X(B9?#;xF@^W>^YD~dHogzo zWU*3k{hl133a%3g3voTH8^i%hG8%QS&DybsC}xs*26v!a(}tQ&xh#@SKrVf7X5%ErQWt1Xs)-3z-<@DfexkiZvu_Wl?`U|Qj%`VTMg z{y??uJThkmR0i7(Ng3Q|%FSSaHugI2Mn(7X++h?q*LV*XK*bL_y?ZG8L2^j^rMc0! zIm8W5dGa5?hCHi@M~8vC6Vw8@&fa^D;(cNmc%iI4@6)eB%@y6>^1;7UoeOe;i;XEh z9Gm(|^2G6r=FbJ;QM!}x>(D3R4JyZIx4YyKRvW}O@gJ!;&a5e8p~L%i3L96CCw z@KU@v()?YHCHYd1Dh`jz&5^O39N8TP?&gR9t~uhFF)s}RFT@YtXIXwE4Ni(5N2uQ= zGmJNy6Ay;R1hIbk~N- z8};uCgLku)gD*1v@VCizN9}jSzabaIUU&RHUiNz3ah0_&=yUc&1?VBqajZQC95T87 zxH@MyMzyFU0g?^-h#J1FHr5*CmoJaTt93d(2S?@TbNj~WFdXKJ(^)&T=zw#RkXlOm z<3;06KlC@+*j2~! z#u&YWlT3R6*hx;TgiL<8gq>AnV8?D`NnjnN(-Ab{1<$?E4fp@K7c&qXQ;TMwdvS-=BAF+d*ycR$cCz zJ(bevbOl3m@ZADyskp5x?{S_F+Q=%x@`PIrqs~x%>V4#`rjj%J|M3 zj%AivctSD+Vs!Fchq{PEyZ2Wq@E z&-P!Sj`qisCe&}#U|ovYa~JA=q7jmsI)ShVMF*-VlK-K*IP{N__SVuI?j!>5BAgf? z-AcQVf6macz#0lEy(?FNfwl;zk z!R!*cu$vk*r^GF&C@USut(dG73(xFmZrCTDZcw{O4oKfxBnQJHX~+(({tILFO(7|u z@{>gSoW@Kt1;&g6@fowg((O~xB{yYP(i1af?5P`5rm!h(%Fg1Oa4W50svHPJKtly> z8g1E{|7|dtl5wq5KUMuEZyr4h^U*q0nt{~ zLFXXhu@w~^Wyt_{Q>?dIA>EoUV(e?`+OzMa6>#_U;m*=u7K6j>f5y%yc3teQmt z87aLE-^xfyjsa@+IW(Mn#%#37i{1FeCh`a=9B@x|i-$+-oC*Aa%OG%D*FZ!D5BWJd z>b(`QAF&mJv5jrWK}1!=d-e}2DWL@26(k9z(q3%XRr<-8=2hGO)bedRgygp17eXYb*;n%8a zjf=Kix{_{?8j4mivU94h+At7Z%8nCi)y9Wg(>VWaC{iCrt2S)l=LykKZcB}JMo{y2 zLf++k$u?+TwOUy7#BI>1o4f|?Gpd8m!NY&crX6W=Sf-bfFSXA4ks5Gui>8Sc|B%2i zi)I{+bzEAy>?qjxNxu=b9+dzi2V}j~BYG@2B2RtRf1y#H`ky1Wa8oBm))GMXLcRcQ z)Hu-ksT>Hu#arWla=42^H4ePzeBt^3WhAf$WLTbbc<$uC?kxV_fY@t~#=0vnA?n2>7K)kMw#dqAh$#w~|!f_mXiFfT8TzGnAOL{XW_%#>)U#b;Akd<=#fG4tQhxVRH?xoBTfHwH51d{<_kojVDGMnCgB013Qe;O;NdWK(NE?{P-X4=C3(q~If6%&P z;nt+0PwLxn7U_Q=ZQMw7<}sbE6|h4D<-CVs$|8#w!UpLP#>Wz&>^#};K!IL+m8XOm zFBX7K2RbRwGRFy%2*B<%9sO5Y4Pl8vn$Xg zSH>IZi78|D)QvJ$*pybr1F|v~JLW_NCbV1bDFyX0ulhA$dsQ+I?L!BHueB#Y3V1&@ zr&mTMs{AO^v?e^>F<9xeIe*g2nnVSTt+wLK6eS>6Looy4&7BS$4j%88{51RTGb zSrP2RW&DsdR)1@{wiIn#xgAd?q=80xG9fPt19xXa1aO@R$vAcK)!|MG4A*2uMt3+@xA6^NiV@lI3mi-o8tQZs)?jq(@X>k|wnv^IEr-_Z1IA3tfnZ>Vn@WySjV z)$565Naq-Q$3GilABk_?h!Y9qvPJx3LWn!#_HhXR793!I{0NF&o zIseIjd4QjR|3knExjJ;g5f0-Y*&FYa=OxIa`G1Y3`aFfsp}Zqk%)hJBtna-m{vaU4 zG@0WMQRlbCA107|bc7N+mVX5fo#UR^zc^5f?^sNVC^-`*J_Y&u9=cZa? zK3drW_t#1Vn*Vf$O=bN}V^2SF)}FiHvVG2HdCiyEK|g%XksV@G;waI#GiGn zrVKZB_&n1SJ*1KL#rwO~h*yKn{<#tMP&cWzowv??W+buu&N_j?OBdTwJ*OZK7-h|~ z7LH8;5TEGU)FaJLBx{l{H9v+GO$&IoThJ(vXFC-J?)Gd2aBa(i`{3(=rfxate1V@Ndtc<4BX8O0X!!& z-V^Sk5HonsWtovsWGQAGE`FADQh#e|eJ(r{H!D7slNH|x19!7R0N1R@i1>aG?xYYi zc;7{s5&ky0!(Hq3_*sOs9r0a;m%WbotfQ}e3Y;&5ANE{F)aNyJGV-%F(R;cuqCYu! zxR93%<~fs>R`mCvu}_?KvC~p{4YhtK?i;1Uo2P1ZI_Y@VL~Ue(l?Ns)S=87bZ3R$8n=()0N?3mZ6|8!QJ08= zyKxT^G2tK0_F+~u38a0|v zLGWdSkUI#zJUGB&LGXIODj5V{ho;4YVA5^*g5ZlCsQH873-EQpDYQI3*U^PN+r&yZ z2}sT$_>>$_MG!1!g*%?LQ4tF-QdzqjWe34`0zba!@)CMtK`?tda6zzMaM71Gq-%#& z)o{rL7Y*AR{C3`PAR;}HI7O_i?=Mv`_BF7nsQne|I_4O%HhXSTFhu=u3Py5mNL`IL zOskW=s9dL?Oi}1k+^%70e(M9%p z(gzgn3Pj!SL!&%V_uqzryQ2#MJa=^Qm2fA8q6^-4IATD~k!^i_Hz$H-#&P1d1!Ib& zI3n-8W8cW2FZoi>iGK@^%pLjtkfW6ug#RuK+|3&SJU4F+9}dmxi9)>LeHYvaRt6aer=0?=O)~_ax z_J~F+?F!5L%E{1cuzEVJ3kzd%`9$tKe!UO|&}LAy4>`rgf`lX`ieNa95=Agqqf73O zT|-aIA7f8l_+uKI(nT<+NEH48zrP_=0aLUhF$vh~jb$%Itns)w66J*HOxM1k2Fyl9 zRRLN*Xc5~U6tS=u^IX-o^T6DDn%Pw^f^Mj|wEPxFQOkt3ijH3kmb}a=!W3{(X3!{) zi}JECaJLy0z;m0yd%~R*GK0MDuxXPn%597Y{zcz($%_`kc$$#5&ERwJve#ztl<-6q z^)4Sk&nX+2o}|(MrV2HabJnnaa-7icTWH7!uF~b>qI(&=`x!@OM&$bDy{-UVKceZn zpUYgnR)~Zm!}n!sG@mkjKPQCT8NOcz2Usk__fxmbJ69&kT=qG-us;p=tSaIZ@G>iCl*h|#g@L=hOaVN% zm-(V_CxyIB-nU;PnFT1fG9vh$m9&?s1u@=ANZVfKQ}MFbUgqi96IXbe525#zr|F)T z(%U>E8@SO8x5cHpwJ$m?%OqW z_p{&mi9%!)e&ycanhQ^gBP41FG;l<*blX-mm2izf&qIccW~-Gpb0x^E7&5 zekXf6aDL}0wRUwXw`K#b`)F0$YbI+uus4*INYPo;J8Pp< zOI3+>)~dU(XEfTh3P-4M9598=4b6w@*C>7xe`ymi1cvyfIP6kBS+(uFbk1B#b1l5G zePr-ymFa2FVo(gz&QBKFsjLSSUrl3Uz~Up<>rE(~bIR}|vDXE=Ik=WB3`%qD*^2T` zf7MvcNSr`%Dn_CeXzISt_!fX=yH#4#)sfm*Z3NeY9)XQHQ;pG?Nn8-RX90f44jR5w zXK&&T(3{X!>h*gT_u)(YGjSTu3|onR4UB~M7%v4fFw;(&YpoQo1KeJ_gU35&oACd3 zqPvv;CuWUw_#W?QZg_Z7bTGK{0L|;+c{k4+npXlSt9f4z1o#@#UG&5>FMB$0ns)`3 z1Vf6q*dgo$tP8z+Ws;QwwL)r_V_<3BMd~e-F8@Q%-iL%#NTw#;?y$~%lWN;}$pP27 ze2`tKTs@xnJv20j${ozFauwCx8n-AU&9aXxviDTseiUHKD%=mFtyH)<^sJN6hMv72 z;CiiRt)tf&cX(05KheOCN=&}JVxCAXYaP8#jSVF$g#}9X0l?}?$w~lnK5D9v?aFp< ze*pxzlKmw;F(u2M4xExbbF$KE(;hoI=QD6Rc(HRF`OG%B9ElBkEEvg>(cjO6RimquOcwaq-mWJFTl%QYub>wa*cZ_ zdQEBE&jo0H-_@L}0BRK*Hz#P2wcIKE>~j;w-hDzk_0I0;y`?5 zU3yL@jv0s-T?_-U1)Xwxv6Y^fyB6qFCTsO-r8(S~Y2zY(-{2nN4__ou2j7>pCA#=<30&)77-r+6Z;PA<|F(*4}_%7Y) zIi=|3Xq3a7WyRNbvTuztvqMHxxT#k-loh{f#=fNtc5m(my9JxMv>AjGZ$P-s25KKE zgW6wrgW6$ywg_Gu2;L$m$bwr81iw}W!7nicCo*f&_l1GGmq`V1y-XTB_oTTDfen9~tVq`?Bz`d=ZTk?Dc-diyOA-3mjI3ZN%;Bpp^Oj0$XdKlR-p(%H2$rYM*6Z8xpYYL@_4k zHs1d1!>r6B#YKADe5HwZP9frnwblV@6kKb)*f@rpC+Pd*4XJlYCwJ{ABI~iqMy0(v zTC;{9c(xNVg&hu5wrI*=y5fhJf7TZr>-qDP;n6Xm1u;L6#F1@dTmOa zBRiHnDf>`1EIA*_#EGy&I-B0{MHn+0r+i!n)A!! zjTsc9PuKHv-k-ug%@o-co1^~v^k99o(ri{{nb(QSnQGT`( zl0rJ~W=N)_lU|#!GNp5g9)c86^OdIhJ1xjzEQOrDgJJ3a)Rfb>jgMXDyLsgF-S|9P zP8FRJa%z*wC8v&WmYNLKq_MxuC6KSlAWdJU57@Y)Buf7u!6?dV^$P6VP;36 z(FvAJP^0`TSq$69j5i~`LoZTfjV_vFT{3uR*ToUKxBXS@oFt&o7(9G?maAaWLx zfUq_YRdX`Dk=ej-BatkY;jFt+KldF1H+1Z*yx-CN#pp-AoX`H4`#U zHoYU^D+uzibYAJTpl;s~!&4h|&<9Eh(3A>dhl3|(^1^5gWx3J};+7oMfYrgQ4o9Pqx{n~P(q(F`HSc$Y4Q0V8q<|!Fg=y`o>@GwE)3jl@C9&f@PkMEUl#77kh$kQhfO#c zHqC(Ww@GvF6hRFj{s+iqug$$xtu1C4uNv3}%B3v5oORO3FSGmwVG5Lemy-!1`DHOZ z-S$1b**C}fbAc>hBP<7&y%$-&Notfo%eRQFAF+jSEuHpdO7uoTQR5JFu4 z@y_%_?F0u{Y`5>r0V||w0;kN}i>7+bH}7RiBx}jtzKoRQK;47XHh3T}Q@YcEnt!+N z9(?W3sW^)^mdAHEy0AYLc}o(Ikh!G+h(&}N`?M#E2!B&(R6>?NL5=dua)SzNxCe*Y zUv(=$w0)Kihm2}t*tm+#t0i817U-9)=14sTx z%}Nc$J~;m$$4WMu(*DeOzj_9Jtq@s7lKabyt(I?QX%itV#DPM>qLsg0rbcollH6m3 zuomHn)Wx18H!tJ}gd+cqPI)Nu7(KC2ggtc;igcOeUdfHuFv?BRp@<4XE-Vp*5J+zz z(z$2exy~HltQLp#>f#~eBckGgpl6J?J=oWJBny>VjEy}pb-ucDiCT_b_>?B8p*y&h7es}C-R)1`M${~GyPp`CE5%yo>DkpecsFtoo z%_^PJx0BthM7z1-loTyOG+XlChZ&>5o$;c681>2L2T~+KXo2>4vPU;(maS;?Qp4wgoe5&`Zjt<~T zsL3iDf*;5xWrpBi9a@U$ESfkJ__c4&m~r z2*cs&iK^{^xc{LDE36>(cn4jD(bqBR;o>7sNgX64-!JQ^zco?MRfH)JuMVP7NWYlj z(%I}=BVJvi1w;%)BYY_PO$vngOCx)28Dy{I2kXJEasYg@ ztj2#V+(n^~mG|to4rv~QzfFd0dcMS~328fII~Ff{9kN-62s>2;U+{VvdQSy!ZuKF< zIIGCO1>D#)E5{6bdV=7YGoZ6J%|3>W7ub)8bUWOBCd$Z~kILw7XRX3w3tW~l#ebZv zZEseZvm&AqI1NQZt!X6ScMn%)+Kti1$S}n_c+qaLr=e|Iho)z@@-qUr4sG3r;Bo7= zZ8C;YP*hYYkYW)c*}%5!kRhRiDDfx49Ma(A&1@NOq6(vlI1dli`oL^;5`p2s_Q{#* zz!WTNy!88UJdCzHu$uy@`6^i*^g~iP8U?t^SjtNwGD%Hv(2jdj{6*9!1mQYj!kU5^HvB zaO4D9OLq4;F!L|j5l>j;_2T&;ds@rdvf|f!h6jB-1|vM^SJ5LshbO((oxLn*?yDBU zWWLgPens>nWjZNS_By6m9Q+4rv?3Phg8uRO8QZ9j5*i`uhe(Unf#e=(_`06+teb-=^Ty* zpRU?=<`?~};O|J2I>NisQQx8LSMk~iZ`8We0(04EhZ?gp&~t}3<7k9wpaZl;#4Z)y zus<|QX2V^$m!5bRepP42F(Vuug9J=&1PL^j3-MYa$(}WiuPuY)t9ZW#jn_-?2qrb~ z2gAVKG#0?ML%ZMt1^fa7_`AZu3k8q7&mu$*f13;*_4JCj6Vi6@cr9M`I(R%brCP*7 z-xtwYDpq8AMTUmfY2{3HtED|T07QaM6AW-hg2`+tPll}>e>Zq^z&=~T)>66C%;Z_5pmzDW`h83u;J$Bj9zeHe`x&wI^0DeHt?Q{up#_y(r46~Jzhpg+dkv}z}ENL zXSD9dPU&&J*zhf&lX4)_22OgD*4@}PP-BrnjuWos0>LMzYiTVq?3dFsMRsk!z}Dip zFD#B$F+TS;=ewZ?_r9mOmrfYx*c@f1hl3g8-xQ*s$Qb{M8U?qL%)i4qkJ}OQ5$)hY zq??aMBS*TKUYm)c%ye_c;hd{1c;UcDq@2%SxcNWrCgr>uu+5Y+DXjG2oQgV$l(S77 z*9miuZ;BnxX#?=v1+^fvJYJeXG5T~pKTB>g`?U9mbH?|NKy-NaF>#RiFgi3v%FkEA zQi$gkh9%W&NBu@xhhCeoGR4z8ic@L}ZCe)PFqT44rx}+1PfbCMFU7|NPUoD# z=h=d)=#&stn@lc2b$sJFozwm@mqc#PAWd=CQ8}IR)_P4pD^5G2P zq@*$oRUFTGXbz}iRgwIQoU4kzWS?d)p{wIKg?>|iYvs0ZGAW{d=^z3KSE!E~1zjO? zgGMLo+)aU9)@K^&6AB?M_N^X^MxlHSjZd(G#@Az36xg`GuF&WNO9rV?ewOH?H;MQT zy@WZaztNPxGB<8rC=;XSY?X2a<5gH}g#=ud<5M94M9xAI5Y`4_iC+dda+M(5NG$Km znAY8>pF0nMrG0WPc%FY2gW`F9_S8k5Uu4M39?!W-NAvu2Ec@m^wR`!JLM!}9u-^QB z=k@b2=S_sjUirVoxA4H|7(8JzT@`S&O)u`E+pqQPzZ(K%`ZLK{7p@g}wQ4(`$!`@7 zI2IhzM+xd>ba~N~&Wy@8*40ywDq<8^aCjRUg$$Uv;P4Rpw&a4tC(B^>v2L)-z2NYV zWl;M+-Jn)*!Qns3Aow$eVD^GT-&AP+O}I1N0=SXsz9CRre{{HuLYZ#fv){-C1-6?r zJ6DAV;a+Z7iAG3!WfrGg5C-mMf&i|Wka1?`#&9Qv*ueWP!iMm-$pr_k*W*7W*|!%Q z?!wDnFE~6gWCcaN$|xw9T5hmSn_O)0u3&KYL{+iK5h7XL5fk0H)R3%V@gB}80w3@1 z+VW0?<-wWpk6$VH0c>N@K4d>A01`f@931LPIFJ(cC3m7r?svX~o>+Yed+NgP)Yz1+ zFS!Ui-Lc_=(42E80h zpZ@uTz_;8{4}76D$A=XyT&`x=XV-L$KSW^cdYnUqoK2j12W0IuY+S-U^yaFPWXcN@ zOfi6IOB3IN9(rvkR^^;8!e)F6D5PvgfXdQ*6quG!vg{aWNly^w^@2lAOJXfrpCgXR zh;UR1J8=&8g14wZa-!0XpxAJ@Mnd3ZNk-vzT7dQm^kn|QnypULb8t;N@Zfuz2kE8f z>_lsU?A~t*kyEZcQ=|OZy+xC?mbhtHdz|*Mob-)zgWoa620!}9wZreYIuPPohCSG4p~QnDvss+CHpiyi)Fr&#Li%)*4DP7C-}m5l*;5yOW0(2L)iA}a>Tq+WKD=WWZPrM;iYjAStR~q8?DY)~#BmGW1IyD` zXYE+(PZ{DQJ?ZE-BCPaVjoRpRXI$?bllnpHpk{Eog`J+dYCGR)ZY3)hOCoZkuhWvr zANq|Hhxc&3yA%;zUZW?|^b#~m>~cDcGgUev@=wjD*N3}tCu(>%Nws3CMd@_Xq2w=O zDEXBgeVfc@X!gf@2s=BUF@cx8c2lkNLrSoD0p(wz=ahGvo(0k=wF)S0phf|u94F|t zgNDraY`@I7VUh2ENM<#jSFN{Zn(#eG8qH>Pq>Y0Pa5pd8kt6Orr<3xGgWbkzO>DDjy5u(YoAktNEPLw0#%gRz=Vs2~ zLaN1Qm`Opv+HNeGl7ZQ=!Fz3Pc0R^BQrLsO)XQn(w#?l^Doo$cTK0Y^WXCOgVMF&* z)wc7ebDt&2a4ynJvXc)#-2DhIdu{HlGlV>IfE&FhV?-&V=bIPO^quAMHf@PA44@o2 zl<`l*q{x$uSRk+@(gMeOs>n6yM{CwZbTc(AB0(x5oX^m#-ZoRiK~T(1YBwwORt<|0{3L+> zxDS;#XHnewW7+3@5*~ zqEAI>dX;^eS(<)kwLZ%30te-HO;mBvb0fklYlgD9X;J%d(NfM^^|v15eHNj@hzq*! zWr({fTIm;y?k5Lu)_B+rbJ6;>4399%30jAtit^U&IiQLR70t4o8LAs{KouD(saT}{ z6UJJ2&{D^{8)avxz771i_xv4tV%{@*>cV^OGD9^uJ=tgvt4nJf2`XzX^U`9Da}s(N z9wu+gBfbyES38s&_3CX?8 zR?xcTFI5Mfcg(#pORro$F7*Y^*rncU(jGUR zWJZ#-;W$Q9Ek2gO*nvW!RZ1r?tySWG2a9^`53jJ?Rco?wM|drUmU4ts6qO!u<}@Sm z+=vu{q!^^{XF~e&xV|f|$HEXYGDy@Av-NdZbk|jrU!x`GP_A#aC|n#A1#60lgS!v5 z=>lp$Sq!tJOI%>Z@rFVK6;APW)F|i_C$@N;KnGfH!NG_Fky07_98=?j(J||U(Y_bp zL{>VhhZ^^7>)RUjZSC7)eFT{JX&|y*_q~9O-C*DFRAon1t0{cSyX{ZxY3Q6}tZACP zy4E&pG<31HNthWHU`LRY#nv{*0juQN<_ww^U)v-Nl33eZYLK5w-0UUJ5r!dr*M)u2 z7J~}(-n5)aQs+1y_EiLcQ`kBm_SF_>%MQekASum{l3YAJyN3BRd#koicz`ZYTpquY zp`V0cei~Rjz8_6{Kw#hbu!^vU44D2!n69UpBFu!}l6{vfzgJWG2sJScR=&T7^#1em z^!{jX=zW5VEJ4X$aH~NKoBrDD({i_eaep{SL{sEwl8MFrtr^s!PetfNx;W%Q(x+l^ z|LPo2Md&0AkUI*pu@<3|^by>RvO}l;0)9Mn`aM0d(1|@AxX|fIzrFP6paQhN zS)F>pmP=Q*tGnAn(JD#oRT~DPOGm4%5iHn@54WZ(Bh{fueHE?Rut8XQ+NvlU8MFEE zwZC6Plc6e0Qws;Gp6*t259Q8ONn3jCA!~KWWeYTs3@GQ9(G! z)1-^n5g2=&VkutsIxfo=V;-7aiM~^znTr%6I*YGD11N14fXUIoVL6%xmT&R>k2X$J zM|RNK`{c}2od;dm)guZ)8}-Rq{Df--kae!lOjVn;k%(?TXwey&6P2CS`l>dL&qRW> zx_f%EHd1S&L2E~Cdb&C)dAYUQF81xY-`|OriW|hJrAe`7opb3UK8hMa20*pz6xG5l zg$0vDM(oRh_?FMLPDwbJ@uG`ixT@%s+p#fvVs?x@bz#ReKBX7XpE%u^4y=|JJ1-ls z{MPD~b7rkf>sr}9GWfI^X04xAnP#yg!!pYtJ=@B#fJ!^I42<5oI$EBoi`p9-Z@d|En3D=WYC^qU4c28Q zJXinTjYgqpTAE=h3VSvCHhvcRS1I3xK$;_Hpe%HuM!903JZhl)zA`Aky8z0M=KD6j zg%Fe@OvW#!N1v_(&=MB^2@QtX*Z9cw28k}|cA_Nm1iYjSzFSvdwbXn)%mTxVBu=I{ z6(iJVe3dLk2PlMxEdE1;I`CFxe+dq9mlP{bzDk|x{Kzn8ZMQ+ zt~&eFW)rRreOSSpQLdRGUA+XUh3&t^nB2PDoM|fJUlH%7M%-ulFGZ7FK8qwFd=?JG z=d%Qk0Xd;5J(kDQ6Z2TuQ#T%q!ltyx5s3`{Lh3xIl)yji0d=@$iA3x*bG48Ca#x=IJX3AqZT!7=o4|f~NzqPcV1A#H~ zy-Ar3doE8>Z9DUj@Rs*dXr)k(EM8B8bXd%_rMTlZlf_|a241h2;Pj}<+Qw@EwybTu z8f|mVh$3Bs_GQgUD?`vEbhojiwK zyMFE(Rt;wfxOTf8%-8?E**KQTRE^)4!C^%P9M<-2#z zET6*NU*)ZdkZl0ZwWpC9Y(GkHQ9wBmi5s5$rS?k=vP)Z+c&BCkZ9-Pv-d)(F^ty4sx5H z$nD5KwKyEn3fdAkEqFIYXc7K4x$93)+xRbt2+Wz&0OB{|Wv~5J7%_^3mr>1L@)wEAxmHrm=EHq@lXK?^7kqVx&W8$2(Hek;k-4=6)beOqL zeUVn?d{);SCFE!d38RSuGE@ZD(Pg*T3zj~Xq8kxGuyIQ?Xb#Nf=4$047Yk7L9 zF&Cs_O1#qw=tXLTF25w~=xOT2dk74(7{*;?g>nf_V21hmBlNJp&5xFQVSXM&rw;RD zeCIPi`V+(aNGd^b-zw;y!~6_a>JgUan$6m1m1=W%X)&L6{M4iB?&=5%)LVSRk5Gb0 z8&5QLRnaioRYQ?7rIW>nw2i!?&Q6jNvfumBQulT-dUtqX2gIygY(>148u3v2t%`cq zl(!6~Fnf~NFnb(G3A6Wcbji)$C+LZpJ@(X%*;Ck*HhU{@dY{AIsk2ztsW_Cx0`(E> z+&^Ej76J2`IIbWj0(U~L-6;E@qTxY?nsFd=ju3Sb$AB-1@;|iHd`ocMEj3|X^>x*@ z^QyVe0eG%^xu^_k=XZlz zv8=+=!}z(Q>FXJOd2b4TZnz6~B+a|f-bE;@kP_<>S%sZpB;9mq+H{a<1aDU1&Tuzw zTJUa)&?5Y8GOM8VZu~=1Kz3H)OL*C9x9+&K84~{7TR@sr&Qbn;w+DyJHECrT}#GR}8 zXcR%?N5xQ_JH&c<9pWbo(M)U*`#3cUZV)STYQkEan$SNs*{HNpnzsfSrgpW7Y!mI{ zr{{5U8o2DBvXumey97B;PWW!2fr=gc-$EmHazgUHIeKj_iaShaQgZHK@pMC|{=Jh+IKGN4AD(WO| z^swxB9HB?Q$blS@z?-*~P=w7<+Hkt;JuQ(Pi@c^%>muruYz&q6~cZ(~COEt4vf zUYoEoRc3CPyvu?d#!|@SOBt5_PrH%HR|0mnOe#7hWYQ*+OC}xPc&|gWzs)6;^$g+^ zm&&KMX12GO^N0O)+Z&BZRB%qyrn$-_SDLk{nMu-{`n$nsQ+2E|Gug(zmPSN(vWtrQ zq`hCFTkz0vS;u^(ox@KQ5)+|dKf)-H5@vc`NSGJVm?eJv4~^N^EogqJB*F^;{tCm) z|7kY@{0+d)7GO@Bq@P23nnjS7+}`}tGGi1y+>0`6=}C#hNE6Q0Vkt_pYyCnK`LQwx z{C+BFB0~TZTEdn;mzHpRbCwFm^rUf3Gfg!cNG|p9!3?UU)JGVqIBx1oIh;4K zXPUy3&_Wj>Aofgug!_4?8qPWwvHtiB<6TGHo+_kU{jF)W5ezkzf`4vO|00rl3N;Ew zQi-EBj>h&UrYJ|F(Mr1_1>SzGk-E7MQeu1hGtelMT_pSksR{ocle)m^CbtzDogjIg z8s#VX5k%;*W<`XX4!;Gn&-h5w{-wFG>q1$ZU1#g;KW6L-OQsNl7v}g>2mw*FkPw6? zyf~vkra;<_)c7@pLSuT968|-o~$emmUwPk2jns5bgKs~n%f`be} z<7SEl>!o9ZCq3Vu5(e&GOA^38Edz+oqRAPd0vrA|xxAzmNc_(< zo$TeM&*5dSmzS)fRZ~;)jiU{aFSW{)(4KO!$tt`vKpAUJa$r~w`Fk3pZ_O!Lw0e_@ za@g72;U%Z&nbr18lP@PkqqVWIDs3sKVby^arRZ#LO6RJTsr>?5OZe`v_&FD_;=dE@ z2bE?-`_ObJ=Uq5UlBlQ-;y_AN2fZ3ya);?P^u(%z*i#n{lg6fWb88d8=wWk1lh! z31F8NIWBWIC|cf?`Gg`y0axZDXcU^Fre*kR_H9X5=9^`(`&u{H<#uI$Q3kbt?*_Gk zuFT@yCEUP8XoLm1%zMO_g@LX$Az^<_ESSf*Bnx1Id3qOqi zC^eS+Q){aA;bFKddoIq&hU>z>-E0uR4K|QcmLpii{?Pb8C)`CLHt?Q{up#_y(xcRR zJ^m}2oVG{#X1wgRM`>N=ZfSAuR6Y+BOgWXdX_J1Xb(>lepy67|5yEMDNN6HwLAq7W zv|s!`ky73-u(cq*I4p=x-*SE%c<^qI7*sFHr0(hK!$K4O5&SSOp3!8yuMinU%K08@ z6ihjnsh2u7Q7+{xh>}?uD+lxbLgNt2p?{7>j(QV%Z6?ATIr8K(VMaOBXDxW)e6?5* z{S?E^|EZZ{FIo=udB8T4>!gy>Rq#*gZNtg?v`~$-rWK9;F(Cc0b<>L$CCWP`hGzxk8 zrclP;1;zzRpH2kqY@t-tNeHD)9G6f!zA09tX9LJ3vcF^83^Tr%$o8&A@A^U_AjI=( zCITt(q}PSSGj~1IHVbl?mO@Z(Wmx(@?M6_y19rBcDmoWb?Kh+E*<4lTVv-(f@Vq)3_H!Hoqt&NW%U8 zDK!eZ--#ldQ^@u5F9yg+KkGB?yDfNLa$fmGnz$x>x5siYSg?Y|*JD-`D8f0V(C7q9 zmQ$nrELn^q`%1G}nPtRx#21)@`WsF8^K#?Xg)%XE&Q>Ys0HcscXh^_7j!%UI5IGA; zKv)}y3LF_-yNhY;&FW%NNv2cWjrzHl8>qk`FPJYVjbTuHL5V$ev7ppt1TrS^q9&iYx$GeBmTG&Em{ zf|WRfI-ja2lZd`-!h}5;;Y{z#7z}w`!j&SC$>~acF$YxPO37KGgfUfWW6w0X#Y->sUvbI6rH zIN2Bf?o^>O*!0NaQ5vM}pfphoYndDvjMSCdUI) zeWT!?bEP|3M2Txq04aj(O7GlwqowHu0%9TO;Rb5NormWujFNKbQHF8=P=*{xN{eRS zLU|9m>IT829F}h#6WJD-zNk@;DmXxtokWDA3h;pK02HW0Ln~jdB`su$ zmU1hzLVM?I{OlYxetpw<|o%1JKt8vZB)($1-k!(nN5BO0XY_kFWnAxuUjFx8u z!eZH4&ISEKi}+^WF!2!y~}XQL0}KT6KaKQ-U$W$=wT4w;qow}*kdExZ73Soly0_bb9(6teKV z=X@4E#fIb3Q!&MjqY~dprdV$^ZypYh&0SvqU{2n=Hw@g(8v#5gZ$2LGq7ZL*&qa6> z{x<1-X$=-XjgYpzuM6<9*WQ=42%_{APceKSJ*HC(>LclISqUilyWwcb@xTqaNbn5h%aATHukKb`$a8su)1OQ}xi?FM-R<$}pi; z!`*t-*5KvxarBBxtIE^25M6g5m&f2a`l zqfS(9I|m1Otz5(+q8lg9OLcs%Uuw6+_!5ic>q=ZdqqDvlVx9Ex4 z1oqU8O;FgBwh1f2pizECV<6PNQ0mk{6-5TJ)f%MNF7O!}x{c%dRAejB+_7a~^j4fW zxgpv#h%4T4Meiu?Pp(Y18WDPqHf`B)>v~){j+@BYtuZ)fdXw<5^$9^sOdNT#*nFiW zts^AGEoosr{c_c|^SU`RgCh-nJxXQ!$l%jvaNOKv^=XyqX^>@)WhrG$VtDWT4{E1%-aJ{zb>3~hB zKap79nTwi5qZyNyLsS^|*l z)^wsq*-N{}VPM=&9#2oqPO_&i?4+@b$zWx0TmWB1@9BV zRinwTSCmqa_j4^7(*hZ(zOC73>3qI~c@Rz`kbO#%y-dw>fz4GfDMV9I_58=wDF5cF z6E-2D-hztff#`A>Z3~}RXW_^ChNfrxhM1}98|vHE_X1oULs0=W#-CfGzO8**td9T_ zKMh3I>%JFIR6p1^JXP6I)fx<+@^1SRE@bB<^vpXR+Gh5;jfrafM&o$+_{}tQ9$PFT z%nV=sp&%*y<3|987cwuNo?XKRy0>b3Di7cz2*8^FE93=s4ntA@Xk%n=ypy1!b`F0{ zRciIU@jKB}JExsPc}K2&|G0a*zW1*9gMbi|LWw^_o!=IJm_RNy$WP8#d=LG&0%iA5 zs=)9K3`02H3;Uui1{LVNX;hP>ew;ySFwaHdza;>i!d992r!COQ`Cp8{pJeDKA(*@f z5co@I+5-Z!!G#E$yx<^A*V7ETa^bgR-$m&kX-XfVCZ@s4pY)L4|5~2jzv>OWPhdL1 zB1=%R7u;$P!=}G>1Soch?^sOEK+*(Fd*wcXvuU55o)TW20CmZeI zos}l;mPz<$(R8yhU2V2!SMTiQJPv+18%kL*V=)vsUa5+?KHXK2?E1IyK7aRbAkj+kDpIXmdCsBKU56g ztb0&56)lL29y-AuCfstxfhSxkzW)*8&IhiC@P=>)hKWkJjTt#j(M{Q`CLe&`inu3+ z!D-zzz5)a6b=+;Qq9+v;U#|QR`c1{$wy=wMJN_^}hUsNHWTd=8N}ej1eO_5Hc~SJQgV%gwr|gU z7QB6X?k@sSi`pl}Xr#fnbfh6_vW>$ZtQOX^a2p5eCa=@+3)MmAAYr=Ya~z@AD($!NMr)>H_ayzjBq75|WKE;^ z7y@G_k&jBq6GuZYM>~GCHY_n=l-Og#68~G{zAA{j=YE)#Xq0Ee(gk7Q?vhynTqo-e zWm8FxLHwmhurb_8p`uydw>JOw@}Be@UIOcSDkDOY*Ji9r-zJNqoV?bZ#XrG(>9wzM zqDN1O)cz<2k#aK(A(t6_>#`IzFO0e*L~mXzUkNf(n}TrK_QU99b9NsAhIcrhnX{uh#M$6$K%XFWz}%T zb4HyFMifRp<2vKWe19#s?yas{eedl~@^avu{M>i@R@GmBRsH|>*YcMcOuRzX;$XrR z>21@d1VaRvkOBdi;F&~$2}|6An@}W&61(Y%K?(NM4V3V?Nev}dP+v&2BD_YL$T+-F^Yy z!=oFbg}Vc{m})I}hTb8i!f5|N>4V4p$|s*JP=a$Gqil2&o@gD|m|4I^+=&u;Z6ma6 z2HNDuJ<=bcmeSIuADKu}Y!AaC|~EgVAtkE5IiOR)A?FTi1W%eXRP!zX?X< z_|!(5(LNk@!v+HXsS@}BUirtPi5<=C$A1^i$+U!emR6Gmw`J z#8{Rl--M*emnKP#BwG8O#yD(W`=$3mDTF30y%=l1Z>J25YriYCtiz)}nSf7Y?1ys* zx(OBmuSe1z2smo(*B5Mf?bj~XRBOMND@hyIe&5$ad2dNC@4?>4JNDYI-vFVtUtRvn z_}kZhCs~CU>~jA6=sb6P2Wio#V(pi7u?Dx= z?BPY`x3S(|&-ki7GvG9KI8KEocqtZDBeOkMZekId0w!P!R0*&AfK(|{tDe+v?@30V z-u<#@VAS*!k>1v^2-ygbA_apvU!F;dIp4EUBnK*+=!pRp_S6MXQQV}S^L=x@THfx| zg7a|gNJU#mPIwNet$;|d(s|xjKaS9r_rW{|l+}7+=XKg4Erq55%`?ALj18?zGezfs zuJ8*O)dv{bn$2_$$nX(&@n^O7*}&@gwY~^UP{5ADl=$3hD4VY4e~p<1Y|CXRq1U!W zpQ>$_A)f)h8)df{7L#11Rf#k3pfTCLB`G@e$1S2Uj3z~!1&({LM@;m@{ajg%PYY(G zuc?hbqt!SJhY`enzY_Zao(ukJBAJT0;4e|4*XLaD52)(qx#0a)Q6`(Jd=7cpz>Q_9 z@~23ee5#TZN}{>orx=IrbHVh!tGVFcQwGMl;6G|vhsS?10soe2-#bpujkvH~4 zz)^F-zF@<1!FIW(nhTzXiU>&?=Yr?c?>$=FI2L)O?9hvQBk$OA!F~gT=7M$kD z3x3ktX@gyk92Rk{$Uk)Go%E@g3npD`LzncamLqvLlxW<0C>!00npXOBa&*2|}yKj#~68<&LEz`5& z^bsqk5i`$!i$rmD-G0lSxp~*E$XxBZ9k;n!5f}L3*bnry3J~5Ym@GB)XUSm}|bfgAzg4p!I(1x1K$vz&*0D zF}=()Nin^A)J+om%%CTReb`eM*hg`bdU|;|Q}}fRRvaEFl?^u^Xj97xPeW68_cM>i zLHkA_4hpc{Y5iN@)ETPv!JP13imsIm2fam0p^XPK4x(b>;-E!-0p4hDWep4Ug@=Yz zllp6=mCo_2nj8};F}a&48yyoR+SqK&EMSN;D52MeSU+eR8Uw-@J1Do!80+$s2D#Iq zf@Wuv*-~6k>kC8!#4yV5uQ}xsVwCP;Mi`op0?Naf@;yHpXFF`^AR=2SJdESGScj{X z3b<{TzJ%EoN;4z3uH>+xXjdp1zX50vQ4Q*uMKH`eaS@R0NQaUI)oCk2W{FJciIj+& z(yhMCHPsP-ie!X^DV0qGQ_3?*VM=$SNIs2lGd(d=%AUG0r9L;QP3ejJI+JXvV2LJ@ z@Q5$F(*QX}o6h?Vh3Om~fx}X105zz%zuK+_#d#;|sUMqDDdB(yPY4}=@FDk$-Ya{5 z=ZS;QX(_Z`Z#I}zOk9Jx&o96`4BA$+nUno7AhlfJjZ!+_@ave|QY!hlU#D!irBstl zY}%b>y_dMx;t-*KA}t~?$TL<}+&#!5Dl*9TkTgzYkRMx%h=>frGY@UF_alR_Dk^FI z!k&LX5hn@^!b(XS7lgB~Fh|tsUfL63Y*Cfe{W$8^Yq%1rbolc7)ZGT866neTq`1@Y zodhDXH=;&&i57_gL{|8Rax3bVz-FbitqJG6kQu5FTgvDdV&Tij*A{) z5@XmtQEG3%mqv2Xp(N?%C>z~9Hv|U>Y(+Qx8eF{aLxqU7djD_5`%WwG5sMfNB#N_$ zakD*h^CE`GTrFaB2p!V07m{chgO{xkLKL{5WsDIf1Z`*qOkDdihOw0IOJRyl;h z(XvdXIqcL*`E0dP-o>M+Ez2xjx^+kU$-9|t%_E1M;TJVNekJ<1d3@OSdcWeQJrpYk ziJFB$mK*%3hQ%Qa8ZBlf!r)EL-2;V*H(Px>^AWBikthyOm}Ae}3=~A>v4O$@dm)K{ z0xw(HZW~Z|4c!ewP`gcLwT}+bVCv-KwBR>#M1)_e!LZt1GjrRljM+Bl*)un{jmSK9 z+ibBHlBjKX*(uv*9BC=h8tSI+BbF|eZ9tDo^4siun}svXC9fL$2vH zbHnoNlhoh-Z8-j&Ql9RgNslszMP=Z=gqOVrvB!6?K4KN{K1iz#yBe&BgsdlY$TqM+ zM^+U`^<`l_Vj$J!LpcUfb1bkf!A)f`X_=4i7vNX=(qT#2!xE-az2$TE-V*Rl0+{h< zq7hNEheZ0A({EA`z>GYT6qxawD3W8wZ_yLOjO?i!%;QPZ*+=3=KA~W{SyVgsrRRJwH;Md6>wldms{U0=q4_H2i7F~4?nKpozktyk*h_D; z_A`+)+CSl&Xxo2K`rvnd<&)1#DZ#nFrEK(hsYKgGjF|;&#4FrCis3!z|fX_g_C6PqM8ORls==FI9@&c+lS6upCXct;Vne2$(`N+!#Vk}4W z-ixHk&p?tINpuGC9L8b$8Ay5`9HOCR`Z)3MwowLL!rEefUCTObYm*7M%GeL*5Iovt z5%6_L+5-Wz$`Op!E}8QM8$JVRmuspskasFc8_z&~qKERnBfY#I=#9K%pMmrnAan*& zm%lRp_A`(htU?TSIp3w3=bqI;TJ)(n14+8rh9&7!aRzc(j9kSTNNIrN-)Vy+Z>>cW*0?nl~qc&7owRO%%x&m@X6lPoHpv5YPpDlLkV zG5dq*Rs8|288iuJ;y3+`$B}0qdS|j>B`A6W~MZc`%5%hubnI{pqW{c z+|zn1D%dtT7a?8gZp9pmP}0ojk}^aO{k73o%`>SpJwVijdF-@rv)DV?vKNSfR?AkC7<`5I&# zwmV<+K4@tZJ6|8642;g#$F!`&COMgaZ)fa>a|kLCi}SS)NqZpRDCf%;Y}om-%Qcnr z^{A4x(fRsv59R$xdU=1VH}a0{eEAI!a=vu=D^Or}z6Pv940gGI^Ofx&t$_1Iy4VIe z1J2j^F>)2omoz|TKT79XIA0Pkm=kq&zWxvVap&vL^u(Mm_H^i+uj88|h|y{|co<*+n{5-bW97ja7M#yiCLLtQ7VN=Vbr>h#bLH&T9kc

Ft_q+gRVKhX0J-2>J(7H&o>$~9D*=)vaL?_Fnb)7etRW_jo&sc-~KYD5Ay17PbZ^CJONhtE0ffSP_g(8BF430BiHpuy$->){+=i)q&mrpf=Tw>i6-o*G6@|$tEgw#wWDbpxSNLwQUqjGplW3 z)s#TM-pWeCQawZUMHJl__V(OMnX`v$IfPc@LE9=ge}R)yxf+FYb1HNMq=0ZUv?+B* zi3MrP>?oDXB5qp|LE@x3>RpCvOm4FGF7y7>r$wVf9veh@+c+SbFD$ndA1pV|B!%U^ z5=C;$eHA@1%gvs;vD`j4sV(;@qW=s!PN7l6g;ztx_8qFe@lJMYM|;+h_FF6uTW)J! zW*kXDwxQ`aM%l_)CSJI&ZTd;|v>n!-X1ADiKdpDq!JpEQ_6h9ftw>}WltCBsX7+8+ZfxF-FHG^{<=6>D)# z`U`1Tdp>Rkvpxu?D}o;?b|*AgMnoNgd$byt8lPZ4ys}VnKN( zC5peGJh4*9)oQt2yeZZBxXhSUBfG||V*9(ttQvFmm=E9p;K;6i@%fmmS%UD2?l={JHpg-&hr<%3VQ>a^vYUp}NnTt#wbfK)D=w+021uf$|I_O};=$gEq7RJUt}5 z7J))-pXkX39^LCEk>UyC(BgN{2NznUqot5nF`Q^9LjP23L!?d=b0w@VMy_HdOpYAc zpQCkj05wa+WKPt1C9DDdIAU(n6GP1GsSCs`aAw+Vhzo^ME>%XF4GT^_JI>Q++`s{3-Tr5DBm6?HFK9ya5tkA3(z2NW9+I<8eHNr9Q zbkBf+!>UE1UoALuFtY&em34z9y+t&FaZW1@?wt!}qg9)3Z^h=yQLM-yqoYNY4*V9% zQxXYJAl@aE=x{*1n~2d!#Cxu_?#U4EM&xBv`xeA|5t1fHyfj1;BHptMJVqnl)%ZH$ zu)^M7LlOE26o{8PQB1_UFh;Hd@yd~72Cq6RVxCy4By*z9i1#+|#}ThbPYm(0r$dK$ zPZf$77r6lPBAPb8ncKF)yD<&;)${KH2jj*t5&U~&Dc|UissJGIg@DBE>#D~@q>#`! z@^^)jA42m*_jx-?e!x%b-9Oq;a(gT3fSJ}?Nv!G7^4IRnk8y?;Nk1i zL~<1HbulG69N_EO#AqaZJ;z%2WbkzZ^0Mh+3w(Vyk|u|*G=>wx*E0<~M#I-L@O8ow zHqTvYC_*2M0=`lwiV0s&ijk{;uX5y=k*Lm!fUi$nS$NB3K8!+F(SjvrRRXkk$O7!mFP_dqsD0J6^rt zPwRbZl;Ty{GA6J}(o7FlANMPt0IYrmiEK(T2v)zyz72xa4Q*gmya8C<5CE$`NWzbNH4kbDQ%{Pa zOcX|ybq47AlxUouVbs}RK3cixwn$*q!$6flRx?G_4m?0TIgtHPXagW*wPd1H@48QT67ixH95~fr0a}`RIc+0F8J^czf=hH(`b+&H%ayt+~=nq zeftVT+!WJ#SUCbB#+My>)` z%8_FRi8?C+SxS{;PShD$?g4)sS?;ALhAi3Bp+lA{f+#K4!u^Iclb=j$sqDjOGZDx% zhEU0B`O|UeO-8sm*IZwYS>}3CKPw3OAX+ZEyW1y0@AcCjiW{-*N4+!&wjcMRHG7h2 zdNBGmzxoNl=$DYlrZ9tG^b73UAQ;`$21dmjfYD6>F#22?)}HE$wYXsPfKs9fS*9r)1GL`QeK-K$3+q#M-JEl?~t)oQc4m@aGoJfoUw4OwX4hPV>o*0b;tsAX%PX=1g zLS8lm#_vY*ohpFtd2=+ABp)bG@m7bOG%3Ai7m>EOrh!|FD)K zJPlmDy6sHm#V|WmjBQ9tAV~q|@AV59^{uR3GT#?&M-G4IdirbS&wSIbstJ^L@MrwA z?i2K=&tE6Hv`fi6keNcI?k7<~uR*0YDXGbhgUKJG+_n??x;!O_>@=uw@Rfy*m*OJu zD1>MPkKrhHXRgcSoApL@xb%K@y>dn{jElN*4R+1AQz_83k6i!dYYtNs6ao*Ic?~(T zH*}qk>OLp|ha&|L)h`o>Ce!zc`UeiWocphdj7J`!hW; zgT|h^FldUK)G>CBM`Jb}+mVT6@pE~0k>-n!cH45^`taTmpS|U4aeHW{I^a6_23>r= zy;MLTr%W!hz2xl3R4bW{i|f=gQ5m87E4~q#5O|M(=<-k1pN{!x*cgO+gCX-1`!C3ij6fXyvZ7t-L{%eqAytlL=1yCq!Yp`8617DrphIzj za3A95p&IHmU)UzQ5yYb2WZXhqs1D~!m6m%vcvt>_`#~%(v)>ztL+dnJ?pu(pHx&u$ zBTl|FSjxBddXo`$Vz^ppmYtS+10|Rw<50AU+x%Dy^W0OB*5;-N3-3+^4^TZu;RXy& zAF}JU!O_B}icZ1}&Bavp>7hZ_@<)g?Fk1LjoZwB%sTxB#Y#pAC7x;p{j zYytjhYFa2;nSs>pN;Z_Jv*+M|0j_8V>4_;?_SA)<6>2MOXod{J#8xmo+g%1fdf91- zoCT3zq?+|^KWLiB=et}T8X^_+PX2!$aMWkClV6}=A}KHyn_7AWN}*5m^A$4@@^7Un zZV>%YcB3RJ{aQcmC={d?L^Ke-J1_+uc)O(7F{t+^{Q4TTsyUeT9Z1w1D5@|H)}Y=G z*^4j-vgSpE6+lpHNau;-ntzzF6K-Yw+i+L{)ynSe#2qtpsxWsuUiMlO&j~5oe%Wog zD*g@%Y*WR4SC_i@7-JRzWh^TLq3oi1MJeMj%0KQswNe97tZ`vGMsg-s2egvx34?9> zL=C*BMVaP-7iPDKR1zXF;KzDS5hRa;*{dN;*ne^#bxLk zN7yiyH=$l_*79&QmwB_<{cL6CgJ$6<4Aq=^y#?Iijc-&NxpM3LG2RsUjZ?s%O)77! z*OzbBYPiKQEAraxO_OgZyliW;H>vJ48nAKomN&Cd%{LpRa=jm6-zyDxz(7rxarfhn z7WX{734FhNYjg3a&EDi8r{Z7^ty)7)lW86iD;2{d_+u(BFpE;Q;?F7K&t|QRzos{; z`RqV0zm3&M&H;=z@$_{&z-BD^3`Gh7MCln_Vlymhudoiu%j8tolY}wiFKz2uXQ;NB=|L1sb zrn9pIkztEyvo1dx?~N}w1I;1i*C%uczQDY|Fy2gt?DG!s-P+^zvDijgr;@LdJJ<3i zHyeY?S1!l2Udwx9_{XeMt5s{+Vy;psJ2i-#SVed9juOWbR4(ILE-i1q_KTKkS#bP z=q4zp!~{EmPpgtdN(FROXRx#rfX?g7H5=8edgUEaLf@KRK%l&=-~S+3_M(KYSF7a8 z)O1I&H>_t<^Q%`Qb*EXVW_J!#f12U!9I4iwY%nG3CHY2nd#PUH{qv}7p;V_p%BToU z{vzQ-IW929rlB%*j085w@Y{6pS$42gM&&T_=h71jsXI0DQqjUJEHj#XYAv_J{}Www zCJiq1oXQY7V!1S2YP2qxvDoVyaYnKbii07U=RJ|$4B+C+ER78B4aG)dq`qp!3cRlO zkL+p`tCfDtH?3%SbLdOP0KUvNoMALi1I;lB@0Tw;^)$${uQr(1vZpsH`$aN)j8vS= zLsL7o{*u!eWMyFVuP8Q#%P4GeBR7Cigb2m0^Cx-p(IiW~_!#NDJZB2~pIs|nz`%*Vh;SE;rV!jl$i*T zdTVn8Mf8EYMyUb$b3L#Zy{DQlRR+-qq+*yws-oT;(7r1TQ|B#Lb9^+8V=4)KW_Z9U zU>`5Em&r65?3b} zzvzmkN}+_o(a3T?oOPU;U;-~Tm{Aw)_ z6S<4Xy+p`mXMXd6vk2 zB2R7yd4|aSJ3t;HviH6Rxe`7DvYA@a6sLCzpD^E!}Yh}=kI50M2Q09it0 z{q-Q{68SliUlFLGed;c4W_M|mkV`v>*vbxDa&u|Qjm^t3m(L}?u<1Tsr1rsqqr1f-RqX!sj4 z)$%*8y@GG}cQA&~`NIR%vTqjHr?a(}{@0U3IZl?PvP82&`2%&;8U*v^=y{1>fOG*Q z^3^86gcg=U6=rXF6E}$WcR-cyZe0YUh)c_0UZGs;Fax|mA5Vl{PxW6jO+K|$$(Nf2 UvK&KX{ihTN@(6Um9nk*&2Wq2xegFUf diff --git a/docs/_build/doctrees/_autosummary/engforge.component_collections.ComponentIter.doctree b/docs/_build/doctrees/_autosummary/engforge.component_collections.ComponentIter.doctree deleted file mode 100644 index 05bd2cc300dcb090eebccd5b1c42cbe90ae94d12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447529 zcmdp<37jNlefO7T&tbV?K~|tRWM^^q;!qqpgk4u*6_7(w7J7TSYo@!mr@QH6cZUE1 zBA4ww8Z;(GjYJJ9MnlxZye9F!Lp%}jjENeLH)_IbJl@~`IqG@p=%?zb>fY@hKOfne zr|bV5|Ks}{_0&_hE`8miMF%XR|8);-HA>~$-VOO;u~sj-t@-YXV!hCrb!+YU*UqoI zZT{x@@$SlIeow33X%^i1?jqb#D3zpVOKZaxnS62EZO&6h z$Y;q_?p~^3l=vcp_)F(`ib_Y;C-<)7W@f8*QDQ`I{=GD(}iE}cIQd< zV#q#Ixc%$WyS;RjjUF?6PTrWCq`-i4)@Gdgbd2W({py762QU{}$xOn+Rg$o@w0p46 zN2EdnsYCu7DS=X9a+|@Je>+>Z&YNO1nsJvr2EJDk7HG@Ca5zcqP0Pz^IlH z&RSK^uyEY`&?O?CgLEA2239O4*-Q|BMOTNQY?^?Lt_oF&* zMRmGfbq+XBx(lvU#(w^VN>)Z<jR;SUZH`}=u`kD3(ojUb~_mFdboL8wg5PDnaAPuR)K!54!%j=}6 z&tKh@f2y{8w|84g?+UAt0FB?IRZinj8Qq&oOz@@Wai2wULc6z_Wo9_ zIKy0!jcr8viOplavHOHs#AG=~!JhMoj6Xqp7Jn~>V~b8zb`J0zKCZ_wW5e#UyQhG` z{e1UOd6~=C3MC(|;|6;xF^FyFF-~vKch}}->%~shZF!^3=#ChpVn~&X^Q9ZQ%W#EG zdA|F!)WcO8K~ydyGkNXh!yZk4=jLgciXl3>*7@!jb+GlR3g!~?zJ9g4jJIIEdx9KG zL=Q{R1U}*_E$gnB?o_M1i@2dXmTT7wWR7-gzEYw}-EikTCKHq@?jbgADIL#kf;vBg zf&@OlsJn`FL4|s)O_LA>a5Yg{Nrs+j<{KsL=kDf<@|bQ+I+GaTuxd^2yd_+JZO*h) zME2_Lav`cZo=PX+@l>&fTPtGJl-mn)=_Q|TStRong^)BF5X)pfiveapcl z-9e~euI3h2?mYp#W6lohKuia6b6yrr^_UqbEHa(gI{n?E4+sS26<19bPA3RMA| zTirc8tU%S_1}myjJh0NBJZZ>7qL*`@@m#lEsu!IZw?^|MIP=sT+_2qjIavF07{wfq zhvZt^)1bmMqDseKv@)NF)-RCI3EL0!MJr7>nw_a;SzlG@F6RwvN%!&oR#o`6RTaKP zcPmPu_nbgg4rRUOVeR}>2eD6ceXMS{dQIYnFH6|{-NSZV^GBO+{-ZN)mj5!`{xn!< z_Z8{aCbBQdO>W-&l*x0oMZNQ}NQY&u?rLpNr~N$NJzV=M2QB%QSg$D^yJ*oE{)aW* z+;rKk7F%Oum+f|&dz$E=fkLniY(?i)o}P26^_dx3Hjy_LO8MH1n*%>{_$gQ2U8SrF zCAYAPfRbxf>+KwMl4D~{7qf;|891GD*bOb=*>n&0bmHzVcW%PT*NRTl#R6Ong%gZ% zi^H=iR9mb#79U=PQKm?jOwJ)Av?St(YJSSCdOuOuP_CkW;(`i9lUdMBICUtZ3Fdiv z5O+D#of=!m&SMxe$HG*JQC@6?+N&sE9rn`Eb)mzdhN-1vmPcN6JKmje=Gg{m67?0C zDq)Y}Y~G;6%e7WJ zrz-CKpem+*?9r-59a(f5MZiwhf?S5@fYmC{5Z7>mLes@PEjYvUTIPrDUbqqSOX{5Q zThl8)*Q!@xE}0=WfvQv@ZAr7T!m&0<-9GfV2ZIJpALOK}*gm#{+nRU7u=o{T2#`lg zL$;imYJCbr9n~VL40Gcg^IMmB3rpbbZ*``4FCyE=+?J#ob8xZRba@6A&9$%^%_5;O zr?*y&h{UAdVRxbMLbD^n8GOh)1&o9+IOZd!3F^YcdJ$^gm?LOlDAk-pnBa1ff|=ji z$`xI=F^OjYZOmL~wbGwns_$`T^EI%ChGH$`>Nbc-l7xLE95u>2bJMO{Y?ly> zGo>8MXRrK;bFEx!blPYgO4u971CJ2UD)`=3DUxG%r_SdhFQ0m+jbh2}FlDW+HH<<& zNu4eW=9RW_TfB^zS7oWwwm?=#atJOhF72T=M%-Glqs8dCHo8~ESY(BjZ z*`fzU$69s4+9Ivk&(e}k&BZhaw4|!zNf936$uRZqVRaJsvFPOY@jyjhaD4hM`JM2sbNG4{h@>jDz*kRLR8#Q zZaefqlOE^go#}kJ>a_CHuCpgUhbEyTtpnCV11N%;o2OtBzo1sle4(AggVGkNMtwK5 z!3cj9b;I6938&LS6TC4F>WKMWzKDwP z7QywZo!J_KVQdV`SUKL4ikJgw@x!xRJ~dR_B~6Jgmxs+1R$z)WNo1WT2BBq)l&Bkn z*_-7&N}H+YBoR1xI~ejqoyh+}IRn6;Uzufwe2yW6VGfvdn>EniFYR;~6ayG0u5oN) z2*O;AXpAQ}yD z?{o4~h)$Y2&LA?_PzBcox`gBLNfd&Z(~=Dn$)@~IIc}|?$HD{)?usI*FKXdwE)?Bq zKr`%;7Et+Bu?)wf3=o3V>Xlb*eGUe}H12o-)(%Jqd#I+ZcF`LhlUHCh6n%-b7Q9Og z!;ll)%Nqd78(>a#gG?kGqH9(jqG=md(MOLG2GqIkDU}N)rbwT>!uFaF-6oL(Nv94l9i}n&sU@#oc+hHf9y;wDzhP85?7&B=fSu z*!m}1PNgCGhI7dd8)?)|qpI^Koh#gF3Ti-xqRShAW2~6Zktwu7c<5Palur^xz(pFu zcL%MiV@k<;%rPt&W3ioe1Za#1e5xU9TmgGv;7!yolxGRzLKvKBU`o|MD#Eq~mtmR0 zMcfAJUaeCIkc;vw8o!Q>U5>3IK%;s}oyUj^MPvR%`ldxIIn&{|K~T#I;U_Llk;4|v zph(tMHDn~+g3)3YgUSl(=4hy!!;GiaF0(Oi4b200aXSEsQYj8at#+65+^XoR_>a}{ zR1-av7>kK4C+U7UAoJ3^w!!772v$!j71Jp`lw(<{p`7@WdN8U7Lj79A|J+2=El%LV ztxe3i)Pqe-;pybWEP9YyJ3mpF%hx6l5N-E5w6UeSU^EEb1{&@eB&C&=e2k%M*f)id zq&8>8Xcv_XL^+1=@CrHmr7)MHcMKd@L=qzNSP;_KFgAv~T9{0AYPnrlbDlvKZmoqK zEHrVzR+K^;8l%A`ttbgM1_IE2E~t`tmnYJBZ>xUfnczp7*Q;sX*w}LjmyBxklTIco zkWD@yrKWvjW7}CZiF>HybhAFo)^AaJGA*CVL89q0bg~&b@FQ`+yoKe;XNz1hVsh95 z0WmTWQ=;O8gDC{fJ$U~{<9s=bWWx`sUMdabMf<7Gf(cky+J!vHut#xu^baXSJ!i6( z#$rqHnj+{ZJ%@PfQJCVF0T^U*&Lp9S5za<4#&KdTx0ylF%%St;lhx5V|H-vMcUt^ru%Rz68(K z0r;qu-AK|rBRCwc`Qi$9Ap;gv)zCOhwlziS(HXDaTjfU7tSFhS23x9jGy3n2qtZ8DcDM$U_G;QfY^C$rm zVwvJhVG;rm!t?pe4m|}}h+M&J)=9I;9*?b*T48+|iWUnBG%Mx~$E>fC$%bl3gTZ92 zQ0>sOLvq715aeYbXpb&dv7Y@wgFN(V@LblNv6vcgpX;Lk9T1@9o09A!^2jf!J=j}*)Tyg&n5 zs7BTTlMg;D(29gccrBF2Vo;iArD9qNl2Z=qM>bYafd+3H8)Mbcx-y!&VIA1JOYafb zZ#}{cztvi0G&G$*^0l{worzeelWUw~V^^~kNJJ1{5EcD~$6)e4w?2h)Ts%M(x><_VD){5@UPR`J-h2 z!{71BE0G)Di?IxQG0+14CL2-V`C%-4Jy$pkJwIoN~O5|fj`M5ao{pxXYQB+)RZ!lM%KhYk-$GOaO zdC?Zr9;J{G%-bZ^QkH8fr{W*rZyf*l?KK{2!|Od7g&+Moc2o*y5J{)IsLmle$yCtk zh;T+4rMe{E7fRj3wAS0B43v63L^D(B0xL>ID21Fw>>V3YTD>$z#Tu>NL3ZV|x}7eQ z)9S^nkT_3|84q|hSyTC&1eF$`82!Qqcuz)7CW{z=cMe1| z1MfmR;6-S71cUEIq^=V%jCp6i4_t@yyPR37bK{(7@6>*2OX=$P^`*_ zm~6Xd%3$^75gDy}$PS@sm8po@lI3<+*85`x#-+>{0v47}FS{_RA2>9JO1sMXk`x@W<^x$LLv$+aHo~ zdE9=KE|bUYM_3{Ki`!o&sI-V%Ui6^j_Htj`ipQKOVpT{+#^;esqT*AgB0dkI_!K#4 zF?lS>!B*L0@@V9ga^QP1L^H?aIo2^LwK4p0czBF%wKzPB49es15V}krhX=7j;^MG- ziBOw(PR}OyR*&TQUJQC}DX01U%u>zuw~FRRyY^_!^)F0g%0Y8&T5*j(>PPxEJ4JN!y^*UK_SsNxnKL371?z@#{WO^@YH%*QGJTp!u~U z#4qaF*oMNC=k&Wz_{CR%v?)X*)RKOT4TQ^`^2!Smt~b+5S^B zbRm%KM`?^UXtHTfVMKQ?HdSVUo1R4^-ws_G#W$G>z8xj`re~!g?kLKjFO$*3kyA>< zodD6yh_ieO6Jewg7?B+uqhyV8o5-@9a$|IvoN~)qA+eNO>rswy=4~Oy4q1gaIygbn zEb;w{TF(#_UkKDXFO3lfO)YJGTLc8XwxVrgPdO?JD$03>-P|r*?g$$`?_-B$Ih*7jgsIQTAIicQ1m&pnB9#%*kp}Lb|KOeng zX?ZM^9Cl^NLXE`!T{LeYu#kJm2woO#`C_6KGI?AFd!gHSI-R87;0scWe7aE8LSW=MY0SRw87W>nhV!&iGE&PSl9AVw zB0{4;nW{5V%SmHo!RQn=1HhfgDJ3IkA-bO!scU8U$9_9vbgVJ*#bj8{$QROOaz;L% z6%xnD%8zK6!e^)b8N!(>#>qX+0RIgj4S z3W?)UcU|Jsc;(>BLPCwAz9%Zb5GeKSG=|u>l)}Mc^33EEl+vUlDYbNY6s2UUq?DG6 zMyWB9?aSN}WbV<&;`Pm&qyhyJVC)g}ObckM9$c zr$BiJJ+gDZC7%-AtH|^eQQ?I^rZdwhf6!#o_fUk-Ww*vtIEzR|y^vH98cE4iFbaDp z!dYpcy58s)Hp8iFkyA=gl^~iKRJMC4BGfYcw0c2|k~Lc0NS5Wax{5B7)9QJwkhn3` zH5+mI5_y-lWkQ}dCXef9C!5hZfBpU106suVU$$mno5MF**f&a$fMe+BH0a5lv{Q2j z|3cS}$sIfK%Z{BpNNxVzf_?mb0tWAKgyru2qc|<_?-f2FI|S_`mq#sv{uXil zEt*_J`dbun^jP;$nliE%Iwt8Jaf|O9viqnMz7B98ZqdqrW1xKh(L6eM;y(uWdgieH z9P}494Da{-1w=LU#C{B}$01~_aS9)J%bQ2uYa(jaJ-(Owt|#~Pf14F~(nnY;WG?pI ztviOokJZ2;=tt&$cDN7ix(iCS=A^m7*$?f~HWKvswu$ZFqDMB71B^#WC7}U^Oa;k~ z?e)bKE!Mv)^eS27k5oO@;|?2qjD>+;K4GN)1fp7`r#o!Waw9w?|?WtqnAO zN7m)I`x;#)A834;6%sel!2TwtN6d<}otjaf?vZn&dB$5hjY^{AgQ z(H7HioLV7XYvyJcG{>rHftiPecHXY|E>b#>h4YCd*(Op-h-5MqBzuA&SvWrpWoH}R z#0F(&ASaW741<;nAetFv+wAs4^|ILruxvw&rd2>!o=4{8EPFCtCTH0=Dn~^*aI-yFEt78pYmDhUFA{FP zcy^SZXS_C=Uu-t|g$>L$ASaVW3{%agLo_qYEFaB97-{M1r|4FtbHOaPU9($c=%t9d9i_#co&?M82(BeVD9>=|9o7r6$@o&1c^y8nY0H_MS9`88p#C>t>uES%zkM4v{STGASa&GMTEao9Q`e zPVo(+Q`ms)tH>!O$i5HJ%pgm(ZsyYpF<`h46Mr~H#~Q_cO@`$Z`yyQ?r`YFMA+Z!& z%R5Or3l)cG(PtkW;pzU9wIsU|->+8smyYp@F9c#O7Hu(w2$@ej$K*yBG_fwxo@18V z_`Gn{dep_mBH1)fO%Ab1rh-i?3QaDq0cpL_<~Be&9XXk_ZI~%O6{4AebhhO~Nui42 zr_gCJiq$A|FFet?e4V=9+y!v)56a>z_V~aqKI&d>wK}fk)c|rb3_s0o zjM1t_vp*$Ma+>X-%j7g`vqEBNcAEHNHMoTDpV#*|Y=bwEjZjvt&p6X~rN%qSFX`=y zJMR|NUI^TIR~i!xnme~>+-bYbS#(UfnwxLBIL(g+$@o%vzB$J(U27=CWf)1UFOix; z#FD8X*2zUTE@KU6Uom=+4bC1$PAPHrZHQ*Z*=3eEi&fI_v+fHqD%V)|f630Ab)Tin zwcfc1cPSXrHXas>1qBl zzb(@|!AN$UN+t}kOQwQdV?{3mjZy22mbYQlX~-!hqt1kAW=1{Lj!{Y(!_T6VV^piL z=$T|s&Y~0PGC7N$$O?&N(Oe!=$6DLn+r}DJEkA=vBAXoUDdSWuoQ#E$*j&9s<1lf& zGScW9zxmn>zJF1h!|qosdSUqs?8(o0 zL%ID}14YcMg>n}HF|SDDD1#=Znw7fECcZylx0ja5L~?R3H8#XanM$)#CaWRxW}~TX z5P2hVN{Pt3AetGGcC%8hhvBE=?ij6VbbJGulGCw8m&xhaV1>le@mMh{1^#FXnx~hS zxE{&p;9b3MP;7apsMjbZq{wJ(3ja##xEVoo6nH~LcEcw z@Q6bLb8cGiO4Bs@U4Sr=HNTiYGx!9G5r1hu`z1ZV(#f=OCEDa(`E9QJAxGw7jxa*RV8{Z zR%qit{4qa{y>Oe;`GU*7^tThEfthk`X2Uk-*gKuA_1aoIY{N6QJ$SH-M{tmza5^p5 z*_kgEbJJzFT5RpaG^o{f^F==Qp%X+-j44QS;O(NN(t#^~gOgj<-8O&o{CH_;_po4< z2C=QhiEZ^61Rd8tvz;nen?6O++8vgQ!c7AxZont1BSnwfg8UBafhnG(Hh zGhLqPG}(g-+W|?>d?Lwr7AYk}KA8&gJ)viQ8vUMTbQ2r;Jq0&DE1Uw@~(;5MNL5~3Otk7+?^LUuYcW0HS`2|kwtmleutKim(w4oGdAJeQE`${)C zWp{l2=5-Dp1j_P?^*wl02w9|Uns6?y*W3vQmD-lCV!kYItk>|IQL7!zsQtB)^Th?& zGSxe{!Wp6mJ)_k-Or>$`LH7<9dE;Svl5M#}Ng|QVznhvGV!liT^OumQhWD2n?QDbh zdy!L0y#FyoGvj@;)!>$?VfaaYXN*!clE0HI$w~eax=c>;TUjBoByag2N=|hMt?d%n z4gaMV0A}jVIkp!AIK}=;r##!J1KTx>faeBXx3-2SF=TL z4B)yzmjFHQGpdrc`=x9}!w(6CE(97rl*Ty*O~cDI8a6uoGu*bLW4@S>Z?~JRNH#u7 z4G*zVrh<(JX*p^+<(zC<}tkOLaqg#!XzaxWkQhtpt zlaunxtdKZTCSRo+JH+e|RB5qF$BQ0x99|KKL;e8CdUQgL!$l(_@pLph9Ema&k+_OS zBF{n##f>D`bIrmg6enUdZ%t9D3 zT$9EygC^CBG*aO;pKA5WtF}G|Psgpdd(g9ST|AOlw~z`#V+WZEVjULDMx)kCjJ{w) zty_^($^pd7A)1+5=UGzAuh|h8McfplV2xaFCaZFC&Cz9Ya_we?#FFcz7r1yTfH~71 znnJbOMcNBWyFX}244Q4WC8-kJsmSzRQQ3t+rU%j}e$Zr6htkMZO|1H3DqM5%jUnry z6kiwBa){*9!=#81pJXcdbYw(bG(>&P=oB`H`Z97#iKy>FG&7>?4yB3G%J7e`z7(Tl zjZ(iP!*WV}o-UJ9>NBj6SW2CU$HZ(2pWc_2>ZD^Kgu_cl#ong~b>N}Aq6>jgi$q&Y zAwlL6vplZ!K@&jaE-KI*1Le#*vfBG=^#5 z*$~Z4E4zc5due9)iFIm>o;6}Ui;T;ObrM}BC)Nq9kXT~9S$n!i&mL)ZSjK8LKAbAw zc&0(to>I9`V(ZwxXOd2xeLDynbc;otAB4jNXjz**C2Z{~H`u$0egXDgBO9;r^>RF( z?9_^GvsI{Lk$k+-Ebpe%b9U#k*<-5eu9L(Z`g$s2zd#sjArSkjG)^~YVn>WAwH-xv zuf=#2Q8`4C`bJVjh}1IGH>OlMX_S7k(J5>weG_s@N$Gnanwiom$CR2@hM&-TV|1($ z`cKHPoX{P*Oit(~DIP%`=6!+{634vCQpy!R2k)|&D*r*$Wg&p)w`ue`Xz-}7e|W>Dc7Cc;O|^eF zDvL+}ope|ffMhCM z(M4og4x%U0WpWTbffW)5qAs>xMJ(uPPA`X3@i(dg(iNhr(f&AE+et4=qxL~_>MHMX zXcY$_=9@YGi6P6!4L;dOGIgl&p`npX1(^=^<)IBvI!phyHM{mv8RKM znl594D7j=Oq!@L-Xu?8Z)Z5aSLub_M4p@X2@9{s3NS}oNuf_k@UB{l_XMaCi?e-MG zftNuW=}<+Ik)ZlCX&?kDnF>%Hq?N5<>I+6Mu))-4kyA=ceI25iF=e;gQ`g4uL+X<; zy44`{V=^d*)W_&DIi&uP6%q@nV=ileKX`YkhTR&h^TqBAx8dz0>-oDv&u>J<76N+y zCykPI^bCSH>PVn!oqemoZpoYrMRMl&!=pGOQ^A>KTv$WQ$t2R3$=Qj>DJ5biAetF5 zc1HpUMGQY(*2Jh)qs#eZOHP+#=`uN8j%J0#(Ixp_^6d#KEp{33q6Zyw>ab#N_#B>x z*mm+PSV=H4_I8oRLw&qVMeL2KlC}722t!5F)~1V}jnTPb`@oG5%^ZJrhZSqe82%V6 z$Ea3|!7ka8$KW(wCXc}aD{ zoDvN88C7pc;}nCYqgq%Nhlb|pWy%~LT-Ms5mTmum`6orrLps4 zM!&FO=RYE+lw+4KKr}Nu?G~0J)iV4P{YZ?GHHv#`0B)zob2m?$yldVRnT-%$=ciQ!0 zy^y0{kA zNxDbea))+H<@Zzy+JGh;h+DMs7ahU>o{v7mM z4MVCiR71nUQeIH^AnIoKHmc=9xjlamyJ1hhS)0G7@)i_XDbau4N`>E0c^m%WjZ>kG z5jc;E$0KT1`Oxx3i}HH?AXxf14y+`bumdY!B0b3S;Qioxs$&oOin*T~?vDMZ&NJwe{xh-)(E<-?KM{Cb;+=84^_R^R8 z!|^~W#vhD##|Pskt7k2w1r@p7S8SZEwKoLM9Xx0Zv zSQ&19)YGVR(ELza-MsbWbPscb;*n%|9jPEh7MTjN92U$*!^|6vzF;#M_+#Xh5;K1R zQLWcchZ(!AZXuNnKXYCiqhO6W50O>kjHA*Y>?;?*Za6BYum z{yB{~2F)vV*tQCb6wh=0!jY`{5j8)=Dwzsa9pcYKBh}B0USLD2pCG4{q(D*XZKy#td3v57hK5{bY->?v} z9isahG=7B)KWHXn)T@E!IZx7}&t`!e)8d8;$U7M}4sIeYV) zPD0H)Tl90^|yM)}t{B)~NLdvMQ(6 zH|R1swZ6&rbYgN zOy%{QUvg|^yhl;0AS$>JD77< zl0i9%zCxGDN%Sx)B%Vau`QikQ$-=uf+}-&q)+}hRYO7ww)>}C?Iwi@yibMw; z%`3bRNVGz<#S{``HZhaq%HM}1YP#&G=Q3UsvFyi{WF(0;P{TtclBtYDDhG{3XBv%f zL!wQ{$)t9}MD09??rRch+8BNkO~mL{Bhh7KP)?$CbeWt)r?Em}NtD9@r}7X!wymCx zf@a-zsb1tu;_hCzz|LFUQ*vwUtZ4Xqal$Fp_qf0m|6*ee!zpp2lV@*ViG_7Zv4NMP z2$&O!S_lN(k;dqQCZKv(6vyG>F(Uh>oGk#QU?l%;r)G!vCsV<{F;%jLzq^cb{%nTohuLZVv4eMOihnzc3&_i&7c4FisELo{>5*?p0e zsbTnI?F%tV)ne`ck|lYpeU>hh$J(b@A#t(Rwc8U+UI>4)6H;S<16K1UMEm7vJ#qhi z8gmSqKWaUOLLn!P(y-OwOh!vOAyNp9O>GWSZ8@NrY2x5wtDGxQ{`<-au zLZH=e(im&dwA!lCs)bYME$4bJWFk4`923PUnF>xV#kNOwLlC)66cOirj{Ss`(RO1{E-X@W|N6<%KSpyN#+ z9l-ARTzZ<2gIHwL)kxc+(Sc0mqXS;57I-aTqU?d!h|#uTwfAO-W)3{t(ScCK@W);? zMzLD#y^^fSW3Nn?$zyMt6%rSF-IWa7^dWTF*J~-N=YF#&Jld;9YpwQ8X%snVlBiw1 z%pg~?FEaoPwl7Boq$9cVPo#hlS7a)J~oO|GL^4 z$5b)=u{RZ?SS|KmO4j7Dm!r$%vA2U25*K^jweUdx&LQ(&x$ww8N=7GH<6P&qyVv{N zbmIHf2;g<1;?W*CTJx6Iq%p!ir4S7OY$q)60VWnnp$}4%Llly!fbZLAoI_d3-Rp*InF9cRirZK@jWK}g^*pQ;;_4qX zpNeYqgpYf*b1i%xu${vJQ2A+mCerrh=T=l6k)(P)DI+whlBpoo(UEy+xVqNp8a5-W zYmk%4D25T13(?HDy2x&X6{X`5*w=DZjFvTK?IF{0W<8HClaID8Wrf6!w$5g5-g1|LaW5YJ>PTek^iq`~aHMvt(8*#pQaCCokq(abQjTw@L^W%x&5?}$;c zMzYV6T{+3#PM66^_EuI%9LXvd(3lQ>2M@DfKmMku(n8?S*VCwX&>T`H$)xxY9En7- z=6BT85Nl*AJYflmYIIq=hPz(0oo(py2j-QjK1#g`mB>sNyOU&?8it=I{~M!JjVC9N zB{@$Xw{!SkvqIu{l6)Qb$*75`pP@>NnG7#_(6OdYPSZX-W4W`=`(jOG+-)c2hvH7A zBJRdi$y)SXPGUXhur|^6+!&o3CMqw2Xy)j%J2_2L#_-4B#WAYYVz5f~Y1U&*~g8ZV#C>ABd3&{UHrs8aQ0btOY^;z zGyKf`zcH%Tn0pjdE13H;VQQ0+NK#A%f5HlhWo~IpeRir`!x$99(u2%|l6j|!PjC_NlqzYe zue~9IhnW(1mQspZdqpD_!YHtl#vp^H))gML+SJeGrps=%XbUV|G?G<+LQM~`N~VHU ztMn{1O#Qjh{x+EUQ{%E|nTnV^ESQZJmp>Dxi{`RT zT>d1+3Wnjs;}Fdpmv*~1Ln;~m*!=ex1#7W6cDxsxKM)2sA(JFUfP9w~5*M3YZ9^v0 zq&{2-eYi8(&1$T09Myh-%y5noZLw1Sp!uYBZ^C%BRvEM83|pNd^N1wXd8CXGsbnfh zb#!E28m=xfx`qv|EmXuS+Svz{KKWsO`J5FK{IKaH-Aa>Az>~QNu5_wb3@dTsi4j>F05hZbw+F3 zVCFT*DJ5p!4AIP(In!#kA`~(FTzN%|S~ae`k8H`g@-n(i&Xv1aA+cOJm_7yt|AHr3 zei-;4MST_mRQ@52ZU+q&b<8UF>|AlKmY*#bY}Z8s(vg_?J}DrC8JP;_I5d!p#+&~z zI)V*v{tY>$>JODhpd8GhcK9iw86ch`_z`9SLox=cRM+Q;>m9Ri~V-1#^ky%wxj#l{*etv}oOJ^Ec0rmzGv! zDmZhD2&`ak8gjmGbPyZld+$+tTh6M3OpL4XN^98AmeiSe1k5N z)90(KkgW7M^h93hLZHto(H4`7lj_AZm@9D5^qJ~GpV>T)2;Q4+Tq9t?vxwx*W>Q6H zd?QoAoumBR;aO?Wd5Y05Y@l-{axz)OFpGKyL^DI@!VJ(6Y8n3V&c+xeYs9&NEX#>A zL6^yivyK&#l{izP(1k#pTp9%qnmC~u6#MvUI?^!FNW$DfO%D-9rfM@NmW4)^dyMwC zAKJ~a+#aJ`jVNy?i*lm8m@bnO9P-e9l#{@Fdc=M>yJ8XFK4dj%PH$Q}EX5MT` zGm;4^X86hTl^8W^i$Ea5$%XYFUC(D!QGC5gJW`)F&rF+4JPNCCk*JsN&y6nwSq0M>|o1NL4 zqAm`3q|;UC9c!o1bouuk@ER$0K+m}HAywvl)U&N?MMD~<6D{X5OPGxRoWkzW`A)mu z>dfK*(P1~2VQRUSj4 zd>GXoyU_bso$OQeBxSbmTbb=!!SYKJFyC&J{xhxgn78mMkK^9T|HFT%Nk0u{*?nN+ zY^}Yqu<`1a+iY#TveVdjS-b5vv2075Ft_5MlBxP$J#C}pgu3ufFT;GcT6Nh$IIRth zxyfR^(83x$D2-lN%58|g9VbKZBhW5J@f)sYAAFhIJbA8W+wJqShjQ*h{f~?EKep(9Y}NnRrvI^B|ARSeD1qt$4X8r7 zPli)MH!|ne@8hc&GQVjYTE!c5p;Idt;DdFil;4d*R%Yt;BK;+|a*d6_wzW2nwHg}> z4!FfpEpyz1_mtrgQ=a2d4>vW3IGE0Ns_+}u!dz<4op7cQ2iS428z(2h^5mK5N?ER~ zM}?_zT4JCS+{Lyj&}WOs#%5eTFQ8P)ic+0sr-se9+~4_uG;5)9)IK*o3mJY{#c^O& z`A5AbuUh45U0lz&O}g^-_Od?^-OX}AH5$K*q*A_BqFWmHv<5p4fO#Bt0;B9LCAYAP zz6wl^r290L!h;* z+-MN9=psjj3XjPba4;Dua&6B4(^}$Ixs6P4`UH-pRNIp!bKKbm&N`#RDUdDuPTL-L zs#LG<%5|DdSLAYNJqr|Z&EiB{voI0YEK0;R3lee7Vnm#-QbzS<+4&kQjeBZv-A=81 zLkDhGbf$1J5N3S%tvKFttJCYo#^_7dq-TCpPO9D8j0H%8opc8=jQ%AE(7%3Q!BXt7 zBKpN6fdtFg80+^d2V#IBM+LlJuB-?pjaLp1rIk*kZ7nBZ1b7Pm|0Mi>E&jjmy7}%3 zcmZnGF3oQrqaJ(}WHBgNd=iae(&qG{a89R$>NH*%k4Re|N~^TB?zsCbZ-T}J79^d2?I&wiAs*onipKjOVS*@lK~7*#PiTHvaIBK5gcBry(cP z$kVVmbrwW3&++WuH4};;U%B}JsNndK8!T==0HJa+Q+jE2X_*>`Q<`ql-jfh&eT%ie zvWZ!#uHik03c;&w!9Tkk0xRg>CbDc#RLO0#C)pOFw}-yR{KkbP}d1snF!(2pj7 zG;fb!pYLbIzV`*1)!Wk)(nphh?@42TeaAk&kYdR`E)>hYOnFDJ@9U&W!9Je1#=b|4 z9%aM6uOcT?xERKLKY-{yW}i^RsI%{3rgT61D9xIE|4l-ieP0yvCSz*jzR$5L#Io-g zHSY7RIZF8T{9Vy+<;nhrEnNC76D_qe!Jz4PtvBnHE4^}+*ph=m@g77}=hp=VGM5)Y z$xWnkPRYZ9i3hA(yYmODG70M zt`+hovufl#l~o~@oO}1zBN&P1{Z|3S{(QhR3zz-Zr*Wb|v;Shne*RR>7QtMq2kF&@ z7xCmIZSE0Vznj#_xxQTFuHpP%qg&bF{7&R#ihBdj=OLOI=XP6Lq$Wn4;=ggC`tEaXkr)F^%vt3oWrH_4|ue9j;L6kF2QUQkiYXlq2SlcFB9QtWQZYyBD!m+ytKah+ zFUsF+xcV4!GDV_+tN#hn%v`m5d&{SeQHSdzO!a=aQkpefe@{Xju3r=KCX;G#{W7aU z99(0zhj~a_Q#s@mvp0o`9yA%A>yg3RqhuMbo?H(mJg1)}M9|<2s8rBkrB@dX1!vLk zeR;CHDaLpP6r2yy%qVz@)$Tr}i&5vm1k<~p1C*v))f^|{;qv7q#5u4|$S35$X{-uy z9O$kw?Cz7}DdRnA=u`+aaN$lkccw9g+1}Y7Gph-w*rH@hMZS}>2NTtVGh^-%JiM3G zDJGmEca4T!qg&YwjP6EGrsy%y@bwVQOhdZ~r_{u#v+xe4bw3L!&69c6Pp$`F)tJ+} zGkpmWjQt*|l{0pwSAs^_9~d3XhO*y5PNujtQ1)jK%}iOlF{jeSsB`vFrguMQDb1R* zi%#`8`wby)vZuz`ud*t{a`wc$`P~l5(AfJFACIIu_na~EaXl0)cCl8RUwv-+xqi9o5X0pvQxC(6;Rv49gUXK7})GZ*=PEB zZ+%j|nV9y>-H04|5P0XHOO2rNYe@Z^%11`jRO9o!(Isv8{3_&Rif03#{|us;`TPv4 zHPa}qj5?{i%mRK=Q<^oYA0#18>U)H|$+8-$?_^boBX#npC?93{nK>!m3gSf%njyJ} zXqIm`rx;lAx29zVJqV({c%r;kiu9q(2!8y4tj_syM7T^1A3qfC5&epk4L-gXV`&3E zegVG5?|h5pgw2-L)?=t0xtd5RwD z6a?E4R+2qi6F#N$jF=!2NhL~G&Gz;cl2CZutCFFF=jNN;Ub7;M#DLFBMVI% zqt1j)O!IywP?~O6bIgdj-&G{UM-=OYe8RvyomHWKOenJa5{)Q$(dPDLpOt89-DFX@1|&<+NN}&Pc=kcUoiWBUkYFC7nMq)|M(*ii)H!fF z)4QJolxEF=`$>p%;Kf2dAqQ?^Rp=iF9%A_=;s7st-*e!ilu>$7Vh&^|A%X*skVOL= zxJcu`qr&3ZIq>xu;~6;cLx}Dt4qT*vDQMJAiera=e3|Lp&jCua=D_15#5wRULOvk} zzQC%`KMt%oE%6+I7rpN}uq7o2wj}02h7uw;FaebYIj}|Jzy|ugFEfMFV~l6uz&Q}z zPaN1X@*Fsg>D|u(O4F@sjuSC2xP*i_2Tl?42|3`fD)f&7FJk#68V~TI&Fve+ykKie z4s1=#fea-?aNriQXka|BRpY>|!s6M-12@GO&%l9uA-bP9uyy1)u$SrG&jCua=D?ds zh;yJLN{HaVm&l?44s6pn@UXCWb`E?Y z#&`w}JPOhM#DQ%i&wVqN zB?q=A=0JuLA~H-o*?8+_SAMDtY%f{9|taH`6c22FWTI`?DK-F)zdw(zRV8kPRRl$+k*#J z4Wgt7F0{$Qe0*@QJPw}KOJl=s;RV^p2+bIS8rX0vL^HEt((Y-ZZsU>XLyhU)&j(7g z=EG}9i1T5WkWa{m601W0`0!SiUm`y6q6f_fZHJQXJM4h^ERbLs^dN<{Lun9YMljkB>3~_~}7u*7W!R32}OS zM93$k$A?)J`bUpnvHTLzgBLw$db}Xi=ZiBm?LG`ALy`;kpoaRErvLVol#*pd(Bjx} zj~0jc%hE`39NpBH>Bnm1WO672DNcoGW>VOFH8Y@)QQxa@1XI4B5|pN!)*MA*4)PQd z;*>a4$eWC+%|TYND)f&M+gN^yD8Y+1w=eq~M0=A$bTd5ovJ5h`9D49Vdy`@?rACmW zLYC*_j3fPl5*%n$g^y$(Xp~~iZNSHFh-Suz<(m{?Ta5fjqsT1aX9%TPGvsa(;ta_P z`GgF)o>ifL47rcxmxv*}=s`0iypF*?MUZZw!DM@IBfO5$hms;#@%Lomz&ZviNgHJR zgYbgvl=yIrK@F7n6ht#qBHcO$*T<-jF&<*N_w#|$toiT=32{EWU&trq!-K2}{o})r zS$>K5z>6Lw;0LO6<%?yro>lm6+Mx7ojm;wCspfugQ=I9bLlnD~z^jIq7O@`HGD2rJY z`bUp*S$>J=!HYJxFZ&E-ySI)Zzs+hHzf!CRDK6<>{t+XIon%cul2{=tqOo8~7(4qQ z;`$i78CXz-Xl53iZS^q3Q^lwg;6+UBegaUMH34oRAx?l72>FBrxQbOFjsRUJ?t{k6 zdrPYm+^EjMcy*wuW^QoUjpiBQuSjE*eaA-mEow_PO0ifr${SPXAHl{Cl1c>|W&Ro) zKWy|Zo7YYsLQbY&GO+Pu5Z%XY^i(nGZ2W7cc0U^_&6HFIknNz1FQmJ~tR z!%p`od$6x04YfzmJ$;#y9)g@qv1vf<6Cs)zwRUS+etnEOZ^xMK{k)|#-LmHR5wp<^ zB*b~UT*#Yjs_}LSt3oVqi}IY|q#w4KaHcwK2S%!_LWfTMn~d%W2o0cF8R_ z`QI|`B$)S2VT#}v22{Rq34VSW=P-L<_Vohw-JEK^)y~0Z+V0-ACBSvj9{g6{&Czep zR89oFOQd2xMqZ_tqrtmk^f#Mv@-%WX1-b#=ZHQ)ux7~MheCil=c26P_}TBj0pu?X})F$}J=mMc)u; z{KBQ^>(iKN&=ghQ(x}#Fa?`Wc0Oe9W*r~pykumoOVt$m=$%(mKjKZR(d696gY~0@5_Am zFyv(N8v_MSfM{k4*qvjgbTR52SjF`2=K!VYRyD_onCosLAQR3^Q@TIuDa|_SZzmxh_16mdgi(JDt3v;x{xvMWL{ZO+ z9(2^J{TAdjt#Y-VBJN47N93#h7Mb&pi2jGjn&O$F%wLQD4+>*vkN*$E*v%0C{{+#@ z@o%@^!c)bl6W~Fnc0U0q&6)sTCLvCMcMJK11b7##LjMTx1D0PR0`Q^-O#olNKjSv- z;~zpjqTko=r_Vbg@>fiFkx%_T^48*hjDGCPfPWcsGC7JN?vH|K=D4@+_el|>9`%cv z(*03SX}U?xQ6WbAr;!kk`ajr3{crmm^-p0z`MGu+-FZ5>Swa%>D zEEnYSblX_NJtayawmxvX-=s~kW?X{5JQ_8nWDM3M^ zJt(2}TJ)`)2tNFttjqbZN-sx)!=m+m2lCs(W(e`y7+V_PFosHGhJ)Q+3!gehoeYmN z)%(dnY1U+TB6$NR!>@&WLNfdpt3vkpU4SlYmi9T3gT4ZC+fBa|}g^tgl> zz)ufK)6Hv+F0mF-BOy+YX9@X)A-t7UA&ws17i}rIg4)}#ML{RZ<*ba#u3ckmVISNog_xq&rwXLd3WD0+=JojBr*T(mi+b$ zN3IsVgH+AgeTe^djoa@sdY;XA?|$TD3U33qKLF9p+_pPOETE84XZBl}^8L)FG;3ym zf`mA;-z?-!MkT$8#hW*=D#SATnfXG&ZM6X5wK=~L);i^Br`!gN%dK_`n{BZNx4Ea> zavk|Hg*)45&pB26Eb-i@+!Tqw5m4H~CGl6&n0L@5zRp`MYgO}wUAaB(RHP2AWMuGQ7_uyQTgyt9W^j7ru+Ibp#D7z%-)V{0P`wTA~TrJx7x@P*2$=| z`8Q1eel}B@Ze4R+iShIa=tzhYI0V{`Hyy&F)Igxvx!+T6bEBRI9EhYsJt zlKzFZ<0&E5gA!^_Pv-n1m~aIdmXFj{$ow@FTtz?k1qGMK*v)`~>miyM1$KLSJXMT3 z0iMIu?k51H=|(k2h#)|Ngg5~%7V-(ha2u;a{|Im^%ddB*q74jr(dPCIfB?21j1}J2 z>x;A@0;JDBf&hO(*7OrV{~Yc8!r0j#*}XN!ZUzE82+{pRfYJXN?VmBV`w2j4)&%$` z65<5-6Ct0F0Qa#f^p5}!v-}bffET^b31IuFSV4eZ-=Yl>AbtK31o&^Vrk?=%hiD%c z#?DTFU&YwXK!C*?_ZI<1|2wq5U~2ahfYPi9a1@Ln2=G%OpO64QW>x4P0Zv6ttcu>} z1hD-`tRO(Iuh51FkUswi0z8`x>nDKz3EE5O=f2DWw#C@ZK!B?tx_`z1qyGikij0> zW+1@h5Zyln82zu#{*bBNPXJ1@CcxMxj{x5n@(Bs>9ae?@5#Tt~#H#2)6F|M^)0%6w z-Pv5ZX!|fg%Jp~}px*Q8LkSTSIG>EmDX`KjL3<$Z4EntBdoQS!=4ie%cfwP5t!eBguRUwW8-HmedMZSj9C($|93a-{4gzZ`-*SuCYKQCbmRp@($J`kk=d9(_9*lZG5$4eaSHx)UhO4GAnb|M0&!M(> zJ0jZUS=SPsB+`SL7iG^kf|ai)6>?TCp~5vx-e>e9o4sxG$jKB|228#cqM0$d*=h>~ zQ^Tke@>NXbenL{3H6cGhLY$B<7xE@kY7Z{&WmSkHWb$1TA7lBMX(l$)@uCME>Cf{b zk^?=L;^ihyvPaxs-tST(DDWR-Sx$k2v>ItJ__45k_NmhkW6WrP!LJ~i83yNA!9dr> zs59YvO!IywP?|LpmTmT!@NFTVkO_~nD)f&Dt5FlHq6f_c^>%cpQOvj9Tp8!zHgSx( zl@rv<6OWgJ@<>*u5Pc)X1o_ z;w+|pKPxCrx2-vr#0={i65`{B%|bq5z;0kw=pQReEWbqK2VS(fef^v%?7=sEEJKz= zdQd^l6jJ9K5&vDXo|q|6zFN?~LKrst;NadE8ySNBK8R)xdb^ndQ^Tl7`khSW{z#`Z z>qvhW3GqmOiI7hi>9?{f^e@ss%<@YV>AdKD7wH%iq!4C3Gqn(ijYqj=?}9i^e@s^ zosoF_&x;;(q^lE83Y{i><|0?dGZf2+*F}3ozB=(lzd2Jm5hU0I^$HTK(#z3^a0cDd zmjVBV7+V^Ma4tkM6T$Ap6Q4RpoeZZl)%(dnX}V#}kt0U?my!@C!&)JqkPN4?D)f&G z*R%W*jRAPk=JsVD?W~li zxgIgE_Dy+rS`H#SxyTc5PJ>EC^sn^p)DSREzxQRRe`<{J3Ias zL?G&YYj+9GS8L60Urf%koXh;d3B#-M4J77+hm|en0{JH_wlkmWmx1E4xeC&-1}w#+4-N4At-5 zvCH$sIXvO?KIW+>sXb}07ETg9deB=!t#~Efy{6Koe~vFrz|o*#Rg0;5aV}I#{Cv<< zr&@K}(e0yFtfZE+1(}d|r45xyjdaJ@plZC;Zt@LzNU(Z}EXJ zmuxG$R;_$;npTQ3!qMz6b{TgOS+e|76@G4-!k;!k6`yaRVmP8NR)c<+C|3Um<}>+= zeXJg%ukR%)m(dtiB#@c0NED^Ia%vhnArDUs^T_M{cok=CA8r~Yn zHBrRg%xc*C)(jEbT^qA^&udhCSbK`}`CL$siF~dY)8dfNnRERMBG8)3TM~HkoB6FY zP%;fcsRH-%TklGc>r45qY7luTA3$#KcWI>)Y4~{3b@QcD@c$>_|7-F8b=S>zm!m^# zmfhC;b+}=&d*apY9Qu4m^>!B{h@3{V-f)}kxpnhhyX9A&-F#`;rS17V+E!W*b*b8R z-?VYI*4|jycy$Zo(v4Sk8XGTbqrh1@*{tPkMX^)$y?WY4=~n8ZAUoz9M(w_E@$oe=fgfMo7EUK3GHixqptyjV+5uj7hbsk$ZwDj-QNJ@dohe-jOHnZ6G^ zH(ySbe=6Pm%4-@AFTd`_OE;GO$kn4ts%6%vmdYl?vS)?Ut2Yl>dseal^qrzn$;OCf_w*nWdXn;wFmLEv4hV zTB9vr5_;%NRqD7+Dllr;ygFYk=lMD18)4MY5UpuwFwX?ja6kLU`IJaSqt8m+Wn$t~SxX9DUZ1Ma0qpaY zar$!wg}VNCt-iioE4q7WQdO(V%R^-HdZO|ieq1Gflz$(NI|_B|Q?9jJ-c5(r>M~8< zM>(+r;N5l`0Gz*vta(1ur{J&F&Qj{$;+p>U7CgI=>n&upEqeEOfs>CAo7SHwy7}nlGnuh^f?=9pHqPGx#Dsq**rrGxvN-dQVWfSZz zE<)mfdkfJX-do&^^1{7^xJC9Bx8Nq(TgY0&#LuJ#V4=gVx1d8Q+}^!~?`Ng+mx{8I zEn3QzaT4MyMo`_WPkO4qu)kF2*^M04WwkA-F2x2<^}mG&=p&?f zs{fyWM8MahsZPZtrTY850*009(mWxm%O3>Q#h;2WU-p`2Pj#i1%D+-JL8`wSi36s( zXb-3Qf1tcD)x|B6>OaCwlIpV7p!$Qt20QbN!Tjv6y4e4O`>uf-5|DGFYk? zvA*+E^F(ulZ|1l`W!anWuip1-JoM3cOnWvwhyVNB^4@aISJybGJH47Y-gFD~CKSb2 zXVfCXn63&A5j{z{^vUoE9ov4#G%qHc;K_D}QmbrX$X$?S5N?wY4Hz&Ba@?0z!uz}Z$A)yRX*+jJqlKogD z_M7a-_VUenPWKn0%n;pmU%YGnbxRka75E=p?&%)aE64G5^Rf$&%|oNtP)n0_0c$VY zjV~KDvDl9<)s^wNy1IiW!sTgv+lYsz!+|8%g%aPdykbh!#;S`rj)Zs@k@H&Pk3@au zstx^Rpkk6v5MJdK&>bC12Obw377P;!uka6wQt$H`9@Tf5dwr#}%7c_mu#>qLiT&aH6KUGp{^#Z205kp1a6o8iEIh_lb2JYlJzHhJNQT*zLtk`*m5lwOGWLb!#PV` zOOdv>&6aC8uWj0qR&oT)CdTsBR^7?BS{>}}XWvbw#iSg*XpC>CcB(~jqqC=sp)j6U z@aGm>+Iw)Z|0GMKgGOhzr8kpLM#jY+1@gDCpp1#eJVzEn_2R$Coq*ssEf42OooGelz;P27>85NVXKl@*=O5LHiYoHrjE<9iMUf$mdG*2|D z&)jJ#%~aMsLi-bc2Tn4=%OAMc24jtW0O2a zlt1wXV5q~IbMj4eOEuPcu|2Tf8Kcqw_JYb%=NK&&oXUtU;eV)6yh}J+$eU)$+9XJ- z16=~oBvqGi84BfH!sT?ux&(HWrAzSYle$Ydqd?zUr)^NV7JVO^o}-5s%(xA`WwU2k zbrKOJ^z1PBc(G*Ig><@~$Pt;3<2>QqE*JZ^__CGSn{vf;APB6xOa+K=4x-eg+j4FK1 z`pC$;__AZh+B{pkq z8Bm%Xec}{K>N#y2_rFE)OsoWVnyvC~w>pP;7Wmq7I6(=qe4iLi>%gc9%-o9JhtMgJ zZgJS|DY1L3Pq`^4`?zRIk8xt;jA|4a0;~O#vf7>4JSLXTK6>pM#jfA{6$tr)Yl^wOua0z=uj@9E6vMt@C7vUh@Mf_Ex zMU#tm(mjiIvfBFIkm(*q2lg^QoMbnNd+yLSH&%X472;&&g{cPqkFkOJvDhY-oVh8<~*{$(Dt-lBG(f^8>*Gr1J zdVi~mZn3JUcwyxN2t~ZfNXdGmeIX=b()W^?;l0Ic0(k|-cz$=1FP2@+>ec&J{WTTa z_ZDA-y!AIwSX6{wEb}zudjln?7&Qb4zGgu_$tGQED(A*DhHe#}PL5;c>E;TEcSU3e zAp1JAkXQqheSNghcx4t`ou>a_l*o>%Mv4Pdo|PPeYqO*PzHB5`_;@C%R`?b@O=AB5x?XUkf z@AN{og_i|q8|7;J%AVavD72h=cLHzNADuvLx;)cq;>F5(4V(D%zkGF$!~dEf{xwbR zyVb=ta3{Nt;FN$wAPS;80xBkHM{tZ+KzFF^8|VVCeCt`zo6qZM3PI<1Ewt|jly)jl zrEG#Lhl{bs#HKU7-c*)-F73LD%uJ1AD~F?me)lO)=;`-j;qCb-G}Np3v?~|fj3FdD z9H}KV_b8$F1P`As5mcjRPS|e8y7vjEj!k$?`fh>TgD38CraLwEx->Rwx93C`CB>vO z^fOE4OF7XdtM2Sb65`$24o@e6Kn`?-qC1l+M0dtB>D8SX<}kZaB%j0Vp)1yzv8ybd znOB?Co!Qyqt@m8MTGgH{#6GdwA|FU3dLur%kltO~gZsXVlkL%z5dDCKpArzz7oM@e zCrppoP74qqG8=(0{q_HWJz{&chyfWx@w1^f1SA5n6Ws|?F-beYmwN?tN6`ZUedFq0 zUeA|8^K&Ra)Oq&Ouk1&Y z2Bhp#r5e$t-YX1~pi3PWPSA1yST==I4{%wRnRl>ai!TSr4l}uca+I%#`p8fY1ZJR9 z6SKQ}NQifb4}0w~ON#DLHXq#~&m={6_@5|}cZWZvE7l#dt1R82SDVz`;psAFX^cag zI7}})oiFD5Smj9vDd4i{ssQ#zN=85AVgpp9!dz^Z}c`|=o zsmv$Lnco+BI`}exS7ff9)h;0~lKJyLR1uTrA|Cb?(LJ)&X*96jmTS%Co9!Dqb!@TW zC!f%BNnWz*^McQ4z$$3`nEgUavFNA!DuabgUm#Mt6C)F(8y zh@g-hRs^@&1o5fuhLKH$%V3{D?^WTzZkP)~Lkjd$E;w0OSue>fi&AyHxYT+e-TQ1pd#g>M5SU{|N~lUlG*>++w$t ztRbq>I|14{DGm}PR*AmO|480Q;rCnBSv-t?FN7i<##6H1LB>9e$5CHe8>Ht1Qk5Tk zDv-ZMKa{azY9h%(~N zhBbD1zf4o`FDwjD`4(=D+8o4o4~0*5{xxn-s@~waut9HC9YV18rEL#lhr|OhjiFn` z4hafu)6xXpD)s{1mmpWMLqf95Lq=$J6x`_}rd6^J=q)(TwQpEuBnZTGCLrY zWGYiLXC6IX7nvuV%G_iw!fGnROYRL*eJXPeS3&Bj%9G*22eLM&k!{AD z<|1L7$W_w7oMyW>r=czTBJUQRyv(-nvlY_T*yat+RpnWCLm5Yy&R{cwJ9fqfXDjbg zoQrFCA)DqvlCpixQ^EOjqFK?4Ou@dLFSd>biea-)E1QKUV*TCU|6MCRin-WhB$RwN z^b&eGoBM+TZE$}--4naNpKglU-~U^xkl5eP3R8~qdt(Fb_V@n=d8ORnzv5hky!HNm z0)>BnKWiNgi39ul|2v{;z4!P3mr*H^(X*!V^N1pXw~8@6IY`1W{WsaIeOz5Q8=CGt zYztOcc=Q=0l-#5Hy0mbKRfWaU!Zrv+EG` z3oNEWZwGLFCSF>YOQQ!-My92Od(#wrmxTc;ZQN|Jw9v)v`qF|)y}_l0pttrO;b}_? zTVficEiF(~TVcpt0kO0oduKWHFbj!g1vw0h7Q#4;v~E~Zpx^nD!YAp9J*j0^8I}~p zBs}eM!X`PnE@RB6ZP*F#TJqko-wpQgY%xhtMSu!;cj}5;>Wmo735o<>}Z-M@Q7DEK-3=Vs>E^aacj?~ijR9LiChAS zo{IkpLg?%hOvRU-XR=n0hs8Ym-Wb!DB7VWD;&%eQ+oyZ|Q*q@4m7i1NgH!RZA+g_6 z@h2q;8ZjF`4LS?W#(PGFoRF_gRD?DsmyO5#?h(>MvbRr?Z$uLFpX356#y6V1Ci=nQ zH-s_Ko(Umunj2BKEc!y(d@Ql^OhRk(;yW#d{%{+L?%WlsA`jXiG8yK zZljJqvD3h}jNQ0p_GhN*6oUoy?iJs*?|a4A1?X_?cC< znOeQ+vOmK6n~v>eEZIHwzCp!K-WWUP{_#3bwmTw53iOCi=&5a{LVf$wD*aaRtLo5} zi(jSYy}y;B_j<~T>^Y-XncEOb^6=nJbLP?AvdCPmX&E01&zp;|dU(J~PS#^LxC+$6 zgM+l72pM7-|54gO{;ACHZgVrD&G1fM2es>}$9A;8GiM%c29bF}Gkn@ygq0b1$u?#% z-|HVZDLPc@RO#Tr=>5<4MRJ!exj;3^YW@1SbOs2o6aQ0x0ToNYE(3NoS^KroZXw9=dxH zMgh@Pchy!z#sgOu#S^?y*K5`Fz+2aAU02<8Me#mYf9#67{@<&5b$+Yr`>k*HOeX*3 z^8vo|?QgxRdhb=evtB)w=;w@Qm<5XlsYns#d~*{N^1tC2?{KpMVz~wNiAFcFa^{um zpt2DwZ(f-w)!;XIW%rhB5cl46n-7RuHNT@#3-jNvKub@@`s69t2&fLT{*9bd*Z0qBgm3}5ifg->WHZfBw*(&V|u}F+}YH?f}o|RiUo8UvrRL-6m2JWT` z0nbU57lpfsq6+W1AXQd#oYUTxBFS>`v!I81p@{LO@MPS?xFaVq-Wvw)CI$h|NsLc~ zyNDtN@3|l`sPd&DSyCi9jFUusBnV@_R^<6kczSN~{A*6~{4@;QO&$WSkq2d{n8{-H zhZ_HXhr5U(5AV4kc_KaFN1PWD;Nx!8914x{dBBeggLjjagO8bi_*>JEQ))+Y1`^FS zgCxz*owKbLwEie6wrKrgdh`auX8<(RUm%tkZI{GSPOEf~XGc z<~m&?YGE)lZ?ajLtiT1`BkVR1Erks$)QVL#`yHtj`m-`zTJXar zJtfgRn~l}~>D(sK;I5HApTqH)JBjA@B6y%ax=NyXSCNk29zlTQRq$~{63yN4xt>H5 zLa&`fV{@xtGD+9cx}=&h8T^!T`EX(9Orp6e2UJR;5qp{3GEyEYJ*teuA=j3WBL0Sb z9Q%RbAyS9R9^ex%dw@^fxVHGt*UkAH>DtN{H!SAb(qJE4t}SEWS+1=uZr7FuBPLKN z)gi6DP#~PYDVe|Q(WWdhH}G(H@DSN{Ub?FcWH6mpyG3FyBZJ3DJVp4Tj)g{fd{O;j z;BIq;fNPdqutGw(izrKu_w1JedM?jej)LdOA`#t12CocH!)bH9d@6^5yU9Sn zbCRJE?jni|yyqA)gugWnO0_X0N8_MvgYwTH%jU?S)HeZMnfE0yBELbYf1hDcYM*Kb zrI;|-LkoytPJ?pZh5~O3vzglp{0mT&LV+)rvo>XkM_&?10)2@CNhw;{$yV=zF1fz+ zZhT_;5_{@KUy`FK914W!6fX}&Wj6we$6F$EtPHq*J?V{e9|FWVLj{X^J9re^8h@6$ zlyd19?LEoGa7@_vOlU-@_evZ3LXh{v+R$fY+s;9Qb}NRbJf+1Gi0_qXa4I`)LHHlg zD4+ZEH(~H@A1-T=%j>6VmDZ_ZOE}fJq-Huxz~xvSndz+GE|%OSkQu_N%wg66Z8|gNr9Nn> zUWQlitV`6mIi(bSl8?hYdMu!mwdcduycfDoj)SL^1Wv6=A$?O7n2bfONnU|`nA)d^ zOL9owP5iDYQOsDNvQ-+ZHTINin1mxRNg2!$E!56(GR#@`+4&g^DMZB=KS}HaGulAy zbEYs01b|fKKnh6Jt>9(ntrpg5+HKVA!=3#~ zSVGuM$WbUvPrPwuhwR|M+_@Y>XC}l|RZO;#YLqn89{s)AoTlV#T{1hY_9#pxZ3JUG zTB3^XJAr9(=~C#S$8yOfK6NZ{k##F{>=s%2w*ir*eWr;lfid8?D~JX;MAimW2ml}t zKDMUz@C{D{7g?cwLG@hUDo%JcjUp-!^m1$jbcb2oCTC$SNy}^`XStX(h$#-FfS7s@ zbjiikd+~{hDfZNjn3AI@ET*8C)#NnTK)90O@aYhg9ceo*f{{m0V~bg(f%`?(9S6b; z3~gbq!DrckPqfwCG?2bp1ulQ3Bt-Vy8XBooCbw=ry&rCbE!W2?BlN5LJSx<U)+D0=W-3)16I zeaA{sV;TJ_CL#Y;Gr2506E_tepOXsLgn_%MK)@9hf+y1UhP#NO1n;>ZC6r$**BScf zgvaeh%}pHdYTNTx=6-1yyql~Xe9ZjA-8 z285-QcegYb8hompT^hKi#)~<_uKF1g7)~|bOd{NQ>cRyJP~p&1|H^O+J=C^?i|nCP zce}*2M({xmH>c=g`*x#LE)7?j?Q*qVVmop_*6kjtjFzWr?GnPP*2hYq2sNkSDz5t2 z%0Vo;%RlAn&|qn>H3>gmH&mW#H%1!6L-+-}Xt&tY;O<>;XZbFEY5A_fUAy6zUAuR$ z9GomS%WwbJ2~!_(!=@Vr^&NfkB)mCq8T~!*R8%t+DQg2mCop#~rR+4G-VAD#v{e zd*PMi4uMa!{=Z=LZ|V(kh2uU0utJ_i(}%35@+JQQP2&s4;gU28$Fa$w>(i-}dN)+47;@?~~_wT1^D}`<4128dkk-@eytEshrrheQuj2*(I z)Y=EI(fWjj3j}bb*1qu!J08-P+?9G~M#YcRwwh8Ou)nh|zM+HCS~1=!GCX8EM`OO} zQ5NnRXvCPx%)-Ujy4Nx@3zxCDdo6FaV3}*#MmuHPp2EiE|5RV5u~*ig3b6HrPqtoD zMd>7Fj4SJH#N^=hb;*$#lfh+iC$I~wg~QmVnap!EDafThtVtQVSV5}JL>&3IVw`KB zPo3C)tm8n5ah}2kno8fs*E+0B#?k7NuI=zY)X16^wD8D?bsB7B{!ew*NiKkoBXWh? z@Od`taNOih#ePANSyCTerDFeGk&a&pje_EI1w<7`8WW(x&BUVjH4*5wQ?YH%%e69} zlrfpq$_zt&17F0eazLd7Zxk<~xD5_~E@1d?_Nkw*@l#6h77|qou9WN9-ge1nEi`<8 z!#+;aK!P_eDeklWAwDsmHGAsDXU*j=Orx;R`gC4-Lf*eH0jKG!!&O&|Rr;+Xt3$EU z7U>TBzU$Y`z3*C_(Hyvt7Y%RG9e3WbXSuHXE!VXNkSCAnAwH@I*N^`LB_{qC_)Hf% z<{Ak*ryr1QI|l_dEZ?;9-W1PjI{Ly8`aFk1kAz0B8gsaGHiW^uT{;}Rf49}0y{p+! zOrq=iTRN*r5j{B+M`ycqeh*C1YnP5)-N&;|=w#@27*@)y<6jHHwPRQJ@pPiOcf|Zb z_xx{K3QqTqX}t7_GCpPPrh+|51$5ETMpN_oh-I9=fm+s22s4fqb)~eT`*9LHUV90( z4{0kXG)eY}>4WU!KvF_8J6U%ay5zEN1fQ7fV^7`4J~^7gvhNYJ%Z^qmBkggx5N~XJ zh{?a}0%^M!iyS?cev_H@%2_SlgID_Th*sztqSKwCCEW#+Es$c^5_vr;VdNO^%mrr# zzEG@qLy#525@uSqJrLo~u)I&>5^}375wje_$%tK!F%?rYf5;U*n31?}#xvc~gO@-f zL)0wQ$FsI0{#4|;BixN!y@*i}5sxWw*16h2D*oxX#Y^4|}#tUgk1Hp^6HLIo~LR^Vd6jrFOC$>{<5+!@3;RtsX7pS$82f5d_E zc!nH=n){!FbB~K@`~hHv)S5s{W7$PTVj8$N7%`322J&!W+tH2x=NO|uy7Ai}c64UGghO7xt&*Xh9~*>1g?O4yfd45i3XR41VdMDVk!(b2rLXG9L{TnQq3&0>3UwrUx9dY;QI9d;K=rG2ME8hAjRe2`4kbDu3$@dB}qqgBNV zw8VwC&=AGm?x(U8W9tusH4VsrqeA{HD~TV8!XYV%AHqflgOd0y9H>`G{C05eaZ2Jh z0aigJ@rTefKJf*2f=DItYmPDcmBcT@*M1plYks68e!Eq;pxr@0VSKP>&O+FDe^-j**+4%((}#VJXUMjl*UmS^(Z=HJdLA#8 zn21mw9|w)%l*e7+ZrsWv@5a9^=*r{8Y)F2!A|32fJdj+3qqCLA0eIPK<Yl`H- zvBrS_&sGGOWo7bJQFtU}@)g+VU{EIChXeI0lkX4CJx-Z?55Ov@Onw}i#w(M!D?}=j z?{tjOuS~ubzV^#iTSFve@-2=o>`zIVL?+6qOwQzhO3I{IIbvV%OASq#6#JdKQMNMq z0E~}&9RG+qX&?ruId{np_x9Z5d@oxgU>bQXo z$*)MHRY%1D$%!~RTXkFoFMF*z+DG49E0ODsPl4W3dZT+i2&K_J`sM(xX^djdps=jQ z>CcwNxLqvfXpM2ZrZMiJA&O1jPiReJJOG7$V%Ifbe@J0}mes}mQAi|pv5k!m26geJ zI8d*;I1`+EoVxfDfK^ak{Cj8`uP)+d5UDP99AosWi+>AWN2`m^b#&oT7mmg>5mrp zE>y+=r{~dvA8Ij^2dgd=t-?# z42|Mc$F<>Z+^Qq*#=jxxs^bDSB)>+HRvi@!B!59}uvN#Oz{_5%j&AMFCOB6f9|T7kS+Qy|X^bCEOO{@_^Ofd4Ht zxq^qxBXS&fM4^#X$SbhX!JtAmaG+il^4j3s<5b8AfK^b1dWGjlv9PgGzU~tA;rpZYlHSs=rE1g?%a*CRmk_k__zxB zK73*-Bzrn=Dx}D9`3e2w3SMsW(`@50@<6-M4oK85k$*^pus zMn(VRyEr;qVY~-k_F7?d=QtYF=Gx+eE^%m!&cz^9MR$&)4qDR_#e_jm`3zAekDj=Z z+j#sq3x4kK1??(fx#eke@bzoPBUpNXt_n9r!Aof&+9=woPRv#$`I9)&|v2nVpy z!JrU60SD?;2rmuJJx(Ef9Kb555blJg@d_cX`bdTFV#gT$3gHFtb>!+=mz?M5!d{4^ z5F!)hR0toQ11c$mV&%AXJ9{XivIy;K?nc=P;Vm#et`NQypO`|(o(`Nsc*1bA+OEP$ z!@wcxvm(8S9H3YA>)br|?zCECYz#^*4m^SXU(^c`Bh9K0V&C8*aCVCO!1i*1R3Ws~ z3ni7_1}xxTH(@>VEwb%=M5cB2dI`gltygMq^;6diPZ2nSCxxs}$_YoPlpljehDy0u zodAbAUF;9l#aF{!xYbGCMLu=%!)!P)>ZBrb@*y0ZtxnznFMF*{uC;ykv_`lN`CI5Q z<#ANpEfmLxxPfTeqL>dTF>l1F`NGm>$&M?|FG1mlcC}vNB}^wKrs}YHwb`F|p1Rq9 zGNg@BUc95ygc_@*dZoR;(cBBKc^{AiUWrJTVg2OlEjoiD4bE}KnfHAIr4ErR2_v+OjNO_E<}|YP2nOSvhJ=~B&Iak zY)nGQ-D$W@=*&22#q0R`h1CH_E*KVfT!n7v6XVVjT}N9>QM3bXSHC;xtgE+dXjiUl z50*9xTyEUfU)nNKX$=px;D(IWWO=wUSdw3rHg4N?4O=~ZP{nS!Xr%4g{lGZ7fXlu$ z=uE4H#qGPDw+3N1A^lKVm3zZfEN3{~5e2|<&dz*6+A z&@7_F#>21?7aMyd7OaJ2MZrjH2&947;6Qw0LoN1-ZYU-FXMv=+9y;YV&JFm)1P6QS zMsUdS6c!vOj_hoYwDH=-l3#Q@GD>tvh<@R501^lCY%*uWqP!wYO@3^ueR-lH<)_~AiwKr&}q z@c-fRB$yXa#ShJhsTMqd@lYubkAtgfzwlHcQAXkBo=WM|QoFpTCcRR<0;ec@ZjiFN zIOx2^99!jX;s(DJ)Qq8>#G> z8VdwY9ua3xAT+-q>CBU;37a$opn;O1y0^z#h66*DCtk9IVDbno{iS$zBFMAh-KZ+t zcIF!bXCX}T964K;>h4L^z6lyl?RnXa3*fdh_(v;;9*mc~G~AavUc&pz7caSu{`uX|T}tc_cZ*1gd6fjblrM=i#&=4j?9|46PI%mI z)!PQVq$gZCQm2zL>MciwYRyz?z6jrXf0-mlW|J`oTJSX0tAMPRw@4V+2yobLv?^9O0ZSnwaytbzK19;hMP4l!^X+~=3U4Ye;8k$Ei z2_5wju^nr9J_0+Sz}|<5@+q*^>A{nwbiH_dPCQx`6T%IiOOC zxL7%2)PDJ(IXuNC=WdjpBHs5`!X(^;Ps}7_PhFUVWGEHA7h%Ilb#$}>x7`m{0=~|( ztHLwK6-Kfhp;j#@)iiK?ai#i7 zh&cU~5@XweN&G7-Y%!iE+a5Hiwp^yYJhb>!iH!)?>64(5kzp>b@ghkf{!|1T4|n5M z(Rnxi{YRuYJ{RQu6WNgbF08cIRPjM_1&+?vWgi7Ed#%e_3E~>N^N8KwLZ2y}RbK)^ zH?_kIa$nJOP%$gO&K8_tP91c*T!Ql6m=p^q66@dv#XBLvrMkabtChfO3Vzk;#uR#0 z$@{@Psr*uN2=`%{AWtC#jkO=uSj;Pgru0R%UD{I~-iz_Ta%mLYt)*6Zv{Kq%o*ocu z{s4|ZaqKOGG9l6Ytfe&NV!vcK9MFSRPQ(E-IceRYVRZrxa~>>t9Xjs2y4<=RxGv=t5j>>py! zn@Z&t`wPfAS{)l)xnZOMCdJg~C=do9^4I;P1{@Y>Fp{ifl<0$jFGkm)Hrmc(dNc?@ z>&N@y-Fwq*Vp{N+V`7?1;B8UVy9>WwFQ~T|7R;OA4eW3$Ix7`bG&FFcnKAGaGSMpL zoa0NyhaZcY38g|2AL2~@kCr{b3|%#ic#zVh3RNA%2Mb=5XYv-9cr_|*cT*oj84_qrH!rf zK8%C4YSppvHsk;bb(!Ix??YGNLd5{6u_df3rLZ zhgw>!iwf*uuroDF)rrYkWuj8Y&|a&Jd4*%srAg3NE6utT90$Wt6~X=z#R?|DmInxS ze4`FwN~OxP?>Zu<^VWo z;*QXU2yYEIh;I$BtPb=r6r$I4f#}r+qQlFdqPapZlpAt^Xzn9m$UK^R20k&*4*xD8 z*p#ir|5BX$S3%AVo8*_sw(}-ii6(1DX;&LaBGp0#40Rl-0ImLZZHN9+m>ZF^cbedC z+juuL3VBO)+jtlIRtqC9$<;V$+b6LdUiR82VP$f0#^>&c4?=e- zcLedT@I+XdT&%g~gb>pJ*>o|HAxA#(LnxCA>`_eH0*$_0q7})vAO8o6?4O|iqAd7} zuo1W5KPJZ;R(D92is^wYIA;P$7 zDFUEhqW=BdyTMV#Y}CQV2pm9H1J9DNRz(Tb5IA_2kD&jaI9G6f_VJNFSuHG%-|akt zj@^XfPhu~`Bj~@89dzbDWvv5*%MIFry`WyG-R8*4LMBpJ|53w*NCgUaz-( zAA9nh|0EbjYUfwerp-S&89oEA5Icu1Mh?XOB@sKvPG35|1f@(^A(Qd)zDhsj);8ea zd85<-L#+wt(S=CQ{!r0kbC4ExG?mQNU*Mqm&VLHE4=Gq$@Ka0|c76`TxAO;2kY5O$ z^1c5ed}4b)d+KKIm*XkC_a6_;52kX!kUB$z4+nB?pv>}KdTD#6jJ&fM7-kavT+Er) zdC}bO`_3v^eA?M@&WD;=LWC`FWi*;2X(MW>0L#@F@uyfm0=$@QHM>_{*r;!WdR8C-_Tz~T@bp(({pfiv?Jkdu42@PRwUO3t za4Lf*uuKk3EXQ+vMn@XQ+)l$6Dw65GKf)f8kV1!InrXKC=PjJ8ISH-ozC$1Aafw^$Q68AT)1iNXbyYZMXaJRdWfGc<762{144)m9r!NzbWQBFtRw|_g;HI+j+5|mDLsJ_zD zw4h(bJeG;S)l428o{8H(y@d}WlNOhTfxBrzz!fbP<1Qkm!2eL=-xcm6iW0o%f|OXP zcDWQC7UOSn2J8i_6u@3v@z(VtZe@HhDx?1LoRuV_O7$?@-miW0t(2&eflef#@$h9q;qfAV58uN5o5d*v{ z_0DuKok<2oY4hgNCH3Lj6qK-4a+om z?dZszduu247#NP@5Z?F&^^Auh17mF@u2k8=+kQ$^7H5Zj$!v-0iPaKubLHi<;MEFsqRx8&ljVai?eQPFY zxqQh&V|W%smCt#pg1=Z)IW0&P*Blf%Y;d{A@#)@^0}KzH8u({=`)XFk%FU4)CdA`S z4?c1PteE>P?BycHe|d?4zgWaLT@WMx6cjaVc)6(Y>z-5NEV4j!ilnIlBoNJdr!p0SzLfl4m!QTByhVw^8 z*x9La4eQXuwI)zkvN;A0mOh;knRu zb)lCW_=`o3EnUq;5y%Fei$Lec5-1Gy4O}&-=U9StVjb1LP{t7ICUj!`sqE8ieRbIr z`9%iOVIclixO%2VhA>r0Q@tJ=1vORU+|t9(w~JtNOGjJ~qS-;xu8C@+rt^}h=`j0c zUGkzFq$eWb%zI3vh%30?9yL26)?L^rKd}~LHEhN($&K2nEpBdrHpqWh82?1>F?Cje zy*tvFC|Bz`!QD2$?dcyFL$62cl4!L@KB%A^&326v;r zOv4|jhXbrU+LwJQ!r9QHC^XdH{qoIyQdq{qTC)6OY-D*?#*B#hB z#)~wu*$2K*tM~9LO(|@yoN$15m2BI2^V}z<8Jse(UFVyD0B-C!?{ z83CmqlzVpx`$15M{!-L9SzE8|Y zi0*NG^3Rj$7HeE&Owr-U)K`Kgj$aggt`5)A?Sy|aAEF8&c*;gr!@%A2A>fKWi#DGw zrh<=Z?EAyuqbS6CEl8om%ndI^n?v>A#azsnYE~}^&&o}aPELyaeHgf#A_QDf#Is`F z76u+g58h`{dYA$yMUNHocR>v8jiSUo;rX~J@$sCL_<9()n-T;A7?={??2;D!n6FkCV6Kj!WTXuj7sz zt-zp9*`tKwKEPTk_83seMEr46&Th0rgaQQ+Nm)*;kS7ND)$>bZl{!`ufU*IqhS3-n z24Jc<)*Zm01JsZJ*OH-aL7|ID^eI6xBq$gF<{Z~-S5`;UDlV4AV18NXqh30#RIT)F zK7CUODjl)HN6_C$V}BjO8>9FRl;lg{lo_jP!BWV?hbvj#25oe#I=wL}u{-_$aAs7Jbd7685eiTQd`R1G}x46tfA`)7dv4j9LXJ?xP7-N z=j*K&rk`YdxAP1zb`x53!jQ!?z^{-U90ZiL&j1^=10V5n`9fjv19E~c-$vNeq>z)m zAHmof-!1U6*BYO7+)K`gCzpK@dQ2&JYTDuq@R#5-@J_Qcz+&V;>=~RyzVl({o)7oi zx7v+~>eJaF26?T$rnEurCeXpeJwAJ;;jW(1@>ES;ebE&RMZs^-sKv%@tpTU*k=%-n zfL<``ugY16Taug*NP;6w9Ek4-Q}E>Q&!JN;Eq;MdOj@v~E~JGTPvJvM>#-1M;N0-( zQSNO7=9d&NoO|c2I0^WK#@HAnmGP4|e3V&Y;TY2dVtDf05x1B_YM+?`0b$*$x3zdm1<^Z_(i`-_DMk;`7=7zS+QbJJNoL8Sj;BZYT)RAm7r&*n1 zI9?24Dy%fw0E-_gO+sQ%br@U((<|{7Q*6+jpc~;JtUm@fgt1gCcxGivK|XPJgFHoY zK>AkO!;UaZx`o;QB5JuXyMo$h*K=y}#^$S#WX zVylI<_qq)t>?W^4^laHd=OCf6WfiTqcz~-Z)?2k9y7rSt*#R#-}64j{~)iPOnvDUCFFvKue*F3M>@v0s#1+&mht zK|Un>0fn*Q=92yr3Ow-7VcA=_mK%SBqY#X2>_84!R8^?1%xVnCjfj(RZaP!k@iD?f zlVf=Zm2BaB@ieY&>Qz* zWtHk!eF#&)TgJ7ikCWcEbFSX90dLb7ENx_H=UCskt-rJdQ>2Dk)v=-0B-FwgEXfZ` z8@Fw{hM7EA)@GH~PV?9OmiS$)mu!Ld2djm(PTT?wyU8oieknWX96a>5WZI!Rg@vQk ze5v-V!=A+VZb1VRqhX1rkd>@PFifIptkiqI)p((>WQVNa9{=!_hO5f?gwBWtqZP0XnM%zQ4;Qi@!2)@G|WbBkM zJMIJ}z~Ehb3NC`+k9d;~f5Lojd0e$XOT|7(n0+i&f*%e}ev0$rO2`h7XRJ#)8IwV_qQnMV zwjm7+Kc!Ps*X4jpi49_>k{d$G{;@|+hLhOE{SEs#_5*%Cqz*Tm4u3K{F|&z1bz?U1 zZ5XCe*lgOw?B-hS${iPCSSMKacB?Qqa+STc0s9T7SIoWPJG)+XQ>eWN$`+px}kl5E?V$9T3PV2cQIQ7-n$SYK%;qNHOB3^i*`G-C zb!wQVYIDMq;hrhHDQiE*dRlF`6N*Q2S)CfZR!#`b9A7H#yn;sHwg~Mll@!Pmun|`v zFO@Se`Pyzto3WTMY{nc&Y8TJWHXDa7`DR?jC$<^0r*1Z5Ihw+oalgpSg%fk+feD?K zdvxS}%(H$q*xoIfJFCY71yE137eESl9~@3E506)PDbw^$_#nq*1^+pJQylkf;utr_ zh4;f7W!nRhlI1O6>O_X^A6adnlp{+e2snP#y&}t~vB0tXTjBLKi5pk6!s7{f88ph{ z33+oExZ4v#z?CN?qw3=O!kt9!0>0y)4YH5uo9Ae$G|AyRVL)6Nx62_M zi9Z3Cy4j>Jxfv@Pu;K^HC#N^F;mlNQ?)ht8%wRRZ3flB=*#i_*7@kR1>MN`VHyGE%Ryc;1d~g|V zM5akUeh={1k|0v77QFcVx@3`~3;R=Y0w9CrbOQW}ed^zSajxV95UWCv(!alBBhop= zF6C~Nt#9stS#y2!Dtu!4CVT2a-y|KaXnls$#0HwbI>UuU^-aC{Ll-*dlf2?f@1PHK z&f&c@E2_2t7iq9OCi=4u(UhUaUY}G zSr$CU{JL-#QF<-!*}w1UdhHDy1)7mzETt4tmW!VSLDUOHj1Pq;<4zp@2R@R_f(xGw z19uaHfafH}H^W^-5rg+!lo-ZFmLkS7`dQFI{;f#y>+n?Er1*JGQv5j#+)WAsu1Jw# z@vVAFNHrUeA_ng}h8W>*&E#~ouP4_dW^9YE0xx@Q@mZy>eH%Crg!cm~Q&yi>*a^$e zIz;d3LbLwFiucI})vo?^#Pc@=W~Ah~Y@i#JbH>saY{|9EwHoTUdE zlC0F&lT;vNj#oobWkqm=vh(Jxz17K5xjthlV@2AW$~%$EjBTS>d%~>il$l)xo5b0Eaz-rdTjLA;JiLTof|N z2!0GUnomY>1qb9dg2#drj5C6V0aigH_*!ThZv^Asmd^+tatzIH1YZqb`#l4;WlKl= zcRISTKP4j=86>9>d|?i#WCV*<;kIY(p^yy>4b^fO0+&#c={zV$L#y>9G9$YlCBI+j?p(7W@$$ZdEJ)=q5 zy2y?veOKZx!s`AOG|FRj|11pLZCw!X+}6eaggc3{E_mNziva`t7*F~JM}i{8QFPma zwnS1C5%=D)Z^Y6tU#c~6ZTzYJ8V%%9jo?l8!SDs zGK%*-Pn6+kb%R~++=P-NrIB*G%>2<}k@gy_TIM6+MdCE^l8+FR0&dFGKBTN`ff9jA zNY3Fv3MA(|16g46S@56h@rmh)?5PVqQH`c>at>rlk}kyWl?Y|##AZsGfW2BGg?s{O zIh#GIml(1k($hIPkeg-?MP?^jKPVP^S&+rT+SM(xZRhXiUIWg~#v!~xCa9%PIg)L( zQqhiIBU5qSCJ_^%I=uxN zECH;LGGi*jM*7VFG>!K>;u_B9d3>m2XnxP*LxM=LeR$+~JlfHP{V91KkwJ2L9v9|- zN}fltDg>|k_jFCG6kC+LQMTuC493Sb%5i*R8YO$`LZc*ItZ4epW~phl%X_A3W#)Vf zxE{|JwqDM&H?;F>z`M{YPxlBb4Z7*kOKX;ET=Ny?kNZcZVLl6}R@8rYgKXQmeLiZK z8V=`P%Y3CoPK1^@1C8=%nQsaMcWaphJhztl-f$;TS|;z?za#01F)v|A@GC26EmJXK zax)Iv)-tbym%Y|9Pt0Dpq-p*O^q$f*-Rn|ln-9wdu4$ZN&Y&4R9jBjDYc|z(|ElTS9CtTbGc(^e!X*X5Gl4YNqXl(M;G>|q<12NF*zCwGzALV#}&xZ zfqM1K&K+~Fe+`SnL3&`sigBBR&kAl^^<>P(u#NPMt3p_3sX|!dR@9g(SgH)05?ys` z^<|g9+Gn+}mdozc*^Vngh+sFNMJQAuEOMX74h|9u+vTrPG=wa^LyeaT|1Xr2b!p6D zXSYIB@&W{7Yk(v0vez15h+TP{?RMxjrTLlDCyg(8Eqn^wBP)C_W&jK@hLiE>b7uT( z6RLBpraf#!m~hFqq2?6a6~t~Vs?f!m8)a>yhv#f@?@hP0v@x{H=nl{ddCH)xh`Y1r*^5SFo#N-8g>Ox+q@f41Hom{Kd zE9K@;W2y}mYy(b;xLUvlRIk(^KTH0YmjSk~-Cr7ke|Pqmt}?0>s)`(|jRwLcVZBuw zz_%o&<2QhB$hMuA&%G=hnTBX}b+|QfAwBQ{{?_!_rli&6JHo~w!;pSfXCal1P)Bpb z8>kx8*4E^&<@8;s^Q4^o92$l6W+90%^z&o(trmw{G?E&de6_ZNkBYF%t_dmop3xlw zjS7!$;ZDwN8sg{;Aa18NwBw5mZCy7*Tgq1p(OMheRbqiGyh6S=Zgoj`wjg{c`le$O&* z*x$pAsV3Zd&=@VXtB|<^2|DemCX|teKT0Fj(a{Rt+FgaK5%CMCG63g4+LZypma_s| z?Laq#xzMSz%xggcqwFS`nXUJH`EH2N!ryq88HkDO6AW22xm>Wy0cM4qJA zm)w6KG& zkD4e|kh~KbfzKXfo>4&(U+WGoqi6zE$22NPE@9IW>w*4KMEHaSFRVLL4atwOvH3sM zW3ar)!Ya(@yKb^p9j>-#p08YENfpZ*V8sMDwgq;>O!6s!trt1OeJWi;Qewv_a%dw5 zu(zai?@hPrH^@1@Igv%W!t_=cvjO;JfpkT$OWu@$G5qvSUZC^!?9)t^UB9!`SDzfH zkCdCu@-$;xw)Fvrg39mWPocb6s>%boPi-{0_|);uDxJUz zHTIXe81i?FfMG1gG34=Ar5F;u1f*eLB zvE)uRO8=+bu;euWJDVjXo(z_>(d1%D$2Y4@5-X;(zs<#z=Vc%#wM&MfzJYJ3ug$^g z6v;sCBIHEH0ZA>%>!3ZBQl)rKa00cvdWmF>nJDl)pOyBVFZ z1l8cg8_PD_Uu0;lZiW`=#=g180AI)knC-@XO&GY_jZMIFy0PCH?jp*K&3pFCvmnE+ z(snFbXo@?QupfnvNPnqK>QmuKxJy#~Q%)j$EezaE1Ol#zkWrHAKf|3wk%9LeLx%9T zW;8)<>d7`7v>i=28D91}nqXZ8u1hZ-OIWzu5lb*6nusL00~1^anE^GCB`S!Cfirp& z5hlk$-v?hd2{sNmZJ~x5A0os8DwERi^8T(Ec_qxlFKzAYH>T09Px^=qFxq9*J|s3! z7bdMzOb(9Tav;7Ggn(vw0(8kW%MqnNwo&vTb))cSpnRVtj}^r zoO;QCdNoVZhy#fSRsu8)5>9^imqyFg8Y?y`PC}@puvxnu@m!1FvQxvhTP;j|aNM05 zhTVh=DIpjzHSBEJLFbma*VDbndpV`VaSN3SvQ+%QwP^9DTGBh^d|awuSb_m&hOvXv+r-#7rTxcp$s@|>buxB;YdT^+obcO^Pg|-_(TTHeXW#4LA>I%v9DUrVz ze-aX(|Di_uydoogHt#*N9Oz6KxLe>8a3%1AwOQ{7cM&D-dCy@Hj)F}QApET!K^0kN2XCC?;ExaE8LG(?X0bA*@g zYt*}N>sY&~6}~4g-#=rc{9eArEPliS;fg!$D){(KW)*z=$W;aZmpC9g4#7H83-#B* z3C116{W-u2?KFX7xPO4AD(0KF3jQadm3bV3%?=ePs|x;)9YgaUhxh?}9jWE5Oa9Z* zg{=^h-x3)lByMp66h!zU`?M!PgpHPzxOGZIehnhT40v5g=Z9uKoQnOrzWFIKpT4^>L zO(B2gykE6~&W=JWIl0e-MxmvG96-#16o_ILwfWm6H4rK}xjz@h;$)79y;$sqW>48? zXLiF>xG7S`CuWMUr!Gv9E}h&PxOzAQ`6X#nL>eJy7cfE)q}LGXylmd7&V0OCM`i4D zHca$0?3t==f9aG{_U;#!l2XT4DtwEztG`mq>KVWx{yjLXmhYEs=P#Zu$MzZ*`bg(~ zo~S6t?ExmqbJ+_om3VNOHXeK7#n33UHR<-k3)r_kuovzsGSWBk-ZSlm4}^ic?F9m^ zG_s(*@ab?DQT77w+1y)oMIuOm#klND!{P zo9vTcYWLkFeWPMlU^}%5{chVy&;Ho?=tT<_TwZRqN@ehgHc{h(Z0T~TS-~#pSUVpxW7#=>fWcC*huN!gX>_X2$`Uj64%J0e49CmZ z^X`G&s2f)KaWYf{S;BU$vA+T*%W9QiGbuF zV1ziX$_T>c*9Z)kL4Rapmzt&o1vj0Hh(l|;@#o!Ib2irf#6JzOFVWMP8%8g0Aptzvbjqv2{73GAe+A$Cp3ZdQO0ummR)f;R5^zMN}W`2G2U+ETwHmYhjh?8b$Ix7_1VlzV8Y77zF2Pd3+4|)YjX;tVku{RfsMt;e_G?yx-KK)%9yco0n@q*!80GBkzYg18q4QXuX%3|(?# za|EB5vB{pgFgDd_3dg-RPk@Ljk5z{DSKH%5P&pXRCQS!S&$uFCF5rG6^Z=Axq}#~{ zp1^M@=f_puqs}r#&)yFE65RS%Z(jnH(FR;V`sigps13D7({oyQjjO5H{oFq)75B#A z@(kOlPnT^EM5WvqQdrjNgB*Be2-D9HFQbn*CY7~dzF*sse=DTEOd=-2aJ>Z@h4vTS zZh8^>Rx?~zDh8p6r~xlwzX^t*ztmvgUSzO$@&PClZK3<1?1#g^-3A%~*KF5IVV#Hx z@KdvD{GSVV5oNpbp8e7xO@r{artPNIOVYtX+qPR9UiR8{v&yYGw+e2>{S10fMZVnI zhp^|YYy%f?Eh;AF4Dxh8(adStS*K_J7fxWn!9?)8gZ|H08QkY1!pz%OEi)qnw$KUw zW39TUS#C~~X+vWgEDg3M!4rSoPL(6$>=i=VrLDPzUM^q60aP1cBHP$WGfDUK)?r`lA zYxu?$y<0d8tj?o%hrlOV|A*i&J*s8)7nnLsjgLk-GjNl!c94diU?Cy__ zk@;hHNE2px{q=m{J+;f)yyD;YG!1$mOolY*-{2!ZFP{#2XU7Ni1J=Y$`YScgvw}RO z`yp|h6eWBFHd>$1Z~_0xYctMMucjTL)CVk0VFL58v{Vadxbkl`*2hJSl}-U(42>Me zrt!7DmK>*T664r3V^{aO9I{}AT?TaSZx_PVABCGQidk>9Do;BRu?etz2;H z5{Vh(+@Fn@9E`gz*`6^O?3Lo1$U8aXo2TZ0O7TsxTqIYfEJ&M`$@CPG)!z`rD~zKP zNV&w{x#{^Dd}5|2d+NsYHf732h1e#7zwb06JwTQfMwEIaae z%Z>yjodTr>TK%QkzS`Ea(lN|K*xX4XMb{0;9{!?D|hTr?8m$#FN13Ai#L7oH`? z4o_<2M}&b#8IQcr7^H{4HH}BLypnqm-L~=gc6ixq)Kkk^e+|Vj`bCbtCfSXbOw`P4cKqcBRL-3(jo7 zUS)t1v;t=?wwkPNLr&Fugh1~kT(?&-4r8bkqa$npV&h8xpjd8ikmbUHdrY?N+&1@$ zkEaA=8VPK})2cu^&eCdlCGn-CTJE#7&z9(L%5=BDy%8FPma8sspU%G3oVW7etP-~J zm3@}>RYgYk@@_^aPR^>qi8t0++PjMk?H%0=E%Gew=Zg&R(`Zj06%ddy>{LgJVOOOWn&OV7{712Ci9gj|^_TE8+zafFImxiPQb1cI z;2IfrG^bR+f&HPzzb@QG6d8EWF=PmTYwC<@XHTXP>9)?e2VVACXS8k+Ozq=5*suj~ zm{K6q0#0a?)-8fIP))TI^8__&g!s&ui+%PjyC3ZikN}%5;7UKF?-Ui6?_mZ8W(U)$xs| zOsD;2E{^+%M|Fj#P+yJn%c~auZ;7J=zE}nFJGRHt)12d`695%r6l zQNeo~|NbvpM)4VnaDI|qS@6ga;glOo~- z|4h{Eh$OdQqx>XMH8_zq9I_JDp!!C!%bmH$*2QL`^_;z>yphq$zp3H6B@VbF$EU;r zh|VYu2=4|I;ui*v$i50UB459-Y2A(bxbhGP?W1zR{rumBNpU|vd+Nf^Pag83bvidH zYo3?MvabM?$C%HJitw9Yz5e~qE9Rlk8xfHm`9Ieecwl%8mYPgw1srDMi>pKSYqk3C z2L{sh8FSTzLk|BX+sah?aJ;$6^K%=|?hb8RWf&qtM&a(aX;#jxEJ?|eac67F!r^Kug5m0{p+A`oyzgpA^yZwhx3MF!q?3>m`TngIv3 zuP2Lf(00J#7qIX5I^giokQAhRmCwLnQsD+$w25GYH-f>{6M0fy%n+Q_zb1L+3^kZp zEZ!=eWR`hr+AmT2ko-VRnRHGuImj>JKnmoS{203Adgo8@ ziRG8Dr!MqPHJZZtCFj7AcQ|l?mrsvY$EM&GtZJj)8XB&((ut;4Vb6=Blu>U#UcEFs z?_`t7_}(rcI)=QZ-vT{r1wR*#o4QPP!Os;|3sa5s6#T?)LKc}2CRp(E&vLbN-aPlJ zzQI{geMsZ80WZbUWk8P!e9IN}z!z%gI4+3nu+FaVn5;)Ic0SG`;C~34mh}hM zvI81iK$CQap0gdT5#GJ0Mxj&0p0QDW@805CwMDl^D2>yu&xzkS5BMFS9q_}CTqpdd za6o();+-je*&m!>Tz$?KzzV4>fg^s;f~N6D{BQ>_j`;D}A!l1>{2Gp-`Oo<6g|Gdd z6XzmYmyA2Qus;>S1NN!fP3?^sCqVT%cjSO7{FTK z_+flvdLw)4LT~KSU%3fHajP=aoT?A)-H(Sg(yF5LSjOcf+km~g;ejZ(;H_Mq9(C4< zrM{FPHt~ry;1IDwZ`E?6)1C2s=ZMq~Y7hDsi*Zd2GpzJ{Rkoe)IJcaY%LNj-&{u9r z^M^jo&*ZJL_X~*xXGXN!$?+3tWSnwZ%84qJ5b>v?(*xmd+>RRFjejo^N+(t){~;Ta zNq&6`#cxf2h9ZCR100?0&-eno?6sO|xgS!D%@Zh(tva;R^ePZasg*!!1Jx2J#XJFD zUnYV$by3r+@$^c)HPr;&bGXrLR)*V9=m2g+WhZjz@^dh(q1>FT@HSd)!f_n%pJSmu z^>MXcZI^4+r!zympA~vQ<(7XiQe~C*%FQZt1XbtSQ6op7#9Sj z?e*n4|lA&Cr ziDWw;OsS@Yy38MPiMzcL6%pcY3>w9WyXkN@ZgI!E$tUiH*^pwyonnGy501_jcaMjc zy%u*?4I$4O;6m><=s)F>@vRFX`c8Ifn>I&j0#M8xHsilSB=Djo4XxPb_)_LiH6`FW zHga^nR7wgumt0~A2ftD4_zvn;7)^c>YEG7eWYq#zZ&z4NXZB~iS8^xzzds6%kg!X(MJ~8c?J$0cycj=)Tn5;G0L-O_-hl9$BWp0U6oK5ImXv|jW zn$)oQ+8m#QiwbuF?Tq!eLsr&aSQ6U+JgJ4Z+iGF0rrl-TvjF@&ekF)L>?Xwb!droH z%N??V&Yg3wkqeH{*l6JVHk8)iGu5t)TmVJrdF@+^X6eY~;i)gU$1e3=p>|5n+@*kr z?HGl%q>W%~Lm?_k=>(>BmEWXcC5vNYEO&pmf0lpkWWn66Y^8hR4@(aW^zXeU>W1F~x7_rS&8u~HC%?@#X znvD>2*FzSRuGX-C?{&#(qB=)?*xw)kj$x}l?0;FH&BY&w;9s%fn-Fvf9YFA(plJ^f z?5hte5xb~g*Du0&Jwaz-#{3rVyLfrcUWw@ya$#zuT#LW=s2=Z80IMKFm!N46@V&-` zmLO*@yhcNYjejNfF`VuX?tdc4v^vX4iM1~ISO$0Er(`LsU+lpQJv?>$cx8Am#@=gF z6LoHM!Koff1Z~u7)9@2qD*#^S`qV_FSsgCn?FTKakvU%8SE+AoL-|Z_kXEjntW}4r zZD`QiTb-P&j0jrp>b8q}Z@SIjiQ?PB>D?-aNHfVkDo z?O{jP_hj47{6)8wl=ff`5*eEGyO);o4>|hOIZ)&E+K%{BA@l)>6qiu(9HqS<8ih<1 zA+#}t?7!HzT7E%Xz3`)IrW#^xQtnK;!=RCoS`e%kUJ7^NPAlMD_?7-33JRoHoD&|T z8xLpNcn~RsIL-yqg$YgugX23e~brev8a%t1kZrFMF-J9OK>9=%~vm z;3=iE7<-m*C9m^>(lRK-#9+OA7w4Eyi`npamh=m%3IxeZqs_)dsj{zJgCuJfE^pM} z5-72s=K5CgK_kouZmr@wL>`z$joOEH3ADROs}Pe0t%3vbX%&IQ_vb;ET&MUOd}2BU zd+J7~kfSNAQ=Br{tbmC-F|xDuF}?m*qDrWY6JSHoS{oE z2`hREJIO~7Oji+2ComU5E*t3?rB``_s31oxV<3I|C zy+1*hTJ6@3BBPL8FjvsheLXv2QgCRHlY1J6XQ6Z;!aB$mq`RW^|%-lNy|OV-<6{rpVBq z($&ze;(M|-G!Bci}GFmNf4|X&3f6 zBgD{C*}Ye+~I_5rv_)`q4m?biwaNio`zKW38vGrzlR%B zaBdrq8)8!UfY8U{8YwaPGa8s%OuCh;`6v_t$3Ip$PG_I>@~VZuMB$8*&;Epsg2`t^ zPGp=0Co=j*YmIVy6Q0a~i@+;Q@HXKY0el`qrGfJfM9q+4xJr=oRK~IOkPc-t2b~UB z3ys*R46~L!zScw6MuHVTie%pGn{m~`sTRDjZco+1``Ot1pXvpEV{i989boIFeR2Cp zU$r2yV^j;bk>fgB;rJ%*ss$T>e`l6<)VkzB85qM)>5Rn@?9Hkz` z)Z{|=IO3{>8{qS7MwNIn7}Z9Ti%}ilc&=Kozs$vvyE9M|&yl^nYT<4eoz6#o5^6m8 z4mPC}PvUDGR_}Q7(-!3LD2XRO$wuk_v>TrMEWpm@Nr@+eCv7yjc+&BW_o@Z^+gx1v z)(qstbLBX2Rz}NHH8{lp3IN{s z#`Qz%T;NL8La2}WE2SL%If_kagZ%@;M2ea5brdr%#yN}e@jukaj%t|D{9K8MCk8$o z8io85-7xSPfSt|295<$(gZa{Aq?xJHrxckZ^>AbAoVVHOa=}WXYxP1Q`P?D{IA<1- zyfp&Jz<|asVe_ABmvDS@vNXojqH!%Vg*6*UuI=Og*zF?>m5#Em&HeD__xc_AC z(RHy|>s@E>*&k!%3JVxwf`82MDKPQqr3!ctD2p5R(=7bwjz)Se1+>QFUc@fC* zK=XqKyY7cc@n9Ew>LS=h;iICLu{;d@9z(Tiy;5$b^E+g`D=xD`gXs->b!O&OyogYc zeFw|K(~eAmJ}tns6>nKcSA1G!V1|d|jCX2%A2Auy+rm+~LuK1}i)AZO^avYwO!yQE z$ZeF9j|j+ZfJPyqq(?4}XWteK$emYYbmw+6IuU-;qFy_NXouev$33~o(5~!eXpy(8 zG>QyxFB_m%^>X1>Is2{J>~9DIcgKDI0+o01_l*!mVMX42X4cTG z-0e+j|E$1P>-&8)OQF5wP}J5Z%drv94!T=nDcq8jC4p4P4&p!xWCwi_y5tJem+*;Y z2eGFv6ecyA!r4I^8Ar+c(*k-^+zoanSg-1ooiSux6lcQivt@06iJuwTihi)P(sG#D zTgL?o$4v*s;W)YNvX7cpC1^o_#sV@V8;$ZZZ&XjSRRc ziy16tf2i@lJlsVT8F|-3VY;f{u(w4dYX%*NgZiqN%``iM0PYpj`RXqzloX$ML~Z7jT~7}_&O>Invn&y zq-nwn+b|RdT?CCn+KTR4kIjNw2C#LXI_^a2EGUT`BSdE-#}%S;e6yI*Q;84z6aR*e zK^b!0|CG@yjJ`Y10A#OAe#Ab_%yXLE)V!@xgeRta6eB#K)y#du*S%!QCtC2rSS6;s zjE&9zsm_$ivG8$3#?ub?Jew&cb_}Mpk>g@Y$2W1Qc{YGtEc?g|j3IZ&v25>B^PUf5 z(^<+-R~#j==X2SFQtXMZby$vYqM6)~J2me$7Ub|KiBVt0M(O{w8%DhyU}rO`#FN3O zHkw?F>iEW!nrDBRizA<%ftq-Z>}6`+H=?LbJoyzir4&!%>)GMSpIDInjE2}Gp1hBZ z(*J2UJoz(#oz0UHPXrKOzOrug9c_$i2BbYIa1Do!BTp zNtQ!yeYx2zPc!5@WF@RY^^L;(WbUzbv6*N+XKyJrMyoK}5(iXsd`cXE=#1ik@NPhf zH^QhE!GUliiX{mzin~!C*Kz}iH>d^kIMVB3Qap~tp1O!5b(wf`LbEbDG_rG~9f%&C z6?e*<0D9v_om=Kl%8eXrRuL83i6^jDhn%@|tZKQys@PD~3$=hh0z9CrB<8{i$EQ9h z+s;pHT6r~#5ltKy&l6&@qrFtVa_!|>`a)ss8*-$RcnSF++i;Y5Cj8;IsU7V`lQ%0J-La=MSt6}Q8q zRsrh(6^&sy8rxuMMn3(cD;SDj{!GIb`?a~k?BkH!9h|%m8}U?w2h_CFp4aSr>fASm z9oY`;1ok*d%{UAjtrx=u7EfM#hOLB}Nh2$96_)zoG6UMN%u}VorFU}F5Xlxh5gIvs zs`y&p_#8Tq=^tPv>`8I9YW1IM!3vX@tgmy}xcr~$3RA2lJPPC%u?-?>UP zjZZ8!hdp(nQqh`%X%tS)0ksP57=A)ytcPk92k2L;Zk~I!s@51A!@E;pqWFJ)HItZn zb`o<+1__)oRiSTOmHP(yC8p2QmDLNi-QNlvpzkZ@0uL)xH_Nu2d5A|#or=0lO3f^J z9Zu5LP@WGjXI(=f;&Bb-Zs^gaq0mQO4MlPXY-y})xtI@VC>^3-j@-!=jF(ElyFxqH z-Y9PRFhPt`9$tuzxbpA;IU67{+GnGZl(`!p+A*v4@70~ocOkO(nA@F2!pnPn*Om*t6Q~evMW)!~X=Flx4D; zX1LC$`bv#DyEu^*Ac6`7P|O7)0BESg4lQ*#ekU|IpbNBA%iwWgHgaZVCHD~-VTO;P z_92!)D~HSqfe?_S97q94T81vUB;A8gOp>yvZX~H3O<_rT0&M?7=tAk4Ss?)WW#|0y z)~c~)d20tv=ay)QM-F&}4tB->{(vI6;s&jj=iI?^(OPWu>V;zQ>w_#FmYdhfw)4oB zt0v91((#+5#5gebNe&lE}|qn?>V1@Pm$rM^ioVwW3};(Ad2-? z(dIwHb8~0ae>W#>eia7prVRnlNt-`~yNIFUAx;crdtOYLCE3vkf3_SJ-!z1F_0 zAc)+rxZ1UTpF{0Z8@JH6EC-YTqA6NpKA?t75j}D!S{nfpUV{c<56rg^DHgmkXt_SZ z?nQ%}1_cl2{$6qS$uL8|v&(ieP;8@3)PdP-p!T7SQ&XzMrHny!>8yt6grmxv321N9j|zfyI_-1}-p5Pt}VR^5X)3aBfqM=mJ0D%^dm z2A`#6Sut_Zux|wJt9Hc1#qWaYaXE4{DX!ibsW$a%=9^&LEe|T1*&Z0tZq+CcG26NUJYK{{vd)F~|wz15~O;4XAE)rarebdudtriyd z?JiraJANfFD|QnKW{WNB68QEW*+J)R^H}nx$OZudCL~lK^e7kKaJRneC$%^HNTR?c z7Q&KMp)a`)!SF#Tmq1iJ(g{pi8_7RG54{!!)+Ndg9CER+c)vp|xbP|jM4p8wqLl)5 zz>l9GVmM6+>p1SoPpGy~Sk!7I8n+=h;4Wq3o~OK@E6!LAla93{4#H&wXkSS)1+*8* z=ZZ)iKQRiYl+krOHp-tkzUD&E7OsYDuKv>bLX+UP(T^(+!{~y+$>{}yj71gNVAq1Ht&adE{M28vUN5*2HI{(|Llfn_6=gfXr@Y%fBay4~5a^kA zJh)r$bvF}5$#b-dx5-wVI^V_?;(Lc-!mV|XTc8bXD<0QhSHE-;@-E`g>Ui1Cf$73MRYCA=fonMSxyv_A9v zccfu z1MyrKE+YVrVJn4h*aB@z-#7#hvEiE#bm1L9@B}pN0fO1&LWnhMHiz+gf`(Vl{1)%K zF#TMG=@oKeYNY&|9^(72i{ty2-r#!;+Y>Cb1UY-*H5xK({3}HOZ*59GxD1s6GeS6i z53J-ff=IMlh%@7-Wnc^0hEAQ}UL4Xc@lz_V{LmawDOFMkAfXzYv$aP}@l2sCxEp0> z1$`OD$4#t%#wTWCv8OIfEHX)omV4dU+FP9*nyfY2L;K22D3@>8FQv(5W3tk0Pj8y( z#8oac!Fmm<&Ku_52#|3`xW>3vt1vsiHDJtpz#e|A1I|Ed%HTWe>Ma}E;B+1=Z4?OJ zxUIjmWu(#?9s<>Js5Mz0t_+ssSEY^HwvlAVGiaibwt9aG45dq@Y*X*IRtrm1xJ^Cm zCbSrJQ|~_6!9hc1%fvg(W&^x`vB42`7EaFCn|$&RY_cv{1OJ0;s2!>Y zdHKS^lGekfU=QPNzT&_QRf-?ph4C+D6IW9>JKTXLqI9*9E2dIyOsc2@qFUK5H^(aN z8R~|qk*&$faCNjgJoEg{3ecP<8Y5G+%1knjO+dBfs`SkGwNkke*zrpd_rlO9t(qp^ zgN4&;yW5Tsm>U$gxpx9$Q?6K>*~#8co`UQ^*}sBcflKbCMenqyP1oy1<>BE0 zHV&B!ZDXlATB_nT%4l%I$4E)yZYwKr;KdZ(Ocyc1dBD0v5hv7N}P4SwRo zP;pSluU0ZPV@5H0khuJBHTHXgWA`Lue;gX+Nyh$q7`Qtfh=40+-4eEx#2n}^HG}Vm zJBdmN;(aUeAG#y?BMb@FqR|u{)H2L~uanlQv*d39Vy|_L2YdD@x*T}Xv_s9%m|S@D zt@`hBU1%|1!M>n)ypTweL-BwV>h@H#PM&<&Mb+Wx7Gz&TwotW&c|oJqu_-9&iHbG( z>k70~OtT8+t($0mGHS}i3vgOonOIKkb1D-8A)rifAUixIQM_Jvjpi*?;L9d?sfY@Z`L=-f5Gbv1)8NOY>8@DVm=ik&0< zgW4FLA}1d&%N631oe0L3mlvDWQrs;m@Ic1uraVkVd_F}^& zydAbifizgnXAv2k62uAxKTHb+<4O(&g7bZ>_~9lRh}c%F)uzdNB`6NMWdjJmK_PsW zgTOC~!YBoSUy65>4uBQXW&$zFe}ty-F-qJ-An-R3fHMgEO$)TS`r{D%H8y+`f*#unAoxF_X%7(W3j#~TnnB<& zUJC_*|3_ik83cZyhxop~IKCG@y(jq29R!vHFoM7~{*~|#2Z7%dM54}eQe>@5UY~(2 z{FH*gxEF_XN&J+8z&GcBNv#$*AW6j3YWNYhb{iVH?>7miBTShUk2hNAmmRfmY&q#UOw)9bs zqn(r!Mu+EDrD^U04%Ee%DJjD7%AK-p=U||ib;RS$F3_)hq05Md9O3F%i1~hPNB*r) z-;(Ha8GRlnXagFB6eba6#G8@!vTwEXwTGE}W{=tV^V*L6TFu~vMP~3f-OS(^@5-^vj*JLsu=kB*D=!gI@tio(L~{ZKH35RJxD zp^ytzg;%obM#0vKlfFnJ6%zVg-~V4+Nz;@G2{$cm@2v_PK-qo8B%0(9SCxK#7+F8(mbn$ z(T@${IIM*!^d-k2n6CW4PGFjB`9098*RsWS)uwUCJ;3L{>{5cog;ya}@+>?s8<`ha zpbq%)e&WYGUf{eZe8|z0_j4sR&JS{iTWTDH%LvfEjb;jHpJiY0lcI1+zThjd(f>_f z@U=K~w=cLAL}i?-vH`F{rcJ^?!cU9ts66Fit%SM>?1><|&h>rFJzYGC5eZjA= zK%2T>9D;9U!#5%5J4gV*uY;yNK(NmjED>w^g2Q+%~}-fV8x)0fmd~0>QSvDQDZ)m}(n!f#)DIcRjF^E|aniy_2jKmY{H__+U4orKlTv z$H)%mHI=P&+?6^Da2c(?QmXo(oSw^{8#dw;YLZ7G7~6q1M$N&9M@bXA=t4+4n2wx{hvdU6{g2kncX&y*dlv$U|EkF~tA5|HMK72FEgSxZ!L z+Rf&{pWAu83AlQ&v~qB= z+$>M6V;KC8Y})+hE(6-sb;IX5B`Lctt`8@zckV) z)gcXd3QibR+b4*1Gw;W#*7VB>`$7@%bE(w1)+a|}Bko?lRZ=h9lJp)yY;Z4gAO+mZ zZ-*|qd-)ys#B?9_)P?S&MpM|myqRtIEjSxIF*3 zu5_QAYP?RQ(3JcT!Pq)cRARFem?nrn3O)2%5ZfnijWs~R_>dbM!q~>A5Xf1J3U+qp z%ogYZq5N?oKn|h&^k$`2E$^vKGa(E+A6Cr;VajuUN|k*eOGlx^mC}ddTrR}nn$;1g zt&3lR*riRgBvMz(kWe&jGy}2Tt~5uXyg{pUG6?4D;I;$7NC$EVifIo8n&_sJwE<`f zpC(HGiC7eHzJl6^oSE2?M5!PVh*A!ufGFJnU2;+SFnnU7ls$DLO66z@i_#N$&Gw<{ zNT94psnt)$edu2$={DB{_*57`1jmDiKnJrg=()JR{hJC#iq~H-am&LPADRR8(~Ig6Gd_;BB#pJxpj3F(p0^A?Gza2Bc(l19(@GwOsbCbwJNny zo;?Fmx#)I^U*1il6IOz?g=zeviTp=mBW^vvL(VSTl0?2h28etP#3%BDWj;O&opPc7 zIecP5pFMRW^yPR83;jpYhDSB3sueIB(QPwQ8O@9*JSHxlz~!Q&BfoO+=DAl6+T}e{ zHRfj;*dZS&yF4(1EG6M=%RT1>b-=2F{D4-4SXJ4o#Lul3)@pLA64*^%RpNWHgU&(3 z36@H6tbc_G9V7IK+V&RQ7_xN2Aq$1cc=GF(g<^OA~SFFou)X zs?|$mvCh@4AehQgf2lq-QE66(hZ^*K}2 z^%0i2FOY2yMC2ffEKFrl*HUaWDvJ5h%uuLbSJ}Oy@J5L=muJPJD7+3D9 z6bN{3Md9P&PNEbA-nWw7Aw}Ue90@AhObyA&MIgG zt3nZb5p@aP7kpIU*N4Ho3CqF9%s>3CSqM*Up2@3`Xv|tLS;Q6OQXM^|Zja=47)WfqO&t;OxevALI9aYb?T3FV!+fjwxL+tjZ+~ptV5PIP%WcVAPu(FNg{(&VEF6dG2pt0z^oCr>j*)i)x!&X ztoY%>G!WrPwpN={J{)w*1`z%Mh45KE1NoIGjM5p%FJYtqn`a<@j#K9wmwhSPFN3Iz zJEHeffE7|=0!Q@z8=9)vb>2(Sa2ts_19=}CVfqXtzSoncj4*wkdU%K5Br$9S^N++| zv?9Ca>W@S4YJgP`!Rw%D4-m{IhptcSwmFGd^9*DduZ7M)o}n=9JOg=F5Al6^aeSZG z8+_+J11Sk$oPo6QuY`a24CME%^PpKXr?!_Tp5;=_O;e9>_ zR5}AG1dtH4=4|azQ#ON86Woom&p=)egyyEy4fw=NDfZNbDMjW-(M!?J1hu5zszP`s zs>)1URXk@OT^LkW6(uM5xwNWY4%F25?QE;+@2wWrN^o0M*iC39h!b3xSM^faLFb)w zp9msCG@5ztyb;DpxwL6@wC6jnrg(l;O7(jrF5-1k;s~}q=2p(7D8k7ChrppX6IJrqTzSjMkm8#6bHyUxroo7v-CB=s zyX&A_Sb+I|RhXY;LUGisG zjiKd_pOW!~dvQqR)Qqp6=737Zmk>Zg+M2VqM@`0;&==f|vW>6515|P2>(%(gj4$?d z;Eb>1rzW8sx8vZoOm;d$XwtbZbK>B67rBK-~OZkU9h@o;I zjMr;B;!lOkFG+m33@uLr(&wO2Xg3m8EhhBd!@kwBtCuhapb4mCkcBcA1fJCR?hB94 zoeJ`O-lsytV&pUt;NgF$E`As8!krGnyYTOVK@=<(%%8%7Hzj7(vrR3^QdHb{SO$%Z zl$fP_%?V71KNT*H33ubh1@9&X7vXQs)EKp5lTRU~?9`aI!OLD-;A>nv7@dlL)c;rA zl?TaDmGLBydv|j{f(p^am}H}yjRh#l5^`-oFp_X2BwRI_o$1}_PS3$~57|YaRDvPU zpvYKOsT7u0DJnOX7G;%!5K$?LvOEwFxfKtTvb0J?EPvlSx_e$9+ugHaH-F@p-Z$^~ z-uK@7zF+t2{vK2mxaF2cO5S5H4y(YoktutE1#*v=exWzjt)Xd_Ze=EuK4ix$*hBSd z8DGBV&D`F7^a3`s+jTj%iSl{_zd3&3L+_@IyTy2*7aK(RII}>^Lofr`X}smaE6MPd z%SC9CvxAH2im?NB)doB8q{;l2OAmKnx#DOgU)Bq8??tc6Ko#72qdCI_gsGFA?b{-H z&EJVuR55m#I^_^)rF@Uw+r7KDduNa{%u{m8RS-z`X1pCcULRYSx|iBI#78Y9MjEo$8V>pXix0{y_U# zG#v1*fmJNstnv!0Vg!8tR(2Aes!aV&b}GkNJK4=1j^z+mjR$S3;QI@FDV48NI5(|A zpMVq*ZiZe;-KVo4ZQc8H(-d*rN(d4s&C&Q(=&i|DM1SN>w!#d^N6 zOA5~|)d$bbE6L!w-$aw#bN`pFnCE6!?Raiin#`X217iLRX~(ve!f*DVP*T77K9<+-H@5_wlSqMc+TwFgTe66@ zu`SV(y7Wu4h_<^e(UQ7!JBw(w)S{(v>D~%6mXdU;OYcD9c)N7v&D{{g!o7MEZ3n!1 zn6Z(LT?tnmtk~zWzUpr@Bv_L zv`=K8vWFFD-I073itrNsds?%L-210`VXBNLNKo!PT_L>b^JHw_(``^bj=JL9LCgl_ z(3V<9pc56&dR)5=3jhcE{pL2m!fa6JDMuOU7Z(u7jE z+zF#elyE2P&IGlJoiMp_q)CXj(Z1(h(lCV=8ha;f;eN@OkD)8ZnAueuj9Ku^tgj(1 z6GmCD)EagSPhOklAs4H(4Tc>49EpnxLbo}J8+Z6SB^^U+qPMzxF%;4BH=YmoxMiKs zPc}X*l+Or6sg(%}#WBtJzl4|1i+qo1+yMVAPml)Oey3o<8&D|D^!cA4oyPL|neb*l zjy};u3YhR_9}~VLi)g#r5-lkcwz7y;ZA-MIO!&quq8&&rTC|m=!EfC$^46BoPtvJO zcqtOcn+YrD5ww^Q&Vj#;Rs$Tk)wD?Vs|08ESLWlrvTyLD%cz^<$$P&eDwO^zfoone znGG3qbf2fA!_0Vpno4C7HtNDl+>HZ z#(5;2N=f^XINp?0`OYV5C3ANAEeH@`r;)2$64e#S%!?QCM|K{3Y#r%gJUQzFqC)9$ z5^>fe!>mAE_j>9&%=Gmqsq`r5>me$1B+%EFNzh38`f6<7)6v%#QCFNDj-juAL(%l~ zmDX@d`ubdmjM4PFY|mV)T_=O&on))#?Gtd4x$DiFt6lsSWPRD{q6iejv`X2+={W20~fu zv0*)xlr{WEkFRdVctub0c)q&cE$iGiN%^WAnJ}_S+RRQ?FLFDdf~@XDp*SPyC#&bN zyneDe5Fo1}1!Q%=M^-P-B3ijE(UOwYgIPqoF12XUMlVQKy;*FWOVX)ibuALdo2-U! z_=|fiF=shb{U%xuFxBuyEotie5*QPYqsl&mbe%@sA5V^Yzo<~Ul|&r%2rwnk)jgiB z4l_Z0ER_-kL4A}89SH>WB@#4}puQ5@_jCmH1=JO1dt(UdUr{tYL8YaelA!)JM8;@> z`Wxhq_T4J$6a@8GAx)@R1wo}rl#rl4oS;@gQ02;zMj_f(`v|HuP2q*cCa5b8NP^l! zSB#*ttBE71@{Iz^j{m|o(;Ee>(l!XG5|l+SOfD*j=%!F2D!2DU<9t=OCVIqk6UHHW z^2QU-)7`R@Zx>ED? zqM2=pmXvT_pGCC&sYQ!6VnM>`&0b?WNv9IdHAoz9!Wq6{&*v&9ns=bp0MTq+ypmvs zZ`gC=;1NsNH;|=%>gIS7%lkxy(j6osmXq$yBhOSoM|XQVI?ROf$ElPj2<0PG=tv-x zFOr~X#M@+stw_Q@(s6om4ZAx)@R z1)-!#l#oz9l%Q5YDCNqL#vs}j`v|2pN#TXYCX~ysmxOW!T`@w*t|pF9uJ*IEMEmsv zS)O?^tL0VS2FVPKoRU-Or>~&T45gck!~4rQ%VH<$XODtz#K=WY_jn4r&Mi9;2Vuv5 z;iYIW_>~uJ)ss%MlhIvn_fwG33s5M|VEW1Ec9z#qM$Zh8QIP^NdZv$zRpjjkk(&>G@)h{ zq?IO7Lel!f1hop%Dp!s)3(+>)M_Q$E3NJJ^X#)kH2Q&-zf`fu3PGrxQ`A}wCM`6*a4nv-IJdRm16J{oQWH?iK6TUnXi= z?9BC*^Kq|@m{$I^ICh-*vy>8wd)yQFl=1?&9cm_SNlGF~apu>#4NUq`R?e31Y8^*T ze-}GyvUfjoncLMcQa;B0j9b>YlrGih*Qw6x@^tR2%(HODhta}#lS<{Gq@p`cCO?jL z17uRwrzDYMEh^Y$b^y6l7m-Jy#00_ZHf-uHG%UMX)~{rzDt8NkaXwexW~Ym5l_H(? z$n9UDt}#PFk?(MZ*RUpML)-Ou(`UbsUV0a0DYkynY%oW<#8^XxFj>(1PrAL2FDXLn zNM#|k4zDCbXq_*iNf9!au9!pnGF`Rd&^&1}ht}yv;KB+5AqBme8&BtyRDMj<7wy1q ze*142% z$j-n7-$VV1dV0|sUG-hN>bi}%syIRzE4e#wb?2qolD;J_i?{HOzJa$HzVOtWD&aQn z76Sm8r;74%ccs32AlXHVrOGPF;5Lp&liY2bKv&Fdu&Z|5Muaq~0=V}pZS>RR)*0Vp zyl^rm#&qWSo0`7@qxVCQmwx8ruXM#{S6Rd_b;yD9q;PtrcUo1DU)15sG_``Q<2yhv z6;r6*WQ&Hx^vXpnhI^Jqo<*`W5OI$ecEy^eFma-yznPKQjP zfQQX(&MZr_ZTL8==`1K#3k_R0tv&=IuGk=FO=rf1d9$He&0CxN&dQm=-{5R+E6v;H z%pTS%8gB2Zb<{MQZgKGttz5$&b9sX~w6Yg}&Jlk$>L&i`w5x^OV7{=IezlrL?=;MX zg+tYBKbDcRWwgOpT@F_UU$s z-)lp1G$#s}dCOu69d)f%t=lY~qBhtV zMtxnv#32VLYZ)oCq5FbHayPGcx>&T0oK`7Rixer+ncc95R;^iuJIksy3vL zfY3Qz`G#H1c}dPR9doO*h|o)M=N%>6u37!7S0mZ#tBu;FYNZdiLaUq3BFf1GK+c@4l`%XvhGQ1e zS1tSCDbQzEeW;*RPbpsY%VqUgsrXg|Lya$pbc77yR(uYeX{$c(eZB}XOcUa{-7TVJaglBeUadU$8i>atriaHjDowIR5fd=!0iL(GgVQSehuBfA^4Uz43 z7Ph1!v^bhVGHM%g|Cm8bsL0Z1QX;=LP9mSU8eloIDcK&avBKqNA&|Xo(4FB;Hhj9wrv9JAb6DEX9WKk z0Q`r*-U1jUIPVO=g#>+P0!}8F`w_r=g4YOMCpdH#;AaG1JsWTb!FxXn=pnd?;8ucv z5&Vy!uoa*ayiD*K!P;{G8wdur0nR4)6Tuql6p5k;Z_aNR`~D9P-dI8a diff --git a/docs/_build/doctrees/_autosummary/engforge.component_collections.ComponentIterator.doctree b/docs/_build/doctrees/_autosummary/engforge.component_collections.ComponentIterator.doctree deleted file mode 100644 index 58baa370f1af87dd3a28b561eb2e0d727026fa20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482309 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.component_collections.check_comp_type.doctree b/docs/_build/doctrees/_autosummary/engforge.component_collections.check_comp_type.doctree deleted file mode 100644 index 8ac8782a940c60b6aa9358776ad7ccce0fb3c8e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5062 zcmd5=TW=gm6}DrK?QwjGos9+BB+Lr!#uo7mNJyX%fzYn@fq;>?Jteeix@)F7?yhRO zs-5w}B0$;|mg;Q_A@RTufuF$}LPGotc;h=&-90^HXIEKXuryZJ>8ewwzVn?+^>2EA z`0L#j|7Z7gAyPRTvLulz;o8})M8#FkrE#CSli#|J+_CMK?3Gqk8FOb>Fe4UemXut& z7tZd{bdzR!Sg+sIJT|G4?Q+o*8)EZ?I~IN0GpWgV=au~im(z(Vr+gTzyigJwKaXOS zWkHJ`#)8M^B+85Dk-03mBW2LF{xd!!BX3f%a$N<9@?s^Z_}GP$Z4?aWFisrUe$*aZ ztl5qFyk~YjOC@(_)tK3BW=xrmD+8Pem$fv}gu!NruoiqjZ($th{Vr&0)O`iATf(GAuPfc=+sAH5Mzjm&%0CI$jD66koxi#XA81 ztN6W(-y{4^2moMMrvBK+fG(9&IN3h+uA6Uid@?vrE zW{=)PIt5isRW3x$d&|(KQX3{?{&+wfeLT2eS;bF$sF13@SLG?!M78MI{Ut3SvW~9H z>u>?AKMY(w6J$MGV8pTAf~}{16J!zC?jQLAQ~I+!d!h?Qsbs4tIjDZY9Xag>(Eec^ z3IE4Vd$#JmcIW{`_CORPMza+0(?Ry$js9re5j@+j?ylTwRt9IR*xiN&(X#uNrXJb3 zVD7N|^$xSE(y^|0$PMRk!*toT-AUrPctI06CNf|#2}J^QS|{oSv$LCoNA--kai6^2 zI5E4?wBLO((|SH0mTl`wk8C}fTleQTw(d`FU>#owo@IpXm-8w!X+*^*YKej&cy>kb zNAqwIzeMH+E$!X9n4>NZFH-(0Mn!jazj=(1AcQJAZ2P>t-bckU48_?v`zQ*DTeqd< z=Ddg!h*fFg#F^c|6LO@p-}xVElg|!+nIAXgo(_CZ85JayW27Hvw;&yx;Uvf$~RhzHS}{|N4wD=rjRD%75ah-z75QsQ(B@U91sZn$v>6H<*Nls3{%4 zdZ*qhE>S5al?+Ygl1CGjvs60qZ@USXhwkt{q4=}|sZK*bb7eQBY999*@hSB#m+s2$ z)GwRy0cOwAcW`lJZRM0c|;ZtHt%epzwUYQ)V92*o=5(j zSBxZGH(c|TH#7HIlfjx6jlkXp*lWR=;&Ev9Uhkc@0~U|%Tc%`EXXrzfjEYiCLBP-f z_lzQ}RNUCd&8)2Yk2ewqRL1?AZf8OM#j} zoaK=80e{TtQ1173&nJe6OB4WNr0rK`a{BF4pC9ipzKnQTsxlHxCK)e*IGKvnY4-!t z9W6bt#n}f-Zjx?hqH}^W07TLRTty|CQ6Ar;yHPY3*;}Yk=&h=}h*}B) zST9JCluOAnQn>FWp4{aAxv0>*N>qe?7PIc~S)nwKx+^_PViR4YIt>)vkCIfgaYhHJ zt=w!v17Ws@fdnuTCeN^0 z->@;FC^5o4+p-V9$vkSqvpql*ZW34aj=q$J%_5ObMTQ^vyPhec{*K0V*hIgo5Z4+& z-Sy)zj4~Co8rlc3K)sFO_z-VE*+Yoc=T(97Kp#5%*NZw2T!B3*PUQp~XcEIAr3zh* zm*%B8kvCH;L?eAsICtPoKIRER_!1@vjvnjE-itBoJmRQoS%hyglxV%#2lZDKkTsix zw033JxV)e*6Lu@46T~m5hzge?I7}2eH&2`c7zJt>M_L&c`Zi3E`){wIpn3_ZKwwn_c~)!v+1wx22&3e{We={RU+Y zDI``EB?xD4cZxRPdB2u_3LHLmKS4O4g+pKgRt*A#4cknzAimv-y$^4vGR~@mI5VZV P-%cpm)p;TGRm1-RZ%nu6 diff --git a/docs/_build/doctrees/_autosummary/engforge.component_collections.doctree b/docs/_build/doctrees/_autosummary/engforge.component_collections.doctree deleted file mode 100644 index d24aba8b1297bec265db1a8bc1aa4f01ce8d15fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13818 zcmd5@>yI2q5x0HsweRJ`C%}(P6eT_@cYBHLM9IZTKsE`9$yyMH1e7qIo$cM3x!IXv zrpI@uU~B|=SZYN;CcIHTfs}uMfFkh?5s7a=AQBLPqXZ;`BJnvqe%15by?xxCO>!sQ z-A+$+b$309}w&}2_5>_=)(m40cYRDl2TJw-u3ut{~x~&BP8u59=(VFq6@mlER z4^>TH@mZZ{LNUg*2EB@mX=A^!$2edN83%>4)O7fgzVukY{9x(P&|5mgIrEzuH}ya{ z<-10M#f*daztr^eO_5|5Q( z+<-+IH$t>G;rC|z9>(txS}}tL8}^_ZtU|`(QgeQ?)=2ACFPM7!mJ2ZZJnVw`$hdImHZ=fN_Osx{)va zaG+o#Fzh>>1q${b9zECRtVZkS22+CdfU_p(xK_2 zW#^e+;28_t#I7Q7yXnhtP7rztLP0Ym zYXxT*(47NXfN|VxvU0kKx7a%ekRNP*u_+XfbzDdN?7GK-<j6M7$9On6CRF1bL!J1-Yr zM`E_{q{<_wsESi1{OAVLSLDg7a+q_e#GD}X;W&_^U^-sNb6-Fq3OfF@+~8yDq+106 zZGn9vWEcT&_-^QJctv-SF=%H%<&2{XAc7mw=@RMVUFhR&sQho~!PQT@1qNRzGN3h7 z-P-zwiDI5ZzPq}iU0$ZhQ}56vci0|YhUe>6t>trVqE=3%9&=|;zT8HCUwr7`KC#DR zP7NNEx(2VOFfD6x=Z+o8U2V*k2bkUQ^_-Y)W1b%d)*LaBH>OVBD()k4RI$rjkHo0A zzKFF&tayEaP_65U$$o1V|8TSGdYA(tSRGp-61NU;yNYldrfyBmbRz3Uj3LI*K-L+F zA)1fajc2yz*`{vt=y~~iRr8(bGAVuHaQ<0$(X{1l#2TlMu#8?BrIn5n-F|CGj$n=9U)$cy zcL(m#TY#H6F>t@^Xt6$(tim|h$-dhRS>DEem#qJjNzZ}S-_ujFb`s0|#((;-G~SO< zt~)a^Oi&sj;sCw<71VFFvlROZr-5R-P9uhFt$oRVLhm=*dl!ks#9Gr{4m^#5QR5y? z3+A6^@^t(?`X=!f17f2){2OArFtEz8+ta948kPd4jiH_UtiuV?HA=F_baXo;cioO7 zLiY@SAse=+R*bq-tZzUu&qkUUZ)$5b=Ha+`_`moO!wuW50u9D=&66RviYOs8mj`TU z1AI+t)w+a#z2s$9}5}qJ&kdKqy{>b$%l^*3TIXHQ=f&6p| z7cMB8Q&SL~a93q)1pXtbm;y`ihMEONbg?Xzvg>7m6~$W+!!;XD9B*OgH5>jCJkbUM zFDwbEw#BNLNf8(dyew96pd$X_`ZN!^0l5g{#5bWdaHH6Wy4V;caRWf2nDzMHM6oXB zbKE;*XsFyaXAMig8Uc_`q4E`{RMMJNvtha+1Vv6EB1Ws#JrBGG zGIy}WD*HNvE!2rCXw4KxxBh|$f(C0}r&fdpCR=zEJid3RXII#mw-mhJoWFMkl)Vry z^Y^Sp;#qX#-lK+1yK&YrkXy&;&mH(vvF@bq3w_+ORsj&`en?JP2k4Sc*;`meFZmJV zl2f*G7c>?-Wq(AM0i3cokRU}Z_pG}qaVnX4 zA4R5aa;%Z=o*kKK>?T@o#LBxCphIWZ=0S(3JA%$}TI&YTNn2Y$hj~7=qA1277_}*^I=xAt!MYR4VeT|Vit`B*J@78 zZj@9GCmMx`SctncNXHZ%yV|4`aicN^>h>#v~e)x!F1oAo6#A#6iv|85@{rqKQx zX)T8Km+0f>q5WHOgr3lDT}LeA3X5yu8U8w%VG3~FO(a>~wtm_koX>vNgBS+{772?5b8dsXTcKmX0<`4;Bkc+AHQ@WzZ z=(<1YJdnr+K!Bd4ltoA)S>5T{6A9L9^3vG~vX+m=PKg8S)eh9f%X&-9+bE<95-A~L zU|j@{)}Wg8^$ks3bBfjrphc;xxOj5yk2--qamEAHLWxYUK?#Zr_1=aT=L{Licigfg39y@XE{>)Z10cVu_kuSxpiGa&C}r!A^% zOJC&L%q?x+IFV;u7qeR)KIN6hEUksjDLZG!BQ33#C15Hc?KBi`N?8Mfy4zNREt+6f zd~7U;>k+Vaf;i5vB6!|FW*{y;9^o$6?CA6kQA%l84UZv>w^K~%p--jFYF5a+CvAxf zn#DLuGdZ&KsOO$ViaRdQuKTXTk-bOi{BxQeB5#%E!o;W>a+F&{6=NF7<_2>Td%yz< zRawBbriaAS?sz~IqpaYulstyMji*Uu(Nrphrnf;Pkyq@kyDoQJ&I)f%?-Y|%B<_Sw zb&VqP5n86GI@hCO5UM>7z;A!tg0zKfQCE?uP}6E`43~6B5>pkiCoVNrWrhODNKrC0 zo2QQ>VwSC$5E<8a804)ZHC7E97;cJk^iG zQQdXwSSBQ5)?lbedagyrsF6T_$X6vKBTyHM2hmRyLS0J>NkABiKyK7HQd} z{=CTxSXgsaWOzX}gBl7qU}~|av=W`G=S?JbfLGw9*35uHH&{qA%dvD{V2|y=Vgl?0 znM?!uWJ0E9iQ75)gh7x;rc@DhL)>am`EKM^vqzZdENw1W4wBafwm=ir9goZ$7E>Pc z@)BTL3~FRN*gNJTn^)~j@lC!@hWltsLWU?#FFPn_lM6lGnOUml4|sAC+s4C`@q)2YJ-QefCiP!WXHHafFO z#%sG;yc_A894irQrdee*Y~giG!C)wtxh(eSpjuHGDt2rY-*X|9mD8S0zNrFZwd*ma zT^2*kIZxjR5#veaIvLpvDk)8D4vs=LD#DSgo5iGHS{&dCvq32UVYk@Z(i(q91kK=9 z&mO4oh`wHe_AzRVKU)FzxaHwbASS4plAA;%UtA818}XG5`5t-t6DSNDO)7#?6wfLe zvZ{p>T6(0V2Nu2$5}*PpdY;bOw=ot1Ufbw<7sW3ggkrL2ol;zrD5;WLnRZ0nLLijV z#d;~W#B{JlSaY+Aa?BRe>)RSL>WLPziF8!Se{TzaoF_h~18iSAujCERa6qK)h6I2p z4l8;bsG~^QUxc2Yi9U<%jxUG+IPg8A00tfpm?33L^X{w}d~r4>6)D&g4cdIA8i9F& JdvQ>u{6DqjstN!A diff --git a/docs/_build/doctrees/_autosummary/engforge.component_collections.iter_tkn.doctree b/docs/_build/doctrees/_autosummary/engforge.component_collections.iter_tkn.doctree deleted file mode 100644 index bc8e30304134068a8dc17f807971f6b7051a3fa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5957 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 EAB3dswg3PC diff --git a/docs/_build/doctrees/_autosummary/engforge.components.Component.doctree b/docs/_build/doctrees/_autosummary/engforge.components.Component.doctree deleted file mode 100644 index 6e4230e9e069001a62bb3e1e509c0c7fff8ff4d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424769 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�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

BL?f>M8gq-kn#eT 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

f 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 YIs9oKo1iUaRhbyD;8i42cJ`0_f8}15lmGw# diff --git a/docs/_build/doctrees/_autosummary/engforge.components.doctree b/docs/_build/doctrees/_autosummary/engforge.components.doctree deleted file mode 100644 index 11cc98c7c3a74a88bbb6e920b8082ceba1220da8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6349 zcmc&&TaO$^6<&LHc6P^mwc}NUyr)?b}_#xxvTs*s-}yEm>11^=7w0*4dttV*M{^Z9u4|&I^f%G z942vujin)RNY8zhkLVaj3q3UX>E;uLvnV6h^`cW9Ud-zG;>=w=7x)o3-K@uSiz$`* zy-eY*bhlaGlXQ=!8!#!+iQkQgh54@qFH0tk9&>k7-Y1z%Hx(PukP)lmidYg?#jM!W zZYPXX$L+i>c`7@vWl87DO7S#g%6Db^^J$#);!(Y?Q{KOWqsxxNG8M}#3|Ts^hH9$W zP9<*o+}-n8Pt53sA9;LKQ)jMe@lo7NJP#dy9G`3WT*v1{x+N5q`u1)&^jyOH)aWZ= z>}3J}Y`Z*3Z9Ahsl84jh^A`Tv~#Ue`zEBlwv2;4+M?ahBJ1xg@YT50 zdJX-Y2EGsh_kHH_RtugTVx1n7yxrq!pYKPL`F63fR6H!*zA=6F!fb$)8l-WS)F3sX zmL}}|gyvqrlzrb*!rX0 za?Z!+z?Bw3acq#XMARngmv@r!PTU*r+^@{qzIBA3Zdb#%@8>$6(Mt)BJU<#ZBM@3` zQSpOJPV z@0fQ-FF?Y+7N%==Q4G(QGJ5kw-CGX%A)bh*#T|FgLBHlC{gM&BCpN|JL8c`9T{7uu z6W)j5x8XG3nR1#B%C>&Jg3EuCYH}oR{I6D@0Q*nJ1A7|5P~Ouu?;oGQV*FS?BOE+} zSs%iz2c;QHraj)yuU35Y_#<#MF+DC8Dfe4Sn(P$u&0m=kZ3nA%1=a zBKpTkxJPW06Os5;oo9x#=VoTkPBr4!;y2>AUGY2p!coj|#Qn%HPn|;kdXi=e3K?F8 zCJGk$%ULn`=M!1vy89$i#D+ezeC6rGYjkKE$DbwqB&K{bzvJ*@#mv)GLu83-p2_u2 z7J3gWAyzqFNY7C~WRNKUGy>9m`f&PkEnsX1aWu#SFE&kUE@nH^v+F{7aTEqSGC{P5 z^e{;|vY$O}U%Y#mTO>!MElLgE(yO(N9fb$IOf{>J3vPsdmGXMBcv|?rkcOTVt`!NmxT&8}DT`!a6AC9u;{h;|C*TbgD}Uq~ z`}$%(j#U&ZUhBSlPA^k6B+5c(gd#_1(6b_ufhWjLLn^XJEOsUD;Q_Zj4&_@;S&qP7 z#e^bt?&_tKCvmErfbVfA?!0aZ7F5lKUgskp`ch0~vJ`6QhR1u^0Nbrlpi7}Y*5xcj z&mt7>a=MOrq*we1+HrW~#*`o+kj_+p>oZ%@$M36$2OXZKaq0-Y( z{zIflUs}7aR}!8$lsCa2U8^u;kqPjQvy)rsXN6LU-05`CEw_`g5^=PR+Fr-#%Oq(J z07(bQKFp)+W5JWHYoB@r`dmr-?$q+sGgTt?=JA+?KDC&}J z=S?SwU6#Kydeaq1&|Mfl_cv(Sst~hxQLZ?!RZ?5}EO_7m=!soF>H`BMFPM8++H&YR4h3i_lz9OgJg-FD`r@J9yhw^}tk$m@ z6ed%B75z=>%zqExqi5?~{F8c-x+yUyAvWY{HzS5ZP$=e)(r zN349UP#cv<9vXxJk=mWH_nLaP)k9e82~dt2j1Z3oudB(SoER!3LG2ND^LVV>Jm`SH>^1E dQ1^wZ+oJJ85zhhr1FFlnJfiJ_;qt6v```cSjZFXm diff --git a/docs/_build/doctrees/_autosummary/engforge.configuration.ConfigLog.doctree b/docs/_build/doctrees/_autosummary/engforge.configuration.ConfigLog.doctree deleted file mode 100644 index 3b432778db05f837e1039eb17957107d82bfc1e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52806 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 PvPA4&a7OO%8~y(P55`$w diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.costs.Economics.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.costs.Economics.doctree deleted file mode 100644 index 5294d8f6ce57857cabf4ed7a4cbd7c07d80044d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456236 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

`8*6($B=fRQ{R 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.costs.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.costs.doctree deleted file mode 100644 index 55f7b00f781ff80fb8d7ed773f81c282b39d912f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22338 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.doctree deleted file mode 100644 index 0f38c25ba3b91e0a7a7e1b82e4f27dccad783621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12646 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.AirWaterMix.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.AirWaterMix.doctree deleted file mode 100644 index ac282ca784bc366ead568d40c1c572ad2b6bc658..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463194 zcmd>{37jNlefM`^&sktO7tOj*h_JIT?6Mq!11v7PEb4L@K(58!n(mtE?(OMrx~q3~ zKqR0DXe)|C#FNPDfmfoDctqo?G2#{Pc;J0&Jc#-lV`7Z&@BbY2Jk?$O)KgW{LpSl0 zur*KD|2h80_c`jRr~YE;J*yWjUPS+EuWr_hrRu(oZlO@E6};wLdqts^Z%unuf9~aT z8*Z7qX>PQ=vf<7&Ypq7!n`*hv_E89!`l3($(pW35db!xKKnDRE_V&i0`RVwVtO}oC=D7lr5TT6{A>H4D5 zzB$SRSuDBS+edYal3WxmdD|Rs$FjPMTKjXwL)t5IK{Jc{x0i|5UEE$$DOJ6>i(3qIg?@rNA zbH&xgwZ#L9PbltRT-To2G+p&KI@=qy`b2G?p0-J9 zY7?s7+>~=$ey!P>o^~6v!B0wwk($`pXrlE;?cA?5QC!qsTB;VjeVQ@2or*`JwZ&tg z>|^o&$Kn6i-)4RBI5Ay6yj0(!3>$Bq&0dU3YlvA5Dd0N<&j@r4HdCf{@3Ko)* zamA(WRhnB!HHOlZLTkMhI@(?Vr#p#d4wk|R*`=qeuUIbbAze)?T@@<`OJ2J}S?%D4 za7zH8QbNpX)!dZOV*`ifeiP)Y=ehU<-rz;;Ljo_Y)xC!6*BVjx!M{$>{OiTN)zMyD z>-Mh~q20Fwu|54uD(E)ccneJS0^Sk9NC)V_8Z_;|pw^v6UBVJr*RiI}|4?Rpz*O&Q zcfH?)>fDd&w1es_K1X^Au2jbF?VWM)-mY*Xbx^h|+sjH-*8gbcUM|2S%L)EgrG312 zX>Dj`(rs1z++MfR^1@AOAJ%Nu>$QfTYoZhJuW!|;tGkmt^JBb9y$R6ULaQ`@3In}4 z&{xm{Q(wNOE&o()`Cjj~6yM#YIWow%Yz*>mhHRq^LfJkP)O!ha2hs%m4^`(s8Z!T4 zsLnAON116fKB9W5E`=|?RMr|-L6ysEF#I#rI#Sc+Lm_0L?DCV$nMdkdX0BAeLiW6} z0V+YY;}mmINwhC&kj4N@+0dX{_m|76FTPyU{Z4b8qji6QrS7jbXCAG4k-5_S{ut@V zy0dGg@hNiwi8Rj3wbr=##`fcv$DW<)>1dBJ38m4`97qzE<`1*_l4QT1oAmYPj{H z-fN$Go{QA(bR!b175)zQ2rGCgYh<`=ID||SovOD20i|17kPfMR&b`gDvg7^ zf-^De(279Q!E%Me9K`8xxQ&vT>4X(zzaT1AT*qg9VRzN15~@)HY89nl8s9cr6OEES zVQ(+zdTvV91%E4Td_R#kzDsv2yMm-+F!gFi(1U$stJ+)5>fpK_JG70N1K^zwUh;8(6$srfnL+Q>-5%eNZM(q6AJ>#!S| zBF5+*9&>)tbM|<%V~$%bI1LYdQx%0Hk#2E#Hu*}E6~`hqs4&VD>2>sLUc;ZwAtSUT z;)jYm;Z=g4^0n!Dse<~63n~yzX5l~P)S!q)si5>A?s6tuRkjG~qQ{zLz))h8SEYiH zMNm<`$QYzI9Vm=7Oszn&JY1(a+w{HZ;7<7Qbe%Mb`ie}IFm(`E?#z2idtBU^YSdbF zPBh8@Q=6(EWRNS&VkA<^cVs@QpK2e-8_>d44eC+{Lu3Qp7W$s$1rkv^p9 z5u9#ymWN1SZ0Fb=PrvG-^T(-ABYU~<5)!BEoLbdk!z>@c=qM2$%MSX!8cg4C*wQKm z3f+Pb$+4L5R07v+vo*o{N~t>*5+qfhh5J?~OH=Tc9O~e+D67xvnsgD@s1ndX3-=DY ziz?b^2~<$?oID~LVepupNcf>Kix9-+IDvxS+RPO^uRabH_!u11 zf?GJfSetRCNqa2gCUW)aL_5lL%sFYZ0}@cEYFUmup`6A;)fe>>m17QjvQwILu!KxD zgi@G42N8&80q8BU;4Xhbaas(r>4|^~ASltm^O*F!f?q_SPZeq9v{BlpG9i_gs`ZwS z*3mB=d5poY0H}hqU5ez`-Kq0AFUY6X@=+|=ot)0s8fIIkOFHvP+qi8(M$D_S)M-aY zR#8>rt{bUuk}lz?kBi=Ms{@nyn8I>Do1Sh}@dFX9#$2gUgRe;X(xQ9Ase1lQt+59` z^JriV;MmL=Wwz*@(P>vaaJ)c^&eJrBu6lS} z1`<=%@qh!*nPiv-_pmyN`&e}H`*@%tuhOId5e5(l8_Znyk<(S(DO8+Qc&3B^g1ezc zv$Yo0M|3hsqmcj&AQ-_)RgAl#Ka?;=#a4k`h>AN(zC+L4=)sfgOuD6t({v|2XU3gH zlh8@m&=Cj?pa^QNOTi?5L9H4tI%GV{Yocm2E`T;z?{PVG_xKI};e!pp!fQ<82@Z=I zG2+>{gWc|IuT|H>J}`?KAB{P!CYlh8pBQmHw}6WA7Qyu@t?4R)VPpjJvK)_O5pzH} zez*XHrw9pyU3BL>lqWFBFA%)xJ{qf*FbbnCl3-qPQQA~3CyBtp+rq>K>O}rqBq8r=IFcLLGrU=TTl$Y8@DTw{dQB*)`ZMFcUY zB^!d0P5Ga4Ok72eh0zh*6-82C)Wj1=D7saLX4oYyS@Ekv364h@AOtIw%P!x3AqLnq zrn!>3X;f{7YTEP*!N?oVje8sDOQf~nU1ErboZw!;;8NZIbE+F;BH<8Sv$QcePskUv zF`R?}b*?kTQohI(8IpJSQW|2YPyp$`64EQPT60gS&f+^Pz?_h^gc}U*(!yA)(ahIi zrO|q$w3n#3*M)0i#g{8FkF;>PUrRs!##T6yD_3QTIxXqJ_Mf zU(qmnWaLt8gaAd=qgWR@LD4jFglTB7C?{N;Oi-Gv5Pss)6l7#WvJPvjq8u|=FquMS z1)y^@;?7~>RrO13s9gndfoS9amZDU$rl{54lFJ$nlTY&>E2W7BIx{hB6IqVa{c`LU zqy=q*cTy3oo>VGkb$ryvvQ(o!@h5e5R1Z+$TA*Tftl<^LaN$+QWt`7%X^+rY=^nXlAg?CobggP`4^}IukcC%mVvQLy>Kcalc^?|1aVaga2{#5U z(0(qcl6dbZ(s{?Me&m_pM_OJ`F+MVKA(53KfPT`$KUmX)l$w2xjO=99MD5@b&SaxD zjj4oNLG8)3d`1b024+8e7KCw5HCPs4-oj=-eA3DlBj%`0z*3+E1FyoEgV_d6Q+QWM zQvx}eWg``-UMdazLi?$Eg9%tzCJT9zVb4iibR{W717}JsjWwUbRR#1;(sM$C8j4>^ zATl{}?C4`3STN${vqai&;-f31Y-sL_5D}M`G1}oL=A8Hq;|+}UFe(ahKbZ64PFk?S zlMW=IH5h%7zmQ_-nkvGsxQDTN$-y`0DqDr%<63qjN%M^0XTc%}_Z-aK(4SN9*8sGT ze+$IL1?^Fy<*DFy-BHD_q0A5*%&Q<XTe|(fJWXdNAi0Bnkj)Vld%XTpVxXr zcyQFfi7mMGstvLTH%zMwZ6d&`Dwe!*Sh{g1X#)$YNC}ub%M@n<^A&&)F~ui=qT6N6 zX8k#v7xLIjsTJ0jp=h!8Koe;0aLf%c2->5IRjg-! z(0CBN8a$VEXDp`4ho?)00{S!*Kz*WE+jRJ*8klJeBV9J{r@2ANKSorxsW^g;l!i8# z197sD3!)%F5|E408JaAnGfn4sR9eIVbMBnzyRiVl7k995F*35PHa$V} zQ@#qsI|u%}jL6TBr{pMmifL4w?WbcdN5d#S1d+AC2#OC2v?8GqUJK>17|*%TExLDy z#>k{x^&=ZA1R+G;G%~`fqjhC8%foVXaF-rv?6)3ahTp2q5_-XO{>YaAEjtsjUMQDZ zM@Ft-3!#W0zAh{Jjex=AeO{IHjy{ALWv0Y@igzU3&1mIoWJF}GEe(x~$R+IHSJnYX zq)%hCmSYn}L=(pGn8wpCSQ_Ke74<0~1IAs`H9TQ)*qyuz6CS3Bw3rKvh$`@*Dvc>H z#%J-~RS$8CTubTt9fC9*9vF=DyRzd`A z_~nbu2wm#=F`M2&8l@Uz#a(?$VI8OL{Pt0rfg9#(5xH)$)o2>C61>q7Z{Je`w`E$h zQ=a->fb$`$?FHDMiV5!oxI^0sP<{yVYzsj7JR@1>cJ*^gnwF$ zLe(?!@|9#o{@{NzU9t!Ny-h)qo9Mo^m3FLBE1r#nTa%ROQZ;W zkln?$q`~v?J7N?|l^0u*-bU8sWV($m?a6d2DfaAa71jnv;2mNFG#d04~-7A-EnCCnGi=OiPAug6%z5SKrJXy&*)%RVl< zR6E#1hOfkEHVB7x<^Lpe^1%EOUD^lc=UE|ff!RJkSRSCsKHuoVXByX`zd4G8Jq) zTyB(O3z=dbrNM2p(HoM$Z6k6r8N&d#vmlxoZuX*>;- zZck!`#L>-u*l~?TrNyv=7v1mR%yk8)e3r>Jk0y`Kka%Qx-asbk3Qw7e@H|3>XDBZ% zK5rIAjHY#x_GJBYQ zD#j{?F#Re-Gl%K9sl!w#WuOD~p&0FIf%>mxQXZ%urAzxj{V*$J{sQ%P7L^u(%8TxI zpzaI>s(7B6EI5TwWI(Q25*3g#6#==50#f9l1>stfgPF1i;p31~%CYQm5X~HfrzQzP zsfd9Nyu)KOss-K|WJVr%htQ>c;2p#Yi3_~;Gla&(6L>Z^PxP>z@3NqWh;o)bpING@ z`URr-(GEQ{Q}yj>tk`dcxr$+tZ*L{QS)_a<*~+AeuAzoZ1=-f%VQ<8%WE$jZMxRJB zA*djyl#rW+XlBT5v4&iHTzR&!zXULSnge zZWoud-G8)!n@}ZQFNk`@S>h^lK8j-hCK@{A6#GRQd-a=Q+QSjip^F`mDM6-7N3!hD zrBN)CsbJaRl4W{U8qSWS4CZA*c{p-PiL+xMni*&I4@V+QGuRJD4vtZ+MzmAOo}6e0 z(xpAoMpz-SL|Y#ajnEZr@Wqx>g)%x_L6Xb*enqHlqT)kNsHdjUf4>Q(EkKJfpchND z{pHC=TOAoha%z%v(KY6hso>O+l2aYIX{g#`bc-Y-uOf0viK-SvGo#9W0Xo`7gH5YK zjCM6z-A*Ruv~uavo>tFhg~ZXS{8}0%!0+H;X=Z${5S1Eo63wO2ZNEw6bts_-qX+5Io<{Ftg~ZXQJubG&(VLA4&xDf0sVrHj5!TN{^M;&jKS^VyesfLR z`YU>G?G&%%qbp4~l4b`ki=vrK1{&w4C zut!v@Vl=BUY$KVIGi(K2+B0k^DkwUd z9_k7i=rLU`Mzb0ZZzXeb9`2$`dmdiR3W?)k`4=<>;WNzn8JpcLsyXB=x+{&g`^}=u zv^i(!WYQ!Y3JFFs=s{|G7lULf7_?eGN)tz(YW#V>(fmpH^B&}sl0P4XXlDMLVL!19 zsdTW%Vt*T>RgFDgCR1|u{0&{&v*+!skT~|VZ^LO2kN$DGa=J@+gwZR7p}T7mcI`lI*<9Y)6n&N|GK4(S;?cu8e^m#Vw1` zsz%ZcWJ*rb{pr%4q>ES~u_Qf~I%H^$?;n$AJO#%%vID>+=dA8k6ncuN@Q_pJ$!YZ7 zZwl%AExONUPlBRu=|~>!A}w@{>|`oJSwHv?e+PzyIM=Q?J<{v9q;Exh8P>&)Q_dYs` z)5875!Y3sBweK??z6knT#Pzpmd=cqyQN-b2?bS4AWiN1y(>>yr&`Dsgrc(GC#QwNN zEC00}<%bW<(Qy<139(l)hYjbTzo21wZSTzx)qoTGL9iajfU(9Ya^OX69(ngf)U3U( zm;0VX?i>EBDDtH5hnC4)`0CP{_VWkAkJTWe(~ry@>%g99@j~b~F(S=v&3=HEwh^Jn zw@eZYBzoi!IhgnkX`^c}AyeUnkL&eu6)nPlC{!v56OKeU7ni&nrfINH80%xfCyk)(Jz_N%OrxIqQ>LNOI$wxjLf zjQTc@ob%WVC}tf@t>`)b);&u#eE?74IZ!kskp=qAtSPmS&4WQZAXj|zC^59UvxubD zsicoCYRObk>+ynG-T7(QI@9PJNw9S~ax&S*Ff2I_qM5O^)q0t`m!$@qTbpC_tAe+D zIT@96Ya?CSPlirpg~W1ev*Z@-JK&#Pi2OX2`W%=9SPDr+vVv$#bRRo3By-c)q~9dd zwoCE&;GZ56X0=~r=oXHo*X^W(E_%sS(CaWkFTENXx7tQmNW!f(`tLgt@X=cOjrd77KPPc&x8iS>7BY|?LHX|K@m z$msksK;n^CX9khv`UdHui(E1l+!S{?2XE zZ-Qx$%|g+Ua?lm}>`5fMHjx&(*d5w7u12pnkVQGYo=cbZ^tzE1GXM12k(ypRG*5j{G-k-@^{zBF={LQ)*10$^ zQVzLv;YeEt#sVbLly0uJBExDx*=0Ppr?eLSl)vo_B+E-Y5>VqVF8y6N`SMw2z&>r;dh^oU*=Ot-`Mu z;T0cpIxQ8=FvSE}PRt0o{`*a*^R?%R_}V?bZ=Pf{#U&y+bRxC3i$gLM99ofYaB&Sj zCmSuD1U@GrCzGNLv%PVMW`@tn_74Yz76zI)8)DR{5$8g(At%o9bZJkVV_6}w#Chgc zr-8{aeb*OXEX4lp=~k6KD9!$4?5J_*9~-OPp%nONG!RI7oT1R zgYZ@G+Kj_COB2NiTb0_BGl^GGf)n&?Z&!?Yr>ORjGv*y>wBK*W%xa9mXXvNV|KzHk z+wgFT9*ukPwQaXC%Pzen0E){il1^VD4Rz5;rh-mSEO>DlYv}r#(QlHV>&wU~CAz*3 z(ah+2hCRAs^)t|1`$CMOHLm@ZtjoFfS-Q06+NW6|@mvd>je$%=1)B}>sNfSrIm|lV z@^;0wC98O~hn#DRMKeqRLUt1~K(76Mb4`7~zEGN+|&x!rI{s@)o}P1Mgu3o;Z4XXB@SN*(aboso>_7g z3^WO6V|1yJ@HJ#WPQtx(X-~o?Dg=Y)rOoS zZ%L!!ese?}K!x6_;pY9^wAXB+%Su3$uwW!xK1XfuVv9_LAFS>uUZc#v7|oxAGG9PW zDJk=9h-RjY^#N3!${1+gd?rS#8gG6@rsTZ&6kXc$=Hsl8INsQQDf^EWl@`+-UUa_$ zaci)QgS9p+0ocbMzdthU)*TQPb}|)Vw~PyG(e^|VfnB0unuj7mduQBQ7J@#;Y zH@f<%Qgv$M4(7?bo$a;idOZ2U1Fso8TgCG*$d5U#rswQ-3x(Wd$*UBayD^_>`kq_h zlNdTKD;sCG>tToow+ex_fPzs>RN4SZh#%R!CXJ1cQ7Y6jDrc(gN@WW* z4C}0$nTP{>3RK(js;Y>7ldX3SYlJp9%L{28v8y3Fa1kudB!jr9gg^(czd#mU@F-p~Xhxd^s zdGByHUE22!cdugQL#+IP^UJ+*IRg~U?38Gdd!(ISlcMQ|Dp zOMB|4YK>X8H3I0wUPq@iU9SPrRg7$B>-4$^DC!cGA<&q1+zIT=cj}GW6!t|nX%jxK z^K=QQ^ZubCx%#M-t;qKwq0k{G-v`q8MZd|nQzKu!#lJG0VARXk0$ks3G$T3qJ!*3o z2W2WaxJt`G!{LvOCQpLHA0VfcIQ$hvGvn}7dmIM(AMB;I@5E?SqvC!C1yuZ|u&Buv zBq`Rn9%hBaQPF;BZ8d6=sOWwN-bEdO#~=A58G4YraH+`9+eEtW3O$*M&^v&K9?wFH zz0*jr=aNH`*xMYVbi=H23q&)=-f78VPiSJGha@M(s8kESOUaIWNOA&Q+7C(AvqIv6 zuf4g7i6GFAy_Xns(2?zUhKV%4RmZ%KT~pI;S9cseQv6e%RtaA3D+%#aTUu1jN+ zepBfRjY@b`rc$}=^6eMm*>#fL7xd6tmyD#-^QiS*bdsr{)4`qDXoR}M=mALxbsKUr zbqfYU-3`&qggVonP+_GG_7LHg7`1AYdIQ;#Q|h^NX-}yeSs}5MI_63b%l4T3%+Oq@ z=@)3ju@FkTj?o^4oIC>a4rNq&XA(|OS)(5dfDP*9>O<#`DtVX2Y zlQ}t&zDSq$MEV>nB$h}=<8dupW2bkCr6%ck1mWS5N3r)Q8m(B(D>~#fS}K}hiUG2e zm?Uz2_nSuQFkxw{)DH=JWDrTE6G<0cRFbKn(vdxK)5vtP(JhjY=_KT2vWj7#G!D_s zWU@X?xR+7}nob*Hw5!qSLNY0*)A4j^Pp4y9A+dD2PkYox4+3e1SHf~LKD;U42ByK& zOtF+NvW4c*145_9zEOjHu!RDS%fXxWwC>Cv*){i+>g-*SkT6^!dA85 zHJbSvR98Y`-tG$KFW=n6@Qd<$|)N#vJ6G&7Ntj}`7tdKb9w6SX{Vp&gDr9e{rjcVX?rKswVGwJd) z8t*rgE(soXR&Ye1+sN?`x!6Bo2#G~f=mu(c7lmXhD0E;b4-G#z8x5ZXKhHr(blYc~VO0$DU}s;9PBrelnheRg)1pgz?lf2-vD_JJmZqsArMJj&useH6kG)#X z{?6B04eZXKLzYX^>crAyLW)Ok6HOR$9zBr868+|p+KVY70Tc6jVj7W9B#S;vZSG=` zOa+TpX~k+J`jXM)Nl5g0sV&?o8Aodm=(ii;L6qW_8UPtO|_X8t5p5^_q(mCX>%%oXc%b%YKE z8YxbUGBu=ZBMWk*tfNbNr2H8xBn~O|+q*BdsI*w`;6?X4$kbWA+~#!XPJ*tS1t!Tv z23wt!-PM!JR0P|IDpU)&matLwfNR94+pwZ>Gek27ob_3~njQu^=&CUa)q?J2WJMly zd+5?W=!&e6xS(s-E_Lx1n2XN4L646xb8zvTh*s+Mvd8fBhA!R}tK$XWS$-e_9wfTh zGjq~%IHwGNq=)eW zpnFR$TZzHLylMVpr8LpN7f76OdS}KFx*vDOoAqL;x-aLp{92)w&(W_)@NuXDuEuxo z!g}Sd@q7h<-8H^zH?rTgd$%)QcN^}s$|V4|s1$=R#TsbM3uKiTcci5FlTK)-n&b7~ zYw=F->{!DqjN!toj?H>>Li^YR_7;py<0Raw?~dhX-Rc-Nf%zUDvmx5(biy6;qX#V% z|6SNig1PumaP;5di=d80Tpf$X7m+#^?PgUe-;e2LaNlZLq z15MZ;w`k=rrC+S(C@bo-C$UoIyw3jO%_s{eA1+2-DPgc0q8bdA@`Bo{Xk*B}dZm;v z`Ez%&8)n=_b?(mcLnyM`rvH4L3ctSm3H-wwr=l9eYaSJUWNsclC#(Fy<%<@%9Ze~I z4DBGBuoE1gCp{?e;77stR43l)E9Q=EU{7QGjc|FBtB?)FbcQ3!+}7-;F`gAXDw%F3 z_-Gq$j_jg$h=41H!ceAC7(!AD!=2V)xC~*4EvP+%@M-CT@QQE{?oY*pL-3CH5IoWL zVF)Qeg=+iGP199>Q-0GGP3(-_bXlvu=@Oqh6pYIAO=mlX;}f-gdfFyg&?a;x%}uOR zX||@P(eDI5(YnRP$x5qK$RQ&-#;me&YpHQ1U0+n%x3SUm$2V_2WBhFDk%aJ;IRTCB zF`Cpm;3+a6N6l8cwC{koutH)x;DbVkV+1pb&Sb@k8Bq<{uY}pxLA~<8vcgZJ&3>~& z?I#Nsf)hVk?Uan9$g8OJT?2iY3W^-unT>{&`-~otWRU+F2NL@&U3X=gU2GY0sCtSs}4}N%pjqd=lQ5Oh~cm)1nDO&ZbYKu|&Vw zq)wGq!I11JYgjIlOOH^?ySOA%;TZ>oGtsE@|BSXzLZx3Jr<7FsBSbS($@*034qXg1 zlYSASRE{W+YPO z0z!qqKp~Fhv0vL1FJ73A^Vv!*?}Ca?q51fp`Dsx)Ckz@r>`M}*FN?8_Axd8d(ace5eVB7^wG4E? zzBop|TEM=OjLHM{g>-2ju(z{9;sUn4sp0vp20n{IuWC126KrJ|uWGZms_7U|*V(3@ zXfEHLPAsS9Cm$9KiFVYX8A|*^8hiAcVruOKvC+h*np)M|9<1q4C4*N;GLl(8pw@RW zOQwQZ2X|ILL)A}>9*_i8KSE9^2Nb`7Xl7Jdubp&hW1tE3y%@D>gj#ZVK&WpEvziP- zlA>S#1}h|%P{(=IW(#Kw z(ae0>BA?>KJ*w%UlYyqx=`qUHD0LNCl#ioMp-cO5)FxI)ETz^m1=6?)uh8)KX@Dip zDmi8{-lK?A6crru@sXEC&;2Hn`Z#mFQsbwUi?fNWw>otQMl$F{)b=h0$y6|Cbw@55 zd|qlae-ik-7&)bc&#NGs89vq@XYN$SKvU<=7_Dm5c{`bsQ|ASAX-}Q!u|i_0bL@q5 zJ~ErTkq-5`g-lP4k1_mERc@;n03%;d3tQBPOIKvU;iF&fpVv*?I` zI$swSHQ9nB#f?Bpv7I1>ufvdKnm+VOC36c!q2^JlYG!CqE5<~i2pUPYaQ zsqVu+8#_=mBaz-0kU9;IooQUc>lOCYQ9_Z_IhESnMID*SsH1YwsB@;#70vFI&{)%S7~?FvFs zLq5iG)7ZP;v{Nro;sjVc&ST#>O8`456Un;Usl{Ealc`|ch$>V=UE65yB&fR+Ii*D1 zUqUo9>a1U&)budWq`NIfp&IEPAS-gx-Ab4Cq`R3F5=T1whv<3;y7=+t*G z@pae)V+*=FGSI$E3hoLtnTkMLLZVuTeO*{28mUP_?5i=#HH;>H2+_G&!J;jA%n%CYeW-K_yulm(xx!TiKLL$|L?nm4K&|cK zkW2-KR>%T10)543=_CaD5^_pOpzlI7Gl5RF-A)r|VW8Rbxfpe7?D-AZkhABX>C&D( zpJau^vga(h5t(+-(76=Ygr8@pKT!gmJ?j)olPuZCd*H9a5S22MgIE)hwlDN%9Hl+8?YO+pGCfJv`j$&bn40z(=a`M|yD zE8{pv2T77VDI^u4-YOb1nPFr-;|jDe&=mS~j5;+6Jwi6*6#4{R+EeIbtdKYg**|9f zgGHsqqaR-M!Uh|g8(Kg2AwMCB$Y5LhxTs*0sWR9|TnjdbgkYU$tR@Mzb;v1Yu$=(W zg$*{Qg@F#X$H%Bs3%0Y#hCJBT(4~E_9mWcY3%2%p_#J;ch`B3$PKQ=6_{VnWuvZ*? z>U;Zq+0k3yue$dOMa852aA+PjKRu297nC^EyC;}=!17EYk~lSLZCCd$Qw4FDxJDe` zXz3)xxgI&CB+hdox}e12S{P{JOvk8GBhE|7hMYKMy0jLt)^HUJG+90pqf3n}KO_TkvV4dx?aA^1R!AIK z>?aPtwy3n2IPjwT9bi|h04q&Z-Aa?q)RVpe-0YH#4821h9~F8s6`^-%cSc$qt|9Sx znN}QzoKnW21JTTJIBp$>U5Xv-Bdk})C{_!~Q^=Y;C=Z}Z`=DIO3W*EK_VMafVBuEA zw}EYMR~`R(qS`~=@t>PU`wPgWiksh)!%Iq~$r3)UM`uXbFKu+mMsmp`4Rj3&WGdrQ zS4J9_%0@p(GCr6>PAR$MLv#VT)UA(!9xUWz6svLR1!PUmrQLLC&!y{FA#q%?A1u7w zqS9ipz>Ds8P+p)03v^Zp_M{}4^h=S*5PUbOx+?@_Dnf8&Q_5?R_da2uXaXmRyuXXl zwP9=dKSDHf-&=zx1yj6Su1`xi1I54gXkOZ$L(8!IF(;M#aZsGaBt{i)ql zO?p4yFXD51SZ$mvO|`I57Cnqy2S_2Qh6g_sjfr;7p;>+WUK*S9n?&kVN5VqNNlS-h zB$t-|SrnIKD!6oTX9YAo9YDhKGGSSXoKg-9)<85fo~%!G?9#?SQ)+39S~W_Ik}Wx< z_M=OCO8v=>Qcu#RE99BR$%@_0ibZFNDi1k}PEVuxezPd2Mn(7*l%H$j^KpI-2N=1N z_>5qJcYd2u;*nIkmh{jyT9T=t(h-q)X=vJQbciG)r|XbYN;H)rni);!SdW~d)H~SA zDObnnR^!ui$e^50&!S6vK3&ENi5*3q&iuORD94`g{26@Al7>#SL(6w?hBVN{E}6;}Te>pR z!1bWf50ZfEUC1dVxIP5Y%;2(L1n$!cXwaVLR z_5yE%UnO7Q{jR9ekTd67X*An!=BR^Fl6@_V?vCWjeruz+B2!`iB_yhmWH|}U%j|3k za!N^(Lm--&B-RI`FbxbeI~K*LQe(%lWIxW1KPL0=|FU9-{X*@@7L^tYwY=zl2bVhP zOZ$L{{Zo_RqbHGpb}8w-s{@y*2(%GZs1|Nlkl4J0+n>j%+pt!fgJ|Y(vp(ue)5Aaq z-Ni8q)q?JNvLX+oLb8tcjVX9*&q0igLPiN=G5J0(_tqf(vH*VQlWrTKT&{-b>V!g z(Jbx7pLLHf1&=v}nnOn}2YvOI`5w(GC|-V9sCUSD`NcF|(r;dt)M7b% z(<4`JP*>}hJfO3Jj=A7XCfMK8Gml7){+=|_#Zj3Gj{X^c{UoYV8dLvh^p7M={V(K{ zlBvs|Fb_;U&wA~=r=kaY0sVI|3fB1gcqmlx_5TS2n@mHJVovufR!A&gi`#0`6QwG~ zmKb(6FbbuQs-6^lUXq>Qt)hW2S>ss6pqECxG}LwSE{35PtFlfG;o=pbHWxG62tbX|L43r`j$+!9JDLfs@9G32AW8`9XK--Nm-Ae2wtS#GlA zRSF5945OU0jl>;L-tl78;V?Xta6~B;AjkQX=VZAetFTr`aMYq=|v1(d%MV zs?q2pWJgY;SJS0EjqYWI#L>up(f_j+l@(9^9FY7Kr~(SS=dANdoa#F$OS<4gLtx%z0$rbTw7Xdi1dgWK5C2r<38EQ^G~aI)sXdXfTeVrD zr#5MU)GZ!KrSnJ+T~v~(pwbbMRngFNfzct7plLgDGTFm`re{JlGn%aTL`JJ*p!xLF z7~N`o%9BC)VBs9Pv>z;tvqIwdlx=rWQ&cIsCmfokl6o4=_M1OjgNaDePs#H8BMEa4 zwX};cG8Keb#)UPcyvk_fBuIG$a!QGmH$XHqQa0L7JA@7fnjtTbQKrU__mBlSLtaXk z_6&J3DR-+#z0oxYjWHN(c9<~#rnZaiLibsS#2AXZ-F^bjLb{$!h51`JV zOZx%TX{?Y~wylugz?N)M35qS#qUa$XE0xn|u-|M^Pkn?Nm#TGawzb}Gu1iJo2G2~rjN6wHJ(WN~@ z?qG$)F{E6hT=^s{iXI;kg$_AAK9ojx{ia9P$YdJZnsRLOee%hcCL2kT9|${_A6UF- z(S}>*Zkih{E-lMcZDgWlr19jZMn6cxlOG|clsx$jL^Jaw>BvOa$3Ro%dohaDsIuhf zfGXb>hBcXlB*m=j8?2Bxs6hr)w3r;V?hvldK8P;qVUj zxTKa>&TK=^qG$??^hK_tV@AYF8ghGZ%j zcBB{sbmpdk>};c3Bmvn|kdw(OhAGw#h-L=axyjb0yKFSr``|bx^%7IuuljlrV5jaq{+9a)m=1^soMGt%R-~b_l;IhLXqzvr<4@= z1w=DbBoHR;u4~`9X}aof%5S=&={1_0E^E~{UE=#*1K_2HlH2hX-9&Al zp0-I2j5ZZ&`R1ma+wyD8)-(=5n+<-Vhx!{QE3Hx?hm1TN*;U!NwbZzhuJM`0jg6*1 zzIpQ*<7aEaTjm4@z7eBRjUN9)cI5Q<8eQ7cik3E@r7* zcm1Y^+c`F2uA5;J)FB^9l#@vlT||+oAj%psKIzCzW6SAApGd-%Q;?I%B!(%_xe(3F zmMt>UC&DuqpXmulyOC&Lr$4zr_o)%DWlHWz#)?* zoI&aF*TwBeDPg%tsyvTc-bEFe3aT6w&P1ch9Y)(Hp~-E?DJ4zrhG=G*Sf8`ep^Jg0 z$SpBS)hO}?+$t#YT)MQU$c?O!IEu8--Rk69O}{o>y1`>FeG5fmh1m7kOWqz1P^ANp z=sW}`-|+ZXPw)mf-g%hvHgzm?)Mv+OWdtkeU^2Q}d2ie->I(Mdqw&pMt0JWIMKGLH`c)6F zTC`{c|GS8u0dF3?c5=$|$DB!gToeB-cojNZFn`^Kkr8&zmN@%mmQEYQx6UXA)d#WJ z9oVGnI>Bv-P&_h*AGInN4j1GJG3tDFz7oArlz+;jSN^3<*MIa%zx+`xoqNm32xcu{ zDZRAHcgJDShqLlWMy_Jsr2o#AEW}y*BO_OL{m#uA+~8Jc;T+YeT)ya5r@X?*2%S_( zu2ZY#;A(VyhCIU!E>rMm)sT)MD&fRSA?pa)F&w+u#EBbCEEG~67>`nIa&R)7?AEH_ zqwK5@Y*_G%sE23^PefzfW{y6lJTfA`xWrpYy$C8a>)^;E>85;eTVhYj^BzR$6XN2) z2#Oi@J6^fKPnQ*I4b%mLVp1QqO#88Lm0yr5(!S)(&PYPlJ^B&>?XnNqheKPZKAlVpl(5uTJWOUt7Q2h1eWUIT~>eg z(F=t_2_JEA=@kG}9kt{y1LU^qf1IcPu}%MDyZ*-x{g0jcAI!hI5^_)kOrQ$oZrq*H zbt8)h{XV{?C-cLr#YMMLe-yPki31P0O1C=IQXYX*bBgX>9NINis}<-kxkGtmq*OqC z;R7QhowGp2b#lp>Ql&z87sr0lP;6or!8_@;Du^$p<6P=+8*?TQyx6C*7f0{G`Dvnw z{)XkshJNsNoT}SV3hrW?TYPUHs(`+X1qG#2R+Q>AT2;J1!h@6_aJC*sN9}Wy(~#kp z6&xj5k$=>x@~T;?)Wr3a*Ptu*Ou{WyP6__N1Byp4dgLRL%~YM>)fx5&aM>v3l|k^k zNGiI`BHdEQH=Wp-I1C722lTS7=;im&r{^lI=_>CWaMl~K5*|>ivXeNgz6&1^xjA&U zG22T<{#9M?!$oi^r?(HE9Lkq`2sHPU>UHV_=psjjigsw$&!I{AEfLJ@iZ-vpOSD9pEOL|IJq5i4R!kMglAJrbnFY&I2S2-u6Lp+(lnTK8j zV+IPCy`^Tp_ULw(oM2R$pvRP7^%@yr)2Q+?ZM@H?IptMdNu%Y1yV63_Lw#!3UI8A= zl<;!a+|Ci25UqwR=6Kg0LsQYTIbGA8)A3z(8ZDm~k#=%dTKQhg(c~Cvn%VL>h z8P8T*KYJei$fnsB7mvbhFFeOjvVL|ma_W>1Il(fVfrqxwl|PIow^y>irqL73m0t|e z%Eji!3>IAO zBO$(IwNJ>KEK8DN$*P6h5z%q+bzNUq2jpr{pG#2-Oz##-vRh!{N*on6?oLeU-;)rh^cRG@C8a;hD)+yQ(g!>-tmNK7pt{20qV!79 z!bEP+Z%V6k^JvZ7p3!u7T0*NY@uevy zW_q4zPiDG1JDJmz8A0YYX;zS#ved}@5~EusA@d87lPQ7?WWE=o3rA+Afng={3z(K| z$xL@ACi7cKh?DtwLf&Lojm&?+D)+yQ%pdAd@?(h1_bgttcoF?i_`?U%_(Q)DeO|EB zl5e`Ohcv$*m}boExz3z6+Xxc>h!iMRFnG2ai+^Htq$Di<0dg|MtbxV9hG=FMTdy+< z9Skdtzr*xgTvJ@87CI>{F?07nHi)rr3VDGiW})*7l| z&xauT@)%Wa7}swP6D>@n_=STT-!WznH-3LC+|p(n0k?BVfdXzkTMcgK8vQ2;+|EKy zCL0;x_H>9Y9NdHsh81pSFg=IiMrk?)%SJ{H~YgWHFD$IUG3qb`L2~z>R0C z!R-}B|49P3mm?=ra2VkBdWbF@+=LE>6>fJiJ%`~&X^G+XZW7{fYYTak{WQ4U$*K?w zw(9M)X=7N?_!Fk_Fd8W>F&bAr zDL~^7g}lj<8XCXHst}9DeUH{FFOt2FUIi4~k0LEUrYGiWMGF%-Pru>5UBR8d{geQ- zT%ZTa)r;feJ&zO_M}Yf$QX&WUa*?sd>kEudl!VvYkdw(!23|iCqM3PZ{ff9$!mwic zT&CzSrYTKlfjJ1o^gK^Od<1*8kT)4n!}L>F6=E@cvV3`gPs`(93zT?GE~v1$w?h?= zy)kbyjj_xgk$p;kvBIMEW@iF~X;M7^sm?9bUmi_cLP>0 zIrZ8Bv5!M_eN0aY*NGM;GQq-uFF2jT9(;jFEck*uQ)M0jz6(g10(?Q{ z8u*@Wbf+ZXJ0CfjOlAPzWe{CB@F_J6EBLlDRfoYxX*w6o0U@S`9trW0&K4nWGNCro zIg3>x7JNs$<^x7aX~hfKl?4o_GMt zJ5yyI0l@o6nG%39a}9v6H@Z_20KOJEnWD!4z_&qk0Rb4OVORn9N~Y>C04Xgo0RMr6 zH~{}r$eT>40r2Il3b6p(F+ZnLNlwmJb_%DT?@-%g52v3=W7vM@+s6VUu=^jRbdKG_A}Xl?_&<#fm;}K8j+{)6$Ikf+C{4GhIgG@Vb&7=ei0!FD-ZECtVO5wvOw6$S%;P1oIM0hVw=eq? z%~P1*r;;WJRxSV_q&l}t?Q6hUm~_BfijpJP@Mr0N2vc@=phjtlL3}7wFF^crA#XCGHlO<`t3n)z z?dNk(L`@PE-S6Pn*3#v1?Fm9(iu4G4wTmJ+3qDom5kbF$Ov;0PWstcR@=v4R=Vgkv zJ;r2)kpFXtW*(7Q@1js@7}hb_Q<k; zKl4aN%*=Sv=JsWunRN&JdC6n)JnMi@mw80M-%EDv2>A1~fPa;+bM`6NU&ffs5b$q+ z=)wp5c|+U7-_2AV4tPpS9PsZUAs+B|33OHAz(T!Uz2Jf2mJP-4frQBRfhwf(sVlq zA^ncz0l&jK;L~Lu5%4b|J9Y&84lUqcD(sxShi}K2%nLUD$HNNAGE=G zNY9Jzcfen&o}h^(clPnj_-C?p$6A9D(FpNb;S|{k@u?X58VK<kJPhl&4U`B`Ct7u|16Oa+SoUezzUm3o3VE~NyJkm_a6^XH}P z2tFKjV!($LvXUAV9Qt`)rV&p-P9{$>P~ilKW~Rc)w#yBH7KW7tk7Js)ec_Yt)-7y~ zA~CBtn}j$eju7%D+ma^5-v2{c<>DyuSbO2~(hen?sm7H&T<51SGUnZ%kv1g@YgLR`nAd5F#aF;U{mjho6*)oUMM2 z6e-{*Z`9!T1*0b=f!}A4lPPoz@cRZt7Y=@b7KRmmpJbX2!;jJu!|#_Q#NqdlkT+RS zgWpG46=LCc)>bFqYWlV5(hZ(FQSqF5qgMACI9La>J>QurRVvPe=aj1W+jAL61FT{xOXS`;AQXM1bwp%O(C`R7k7`Jk=9{(A^0LTCKNy zS+_`xt|#{qPXt1RXe`}ebg?8XJq|gUBGJIoQz4p}rPfab!m1cnpdQ229R@0;B?jvG zB*cMwl#n->Q3L8)R)tug7LtCaYRs8v`3{a`#c0!SI_zs1UK7NH!#8Od3h)II~xDk!{j^C zn5W;ER9{oYJS8_dorI8Fpa&e)siWyLjzHp9Nr@bZ%SFZ-4Ief-Q4$({89ABa$Uws% zKr}NAtxp}5N*GoUet{`E3_?mv48ngWAr8XN3VD+OH4uK9RUr<9_D9++J<04lT}Agh z$kho~~-=QAr$)~(VqCm&}J;FTH zlc&lyBE*m07=$?WV#j!0%zI z4hKA?B@XzzNQeh~QOH{cyvM3Ae*u3V%g-v{dC~n2c=c`w^OusFU?omUAlx&)8zOT` zhy&C%avRA<$;e`CFSFKQ@G;>7*rfuI1p}P}P z;(H{-De?D0-jWjUWtEGg#AEHC*c3pS578)djmk&S@AEPt`!nQZid+MgM4r21 zgqV|!lMsjRVM5+yLTyfVFsniweC?l>K7-|FhMAZS@}kY{o6k8}wN|Z^s-Bx*)g=&# z4fx#3ZP*6nA z|6#H(2f^x&7HK&6N8tt8aqyuSgBoz~&k)UwgEMR&t#&G7SfTLuOyOZDP+DRre4B(g z6y7W3EururtHS(2;SrXf6%=^U{f2_tKQ6td=r)VVi9k|4aG>^&&qomvAUO2o00al< zMQ9W_oNk$yS-`=_$>cl+3LFK|%oMQRKOWM=up;09rtL5SC{4GeIYh)n;A9fw2v{lP zO;*$<0?Swx<_`f+W%*elfER6UU-pTBI_|4psrmG#C!O?FqKl?I2)bo^;6NSs)h&{( zxCk^9$ku#}aA$Ssx5UI%tO{|MXkW9f=;im|UA|hSHC=5wlX$tLRz;w(cd9WFpJnf!xOl5t0Nn9s z>-Zh_(Ge8Y^*&y@_NtDzuU;wTOFjgedrI}XS77dsrR;tdp}o2fUNja}>h~&t(kD^?AF-tkw49T8#vo8M;J!0Qbs16&5ijK74b4-9x&nr;&FJ z-8V0D=0lN_DPj%ebs(CVyic)RIqO!(u)_Bsrt&a+DNQ%1Ie^5(`4kf3@LeV3O{Ub~ zyMk3A4!-tJ(9UD|nc*j%pz)&3?aMxKzFx&_-OHCIv7%n|a59qhf%#2c3}8sL-ASFF z6Ur`iEh309NrvYGwF5(iXtXE_=g2;RF2vZ`K#K-MGtdnH`chVf`3v=PS$3 zBSJk-Hst-e4E6K0Q1^t1v(K#D7;70qy#~<*5B2kgwpYK7X*wM0l$JQuZy_Nb>emQ) z%TT|PRbl=@{bejat5D}fFL4XhZ#Pn5M&_PHBll{YxaoL;dYS-ZIqR!m2QTq5cDwpH-;yq8B{Ww)IEqUc&P6f+EBlYX*wM0l$JQuXGn;L`lUkN1Z!=sei5s}{PpU$ zv;4x&S3K^zx#D{K|Ay7zFM7d4eP`lO-)S4_sj`j;^|z4?!=b)Y3-xyh6K5a5 zza_?6hERVmL>D~NcMff+zmaJ=9O{&oIMhE$LOj&(7xI>&ejlsC{Du0%EI+GI=SBBB z)LZH)SgSGV=DnQnRhy+GN47S@f(ZOn+a=V?i5(dxU{7aFA~^9!asbYW)g1+CxcHNB zlkB+oLyW}@xLA4GJmA9m<-|^94C`Y4e=vpHZkwRH6Z2#(3?q2*TOn`BlV7vS#qs2^ zwrye)>8t0Ix^t*AjN2y0L<D&OxrF;P9~EX;5-4*%wsw0lVg+`h84?~GF68MbCjlY!5k1`iN+@( zKA5{m$eT>4&D);Ast^m`P4W!_w~8;g;o)`_9~y2|OV_vXP0fNc;WoVjUJb+bXw$1q zZeSja{wA@UdXeDv4n>#;h{FiT=ch51*&nhmY26$Qe(CLzX}3b3X)Cnyera!_uMkH` zryT}g*Vj5l(Dtv%GMu)DM>RwP?>midngqOWM^2`wHGuc;A(|Py);qx?H8QLWet>D+ zc4$m@C#Lg1lMtu#8-={d&KjNXXO)Yk^L2i))Kp(QuGW0)?`N;+dJgX;@y0Ih!2h}G zHhhv3Uqr?`^sNf^Bo^eikqfTxPBz?W&#AS1e7kd_WO<)UQRM$_hms$AD@nI0n4B|1{ z&BROt!wTNTOv~ZHFQw@=G`qZfK1o6xum6)QuKr+!SNpxhr?V!RaU~vF@S@G_%RZR9 zFo-`sR?j6nFG&;X5#T%Lv4DthznV3q%4ku4ZHLE%m7gT)uZ%ICA?iJdW{&z( zZKGaS#IOecWlY)O;HR|2!9PPnJoqma@+Nd^W2=i;72?KLk->k@xm@ zmTzYnhaItVJx@NmWViO40_rTqRvn`|FIU3%f*X629CP0x*n18<2jsDTXcg=l6nSU;}lRK~E<;f+k;VLDKnZccO1h@rtJ zNr=HE z3zG;|{8q?Yvf|gQa&fG9%ss#)ef8{LI|n?&xIRB7TA0WU`ps?i@xi*=@Tv(8@Zk6N z7`myC52npFV*2(hQXoh1GM=r*;j4`PlVs+0IdU@D$iU$Vh-Mz2S$}*`=wMhOd@0j& zcvwbhIt9$`FNS443GrdsMMBJ|9 zQo)_}&p|6ABOd#wLH#$<+AUv|bk#JcrFN~vL31OB&6)!~4r zw8R1bI4E8O{I7+)WxzkesxW^6KZ=?pDmp>Hn{PdCKj>g>`PyTs0=;i-FTnxY&AFZX zk<*NDnX8ygm{R3akmz>KoR)Hd%OeEzTZ`r59?Jhui&>rK=pQyaD_;i5;!zj3CWdi`oZOAlSf;D5Tb^Q(6vfJ`Ufxmd}+vQ}GtmhTsWaZcCwObjqLOPa~qTK5z9r^b58O^=Z^CG>5|;3{P(yDITF`WxW)U!T(Yg~TD9^|ByVjA5k#Vl?r07dyNtVt zELr}k3P1SF6onrMAyW^UMa73AZ(9|^5ks-s>4#Ra`e~@&)R^S4y7E$Ibh1)&{m95% ze5tesu9P9pO=JiWk7qGMbj2ej>mC&wk4sr~Wxd2-s&1EeBSyRH2Jala*Gfkb@XLDC$-=V%S)y-Wxma)tb0bR+r7G&J8PXw76X+v=5CE!h*_Z@fpEAr(b*avA(y@A9vQ* z(GIWS&#vDx=A2#dn)zI_G?i=C@dEO=6Wryj-?9Z}VcD#~&{qg)PI7+72GT#VUPHPF;DX=J_tCjV4A zTlJJMZo@hoE#6SP(bI!Rs$)8&j`9d)gLP9~ljR>mT`oo6X!!*+BE22|31wD(5zTwn z8XR_x&83RhmtR76MtNfSF3S37l;2*ZIqF=WMfL`=y0GaksyP-tlJy33O19U#HwgW#l>Hh}R`i1> z-Rrd8;93&my}>Jkx`xfvDJgmb*);S9Jd=dIL3ta>E5Domvz`9)ApPh3;A#i1?kr!x z{`)lc->0+xK7;*tC;RV(^xp_-2lYu$?W^aB+B~13p|-4UB5F&a{!{z2Ft|RMkEixm zIwU$=JDS>5j4ic46%;UN)Rt!HqPF}&P+R<|K=SjTNy(|L)KUH!Wz$LRe?nsas4bep zsr@Gu)k$q}gQWJNaYb!eT~PbuLID=kK2nY0`Fp_~*zWneQulIHLU-y87u8l8G;Tj6 zl#ALf5%QL!c-c5`n`e@W+ee{L&h4Y=igBA=W#M*EpVZtwI+x44l}au*x*@#&f@iVC zS^=vs)}N}7IrV1us~`RKmuew;SD-6+LIPrwsKd?WRQ6ZXu| zm3+#pRsdGWTjexWB`BAEiqWObcxM3-~K_s_> z2w}nI%|Yf%$ci$5{)Z~!+2$hN-BrY!f+E86 zetn22r!=?W-ly^EC>5-bj@6}w{Z0tfK$ohLd(D-M)RWZ*u7Za@u zUQ7~QnC~s$ij@{NqP-c~Q;|@u6oq;kz81nUY_0$h{r6P@uJH9KhnpRcvYK zRIBo0swaY%a9E#%EOjgd%y*{4u&> zJu|z?(lZCON!>Fa10&_wKB{KVzWEfx%I!wowNzfcd*_!daPM5HO-;cIH(tp9#Y3M` zb)#OT^QLs%H!(uc5uPq-L$-`CZWT$PPHVNB9kdOapPfcYMU+-f)kgtWo|Y)vmKg z_%agbwMPg6UGq2IC#*TEt5489Q1%Ls>*3g{UyzMKzwk9`m)(ll`b+kDjhO~^AM$gY zaB>s6hSKD$BVy6vyper@_5CVzjz$X;&&|FnOoP@uLCBk2f@XDs|FZGmKhGou|DTK^ zIsea~E5?6zm4*L7ZBp}py<45dXlbfkG40jseQx6-UR z*i7BR>xX{P^&NT&lfyBAn3uFF1#u&rlwctcrv}mkeJ&l$zaPB{C?|TM&{yc;x?+7AyUNn11@%eY zryb=sbA?jg@7a|F`>f*jPKk_q_h9!7SP#Y<9^Y{t7V5a9RR8;{4+=MxZXVxX{ZofT zhkHl&S5%B`fAzkgfcC&zv!k0@9{45ior1p=PaY0hmAq3@8YzE`vgz!U{uYVz+9^eP zBkzlTiLyHSqM)_13wi|i$Sz1$7+uicQQhsjpp)f+;e4wXIuz=VX0eQgZl}sRC-%xt zaGJQByCfG>Ci-_#KN$-hp4|a%u}$nj65`1JP0&8Gq(Ht@2awM*Nrn6a&X&kOkggc= z*;N+g2lYvf{FC!VFTaQO_vV_F8U_H^z}C5*#Vr^-aXQO(J`<63&klhHThTCO(5F`$ zBeEXF5y-hc-mF|$Qk!qjRGV*EQ+P{~?7v;5$!RMp$HS8PY&ssw8#^RA955QnRE#Z@ zpBNO-e(S<_v6D5t&zGZtXlbJ5d(Dko=zAx78^{cZ=T4~x8uQ#&A}8jQXy_e_g> z!^?7!T2N1V%IlEhy!K;9>!YeD%kw^M7Ug#IX_3Al7wV3Q$yR%kBdv|@?`V|Lv-=wj zzu$R2R#{t(W@)cinZ@h~D8+LfdPmhEn)1ESG(!WI#xMyhII_Q_M7qUcJA}m!>3Pac z`PQwXDM@Y-h$+onQScIb-7x6csvCn5W-Lq&nt8M5-!S=y) znU{|)XfKhZ;z;2 z`Gd;|Y~cZ9@ndkX2XMFE(|7dSVF~#<`5PmO=*YY*UI8NqF?I3O0Pzag%h;{)KCPe6 zAWW?%DTDt!QQL$^|CEI6J^Db=Z#vph3*k54gPu{;HTYXqbkR9Uj38d4{BNeNuGc6j zSvP1XghWh+-hDS5r*K4~dWko|4~391G%_5ga3u29U!i1C(e=K2pqbDsl%0xE-G1kL zg5;Cp;DrBVN;U_D@N{yVM4oQ0fOy$ab^x-YGYg4{o$TnNg+|LKK#gs~&IJ0Mui{-s zS8Phht};yN#5^eN+c|vj!4Eaj20!}in%1WvG2*g=V0yl>`HF>~Vwm38)M^~JIpGLR zI~z5*{;%Xs!&h|j#7`Pq9TFXJ7CmXCVoY%+X9)DBPAMp$J-`<2m?5qVTMdNQQdFn$ z!k}%*XM;*FoF!3bS z-)>EB?PbMU1CN9-Tfux@t>JML@Ij;T9;N&@iBctDJ3KdP*tD+fkq{rG{hy%LW=R2b z*+{I^@k~;!)cper2gIm&i&w;;i5fLA8Zl}#|M#k1onKXb-`CwU%>Kjg2YmDOSFftxd-bk*^{SE< zq04;7hz8OdnQPrX%|af|wGNj@ChBnPzgF$vX#8aiI8DYMXv%mEd(3On&*x8Bi13@l z!D0oZOZ)FzEiBG=OMC1ltF-@`>|h3y))Mv*fR*Hv4!ZtM$(&!y>E##r3N`V6As9RS zHya{G%s=tf&JbD^)195bH0|*u^w3r9vA>7kDdTzH4GH~WpjAZ80?S4y7J(d?<(CQF z8S84P7b8@A^#4&CsJDig`l=L5TDu#_#!7kmt1K*51*LQVo#kYEjgOD zmDWj660=eoY7XKdCbch+vct3?^A3{}x?hz&IL)d|%tM>HdrQPKk2DQ;q_N_iKuBUu zi?X}GS~uy+?oz9TwbI;ZO}3y(X_4h1ooM~hRGHFGeV~c9g&t&Csse2M+~H2&D}N4YOYbMY%dkI zR!aRBi6`3XCzYg)IZdS*=b{pG2E8l+hUN7L!TCe5Y{3HzAeSDUHtIgCo$U*`>|3i)cH{mY6V(bvM_H9gzk3+z0 zurXGsH?N+kLEa0my@eZxyl17`>`fHmFyiUruW}S90?fhF#e{o>81KpAWoHK67B^~^ zKqKRX^=#@Ax6I&Cq2-V;cz2=-2cKvD;cv}E6}9r>uOQKwRiXgIkHE{W8WO8qhJ=!C zJW#s<5M|jA4%s8j2Q&A@7MNO!ikKmA%EyUAotA@@qH<=!bilIgaHrT%N#&=&_AC_3 zk4EaXiE%i}v=x$BM8R^gN;-z4IO*IlC%FxcM~T2N{Y}&!rk_mr=;F@!mAS@AJL8vQ zqg62t7uHs4y2nZsrV*5g*W#W~cN|3&={Iw$JScp}bB&oc$t%zZgn)eu0lwDbAgP<= zON}`Q&avJqKDfbxA2u6lbjWHyNCkVYu-&)7Do-8HL@oCm{ z50sL>w;eoCA8DoJgPQK4b~=7A2La-{;bT|Q4$HJkUIg(W_&h6mfnANv1)E!y96tsmt#K=HAL!g z_vz>O#M~$L)QS7VB_B+qZTIOoVZ#?EVbifZ6!xGpU$W(b>UE;H=^9E%U+c03j1i*{ z2|6pw-9zGgtnMF`^qlv6Q#zX>G3>I;mTg=2%rs|FN1;dzp9ZgGl|)GnujN2!l*MZ~ zE)3jlniKGhUdw6WE^>J-yl1}v)xDPeI11YKT3!|&w;MGV@J^LO>h)T-gu%PL77jko z{KMaxUdwDbq2P&7zy2M$kVrn)+ptmgY~(q3$eA;P z60UZBJ${p#UymQT^6Ni}1ETzT)|ujxj|C@~FTegH04ub~9LTT#3^dK3Uyl;P%&%v& zL(|vFuYcGvG=F~m2jFYn(==@v+X5!r{Q*Z8_NQdKBZFkL-S1?db}@?Z%Up9Kj{Xm9 zl%1oy8bX+VRvuzd2w@Ls0bbi64C0phjragGqe3*mD;gb+fn9YV0V)o;~lA%vck$!H-2T-CY6 zP|KQ$QTRaEVD3h}9P5G50aAsB4qk^(EOfx0ItU$*&)x3fhkoHrm%-rE zQf};QBYBejOd0Njhv2~i3d>u7y}^Ul`={Bd78B8C9ZWPzOeAev_86B7VL|D|?W*LC z?EW6I2y5K?yRwyxZUA;Qew-k2gHXhGKGnZuQ}}roXK?AbtQxXZzc`;AL0+?ISWQ z7IL|N0DW67w|6}VuiL0}?pa)#<1OY4e%u{6{cNW|L<-B4W*q&D#v_!FpQ=*du8MER zMm*!_CvraFmZbB<^dV%bm3P(@9lB6(0g<6iRnG|)PdepqiH*2e!Sp=@fzs9 ziSZ)DK*C}3=L?;YHSx%X?ALzpoM!EpntzlWdYZmF)3t~MTe|~&EX{YI7u5`ZdfL(w{Zsl?DX#hSt3bQ_ zTVZ*f#FSG*x>eX(Xq06qU}G4#Tm2Gn6|4&G>b^AGMXsFy-g7q1yoRGd?F1~=Rz!jj z^Z1W~4&qNmhB!P8HyMWc7*w_tB#%)b&PXHM83yhq0|C!Sh8x3Os$jR6HrPn}6WN@(Rc7^{ z0jl_eIoaH)1ZxS7%?{N|pne-r>}Pm29CoTjrJYbFh?Vt*B&!PEZ6lcSjC2ssTz{7j zh*~TU(WrA-QY)|#x1=7Fv(98m2_%6f#euY8Nj(8w@(98|;1jc?*i$E#lpIalmejFA zQ8TNe9yX$~*TSO+f(F!YKTY>NL8Iugez9-vG`~6Ni>1LT!FVNCc+NT4GGhiN_pP*RP>b7OQLi#*pFcxqOO%XH@t5g}cb5?s?B)6%HQpC}xfSCr5#@x|Z3* zBoZkbc(L|{SRuwcwKDp{vvM0@$3mklR5>FI+--yr@QhSBFWf~gs_>rMq{>o`a}sO` zk}MEE3wo#*iWo!T$+(Fzn2{J)hk?6^LBKN-<5l44^5O9q=s6fR`=CD81`2RZGMK1F2p4%i(&WQFG!sB+M z=Cd5{N+^0W$i5Q>?c%Q4Uh3?BRZ48GRGwcSpBIopCCcHJrYMh0);rP3ieh11stJ!xY-#u+(F+ z?aT{H8JJ+U>!>>5Go3qq-;qel5p#M98fA%Y{3HzA?UoR5&0`BzDhPLx%VXm``-Q%q zgY#96f*WOV`p$Oxmc1av=bnNQOQ2B}G8_^H?j{2P&q#*8a2L7Az++uM7T zs0*{ch}wq^ifDF`KoZzR97w{TN>7p+gD$yURK+J|7qO>K>>@duwzu|<7L_`v{Dn6$ z_>}CqQM?!v0rcBL(_L3Pur*|jIL#J1)wG3-*1bH3W3URPDp;+n;07HO95Px9D=6_^ zSwOE3@_yI?dYx=L?N!ZlVBgx5TN%J8!zIFNbOL zHfWSZCqEbl?$*f!T+_*+VD`ttUF6cqyyvi<1qsTw za&IvEnJ{>FFq?zVGym|nrcI*OX?#15&bCRegO^>kNmd3V8U?avpOdgh5>iUoB34Z( zL&Rxzh?pB_RDbmhS^1;j1#07!41#+LNQsmY0(kq zyzufDzhD5XIpIkSJOYi)5gc3@9hD&s32LlwFR5Bj;?`#<`(J}FcRgx==zyD|g}|60 zqft_7G0@5HA={B3c5ZZ4d_8d)P+|eK&uAM7!hvnXfwW;89S&V`+vo^clpZ zqiNeV>O;PPs|5yGS?*GzU?qD^S#HPdYUQ$!G_ZaP>F#Mx8V^)>f`eoRF4C`sPRIal z${+(U19e&|Ft4}PLwW_~7g#OK7}Mw$qu3!Txr<=gU^k&qu80-j@&>av-_)~Z5NdCbn|XCboRpbpwLfnZ8vF@M;=`JCD$# zj@Dr#AUDk7Iynn#8Cp(0ZDEK>gF50s+E7P#LYG_}-Gxs~9kHiQ)R7!b+v*5PfQ?Ur zONmwZ;85!zm@m!5wKwu0Z;ldRNvM96bnlE(Nv@HnIqw&mrfw2MZ>0ox*U|wd_S_gO zmP+I6*R1U$Yp|GB!Ym0@EFY*I)hMT0%f<&vPoV(oW94db1n$^VAu~WC-r88!2&dm7vCa`c+Iq{;g*6yzoriR5$?|Wmy?# zhk?7PK)@9hg6IA&40n->61?X&DUmbeRSu8ajhYh2yApfekk^hdcsE%&_&oCue`|)k zlTc`TB~nV z3A5$ajrM>)XTiO_vU_>^7@@C^0i_FHT}pAws&#zw1R8ZHpPmDoIaN>7i-s^Qnr_r}*H-kHac z_tr#B)C=tIyfwfuJ!!2N?-UvSkZXFB1N~cQ#F%P!)T^yOe62_5Q*)phi@VqIK7V4u zGS{+=cFK3&3mOF%?Lyc{Db~h7QS8cjUqHMZVC(6&Y`rE*`AN(e;h}ySM1YN=Gl+z;;0uZd4{f?kQOr$NB*rC=j>brBF5Rk2$V>k$Jexys-N_g6FEXrmDshYICA24l1EA|EzMBCm zrPm9MDiv2E#B7UQicJd(-`}v8(=?D?k4uWjray~MEH=%aI*Cnl{R`7*J2rhhukSHP zCqoCvpngGlsGQt0mGSB9wYFI0kR)V(jQSnZ9HSP;Vf#1n>go-;>CZdxv=H^NMu^%2 z##37I03Rhpl*j*pQVl-<-qIC~DeuEU=%;1d*32h_6@yk$n)ZuH{!Y%{8BBJEZk~lk zu>3NFZWg>SL>f=5nuGU?S3RivOEwgf;<`Y?Z_Ut+qImqDIC(pC^DTJU)zFPuE6KAy zC~c`1@MVQ>{3}3&aLigso({Ayj+i#snBPSV_)g-QPD-yRid4`pao8He-QaY!dns{) zEgK5NMba9mrMx!GFV-$9`H$ZrGQxcNseQ;QK|M-3PD~$k90!t6j_Ik=e*#@{9rr?f zVmgjJb)w_sXxi3sCy-)Ko%S8guvSkZGI=l40xbTFsO9KV z+hpbsnMxE-N<`$)DihGi&?@uv@vLZxKNYQR3U}k)7~tJx(=J!DA?497iUs0v9G$IQ zu7Ha}dZ^A`*NG#@r`ptrZ#u3pA9g z;}cB?xr1fC(^4>y*8rh*$f(^UR(2aL6&F23L(CQn)M-g+>-zhYHCKnnhr20v0l>L^J`PE{fUN2D14z&>xSsM{O*HtIR#wYvfbLXbS zLE5H-`MGO<;`=yIzCR%cq2~TfaPIl`D82`^ zyA|JdjM2Ya@eTOe@1N<`I(Eet7~G}p=)(S#0w>5s83QMOmjNmTPQ=O)V!^L5G=oxz zJ9ndWWAdo;gfV$EJ~3mGJ#}DAlI_**r5wkSUBv`)nhBY`76I2(I?xV`NAq%vB*?=Ad#Q1!=~ctvTf_G85ICBDZ!vU&}mn zE&*W}n$^FOV6~Wom?xMdr{a{S$|O8ntliuu;n~`r=NoB=LX7)~D>c@tnZAwz^S3C> zPq8t0UoHfaF?cUF+8vC+kK;hS#^B!t=bq0P{20J$(-{0LG|g`eq6o-o41UBhM!zxm zFnsM-nzn^U#^6JaF6>Xq7(^z@Xbj$y0V)}TV&w>d;MWYAF(?F`yHUC^IQvDy7~BJ& zm@&wno;zc(pRA?YL=)U|Jl=uFQk#jxhH~R9`weYeeb|6IFbdZ=!WK68fMK}5XR1QM zcz;(0;=w>RKd*-k!~^SW%}biWDCP`i z%YHchsWKQ}vg@{<9>~Rne@Lb0wj5ugS&lJ{Rmgll#Wl-uH(206h7m=EDYhP8l?#bv zJzj&2b_eV6ZXBrBdb}q%_k7mlodBy%>+ybQn%{avxscO(+~pXf-+FuteC^k$wn<3V z;~O1a*q@U1h)k5xdYsGvm8?gxa)eOus|?M06jIOKDBXH|8pg->rN56)%z9)`&z<#n zoM}?=%^mM{boMjBhOXjJJFpvF`Anp!XvAWtG`R`A+%-dCF}inN%o1pn&sIDn+>P5-4Q9quK zqqA+rUjTP>)mAi*qq)`}HxxI(Xe>j~y$XbtXdXv%0M<-IF;%cleo5?~;W%3UZRU+) z0q3?1H)@vQxnZ_(rZ&y^wG61=MDqgFPqA6JITr@WEW836?G9$)4jic0ESwC^J)c=P z0kGOM3ttOO^P7bz1#+5&S3Ab&Hw(w$Yrp2SZ9OszV@DVEr(_l)6J<0DFUI-7I_*#>dUVkK+?F3)$0iXBMs@qlp~?&Ja`FkTXxwg4=;<*yji- zTF?U##TD*(3hmMxt*m2s6=@Q*Qy+ z3`H?vuvWfEl$jDk@f@*~a~q21XoljEfDZpEx77kuW~+9CH4Vr=jAl0Vrs8S2a7d=& z$=GOjFcmMxfqG5FOM`RIXDYr7V6|x~Zh@xxO+}OiIZee29AosGis!-CIak-p_*_R9 z_Ch365t%5Xsd!QbsAMXNmE*Sh?4gjUC}f?xQM##k7mSaaig)7^GZop>b7v}wWJE6O zQv!&2lM!{G9TL!*3#;WxwGxD7+zO*X^ulWa(N3`0fy`0sIawqf`_c-d9M(3Om65Sm+s z{|)_Gp+n~q5GJ838BqtT*@I%9V3It5Q_i@zyqf!OP^<~gr!dg&^C@D*X8vBS;#n7j zRX; z_^pSg`3*l@?l}#=;~Zo38-A;U*l{kcmGO~|F6>Xq@IxlbX!tG50F?|sv2xrtoIMm# zx`URRyHUE~w;jgE4Zj`u#0)?7^xPSKhYr=t%`%+(^KKWPkUc8MA$d)_R%@CAWR=>; z2vjiaKcD|!6yy-YOe?@)UWX#^bgcWB^a6oMp{3LdrH1|t$lk6o`9|4x#^KSbpD~xA zh~q&Wch=tO$5>_^D-Z@x3RCZqv&~^Q{slBL?8Z6j+%;6bVt=SEJ{<1CZ8P#Nve}I9 zWW&j0Gb$R#_u}YmoAD-i*;Siyxfyt;mB9_gZ$M|3p{RITScfZI05p?OOaqLSTX04` zlhCY*@zS#*sI1T|S4+GW=-Ajq6@*li{fSm$y$1C>;nE*wF_!93tTd{YnmcOsZSacM zK&``BXQ+_@*ZDLW6D7f9Qvg|U)YCLWp&$IDS4oQT&DaPC4H){a#89{;sUv|J1yNVv7c=WRq!EQq4pGfe*8+De-4yOHL!yFW~uG3klQJcFU+8ZTX`sLhQ3NajqQh15iAQ)S% z%!ijy~X=hmJ$hgFM?+4%|@CKr?>_8vXG9 zp~5)S)qxU5g=#UHXut#9a!`VcJ;7txAshyz#xUGOP>PO^nuV2)3%{#TKh*f3l_?heP?^?%7Agl|sp<8i1P22(a zJ(1dn_PVq~d4e3ExHu4>;tCW+KOef}YU{=L#MBmh>O^hH(X_3$P6P6n>SGYg9ITcK z^-_c1*~#6~lmiBp%LSLux?CIghr;7_WBmQR(^QN<76$IdI007}58k-=WVnl5c;`L0 zi+3)6l6b#F;{6g0?>`EU+l}`hWW@Wg!@%8mC*T?JzQ;?0)?+Tb^PcnIJ^ZbCU4Rm` zaTD=k8rcsd%ncFD*;x>*$9+(E<@A&iFGI$awgVY<`|l`P zy3n_T(C4DWI%J|y*d0Hmd$G>Q0F@H!#L5w)_Ui=A{Sy+--6%b=?mieFcm4hxpP1{% zo;q;-$S-QQyz^nj^6+p8F5w+2c|(>bW_Ir+EUz2ade<~NEMn|~g(lo3uyq1LB>iWJ z$Ku(AMv3R!DLkadGmY{Ws$t+{$0GHW&}sTBrMEr~jNxBRVYl$3vhD7HWh?TzK-AUY z7*bA&`GcO7H~UzbmWPiDjbD?faJqtS8}>`k$cTW7D@RB*h(A>~&xE^i+u^($zrYcx zA~%47|2!K~o+zkdg7|YdI@@4<7+!YOU^Ps8JX$MLPePB1IJq4V-9ZYU^RCXccqL@TKCz({jzkgkqv%HMCxevSq9=8C4+< zxG*#X8!Jqx96nwzZ-?Zr!-2mctrGV3xl{tDx88&_0c2!I3Ence1-TuB%OGYBlpueY zczH$ZY!B#XuD^$XKXd)t!{9Xzy8@@A8S(LDOSEb10Rs`_o;9d7D_G6Kgt-)80%5Q( z;KmiLWr@itMzIGJrlZLy^Pm$!9GfEdDPe$vdYcw&|4h;3WBQAc)rk4zmSy3+yP1GCZ?WG8F!8zk_^)Rs&*k^3Kft=8o zY=B~H^e>{eV})%cG$kg$JmJ5=x8svhgKy)CS0Ee!2X&MPP1v!m00(i=0L$vR9)?2n zZ5<$bse$P5@~5;SVHZk)+{W(g12AOnqCbdF%tdEU9k}SEiZMy1T{r#UQoUZQdp-2b zNkt5d-#MQVi7_1;N-ty$CP6D%9N^$>sXJ(3vII)qF{`$M1xX zK*X^#d1A;w-4Pspwp`litOyQrvt!(&h3%z2$a$?5F`ifhhpS#L%A*+RA1WfeoB9{K zhZg&~CHpWo0+hq}|3Z#G+>*Q@F7%Kis~|9+L12_cVv90X)nC7}gLJh{sW|K>RA4Gwe#aXRUP;9`_O*KVr;_ z6wWk2Cv`O5g$nsfUfE;wJFe*dPyqVNv?hS1R?v__YY|(LdKDZ9>XifWsn@_!kc**9 zu3Rs{C#GE4Qzyz*j;3wp+BZ^y!yha#J;?6^hXN=5J3iNE)wNErUYClC(9nU8SQj-; z;JvW90-HLG_2(2S4KU-X6Jt=uWN7`x^$GZEtlSt9zreP?c-&g6RZ4}b_!F~IlIn9m zXMcj}J-;eutp@o&tXyN+cG|B7Wt&{MUDCD;D4y`e)0z}X#i#R$l4BSls0-l)w z&kuK!ivYauHVLrQQ0NIF%%`6PA>`kR7*~X+;wHu=8Hq6x2JR*X0nbc~iEt;mh{5}A zlNfW*oFW=1QSHs+eN%YcZsgp;F|XABZ0Zu6G<;Nqy(bLbO;`>-&-}yRnhv|N?&51u zPTCH830`*9VK)k=yX`n0dwmp;WyM}ScCK*ejVr~SptU_WFPUfIQ(`l z9MZY7r?64*+}Wfy7%{->67Nh-dmcFv(V8{U3#&twi6UGBz}bxIPL`o&1}or)PG{7d z94}FHD85O9-ICsiIC3Vu6E*E$=bHA703C?(pU{ZKbLK|RTz_k%$vON*k2irJJSO`T z)Ua$ge!(VVEGy%GXT!4WFN^uF zgeM~CBK}qgIOI|jk>ObpT@HdqZo1$v7F|vW(j_n{C$Gu;FE*M!D;_PiZ zkPK%Pi|kBOp%QH?O+t}&D9>0QfrxPxwvNUN4YVP_vQ&B9{7?Yodez3cM`Nmauh;QO z3xAo&@d+D1(Eqo%Xy zGLx&q(_!0bE93dlC~g0Yh=eomGLaT@A~CHcqB+JpHM`ZhW=F(25*uYF)*LJv&BhVm zryUBTBa(2@2m4)(>5R-{YApn3w^$o1l&ia1v&ScQwHBlIyK}r!9x69?-K?ra#BYS2 z+2?Sw3_S2%)NA~=r}Xr^KK>~DH%7lcegvLIuf~<}E=+z|8J`NHNh2jueO-o6iRy^L zTvQLs1}f$tyit*=5^f~&qpT>j*{C-@4~E(bY~JGUeDii3pV;Otd+K2Gmi9c`JtcC& zNNun=3RjYhjN(1&a6Fbytob)@&&s@c>jT}j4P0Lby{wQW7VBdVjlpJZ5HEx%Rg3G_ ztnCBU4CO1DgYqjpFb4b9jV5jLx;JnS^x{g0j=&dc(cTQS*Ojj+Cc_)KH^{cFznJDU zGlM(&H|o67A3%(~pSw{ay?xSf(@ERQolijN2NlMh%YG2#p}!O<-YLb?3jBYD!RMk7@3l<|?P*H8 z1Z|e+zl*t;FV(CTT^CP9yd z@^?WD?TwYka5p6gxS~WbfBGtTj@ z6qDD}e@z&?o2(psp81ErHTM^l(GlN)Le1V^ydGY5b${_FBTLU`Kb+iGWrRlXY(BHP@#sJ9FF+Xwh$0zA z7Sx&;$M6xZIR`A^zl@Ln*AI?k(*S`v{LTf9EX9n*^7CA8S zduWEv?b!6)SQ*U{A!HHlQaF4p7Y-?4@^NgGJz%ng*_C~qK?P@;FV%p)oNGW7sdy3^ zr3E!8Qh{U77^!$915}Ds2twtGR0t8}Zj@ej@^>&k9;x^}KCwszdwT976^FtZx@xoB zob3E;u7Ko?L(H_ZoNB%f?2N2|CyP8D?wUNNU68GM0 zorJq>h6@uFd2K{TFcj%7piv9KY%#slu!xspBOnya`bE?}O(jvpS|ACI9C0ANBS*m# zy(Q?BYlC5YV%mT`b)XH@c-lU6v=R$#de8IrWerm!6u%~T{WOPJ#d*E+Ya=6&62{NU z@FAwj{{3~IhT+C@W!fALk00aZe<%*Uo;b|Sp<&^2jcnVRNqDo4@Xlpu;nt!GWNL5q zdcm_~xnOuwSh_>b)FpyF_odwmjUW!Dq5yMXhfQt}^FLG{IsKo3jx5E&`B?b(#+hQa7Ssh4V(5T^ zNt{JCCDJfU^*~v0Ud0iC!|j|uGdVYlc(S@@|$|l;;+R^;XH9RY63CO%a8o_+SKMtEy)Khh0@w0WRgv&RQ6T zrL(M=3y*DKmlpE z$)hhqg$8jnEDsB}P2-PnG=b5JosI#|s0>wz@oO>*Q@wBawj^PyL6-sPhin9ouxf!iN zIiS|_@@XXw)322NeEO9V7+xc#v};{-jHD~4zNB&@WMUPQ@hJ2Mc;52Mu^HeAKL7c3#OSZk;GC)=zw zlCHHHR*Otp3%kjxwMJwIt=)w5miAg=at0TE=1V1{UN2|sauCD1OJOR$3BfSkrPajP zC&^m2H|zVPSMxrX8eqikiS<^^=pDfsc~U>_hDKRZKOP7Jckikba4q2gcQwUC_%)tt z{EvjY$dz!wd(P%&-_B5AEhjC|mvpn8^jDq51%TL9+r_v`$KY~qx_k#Zv`iP1?}giK zl#|l|X*=nHrNN>p5=opEjdf~wZ54LH;TA4-G?yi8Ly0YT*PMWh5%?qCEW@8LPg(|6 z+Gwe`=7%&yVgCE+sQJD_*oYe&|E#8%JocKt&#E7BrL9)|l^W-N=Nc#Nw*DF$t%_;5 zuu$XXDfTg3)397=$c(5LQ662xvI(f-k$IxUk|s0->#dr_(ko#=5Rb`*Z90~>5E_Au zfs^`CuciX=wGPXXQXjuVn{I0kyP1fF$p26yJKTa6=7YBbT;T6R*~t8#c94}H9|^Ga zoP1oP$(($S8*`p}0KtTiWY21rr?)dp>LYn#!R$78t@8Qpbo{~`=#5W-kFy_oh%bQ8 zv!WMRZ`LsZ&Qqd$^a!xrG}$j@#>#kJ%4G0UN;JS_8?w6aQ#!5mOZKUs1MyQzG!T+X z3WS88V~?ETbwY~!8}@SS2jX=|9qu08j8DuxVo#m8M_jJKG}?BLRx|&&Qn~2jO}HTw zC?9)jcIOB@ZVjT}LE1IV4w7f<$sTUnHq;@eM`Sh!I{*c2?`T!}K+9|#3)z(XK?$lq z2QJZtyUF2U^ZH)dwlz~xZ0%UhCbW$ndM%*tFpwdZ91&>`uL7l`rWbz@XKF{j?t+(H zwH^-+5u7$`J_(G#pV!ir4eAP`zC8$e7CCVdal)M-hYCd^@%!Tm~jL(~r3n`t!R zE+oF!%8J0?b!vhEGkmEy@^dtTY^DoslDrKYaYOMRuO1AJmampyeNbmeH;7P`lZbXYi%2772#JWXwfresj+^z3q%=h$jMy`q=9?4d%U z{U*;RK=;C#@50b%iI)UT3cYPmKkF<=+aa`)&^D6HjnsFKCn{xN%q*xI4H(z*TS~rF!A<;ZAae zH+bKEvsI`Y%pzFKkl>eD$?%3^!gvu5+E!4%0w(RMf;u#1v67Cu5C&uEDCbfXYRV{s z=HOy2<{{<@`1&<1L8qp&VjhRW`D=DS0Q1sB59}sDE)@ksr+%jx{faP~xO|i8-(}1# zD*&&T(!>C-?F3qkQ~wkLFy1K?R&$|{LM_{{QTD`kRS95JNr3%&2F53Q23W+uXP{>b zM!9ctdc4z460XA%GPTSTH`hh7D&| z$+lD8&5Huu1h7IIZFnaF6ebwj6+ebhwK4_qZO~NJC1}m%9l3n?9ff*z*Uj~fWKY^U;8}{s|8PjSs7pB z=)(S#oO)!Cj86S%2B_rJi&Y_v1;0#31d&58M3lQxx?TAsjE~!uU&JS7SF)!L>`F4p z+O2cYFQjMIDhFq_VOQ$q6FRUhFZQS_9egj?mP6ZUGE}ty?wep~Mf7JCbi`n7o6iE> z--8jMQ@p<`LHJ{!u762{Ezuv!wypc7InH4mXR|69c#&coq{rtZ07I)@e}3--0Qy9w zhc3}S5p*$MDq{SvM5t@S(PP2>9vWq_V3%GMqO>R7m4GY#6+92TGTcQj`<3_Xmvy@R z`Wub{&6zOPQGzH7#Lt2t>V+c4^TLyH=kA^Wjj|Bq>@aY*J3+uR663;f7rBVRdv2E) zh7?N>V?O;XXd(Yrq$r1{;wD8YBPn)-fxAgTz!fP{Ji8mho#Y}0?>i4M!rz+t;Yz5- z&!RZ8J-esjWmi2rqg=F4cJn>#`vHrVcjr}c!oxETqIU&MOHW92Fq2i`GS9vWpCe1-yxYFpzH>~`a=NmPswVw>#Tc4J$4JStQt z&12>K&=Z8^>y*I`2gWC=MX0L`cauTQ+wppNJEXHi>L3)lhU;2*@Cx?0X8btSqW?g6 z$(ZInWvuTub_lT712n&>cXmIW3zOvR{yjFDNzU%mI3TyP`_I7%=5u!c31GG9?EVy* z=67~csAY3@zvUR3-`V{-eC@aFZ4Z`?%74Yth5acxyT~9Jo!w7lfJ)A;SQT!+)gB5t zyFyaC8>KtDN4{J*yGP*@b9UL&bLZ@;4HR|5K^Her6wnTw+_Rldt^#dtpvZgJ265-k z=hCWZt%4&gL+5WwVQc`}`58X!$_~i3GjLNy$As;}9%gK+xNuAcx8@ufO_KI_`cBIw z5?eX^)R#h|EUwW|7`WRWC*Yaw@vFm~(T4Y(hc@AFOV zwCyXcgO^?PmE5~vntb4X(i70H|Hi^4n3Lq^%J$7F;84M7T?nkfei|Iyg|b=o($(;N6H2xB zZf}VDK3Qw&`8b_Rgfd~M__tg!l+P1PX1+oKUigCIg(=>-`C7yFVdQsaQ1WDRW`5@wn%|ju776G@itQGVGxIA) z7xt&*%pikgbY`B;0F|5>u`0xJ_v;pI=T3-KccXM?<^@1FzH@gDJ~3y8Jw12M45Z*v zb``%U#GeY5BL&xl*nt~!oYRdFBQ=cWWD*!;K-vT0%R2dkQUinGB|iF!(N`LK@nWxI z3?%K9vTf_mY2I{8Pw60}!I4WV`_+-%rPcm+{F*cOYrDis4v(Y`jk0(ouL}crTfGE4 zv(@|7a3{H}Uf#D~+6aC^kEF_w;5S5)xnGI{<1rkxZS`IXFS}~>TFJ@QdgCVV!_cW^ z@+McHuy?KGWD}rf?273Dnl8tgX50)&P30oZpZcAW7>`o-LMiy^r5TPhTRs3%KdO*A z#a82&bK#Gy#wW4SOtKn(h68e2jsG5;U_Pty-vCydR^xv|)BIK=F5YZbN3 zfvrsPkM!}O7C|qtXj60%G|& zJRI{rSGH~4Gvh2t4S~~dO>UK#$ze^t92#Y@Cdb3T-PR-l&umRz7w#mNHOc$-OCjBw z{8NSmzjczdCKVUPSKy#+Yw~P(*;Q*YN?WjWl;B?I*s>_yt5H~$ho=G7EK4y}FoHJW ztTS4cP*l)yn7~*o+&oDCP|1+@&;W$$@KaB-EoZ*O0M!1aLhTgWmmklCL$WU)!A3L5 zzWgQ*$ZcPKJ2=67_T@JKR-5+a520y(`x2LOHv94`j-mPO%O~M$zxK6_Mv6*)&e4Va zDMclbK{DExAISif>`SpK#CrEjcFn#NQp(*Z-M(B^5ccIE_{8i>_VnD@mq$Q>ye6jK zWA!fYjRcu1rs>eU_GIhsX|}Y$Dh`$LGzXnl7Qm=6WHtq<(L1V&qODU!(V!&mI20tD z%u^9fmElur>QvwxeX*sNLwml}!cuHo*cqYQdU|H{;6J0Q;Y|K9SM36(AH4{a2lf|Q ze8TL(YYLtxdz#?{w#%UOm!c}OyB_**lzPRWn>A><0%V7LojcGX}oYJZ!uf?Et50C$$fU`b99 z2wJHJf(%ev1W3#Zmh;mZ4M)xL zSgAkaH~O(ZqGEY?xP*76m*J91`~vdl-~>^#)Gt_lN?RRZ)~w+LO(0tn z6FPApV+3wV1^z>R#2WR$gj}?m6-B+eX-BS!Qti+NG=jjpT{{$C>;9rqUV~59EN(fM zO-n2W`b)8I%YqlSk*Rv<&1`J`PxWFMyd1}3%#z(XUMUZio4amSv99=yvq1h}Z4Ef} z2mZmX_)P#?FK>wgDp@^LV#g?NX(I=)H#d6b`dcGS**U&Bob6SG>8&tk1Mtg#8CYH! zkEdV^KfRWhW*uXnrn2m+%cI`vcz?B6sMiaVjBT0R0}ch#-o>B7V6n`TPeXq?NBPN$ zgCy>Jj14luo%mXZmCBuq)D#4Z>aP^mzhyxVkCOQG8*G&RPjxt z{SJJd&ZiPj2A|q!a`CC-o5ebT6>97+Gcn}HQ&5wiArHMI!H^ggsMqioX&+0v4bo*p zCL8%FsIlY{Xyg!>_(c$CDFhqF=oKkbAiR|D*HmXvrhSkgw5izOZ3EHz22 zn9}|>6H_isK~91x!%%l}ff{FEb=sOh>mn2##Q{+L;!D}5>E=*|`>5kwj6{ae2sR2D zLU)2{m9=aSL94}YEeqkB_L(B^D{~F{4j2pAmOC>Lm`H*1>oO^fs%f+%XuMOiyEE79 zh$OdRqwFME0J@JUZ-#t_s)RMDzENX)F!R_t5GGpB=_2L5j8=Z3hRcRH;QkDs5(gkU zb8$de8qhwWaBoDgBix9B!ortzH|piKL!gK_+7>(<{C$`d4+pcS4#L3{Rc*KK*x}^D z!}+ptZy@-jtm$VOFmD*R^=C6GWQr3{zeVX}N7RF%%nq#fMU7H(@Cx4v@Wlp(cs7FZ zPOb0X0gLDsi@C1C0qSRE+nI@N>j1^7AQrh3qXmRTWLk@8%97Ydta|Ta2!)=A=2B>s zHCDZleX9*kI{#{H@|7K{KBk?~9o5O`gzKjUC*D}j;92bqZG9(0%NeV_qMZR=!UmWg zs~!mhcgLy;c*a=uM7WDwv1;D4UxDed>IB0s*2EPpG{qfr*^j~~q`#DedQ*53?$h|U zWF*2pVc>2e5O76=l*(oA3wM%>47~3=WC(w2ZW$|0Eyq#Ed%4Sc3o@n z4TI0YAgm1oLyw8=0@uz1w>4NU3ML+i`G8~aE7DueQ}<@9cK?@*gD(TYS*WnbhX(=w z(zr}B@cyp&_iJJ5J7f0oFL8)GrQpldKBO(s<|XSHPQ>)8R_}F_ta#7mxqD7 zbvpr9x;fQJ3|q=ZkS-j!yC+P3OSMzr?k;SU zJ#aUNZ3(e)D5kWpK)`QOuRy?$Tvs4`1P8>$9`8)8&yNNtnD5BK-vF$TfC*fI@F{4j zwsEswfq;Bw9$8?hL|e(a0^x&>q4|$2JP2R=Lnih)1PVpI&(VebDTN}DK|(4PCqVlG zx3f>XvM=z9T(crx{y8?v&dW7SnBnFcr0vRrRngYT2sB(&9*)Y*2FrRFg^E;^nWMgs z8WUUPU0D6m3x~lfhYG(?6d1l9u0i$Qs9q>T@(z^pE!FF_x==gQ-mh9gvxeJXmOnDG zTK1SFO^8{L0=bw)$$b0vJmf2iTi=?C8OZYxve*;1=D8UGuj5!i756%h!zbo-u%`~Z zjt=A2hjFWL5K=~LuS5D9C+71v5SG{HXuWl2*~xscX=hsclG>VK%(QCzqGONUwnKPC z%JN>Ma4goV{z@&S7X+75*aAOGww<9Uwqn)GUAQCL`bN3Ws(gSFvJ(( z=F~0ve$fiIu%r|7PeFHhiy6 zM;VHsZY=@)=0v?(D)zxG4wVv{f*b^l5XS|zO#v>yKw_u>b|M?Qv?wJgxZ0*D&XsM! zpSNhu*;scN-}WyWK+giFFc2*o7%$WdWBd;>F~9=Xa_qcX0ZOkb^uX9zhivYcxe5v9 zLnQ$QyB}clSK|a|&;re64U(MWq5+PI25-i$l?H$jAfP+~2txd8MC&>MNZPDuz4|%l zBu(^upB8~IPUFj#XbDSu0M7}DIICZ4_G7DA*e1UeV8VjKzF2bLEi;FYwK;`RF^_Y+ zz{VV8JFW5WIzq_5|KD0j8s5T4_wwJ8kv#6B&3~tNz<+_U`}HfjkSyS_DqfF_!gsL# ziFhVtMq*3yBZa<#9V`x{jUB8tfH&?-_Tv-tCD~I4zN8vW+dEjtje%w=jFbjn)G^>nd@=6p!$8x>8@!=_saL5&+nJ#M@ij7PV+R^>Bf@_L@&MU0}G*2t9uUd zE_XE*63_jkGGhNExFo}F=qA~A+AGiIp@QX%?(0A*X?f*~&Zmz!8kI9(zF*Oje=Cd* zO04AYORt1RA%UX1MVGN}HNSL`;traK8t`29o8SieOAU5MJA-ZT0Voe_)_TzaJSpHe zgn_&LF9NQ)rWe4Srvg4d%&NM$HQYrm*Od3{R|iQNgugXiGqqUaOL5S)YqkMicGWdA z%9=Sv1mD2=Yv|Z=(%eErxNAnDfD5p;xh19wcH~(^DyQRS9cuj}oQ;4ZgAhIk^PX`q zM8S)~i`!l&`M2PZCd|Wn?M&c3C0uP@@rygnQhq*6hAibr@R1*5 zPwri(Z}Tm>5JL}mS*A=-(_g7^{x9_-c-rJCdtZ_^`~C+Tt%_;5fd9Cea?*JzNrb2u zSehdL<}qez4G{0kztvcmk8+%38!H_dT?UOD=kxHjzIE$32V)*+X6))-m&aJJ!Z@T8 zc}KHx`9IYU(d0eMd>p{mkI%5R_Xr+KyIL-|m9fN(aU#z~Oa{hX881zl4E9Rfl*l_7 zw<&+iKJ}vrq0%;`ST2$)6P}{Y%H(1S&FXL18*hNwwF29f_&awoNAQWcnCz(&7n3h8 zm`2+!=0RhP5wAyiT-Lox0OEHbZ<^*!O1JBRBTVxbR~h~yAm&&&_z#z2Rkl~wuS;%4 z?!l%_S{R>|6nZt#SeG0oe}=ujYh~Nk3__jd9yv@$bF<)`Zm&? za>7oB&h5tRf=0mi$`PA`w32QN`$N&={%{xWtt8%sU$*J~%3JtwG!!tVArz=l?g6jG zAlb7T<0sk~<0HIZ4aaU*@$+HeZX6SEYUJMz1JC6o@;>t*J^ZcdB&xL) zzZnN@JBd5sWmlcVy)2PJ8+X5lek`AmNfY4$?rk;GJU%gQ@c3Rqcz1ey=E;QfE~|s% z!`wZPkNy4qw5c;%o2V3VLu?ovsd`~YR4gEXAPQUUhT;EwYelob^$ zV1j(+`uj73#BWWIikIe;Lz2^0&=ftMBw7MaW>Nc)--0#)sdj-vQ0*K@!X`+sw7U|z zl(d?PnePCzA$pZQB~qO!a!;t((dZ`eqIJ5?;Wpev zWkuMg9S6=V8OJ14QqVFRfZ);O4~o;)1vxFOqu0u|t=p&ByzvxUOk#k^Hm%;G<3Ov1 zREDu$E$Er~K zoOoj$XuYPLq3!HsXgLqG?rLX%Z(##WKhSz#7`WRaA>hg)2^L>`DBMLZyM*@~wlzSn zu=5rPhFzRoXo@@L@gIfA5`QW|_1W+=+zae88OiWe7`U4Z1Y9G-#q|lbhrs?&#$PUQ?Gt0q=i-^ zQ;qVS7Ub|KiBaFqM(O`lXVkb1ALl5Dc^`b9&ZrVk2BX?&axtpo8&5$@`^!umc|!_n z@^fSx1u^4&h7?cgCEA~Y(dm5TC!xlZUu9ED@Fc$0VRerue`-MvkCJ%u$841TPdnks zp9Ac4o|Jepc+y6bizgl5cq?Ms-)7>aGLNkTVWRb%E>dcYR$;a!4ya`KlsEveNcE)1fN(6B1DkQ7-scrGhy9!T9Oyt;A_$o9CX)JwL;fw6sHg^^Nqn*+Hw3E?^ zJp>gu7H_Owh53~b`+1IS?*Wb4MqJKag+tpJ;7T^Y^j(EDVc_m?HUZbd*%t&-;!h8E zkt>|dd-iL!Aj5W2CiCL(B;0!n7iJ{F)-Z545eT>hY5(H|$-755vo@?kXJQ*M5|L@@IfNEC0k+Xktgfvqizp5P5)HObmk3A0^r7+)psG zQoQvrDZJ$UU1{69!)#!c!J&MSza=ujXz!r*A?b&X4%wDsa*!{=fwYk?@kCV&J*US&{31E!Qp{7LAct2*JROzVWy!@RMCdI+FbXo}2B5#%Ym-C3X!@bPIP zj8kb?o6yHo#fk{ZVz44_aD8?Ia~nqs%?M-|)VVPDOk`H%Zm0NWFF=Ujr_+gyx`Jz& z-Ds%+0hZ7Vom8clJU%;QYwHZ&X^x@!&)}_t zuXC=TmGOy=F6_l7HUrqFN`l(L7bievFb~N9Rm2~yQHSA^jVNT9C;pgP+3fp8=c(%ee31tK_b1tzB(Q5-vd+h^nHSpw+(@qo} zZE0N-hgfY5ktvK*EulHt6_+*35eMV z#F_f805_u)uP9X;6Ll~!hidhDX{ZSW2jI?7c4CI^2FJ>DS|PRJavhG#Ko}hB;i-?y z)pD~?DZhd_)_ttt0$Q;AgJPK#xGU7l&=C}OYfg+;)J5UX$HPp+txd#IqH#O zLL}*92NO&MrtMOhKV;Hu>m(j>XtuS`D4%BA81BZc*?2eEG}{_BB){lLYBt3IaUYJ( z)@=L1%dToRqjZml_ql!>g03z7=35Oy%N?0CCT&L2be)(m$ld*M?mk^-1y@$GQDZQr z6e;LjNr`0}{6?+a3U!-DUF;Ss6;N7MC{1SGr-w`QEPIL~=&uwGU!4nw6fC(88wG@*#d}8Yo?Mfp ztmZqR5lgzC8$EOVt&x`4jKAnQ12VIY&Nym?cpHdcL`hp`WqcbOlV3vNr<6MWR`zLX z>iAKmYLQ)!4Vd3CT7m+~wFq8W%abik3)}OlrC7A`Z#BoyScnP_obdklY~ZepQ~brk z`$2&*t8v&3GvWFZY#iYs8@LWbrS#J`XMjo(CtPKr4Hzxr^vVoSDdHpqix8UOQIn-C z1iZUZ`U&<0HDM($#3yDYv!@QMW?OdtFtUsLoJ#^$`TXF>KXcebfSNuKaum{#!PD6N0Xi1Dn2&L(?uG*jIN|B6fD4 zZcv2rdYI0_jQK6zck%M~6s8x-g{hJ9`(4EMciYGJzjX)S%Ux&*a`vpNG-TNLSE?Sj z!Tp=^tsoM0mXqpgWqflAw(wJOkx&+gY)1T)HsvQWKqVJRC?KI^&Dq+cCKpK<2<}Gd zF4F38;Ue|o6LXQ+({tw{9fQ^j7Rw&o4%LQ7 zLh0Xfq0(;~ZzfEyi`07O^xO7%hn}`UZ|)o>@R{)9)?InV5zW%h=0LPsV0ZO~zUYi% zsWAlGE+d1D@xoAPAd+82t2b;Q#f~QgMI&wTo(=q@E2Z>&(etbpmZos~Z`e&}E$aT; z2HC-GL1UH`ppqx{Nv;cF&bxk6*88BGc7Fd&p)7tmg0Z(6PKB3Ub-B_wmwR0e=+^SO zTsR=dD{jK)Ae5PRC8hx;|LHg*-v)xYS^lRRM@vK7aId^FF;?Xs6&$9a?95uVG6_FH zIev&9S0~0m{tQKUYd`~QPL39~m#V9qP>vD;ou!@QmGV%z2@M+C%H!juq9EetPP=&K z`n&v{D0X-y&044oYneHnxp)8@0r3HAJ0;e_ElEQOB!gqif%vw&l@KZE$}Zk`8Yrf> zLZ>`=>{fhYdWt=Dpr_P$+TQR!e7x3Z4)RK8-d*mKGAk(s%&(npoo4Oi-}BW+o2HOX zFqE-s*$ew}u(1Ny;$p@aza7_|JGNLuwOBI7JH_D-5{J4uJRGokuWZ|zp_sOk#rF4L zkaWCC9-GHMWra9PsXjfX$lco3<56b=x7Dt1^F z?#7J^-c24{gugX2{nVO`KZcaDjg&u!mt8ed_V-9LI%jeMpvbaL3`r&8!3TQ4Xz31O zKCn#gCnj{pf=z4Xh!?R0Trf#sQ#%^2*T$mK_Cf`coZ0qvtpb-M2^pH{TSflU!sK^b z4}VEifmxhP?L)!={b#Zs#H7J`;6QxVL!j`*h0rCp9bSr0%ywW;o!Aa?G;P}sz2o%~ zoJt%UFIP&o?O<&KX15>|NWTR!-KCv_XXW$(rx_9EdQmOugxa(mgWP8Ef4W=Suv%Dh z+3nV1H(A}<5!u1C7xv6fTFaSTtTDfkM8-QMab7Q{=dwS-)|^63d=rA{X#3F#OzEk( z06k2hno;~tYUY0EFQI0%uiR=zeW0lsfgBLfMM8H5H8WVKMm10+b-2To-EPOk7C$q? zk1dvVmWE)1y1|otNZ7&cU+{a)9f!T<(I!PJ4&N;k)+I?hyC}#OS5!=lyVafDe z*|v4dG<)=(s}}f7Z3%gB2w!Z0wspJ0Z{+k{Lfzw3{t6m}>_*+A`VaQ4=2XfwP37~+ zSN81+d)0%kl-tKy42{|zov3=G1}ENFb&yuKGqfW*8rmgX4r@cBH!w84V(OXg4DIwz zhL$f-a9MbKZU^}yHomMEa+ShexEY6cp$rN8jBk*w+Xxg~8y=(^50f??L}b7lD0oA- z8#gX^H+gUo{?-f>D4`qwI|?8>Q1BGI?5YK~O!x4afaUuae+9U)OgFA+gw3{(-B2^u z#L&T5`xef^w}W9Ff#{=i4<(*uJqg+FW6XSGe-G6r;3zbn?8Ch5eqnm$Yot`;Ux$fr zSwoaDHq#U#Aoznc4`=;|ZeB(3*<1*tq_D@aQ7|d2of8o!z=??7;YzL0JO)ojz{S_4 zIz*2!M<1U@kdHazz-||E3pWEYo{IQku8C51{`aAg<0=Att?w}#iBJ4;F7qbal&c7S zYrzZK@KjCvSvEHRr+NY0ytmo@9$@RGZ&7X}uOg7xF{)|X$Z?%*aD0>RDgqmTUm8n) zX=VIRDHy{~>5Rj-*{7-JNmgAR^{SfvjBOiDWK(wj)WM(Ls|eOMOqTM~6-Pe+0R{!evAjrW9)b6iDmE_|NOs1i>GquOY4F{V-n`+@?t~Kjt(f&xS^!&`Kvro)56IA{iLakP*CrWTEBnJKKw26fSpgieMaXW7i zE}$}5tT!%d?^+pdGC407hmj|BE;b5!QpWL`Jt0Av3Cbe7Sz0i>{aO+5%3OnD{_x89 za%dD{d&D218pq#dROdL+v@_T22;~#lC_Bm*;uYS*^#Zw@4!Z?bpZ1Z${Tnlnt^+xu zcbzUyZf4{P%RXX)8#8=LOn?~8#RTC6Pv;Uu2t@31gd5SumIzF_8})McB9OCz?g!u0 zdJHDTH?`PP2b)^7Th#7lC5L0&W3W=LmI`${UqkL|WzN*lfO)sKT7Nckc7|x;>35VI zV@ECp%CwE7^>`6MvaHf#11WsZ&3LEQ^tXX4bj#0NO5v@yZ^*VY6Tw!3=Q0~{Oxv`z z>-L{=<~erVeh!U7T1elX_zC;A&0V*J6Cs*<_5|lbqqavU_Sm$ot;>Zjhu;*t9oEj! zR&_G8oVSmh*3JOeu>opTBxkLcvtO^x{@gHd_l6MxS9OYmcbZ=k?jqN<7rbY`no2Tk z_*-)iNlB0R$GDvAJ)|$e%dYMr8Of%)gydUE+W~XdR+1qz#g3AZJg0%tHkQPEVBh1b zI5pqKl9_BeB^O+i^ExH4)v|t7nCqOoRPk4c>VTzdsC`HPp^;8Tkw7YB`*0v_Wc%C> zU2?QXY_PXUd&v_U!FcA;+C*8amszTAq-Y$YHg73L1r$ zrLF}2j(yvv)$(*Zqx()Lqswfy{HC3u{i>6p<+NJ%+TMo6w-_41W?M_diCP}3WmOos z+iD@;8LgJ%!d>LDT6oW4O9XVuD4v)~Fzn*wLQ^*FJpQ8)SK?14rZ$DA;m*`~env99 zEDYRD1_G{;0VT4S!5sF78vmAX7rDs5d(K0K@VBP%sDyg_30$1E@%V0d*;V7wxHHWX z;M{(EH6YKjA8myuOh}`^xd}|OBE`gjPv1)d$eBxSr6)~^sW&}lLVBlud6 zZ8<{S=5Aj~R?`(|^$*d-c9b?PQMviOC z&GF3~Mo*`(kc9Q`*6#Xp>a6a4gA*sX#E^bq?rHE(HZQ|;#OFd4~DO&mEfi5>OW1?}!Dd<$zRty-nbVp^EXaQDLtGN07TGBMpLW8iWq_T| zs1i>GquOY4F{S(DaIm<>BEHmimFpeC(77 zUc`YZ+QO+%`%Kwx3wGuiG}&%*p;0Ivi1Q;-;QYEwiX6E#N9CFwk>qe}l$|6CAXmOn zuNNj6@*VyKtU>jS!u&wyv2`F!w4T#N%E=kXN*r)fhEItD5S_U=AS?|ikw!Sx?wlCg z52HOJ5khe{>g85$Adv>GV7^~829x6ZMeM1A{h|&NX%4NIh6jt67n|N)q7yQo4kt+7 z{h`*IW=IN+9B5jR6Ek8bFja-Tx8#P@0)a^(MAZwmXm0|#`(=E16Y90H?F>Yul_xU? zal{dEqud+NUaEk&_Hspw|Dn+J4msr@!_nDM<7?q% zSEI(ujT|n)x;$R|3Fyp<7b~t4k>V9D09uS#OapAB>v2ZDOam)Me7d+I9k1~M-baIC z2+p(C*b&xjc1A}q6q`Ij!xnNmY&kI%v?_iTHUjFwv_Gw;-OhCb`n6gVZz-u_&c2Ex-l!AXo$3V_sA%V1J8ZIsS zDc4m@YFhC&oS|)!Tm&zt(j+13ag*d4=qzcH&?g>~M6w1r{;V#zmB5{G9Jc*I{>O2deUlvYxJ!royRMSrviRO6>6nm<5 zFPnR*=sAzER{}L$SSH>pM*j#gs+-ZhGLwnQhh^JoFTI@+)t1CuqNC6DJd;26YE`7> zQ&S-|uwyU3N5#e4SKth#^w zI75M7PU5$wf2|lV{tOPv%dRRj<6c2~k#U{2_!SAAmRNQ|wHfycTHrLNTg(kK z+(Sg03>t1N1K2Sek46l4OV=x6x8@|8khW-}tii z9{JZFAnL&k_ontCUkqdZ6lN6&0gcIlw4pJNgD$zo?87IfG1*fm8dHv@ZH;*-i2Ol} zjdboW2uOY%IYYv&YM^Q1)>HLJm1u?s19+JXb`k*ofQqzGsT)o$!X@CI(*X-aYa!Fs z3&qyw1lc;QAJ3L;XG$Vc%*8 z0v2oBK;u^7uXVc^f zGVGIFhY4ydHNFu4s5b%t&c|6=jF52*(^Ux;zt!ZT` z@fBZ;gSM@#GvH-ctt?{~Ly9VHUi}CAS~fVpudks*UYwHhGd zyt_C5G4(HKG;S}y6d+u9816BlKlr^BQE;~% z78cWODOlFZ=tZ!~u$$0kv+(6!2;aV0cF=n7Ox3Rmnn75f=>xT6xsQuwcsSnmladDy z$@#l9Kv;t++{GV2FnmzT%g?oC=me%5i1-%hp{sJ=xJuZ8KCS_tgl;Vj;6kX-1?h`T zY$yth0S~r_22St5%5ggS{Bi^JLZuSXm<=5P_X!(!BW3+uF~n0e7_mmJ73V&!x|=N> z!1>n{&f7__%8{}Cvs?(J6swm%Qt~la3!Qy^+jh1i-F(2KB@u*!#xAzlRX2B zKY9jww)9*FcTi(C1vZ91H%C32d#=QnvYu}B` zs@4I}Gw*m{i{9%NrhDS|Xr*K0`PabIx#*gMBhxBPEySO|d~)+aLsP#{oi&k|cftJHI;q2L!oTL;o%u*}L$^Rggc&O|4mMgka$9(Gy*% zVFBOkSTIq&mxgK}o(sdrApnkHE2nLZ1=?Kv`4D^z8@>ra*VX|9p8`$0fM7Pc5Ms^Z z$6>r4rs0({zs375Ous~7dZAn-8Yy4eMSQ=weSBZp9egimGQmPikh5o9r6I${zf%5q z& z)|#i-hZL5AyHR@9&YeJL?n>Q-Pt28KPaU{Y=F(s$Jg?)_x@Y>${r=&~M7anH1g^}1gKoy{gZ8lV#nKEMCLFqT zSDtZ16Jo{#(Q1Lw)f@VvGm53g&>)zRgN^aRP-!5NUq!1oY#>FBXT3xtZLvNK{G%(O zbXV?URtrlrxLrByCbaf+SMCF{gBed-%X{0?CO%ir_G@LNe@RX?zt^VF6n_!HaIft= z6-BIohe0gV(^@WhWPGAJ)SM__@M+hryX5Dy2H3a2Ch(+2_`~1`TeHS@*|I!-2Aiym zzX$(=9Hom@5Aw2tS&`PmuYx^{y7`F%H!LQ8UIE5GhfQ2fVb--Ki(3qb@5%#F@z}AMc?@}g@|gY#QNVqK)zm)Cl%YH(fjkJuav;8NtP=T# z{}gXL4a|nKpi^!|oQ+S+ieOJ2SP^PGZ3kqJZlDnXD=o1b#~ids=Kih~J6rwm5Y)*6 zpx=sk=k!|1Lo-ekqX*r}|5jsvb8zgQ+VF3HMp=@f z-yR0;PSYXaD*85;ts^l9`b*8=ufm<=O4Q+fD@7l=G598i1Z%};rVZK?<_4{k)~d7k zWdO0OR>gi!`Lv506rYFQEQ3PhZV{F@ilocspzYBLt_1_*5~4%~0|Qc+n-ldah2ue4 zs8h!c$bN>*opJ;7b%x6$6HpKnEoX|mwb4@X%GYUxA`0NAo@O*$jE%U_@D(}3a7!{8 z1VX@Q;6QvvL*TIF&!9_gGW;B$n90DNIx!jKXxcUz)*vtB*ugzDkL94l^%@WqJvmc& zJKP)T9o-~ew9I{~#CRD;P0Q}>yz5MVC|xn{X|=G}&8?WRo2-g?w(Oww?ip-|nVi6t zquRS&W;3A>63HKw3^+p0JioS9Sc?xwFt)bNwQuVLrm2HJzFO#2cY$ z{;fomAG!8wn{0#-C9?Kv@x2}Z^;GL>oT?8KFy}S zoN50iamg$NS>5AK+q%8P2xz!q^cII%(FHhK%5XhWuT6|M)}PQ9Z7WR<4zE9B7&qe} zo)Dc;DU59`7B*~1o}k#zNiE@Acz#u;<NJM=enm_Et?<5H;?CvSd19HTL8Fj`B(??ddZ2aeTkZJjo+gvoV|M<$qGi8U zGq|Lk8N9TU864K@!?d;z0Xltptqg1M5 zz!vLPG^6c>$^>j47a^_5Pupzf0?ftu2MS_y-84qj;_pn5ITP0X=k8jhNxrB>H$nclPxO z9pXZ$P$21xO+UAf@QJxn?5P7+s>9gsYAlRZDPX#Eiu-h8=CH1W=yjV~ zw@q^_*T}}|->Bzi^(zddC(W7$rkrSRZK7$E%bkXV*&hK5>3S&LoBI!|g{2(a-W+xl zT7J4W_XF9%%q6guCA&zcK3B^6D;2q!^J){_Ci23bn!-!G2ZFIZwFQEGc-T_Klg%IW z?ASe^3I7^4pYd6Z^q}BKJ(1)U&?rk*Y;PF2J1dretE|{yiQtpNUF6D%_@7`sbk%7#YtKpXLjl*zU;^0|cSw|DNE zY4(mb=CpllGxO4z@N`D6-%7kJjPG=N=WeToCEDHg4tA5(-g%Skpf#fjY}q_}nrlJG zMfNf~yLQGhT z-mNlk!A4wVepTW;+>%tLAQ7lc4x|m0`E%%!tIU7LC#EvlQzt4@j;3vuN!5o3%SCT> zj_gNjSs`Np=k36TW?5<*&;Q$m112VirEQwD-zn4NjMGf#6Yb09597!24PkHcsP z0XrvPgE?bjC#LKK8)H|fik-O36~MR(r&5(F3}q*jD+ZG9@8k7*J^gy#dox;AWvck~ zwx^H3|L*?(udlz^Q2_THT=bWBOUS*3*enP++E{I6#eI+Yc+ixc@U(F(lE(40ak{mL z2u~Y4^U$7%?`eZoQAzV6d;S6DgN`=bIk<$Qb|=~$ZLm_(`q|*@D?|}>hnCJR7+X{& zbw7qO?L}O6?kIs-@FYsaP5O4fcAB;ebg{rJSPBCs zoo5nd(yiVy?nR;8sPCdLX4KhNH%8s(C$&*uEi|3*?NoFy5v1jpyffTk{eMI3^?z;w z4JAYy|A)uf_&2gc%@SKB8ob#56sNl_>~}%}$A^~IA~X8LoNPQPMuG&#o$~(tB1>*+Ln5~RFIPu`9v}y!hg4vjLUwcr z@oS>-VgQ)J#%g(}SiwdCdH=$eLJiNiaj(I&Xo58qM>?Q{b)*H4DqkSMJ8!go!L}Z9 zfH}0Y;qM;i5(Swo zzCunxksL6sqb~-S*jG1z$>%0DU|J@+A{>l4=qXtE(s7c1@$JNf2uWob4UEQnU74L$ zrZF&h5uM4UuMjK>^4tjxoncTLDt#CPtr(~@%W#jH%Tz0+G46eA#lZ6ATeryr^2&3@ zytXEhL(TAu8WWdV$AoU#Q_96?U|bafyg{IAh^R`NFqSM%T_kp1_(yD5Y#D<`RzkPG?=U z|GJ%Tvv6MKl2?u0CyKz@CED z(7V^|mV&RAO}n`bqZ(|7grIP`NR~m-EOR_duu@q` z+Lj~#`r&NiLv4NqU}(#St5N*Y$yc*Y{)Z7fen|UNRADc(HFyp z?5i7W=yQ`A8?J2BuoD{a$*My`?N~`{KXQ7$k@%3?R@*yZp?g+(zTI1IRk zW84O<0UhXIDn{Cbc#%~%xJ57`*MqeY7FdN+%LIGYP=U0+prpN<{m4C-NSxxX;r*28 z5A&|!x2Wn|S?OI`$*#gZi@a=L#c~zy`$(!bo8!LuMfxMrUBjmthwXO_DLe?( zLi_4*{K&md8E^?}yYFvkS%-&yG6BEJ*bnCrJUMR>@P8m_4+P9AM>J(TzF)60AMEj^KU?7N131BC7x>hf0x-+tHdajOu6UCy^xi`_>% zNQaaSAyjGG;!Wv!|=jh(SxxdG=J$QfTVg zJbR*IYy&{vm!k7epYsdwo*3uj8*-y1F!eS*hhl8D_9@hYhc~A(8p}uO^Ob^@-opF zapqQWpGg)7DsFVuGaeSqNF}a~LG%1-&l^k-`(G=u@8(I?cM{1|OtQXBiT*GrSwE+$ zn@v7=>@HRX#v5pdKb%NJ~Tl4X}`s!7&CsEClXaguc~{T{dv5tddmc`rg< zDLeGC-pD)lB+GAr&?HNjzXAgGN!Cl&P8;lUfl1bnJM_-LB#U&h4Pyo-Swf1_-QAgRJ9{T`$vdOoPkiMR{D8FzBQrFE`)*?dh$;t z$oqX^m}XNE2Zweckxf}kY14t*yII`8>F24e^+g5LA&$xZ84i3Y{+_n;XFkI5I4@I) zVG4CKxoyM$P(^&tUWEA=2QMO8?O8>zx9s_CQiwdt^0J*tvmE|SmqR}va8eTTPbG_Y z?8TU6!HY>E3wzw~krp*v-Mff8{Yc9-2<+)Jdw#p-5@)UV`cm7xTB;^Fk>0O8ao`NK ztN_Nvn2@w_<{WnQa@g5SP11#N9FZQbRm-?xo-JjzZleRzOjFlnlg5gx+IuEy6s<>f zJ1#tAZx_vgT1*$|ZQ6hkhCl$a(m0*MGf8neE%ma-ih)a43~Xt~ z26MESvgfyjt6sj&+RN?dFV^~L$KA_XY&mP7VVaPgur3NDOcqYelwp)13q5=(fo<_C zod6YFfJ8Pu5HyMBvbX_MF!@s6jsez02w1x`z*;#CYsIcu+tS9G2mxzb0<7JVhP4|L zvzEkos^06KL)_`c^Ed?d)Oap#w|`25@zv=^P^Pvz-8OcmISm~z)dqgRuFAT>BCV!s z#(SOO(_7f&4bM{uJ;t4#Rd6Q)HiA}sU?ln8ANc|7jR!=6%DXemBeXr4(53;iOBD*=_qsH! ztxe2Y66>vom-{YtH{E)_g20|y@6hR5gF@j3{7O_>GvFo_BW-xdi*tLX0W&Tu3A6PY z)i=tFYln9Cmaf&L9aaHK&5hWb*StAAv6ULcloz$aD#C8w2;PxMeqtkdj1tA)2%c8S zXKS_W7;i^)J#App+R?E|YuVxJNoyxvHR*cXzZ)GJ6wxPL#S(;f5*Hx}PqFr@aC8y- z(aFm1lY2ig%B`i(gz7sFSnHl_qw7B8Wz(~kjm3wMH2Kagjn>f4?W~aS=r)ypj`Pa~ z9^LOwBV`jFCxsW$2k%7eglkBP-P;XCXqn4ng4Bs(?qFRLBUiD5B}a~gJ<)nOuzn@A zk~vZ59jrIOA4kS-(HBF;?5hi8EMR5YV}geXja;mZHXD(6__&0NRxGzJkg#cKh;s<+ zwjl}w&kWW@8iR148q^=41){sH9rymmPwU+~p>VH|I|B-ZFya+bV`2$jK9@^Cft45E z*L`SFXx42ufkkW;O-CY|x(hA}O=WR|h<5{T!~km|1c-M-0P!B4hP6YwVl6J>JtYlm zCw9eJT*SL24Qm%9W-VH?Qsaj=d(^;krx15K;(ZqbucwGN2A$wvQTkj7GK(BX%@I(BUc@Q#hMz zC_;}aF2GPHiivFRjFGEAwsPc{L8{J*Sof9s$egG%vi&Xi5Cy-_VvjjTe;p_ zhQrMad!!_KQ#R>(Zy?V|lsoPo7J<SXMrI#X$L(_KjM(CKM_xydoX^Ng?yux7&uD9huMY)9x|i*LH9F zxjfr&dSCfy9S!?I@JxeWl>`s>rI288`Vb_t>F*#^U&7)Bpn6~Vn0D?&5OH@*fV)%D zaCc&2?vmh6)ot8^h&vs3PC;N#ai?jeH8>hL`n&?gYUtB6sw4(At+WO*4IoijNdT>B zRNttT*6=~3)!BT0fHK4}BsfE$FX&bL0Y^ClenMU^2g=tjWq}~pd zwgB&aVdV!;HC5`3EG~;it^u8za1BV$IMPsd-WXkB*cjEbrxQcxVP&Y@5bZCFmY#wu ztc70W@2cC~FS?Dn+u2RhEzC(*j;WYLXRp|ai|l;T*X-!BUiDCBS(%@3embcusu3Z4sBcrW};2211qY<6% zXR4rtrsf|NF8xz9Q}ha@9hctgr}ZA3h`3ZXiV2jGDAR+|C;gfy0Hu#1kxelMmq#99 zaf6_AV;d+HApoTt1EBQ9G^~BUE7szI(znvE_IhI0q7_~HcA@IR?!&~L4odGtU{67* zX@x~hqeOS*i1Z^AtRYhKP?m7?(2fd3VNqFC;H$f-*1g1{{hm#s=oV05(TT1;AgH}W zy>>qkU7SdQ0*D?!iS`5_dIB*T2}IXe>z)jV9*4Ya`qlzOHy~+pAWCC4ArSqPfyZbd zy22_QZog)Jx_>oq_0e;Ew~*9rVS3 zDEs>4fT%nuhgDLG!-u2?9W)U&Hvvl$S$bgkgkR$X!17TfvMIVCuzZ-s4Fb#cZNO5509dXM0LveyVeR>@ zSc?lR-%P{WYl&G)0xVV6bsr+`bYSTru&2P%bPkPoQw}IUM1dNh3=dfeBu(egxI$0> zQdSAL=q{>VF9GD#J8cR>Hx~jxPOL+;NbBsl>b_oqaA0&qN@7>xvu ztF3iU1{{w?UN(Jd0gmgDG&yjjv6&D!t}^f#4IGcMO2;^+7Q4#~Md(olaHLKY6FBY{ zBUb?&<;XE(K%Er<9Hl-oC+Z9wuLXY`I9^9z3^=l{PYyV)48pP)`|Rryu3<8DrSk0p zOd5Q4WwhLBm;DSQtXycWCWj{ry{MlR)NG-_(n8I9{IuRzC)8S|CcgH|$h5^y0!>wO13fmIQRF zPVD{-ai@dMI}q4Y&}mw9)H^JPpT9@Z8vKkJ&=QE6u5f9Y2M(mk3IlQ7Npxv{Cs^yA44fW=yli^c0!~ju z(&XTjMs7lII%wcA8k{b-O2;_57Q0IgMd(olIHgV$6P)fFBUb@V<;XGPOq~@0PNilt zC+ZAN$G{&4r`OUK1E=iklLMzm!I5B*T-avV?RtGtUI`YQWPW(I7TXXrzhc%q-jkNbXq4IFhN4;(^Px1AfGTrR&yRA#z&i?Gs2Bz*sGGr66qX{8q_VwG`S( z=&Rap`CkN6L&eyJp#+TdR>?hn0Ta7{+06^}()sLgBXW$p(9?s}jOB0rdYX{8{q%*B zk^2l~qc27$de_mInS!3~?I@wA$T76asELgu#-E}{4KeD1lt|G&kZ`<-y*eVLL7zrp9Wp{%EGDZ2Xf7NqgpOr>yRh60l_S;FJv17@aYB*Z+UtIm}|OR&B->3 z)e1RQWq!M5C+IpK)oWf8+)FE>4L{>eUDu;T=p(58%YNQeu!UdlVvEF-E}WPqUKORdAqQ>Enj6X!tCXZ7ojWzy-g7WyV8o2 z=k@~`JK?t0r@q4;7JPQoT18Wkp z4v@uORGp|biLk|4bV;p9cjEArJO=SV7PsRDBx_=hX^Wyp-KC<;M0TQ&5^+1R#pgM? z4FhL~WfgJNjc1a=PE=7Ow-clE#q0$8>c&n)a1-o`sv3pUf>=1*(U-Y@w;G*dDl_%1 z(EAYX#uLFW{mj|l>9fzi(y(8cDH~34;VqR0X(c{Zvdh{lad41b)?S${*0#}ixwyT> zh6zB!dgZaoS$fH+bMqzPbFD{D03Ur7*`=Ud=+N|ZAR$+y=AA4A?#86OX zv{oIdIrTctVZ5o0Y9m`}oju8$A>%lC{Mn@PCVR7U%~}nwO=d)1o4uJbgxu-2HhX*5 zokjyjt={tH<*T`7qgbjB!kvAk0Swmi`ahd3HJy5ESBp=YyncSNvbDJ|XR|kb#Hl!# zw^eJ%X*$hVv6xsM#UK0d0y8LOEB>4z{%qDt_-j_9n#&Ajb6e@xddpqahaND0xLR#g zs+jbuU(TNF&8j=O2Ard1wgdW=TL_t5$7%CX?5&i`^o}O-Tg*e8lEXqW+lq|>pE`qc z6ekjt*dMGjAXpYqMAxfTvL$M|IV^`D$i+nflXQ zXZvWi?qq@~Sue>oGS?LAMczN>Wb(y2O*d#;4hs%QI8BZVjIo)hOdTVE4Kn;TOGL{I z7fYxd2K_?%LLqghM$-|rFmpqVCf}!)-RA#^E;^3}7kW-*1Rb$dEEgNCbLTGgW{*0f z83@I}kjycG&7_c_EO@7p;T=$DG)C)dSFJ*DeQdhf7Ua?G_w^YsY(Kv;vB=ni`kdwy{9s>&n$7!ID1v$jpnsLh6Vkv`b z^`vDP+w&-AYVx{M8s<9fHg7Mda!m{N*xQ?{6O3PU#bPC2#NcRT8hGBufqFv6nFprO zwHi>a$RqCzlkWEBheGi{1&Ts2avS#l=%*o+XW`Q*kbk>hBujV`NZp%G!Huy|mYDr; zTfJ}yOauEJ_U`1u>F%%AApU<5xr|I|hR6?zyhLQxT9D(3yiDW`B4?fiaxRf?68Q%r zOHKwklt}IrkRp+v5cxTgP3u6;BJv!O=ZSoDDoEdHAg%Qv4-(mL1IQvGuMznLk>@sn zJWu5M(?M<~a_ku(ClYy#$kRk#|1`+kL@xUb$dyD+I1A(?BKw{VasZL{iTn?de>n%_ zXGFenF38hFzO)(SP9oFJ1DQpnMr1pYw}`w$kVy7VKt_l>a5>0d68SBW-w}EHb0EJW za{QGbYl(a|19CZ$4OfAjNn|h!avYHdi2MbS_j4d05cx0=n}}>H zfb1l)q6l&{k#BDW`7V(klt6w=^4l W%{=M+5mLW1@&s0dUFQ?V!T$%7V{sz@ diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.CoolPropMaterial.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.CoolPropMaterial.doctree deleted file mode 100644 index 2ebca050d1815a12cb8a253a19ac488f156ecd95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460054 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

7(sK?|&Q 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 z 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.FluidMaterial.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.FluidMaterial.doctree deleted file mode 100644 index 10498872dddb9a5bc7924f6ee35fceb5b5d36786..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446642 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

#vLxVy3u+^Q>=n$klSJG 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 J=MRlz{}0hAcOd`( diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.Hydrogen.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.Hydrogen.doctree deleted file mode 100644 index 8db3aa544306615ce8c768cf5ee4d126623cf2d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449757 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

AQ7Wb%9(A150 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.IdealOxygen.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.IdealOxygen.doctree deleted file mode 100644 index 49605f35358fc980e1ce781babb3c45baf4c6302..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442917 zcmdpf37lj_eg7=%IV>#a0@vN%y((^=6fwJM(WQ)j}f&d$^tv)&ebY?-OFONBkTIk)9CN^WJ#6$Q_&>^`tC zi^7NpSS-KJJ3w`dq8y8+ymOJaV`be%ty_!5BRXqxelv>)cUFqlUENt;DOJ72tJ~9V zXWVVI8l~xW3sNB|99$|isl}`E6}Q<$BEDBt-8ufXy3nqxKc?OMzJ@nLdD@*-Eq9iF zS}d+BZYZuTKE8Nx@r2I&*12kHYkuqXO|Q}1dTqPDb$1J`M$=3Arn9qAt54Ss=xJM} zq_(2!&8<1N-KsU)b8~KE!T(7KF;Ws+8cnqR#9arqr;B5q6{TvyJD@3p>#2AWT3b9B z!afE6e;WROBmRFAwH(50lvsNwAhS|+7P{=5r76joV8U@qRY%q~qDq?eiy$E}l``tb})U@kFQyO;`?-&3Cn60>2zazvP-FNWRr>1WfK4t-=$hPdcQV3$NaN z-BYi)`tnJK+sK7i*Q(y6bIpa@&ZPfsIdjsv?!vRqJ8#mNb(^_-t=eq4)fQ6D-E!t8 zW|~y!I##G#t=3vlW55SGXWe|kDJ_`pl(Uh^XyZkb&IPiPxn|wXdsB{|#o2h#MUXmk zoAsR)jABvPG32m|8<8&uzqOo^CXvoEhkMR?`cfRO*EzTWop+YaFS@$oN&44PsqJYm zkWM z8I$z|&FjQn%a|ptVX9zmDsiv4qH~C5DpHJrG$qhlZ-Gv9R>KfCGv>fo7$*Dlbnz9- z#eF2JIVG!N1+L0#cO~t=KvCa{`<<{z6 z!)?_XQTbqVr)xI%(%vHKEUR_f+)E&f-v<=;v^goXJCX4YsPRR-!-C@0>Q3!9?NGng zVMQ-z39O4*-{F5K)xOPC?`n6w--_z|8LHFqtF!DvX+8K-j6c+yaq%@>E=b}awre^o zOI6lSX(q5r0GKSt|67&zVDHj8kj#wRuC#Ld-AdaFHmP$|vt6&(8m(LtolWc3c8$8k zyU1D};8p643cWRShz7JmLHGLd@_TCP^VfIepQ

D`v%`@1AZ3VGN@AwM#(jaCS; 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Ð?TtD$Ywv@c$Gz^#dw1kJ?O}MZdYW==ZtJ)XX4NdNJqxzd&vS_u_;p#n@7pm z4CJK+=Ldxiqd}b{IR7HX9EMTH{SeI@oYqsUs7<#+9i8uq(X1AoUnX<%=zJ$#+DGTT ztdRai=c5*t7SYLz9&~h0_l{1!yE=V*a{0&zeVnY&6`?W}5qfl2g!0_97(HM)w`BGh z{dJ5{3^BSEmB<{U=O^qyeQF7vkf#spoc)(Ey49lecrqxD(w~!m*hlG4St0$4($i2A z(};>HEuxecJ?JRCED)vQabu#$6f%*~xQi6u6^$|#(RdI=qsT#vz^h3PR>~fMSHvjX z5P>&BG;;)=kst!49)>yUE{)Nr7IhUeB9FR@>C!&xcCbR?qONn9P?&f+&Zgsu9)$B9 z5cITAPR#q6rJ9{TPc%Q;ox@Axe4%luUL9kPZWhuQanStQqxcp1K9xPnBE=)A_GVH< z7u94csJ0%@bR*vF(g62oMvq7`4fqq}Wa?22fctZZW(M4Owt$OP$uP6-o*30?tou0G zle6v(bZO7J*Rn!lSvMhEif>$`O-5=b3)>4MUkj8ZvlmdD`m(6{XmjcdX$&xEPCdJe zQ`C8}je3a@vQCDW)FZXNANv>4GjMX*=?0FEwFG?DUU%+gPG1b3Te- zPog&WoH&fiNb5w=ibUobG{LmzAfhW5n-bGOOc##i*d?TdE{@4maO_CQF+D2{WtSU$ zAqmPZMNTGL7{*x7hG^z7mi2Rx2*V8ZO6x^2iq&XVBx~{!)`fIwKf=0z6%tFcjXuo? zTmFVy>?c(iqeBiPwXE+~blNW}KHB4}b{h2$noinkvj_ruy+hmXop_WLl8fNK>TbHU zC)Hi7kT_D6ze=MycpdyJ%`ETpqEe$xq0gpK?Vu@C=$hqe?-8aOCxtVJAXr^hqdPTpj zouQR@RHeyAlI%iKK^MtnDoA#OB$<|z2C++wj*tXmJCT#g5Qa(LGa;H8V%EEQyR9d7{YYwx6%xy@J^q}J2uAZfs}(GHiWz%t*?0n+q}<>OQY>r= zRgL!euAau=OV2{_S}okBnV5x|Y$OZsCKYtCP^RiE)N;~T_(r26Bw^v}kW)$)z7?WN z&O%)u!#tK-jM1yc!u!aWoQ1EZOM4c+k`)ri!t#lfE1y;NXH536sOD&M=u>HwJ!lR+ zOPgl~&I3)rpnzN?e;yMa5q$Srrh-4~*bBJbU&r_`@ zlL3tm^%(5mVsxr;XMB~l*I8PMYNr<`qNpYpNzwDD>0P5ZnJOu&<)TsaLZk7MQ1k-iWKzCiHhVcl zmz1KqE{1vZc20~=HHto$49Q1tXVazq=>$vCTf z6@jXv!lONo+nYx1gC>x^r=t5L^aL2{7LH`mt4Rr6ERv~U5%yGcXQct@Zlf9lErq(w(f3I4WJg6(<;xM`>Fq7ftCL5LL4RXhe`8Z)q`$F<|S3~6okG;`h6aP`JFEWP>=Adr}G>m_~1yKz*vESJ0agY~loB{{l zyXKMixrmx|j_c*Vo5_8HA4^4^^i|X{nG4@HTHpEIq3~lhfC&4MxmO+5*IyohdJ_}U z+|=xcU}+l;dVDp+eh|?kgUErzk*j&o2A76pDtz#mUSBcM;`><2r03LDkMFoc`qm?- zl!J+rAgV=oxBINB-i2ulFlb)QsD*1D3fg(J;>$uwfz_QuB(aL5 zj;^VXOa-xy6~yY!Peaz6(KV7FtBjmdB5NL^nUVE$+hy%ub{cAC&BSO|1#bCHGAU

!8--eks&L+jw(BGp3Jj`}NQ8QzkMO^BIa#wd|sW_+ECndjk{1%CVwh1p#eG(T4& z;faCY$}sbP+6e={9bl(3FsF@a=U}=rd1Yqi^8agRjMT%o=k)Z5b5<_nYN22y(Y1P^ zi2Rjy5cuLW68XU#LXnvacwo|JKlW`D>- zW`eTFE{7HjZ@*SZ9hM6zvXhrWqmaRd_!FrS|1Og{$HApja*d8ielj-7PV#;57VhDC zf!s}pEe)$r`$*CL`I)inKv?Ttr_1c~*mQ+ClbGP_44)DcAVqUAL3qK_@dFV85nCML zMzp0R0#oirz1+PBNv zgzvT)@6>|616V>g`^ z`?k&fwy(B>-B&unPVBB}n_8QMB8T4;yZxXY)V|*dYB{eFdAuD2A7cn=r6K36m!n^= zjeh=hp~dDY3`xLM<>BD9 zQRf>5QL#KcT*6F$IFHBnoUrZ|25jZV)3m@=YkGZ{<*Z0Q-=B)#NK+0}8ld(e*@)&j znL~o8km19Dw2|R+8Fa}_qRa7#W%#hC4oo72P1_kh$1skPH-q^sqpX*)nb5q(QF_*o ze(jkFwAa?DeGxyevmT>cNy}t^v$>Fx_G`sl)gW_)?UPuxoh{d%*`v49gB;hMY2<9* zUb#h5B8R>5GH4W9le+kSDf_lfd*$wSu)DJp>@wRcf6)$VAMXUUoc78$+ClJPhG4qA z^8GMycWMg(&uFjwEZjvddxiHLwn0FVjN-|t1j8;)E;MD$F5o{3aV7p#Vrp(ZXxX{5 zbN-ZZ8V(EtcTWQW*QNm_vKYZU_J_j%h;SFVrh)gIXBxuanr5RC>hVjEcWkq<1TVX4 zHtN@&S@N4(j?V$wnU;c0=bnD4n^ z=5rd5vsk0U#GOMUn)XzuYjcr~qQzHXqhPeSom8iTj7%qAE|a*a6?T908dE!Rje~YF zp-2`OD2bg+e65GH9N}$qhc6|Q>2(%7GeoAJJ4G*r_A+0?aPxnvhsX0~GQ9y{>v3@u zK*>xdNgZRG%_fd(o6YgfJT{+d$=aXzB{PE7eFhIxW1@wE=CQ>Of$1uu*nG3B=zZvIbori|}}k8@-#Jp!MnGo_@C!IU;} zTukZsCSQ7;4ImTC{#6Ra^0RFB((4Xtm@MU=SB*XQgGLUSiLZ09XXf;}V=c&GEQwK% zW?1?^?SxTR0qk@}m2@%~)h3gRQ61lS((CLmGjZgi6w>79$Zn?BU6X6JNn~zfLrRED zd_6rpIc`DrGa6Epcyf$k>HoA7o~#4xbe@!SGI-J^lZz)E-+0sO>~Ax1<>e{FNpNKt zD&@y)%^-bgzaDMcjQjOhvQN8`AM+Qv7>Ug9|A&o&=C_d_a|D`R{wTlj=+iz^w%bFw zkS5#hD;Xx3rUJ*;<*CS#Kl7tpqoXPLAvVfBB?}=xzEH0hCK>S^rW~w6^^KzZe`m(6 z17V`|oGwy+$L7i})NtJr2mB_(r^EqB&RiT2mIjnOBb;h?9*pgW(Qc6lp|~6Maw|8G zJcCv+-zhr22~TXNh&^?%Q`BMd%n@)4>tJzHvFY0%Iw9*>aDwCA8EU1gG~%tIP+LcCJsbhWgX zDip50TuNUka$O^boMWG96Ew=Y&vaRaZ_RkInuYjM#LkWvp9U|x8ZSOXPumiV%Ok}v zfxgU0vEn%qBR_-5^0EAz!!cjm&A42id3qZKis z3v3-vX`NH1zhT}j!j%{GLdAa)QRdmt;Bxy&E)>bz`T#U?L;&!$F6kUrjTtp%b>3-% zz$$3}6$@5)ipjtFBE!r7scsVGjhH?Nuytby7h*DEDk)?5S2kh7wh9?b_ooa7?J6>s zkYzF&OSff!O2(2{C6XBvSu*xYBZEmu6@SCt_&b0{D_}I?@7!pbGa-y7_SAvVL~9C$ z(RO+b7*24R?gh1x&J8CH$8R{bX4r75)J8_|QV|#&{+C};B!-)wYHTVUK_q4m^p2_$ z*`Te&zmkeDkvY%(pAZCkUAf|kLQtH_xeR=gTVXxktM!OLm1L1@mn z4Ke_IC2SD-!fk^{b^xKp?oJY80A;*{Cd|1*ZDu&`!g2PX%;b-~qsrUdo0xI6WVfIlRG2Q&8H7w#fg>J{(VZ=vcbn>RBO_=O~XYr4{k@#0q?(zY7g3NO2= z#`Jpu?KQ@=*~8GKsm&6LPAE0~UO)?&=3k3}fo`kf7=8Y=soPFs02`>>qFR+*56DXW zKrH|$n*!PR=xl=wmbMwc-WbBfZM0OZ|Br;BTZ-5kk6h_7Y{Yft-^mgB*#JEiat#DQ zKv!}gZRpCML6=-t{v4l}u4GRiSl82YYy3g>?}ymGA7=l4g#G(b_V35=U$jCtFavXW z{4gA&*Rg3^R~`ZKeh|YTow^1Bj$b>@l9;MOG%cojsuqzFtuXJO7r$VM{_qD>n1!0# za2yft?)D`AFBGkXG*>SaPtV)NSDl-u!HO^1il zr(YQEB9{*5J!jM5iD@`ExegPvv7hmcm=x=+nw!z^*xae@#f)>aEezZ}Hv~N6+}s@Q zBG=sTp7YF2_*>JyQsOH<7?HN^tN)qkvVEm*RY*z24XgJ80;XZ5gtf4!^r(?&u9;F| z3}8w<1(;_vrB(qXy!Z_<%lh%tZ$_%047n=^eB@H$*t0b-@R zgF_BE+51`JZ4 z18GC*p9)=assAi|Vp5+ybt3g8Hf>A&ez>p}A{z}&G+J)6b;+07W8Ub|1NS0Es(m>Fl4t8<8(wWV8G|$qfZ}L zM_Z4(pxi)>P^m=|JE(KFDqx#vc>I2scr zurd63P1JKu&(+pP026-di>%i@H=<3_-!nK?*jiE|3qGZb+KrT{*3+P8-toX@z1Pi5 z@x=eCRe+5j#G!M!H4ibdGuviel!PfDoe` ziJ!#IuZy2Tkc&0)Pa$UC!XH;aVjOp^zrZjA({8Vx=xU7$_+B^OOi~}9ks2n?Md69H#408eKW_TfFb0^nN=e zrT38wQ=7^I@OO~>Zeg2`-irZNn+$yzH0=VtmoS-NktN94bFS5hVbfn}e!TM`{>|Q~ z{Y}?o^g&q3pA9mt)k2)$_;d<)BHK_>BFf^BEs38}x#9O@fJ#Y;LIH`XH%Dt@O}mc5 zQgAm)&(665CYn1@SKfH3zp9>QFvjxhm0ky*6H| zHz!w5wX)XvGNE~0rqmm$uLjz0W1TB}X3#I;$*sHk^p#DB z5f4Og889d3sttY7>BUlGXb?=u!Nz!Ds5B7CucB2OHjom>qg$epwotDF-qEF2x(_#L zwXn2;+lRw$LhDZV;l^YKvwdb+{7!jo``c5`^|Jk1+2^m9BhBxvDJsRULonQ1d!F>x z=2gJCAP(wjEs-oTK2aTNP82ZWGGRmvOIn} z{0B0TE>k_o>jvgTS`Qx&_Au&ZCl1^&miQS2z@HCX4dDyn4m2gC8;0EUl!jsaWwi3p zaBLPJc;1|%ZkVCi7%vT#hs#4#x3=~H+jy*2oT!wh;xAznFkZQ_JT-cqG+zXD{CdK@ z9<-TOP2&+5U{_sfBcN|eB<@E45PCG-Xq(5$g^vFnzJy^jFIliDFh@*tk|DkJoWjsh zsnLL&fmaQh>uXh19*)X*BQUzra7zhnsMWWZ;f6YKD5x|x-kgl&LICDCUqaip^9~E% zuAO)0fv7m_r!*R&$t{VfaTsy{r7M-O5qA!LBB>E>NrrStOHtPZZ&{es~CJV*$=@KD=}0 z&4+9oMGEya8)Btye~4y~-8)nm8ZE6q7h>A-ps3Oi&r;R|BQB?H9)n`B)=m@YhXX_9 zvnh_YT3GAAtpu=}tTx3`*+FYhm~P9k*hel3p`^7pN)DYW2btfTPy~ukK`?gkcRz!f zI2vk`(($X6?aVk)U=M1Q|E+L;K@fM(P0!~;qb%9ZSBHVSvvCNxin+~a>qv}&{!$|- zhdarYkHh;`I^Mo0QJ4o<@$(!;1Z%};ItRZscVnG%tvZVj1c+TVD3-Xy6J2uq8tBZl zB{bd^k$Antxm*j{hOA&&Ajcsz4H--e$Wg{};}n4hv8hfFHz2(k5_HN9Ov@QAk4!*W zOSG6N)Ye8z#VEHChPljzgRv1e7v3mG=$~{nG{{^K1Oan_1M!&)frF19fG)YQ@IicH zu?F_kiLoHDY1>%nLte;NRuQ^Xq9vwfKh!#@5rh zHff!}G)3@P=%K5MKra-Wpd9xt{|tSa`XEV4p%zkBmvB4=d zEzsuD&qv^^82TmzeZMKNF*^!PyFg&y#;hc)xiK52Yg-$$I~Ap!8?!I(BE4^HpWdzR z&^z()Qtv+5R9Ab(WL*YI%Ho3bpW4+L%RI9I_noQ`(qamH{el%nAi0 z%wBV}HrC`Y2^+!PD1Br0VZe_&OJBn$<}9(N4xAz*?+dU7M3zF-FT-3SufM07%mXK#bH)S0ZxrFLXXsI z6XT8bC-y~KOOu1c>rWrXy*CIWM5k8@V_S-a4I7e2Bo1{>m2fLOzbd=($G~#B-ZE7~ zI05vBvhD1jE9>aQGdrNY3S;g~6UeEpj$4@Tm$u~JitbNH+PQo>PyF(6XcRJ!^f2FJ z>|5<*>i#B^**H6YUfQx>s}US>Lx^)cBRBvWwLOBvyvxEKOxl-ATY)ds5RY$Xh^ulB z(XVBau~@a{;@=_*F@IhGh`$FfyXt~RX;O^hvd@QMn|`=Q_6TSE=rq7uyjBbqe8hjn zQTr06&1w|u7{@o*b?WSv?`TV@xxG}XVvrV#Q8c4%g~|kM72|nI$UrK?tH#vrD?i`E z{zv9`n_v_hT^42|r|%v=LbD4)zL?sF77p4wWRD06K>(KnX(NEU6}sd$Nd=#nO~Rf! zut^j)Z3l4s8@0-|QeBU+Sw@Mq?VI_;O#-ghE=dpK8s`8KfPt-%v1TNUdyB<+>0#X0 zSuIR^z>{8s-Gq#Bp_lN)&C6s5v-jjcV$PsymbJxtaFP?b5?b1F{iKA!y>k36#UD1f z6z$@7A()PWxlUl3CV2_;&{a)hL|>C6=Hc8gLa(M8agkH#kkpk1Vv*$%3334g-bfRW zC8V462n}h9te-1xc$kn8zN59=oT_0@TQ@-ShZN1HIk5Y0xd=*u-S1mkf%$GpiasEr%i94bk$radrjA57z?BaXfLCzi6T>1eN8&GC zIsvjAV6{o$)!iYmFR&{KYX)}1bZslJd#0kaGqAg{i}Zd@`}BT6cj%otuq!9P2<+PQ zSDHT@*nQMm4;eJp^7xl*afLsnz%I(-kS(bNcE6JWDg}0h0up-G9IYp?D=YcENWFtB?Z*1W0|Fh4r%IGvO=rYqrj9j4apGaSe@Qn30r>Iqr> zYW(Sya1HBHjtAwI_zH1L^zl1Sz-E}Af}!m z>_0=JENQU+5eDu~gC*c94K`Tx_jlngawWm?p8b+ta4#mo{yigswJ0=iD;aoo&a3Jy zej7mSs=I7dm6OtkqOFI%)OM3~P8RO*GCjm9L1=MR!J$BrduS${Zm}6xeFx8j<%K9D zSS(SeN}u*YLhMjwq6jqxuy9?u&MKpF&9i6#56?%y)dSI@f$>7UFvkCYHxZ=J!fia` zprWGfqY$das&`}MVzI(%;1wX{c4(sBC~t#5;e05|vh9nCwWtc|xD#-er`$YBtd&`h zr&`BHzcG=Y=wt2pDac$moWX7&YiQ(($R2E+pacpEsgQcWW@R+ zYaygtI-9H(*3xlXI@nECOXmXFL2FjeuVwA*Z!QEO6z$ha293#a=C^tjjp7P|v8|q5 zX~s@qnyNh)dg!XEH4d;EtWWCpwa}v(mA1(!RBmt;iDg6I7k;N}Tv65JfL~2O^GJGbDW}vvC zNWm}^253abf$H4>h5H5b>`oLEqfQacgkNs0c+HH{l;v}=5m%OPk~9yur2SMeMW8G> zkT#U%2cb)@EI))#Oj)w0PL!p@rfp?;B(EntST6c%Z)83<%L)?%Air{a%M2^Wl!Lws z;WW)?97j{ltWDf$D7NtsF{)tnbY=KWtA)kjZe@twWL1V=mL0Ta?|fRCa39I#LXK%~ zlvw$Z99n+;r^piTLNHwasmKrujM-Sc4K2 zY$oy7%!*j1b3*i2H5f*{|A-c2JU#Qh>5vMN&-+Ma~qa-d+5W-f#2GP-4>1^WkexPXn90me89giT7Kq$KD?jB(U>OayLf!@UZ&&oBfA4sK(}eZnGL zxHG6!o>=)a*P&XAKPGwzf6&icnz1y5jkvM&?~ERjDr&MA=a7W z7quXk-V}0T!^zYK%eFHf*3UH|%qUT}Dy%XJYx!x+=%-(r*tsdNR#MDm#&}GD)zB!5 zDR5dCxZ4yU;F(Q<^TVCwG6i_wN;`*4fnzxlRI?b8hCLh@#n0q?x;BjhF*`RFr>f7;iUm zZsU|!lRcNZglGyrD)8?OgLh9X2cKvB;cv})a7uE<#~^mhB~bw4ec@$S%~bu$>ZGFJ zA+iUdQ`0(iXbxeN9ud@HtFdl9J2oPQ2e#+|G!GeU(X}H5W`q_ZEG3HurBac&2ZyEd z=}Ip+cqq6kXDh`a-z3a(S%v#!BW@LbU5+f1RVWAnRv`z{hE@0z=#pE7|A9};Dr8Tc zScMXswynaxW*xRYwF{XnqtMD8$yy)IhU&Epxmpcf=B1yZvcb+|n#P}rX9Uls$D8)v z88X#8`wiGl)_Bts5~W#N_sX8JCW@$8gp40OoBl z=_0g&Rv#|#vEqS^K_0LVIPe6*J!_o+wa=hI0=1|47~!T|#=^T_`KwvgF3}0F|qDjJ<#|Xo8ZR;4}XBDNL#|S^) zMS6dxeR_YjJM_+cj8IO1ag5NWztZ;MV}#`(5p|Z6q3q@Ha0<2XQ#wY7vN&Wp;-^#} z?ve~p=@_9!gSr|>_nVHhT3E7qvz-UVu0Y0aLfkKoLSdrQ z;j)9)hh{ieLu{>R9=EzrRJ#J%Ic-Vj=}^yiTx)uMRVMUlk`S)&cG!(lM2rUzOh;~% z6POY;@uAQ|SKTPR#+RFh+?RS0bZq)k9-<0|D$CjfNz7txf^NW)%V;LDcvV?zu8{4N z^>f7*TL>8;zO4nQZRkr)wPFukNkH~NMfPcSueRr+DY;ioZ1jKAy?Qea-R)jY1xcCD z`hO$9YSX>C2b$)${!yUha<5tp!=!tK?{&SJ+r9cE0&u!lpSD1o>pvfXA7JR45Ok|C z;9h+hns$M}KKDuz)^xAJbZyJM`ktb+)4h76i}e0Z`}F>g?$A54dnG5paIb9oD=Q%E zUcEX+vRHlOQdTC4isR((wB!)CQZOOm@DGwy2AG#di~xfsr5RzfW@1x#wL<3 zyntmH3P<$@duE;E5^JiTz?p(~)Y37@Tj<$!O?_*nrSzB-D}Xi z9@VgUWL@m@{1<;Boq-&|_*pk|Wgzu0A`Q)YUqqDyLqz>pOx6Y>>c(yCh7DUy2p`6C zmlg5h1HMU8E0ontE7FG-S>$A)#i4t2maD9Lk8YYGeOVs4(xm?xy$-#3XeL`!V0BUZ&GB9?Cu184%0s0qgl9Y36UUzJ zHR8qSE6M*Syhc>fH2rHtnyZ2Lw4DLv(f3l}^_p8FWHjENOr9plH1p5E2K!Ju<;*(D z*cfq&Q0MY}6&X>3@2i$I(5rY~C1;L&6cF!}eY{wDrRYW@zpuIz@^Mal7acK9%#K>% z#DY>byBzR1;gR)XxoXET;ZxH+sA7G!z=0zk2XXPh+SbOg-wyvkWF!a{dNcZAs6XCj zlNs-WZd>QpF~xX=+8IU22f41$8dHn^!*co9$M>|wO;;ay5cHxu=oDP{Su{%Wb$+h< z6szm!x@-AG^ob@)z;)O9xb8oi5$&y(L~E4m{~M!D|no04Wg+><>tN_Roy z-6~!D;Hw>PVi`}8;=)|_UKEZh*Y)Sv4|osGa!F>&naIIV%c zlH5W9ryWAm^qiJvW=c*w5Fukcr|n1WczzHjs_b1T*5F2*B3xCh!6GASkkj@x(5v9I za^^(S)37MwS+Dd*(Tzstv=2c(&S`%^M~u_5ql3q3mk2M6JxM@nv7H3pF*^1=?CNy% zHr#CsO!wsar@i6c=>_Okkly+iphv_EQF2|*vATXfytR%GixTkRtv){dMKhv((voP6^5I$E zN;09m%Hbb3~7yh@4-lg=kmII5)6|6NVo1m^tn>lk>Df5y&eNkxxuz@K<2 za^!$Px}FwBGit1KW%8wtW~GOKAAzn;7em|s1oeVcN)!ZjGc`IC2K-&rPf%&DkXo-%JDx0UH z@3)vb7jG+KEQ# zw3ddBdM0eVLW&F1(I-$is&q8s<-E9m64uJO=+`jnAQz3E$dZU2JCgVCSg0H)nAKCl zRz{75_9kE9XcjuweFqe^LX2zwQ_!ucG$<(OCTesjP*8&ejisPw;@Hzs&^-D|avKR0 zbT^u&r=T=rQ&P}ugpBbNbQfyJN9r({6BKl3#3{m61qCG|YLJ4S*Fdj=g36f_%_hU5 z2ns6wQgow{Dd+=`k5kYG>4;HKc69J4sC@5l*$H2(rhMKUxz> zHRTIAab`Y~gM}Wod>*=wH`ruq`Hb6kjJ-M&Bafn#q_XBI<=gIvQ&7q`&?w2v`6=Zq ztgfF@uBoGxq6Cz3jgL}(){JN$wIo`jlyb(+Nj4TkDLc?8oz~J&O3!qSmq~G9O8Gbn zN0m}WyjJH{%Bkcj7;TVB1}ChfkP)xdxi|2rqZ|(y(UZa^MvXe2k$feispHsM5ajs= zC}_DD&;F;3TT*FGP{uxLbSO|podk`gjDv||Pe&PZ=qt%BBv8gGnx?0WG&56D#!Q5a z@sv?P?f3{BCSQUwULJ9Za8*GW$%q=Hj2j#1RZvDbbE4T_SQJ4Sr9X;pG%{tpAM$a^ z_y8R-%E*om9%WqY=VT+lRX;P`b4%u|yk1+Nk@cxYlu+mNPJKfpp`05%MovuTI&nXH zB=b33t#}hpCYevWZJoQv)bq=b`l4T`lR}%Pn{T;ePeC_dN24SU>8G17v$}q|xuK43 ziW1Px4L-X0X)~gI*pg_C(#`36ldLUE>f7996m*@u)Fu zubg-;#khmSGj2Ld3L3ExJ=C>tji($fxYiTGVn&UOo}PT2qsi#l_aRW#X<}sipO$V; zr9(kW&!nNE~}QS~`HflH5lEEw#}!JuRhqo069HN5~jYORqrf_?R6g zc!HK*7IBJjRY6P1h#I7&=Qhx*prvx=L^I5=D1w$s&lKHgWLkP3e9TTJ=ALT7=R~?W+4q@nXaoI!)3XlvI(@sz2?X zU~FIC(4OaA!HdY*?OZ2Z?A@#U(;a6N=N{o+#cgZ6M~C4D(5W_`@)Yjt%p;w~?{J1u z<&6Gkiy^IXt~l{KVXhcfqvVK*vk2dgvIOZ;MZ^t-;v%_WFxlH#Yq~R4%Ptl4tJu!J z-9l7sIHlTb*K4hqr9BF{lgm^z<`yUu95$uOY0?5(?#DBk4(P={TSId%l873Q3j@LE z+eP~%0^$4MRw@gLXm}@0B%+y*Q}U2?JRPx+#g1ACS)MdaC!#qTiTsL48x)FHZuS{U z5X-LO2$^Cx?lKhSI$GQmFbKZ}>_V6)BAZe%O%}ktlk3=Cp_{FJriH%JpUHDnWG8B$#+?nND7A38f2b>#l zs^G&3*Suw%wa+jIdCRfrD`PuZnM~#!#2Dz8R=2Vl~S&vSr*-|IBj;xR?S);rj)FsW$|Z~ z2-$e2D^smhumhGN`r6`j$P!BWSKH!Du{7I86tim1%xo!BwRO|#LAu?d4a!w>CS9VM zRn4m1R^vBF&LqBQvbH5ZeT&nc(~25y(MlEc)K0gicxqTEV>9Vkhyo?tp zg#zvEh5nA>C7P+R5@nBW=lMM{B**DQ15>puR?tz=%B6~}nA&a)x|`rk&8w#SXPYxq z8`7aNEEuXJdTtzzq?BCaq?mWfL~t)lL6|AdLoq{#)#Ddu2^ zre4tP+U6MxovyN0R=jQ2agq)y=~p2;%?#%&dD|{qy-Sy(*y&DimerJd2C#cDJWmE;FM+1XIEt)6Y8EyyzWns-D9TWOAK6Ut zT`+O7c3bVoEJEJMTHh4sXxL;yai^y{0R9-Hw%3_q4Hs>7NXhHDyorCX-^0ujnSO^= zP%+W2tYThUP}FSpH~&*HOBq$D_UKGrg*>?Me7-@;OoeDYSS{leU69V!ZRnr-fxWPv zQbsQhzy_pam_@F_s`iKK=>;-gv!wFbco=g@u$e-?mcebwa2vrL1Z^t-(+J80y9r(=c$?tZGXM(- z9D-X3CiDWP5DXDqNAT!Mz~clLoe9`M@E3wt2yR~uxSL?;Y`}E{tJVP461-3FDM4;6 zpg{1$^?-c@N1OwgNAMBB=LCP=0Cs#Z?Mi?_u+j#sA(&YO96>Nha3#SP z1mkuCULtsdVB;RZW`f)hpg=HV7%-RMQG&+_Ub_nLHo-Ml1Fk2y>l(m41RJgeY$Es# z!IK2)b$}c}2lh%gW)aXn@CI!b&$cpTJ5U<5=Yl~SGZ>Uc+Mrz11|_C6D0`(rX?qOH z?PJil)CPTUZO~^d27T*d(CR~jmM9wZV%VU!$Lw(*dkAaL4VXc9X;r7w?`hf8@671% z*W^3k4tNO#R9TPv7=H<`2hRh~T<9;EuJdM9=Y$H~+UOaE(n5fffk%KKcO4-1I5$a dV&-qB>BWp$&60o5k*l4WC1N6CIKMUQ`9GEY9*F<| diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.Oxygen.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.Oxygen.doctree deleted file mode 100644 index 83cb9b0fe3554f4b1250aad7da96b73fab5043fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447307 zcmd?S37jNleg8iTdk)8PF5-$5BJ3>8?yy|K04uP|BCaebiy$uc_H@@wcW+O3(_Ou@ z13|n{(Dn!piW={DYm5mVM58fA#XCwoqw$KjKQ&&7zn{kc=ldM>JXKx&)KgW{LpT4t zB3o1ae4pccyq}|V~?p`*sY=r)=v$oYJm1_q!=ZnQ!z38?UI;)HILVMP&c?&OH z*!awaTNlPUYnu7FR=wRUxC@;Tq$rfi)ne1FE!?=!Ih>Mvgp|&j_j<-`Hd?b+*v8ww5zkcTCTYZyV_Iv&S>8A zn&qjs2VGFx4=xv5)Xr6fYQELNOSDX0{+P-a_BGvUO4IJF^71qE(?V%& zX?^L?(j!U-mrm$3CuVEjL}B9EmfLJiT+?n$T;-vyXmGjEa<(_?jj8$p{oaJs&jhO8 zn#kqbUcJ?xoy|Ar{hyTT!b;fOY@y+g+<8!Ysx;DBQLYu;1Df`^VM-^Wp{0|c;*;^e zQ}DkH_}@lqH1yUiv!;$gUFF&gjMv%3t>TO^l{n>^BkLGZk&O$TM;U(hExdAriBe#$DIphU2?5PzTi$eeiCQH)~!$}3xai>6-;75_$QjXlRJmsT)$B~Bdy_` zWeyL9b#$e2xK__0A24WV+1x^2w<;<58Y;Ctzx4<-q>e1;p?J&RAVN)(=H&~ajuEYOOW_+uu-nH&}zZune z1FF;UtF!DPKf*536!QMw8JF(qiZ4T6-ASJLabBg~A>Z3VhiJqU26~IHFTZ=G zJ{pn5(`uUgZtu2~{=Q3dWRP#!8043RY@-cA*?z*W_j2ODGy(rZ>HklL%)b<u5^DehBmV9>{@Aj z##}%mjq`G?HEvGWIer$LE9VHHIlq^~pXfdr({2MS#85=`wpxxC=4n8SAv}8Th0ZAT z;q|EsW+w}QuDi2xwq9)0z;?YHlSGVTG3w{Tw$jSZ>gjg1%6p-kI-@zSUZC1}t%XX5 zRC&{L7ckSHyCMzYcU$QMUPV;-Vv19Q-ALz9*2@*@HBX;#=`*G^)b5#PzERS9?TatX zV=gl3Ok$+Osx`Uy>4wU0-d3+yug2u!N-?q8D?EE$XO+lF^X6BC{DJD(aBD>j#&QQR zztJmlezqE*gIrZDV@Q;*YPnY4L^a_3$r0hIYZZN4sG`Bq$5>}Mt8M3?#ypK-=QnW! z28<8WRNg|_tgpNg|CmNFot0=ihNTOgq_Z%%0~4Limum}^dr?kj6>fO*4LF@}tIi>~ z;~r>K%Y`z$noV>G&E4d}r z=Krk}@x4Tf_ztC3Mg>5}Vdu3BoJV;1sdhEr%oXZY%#vNbCUL78%USx)5qqw`Wy`I% zoO!GKmj%SH!i9F8lYWkycFAUP%a(H{FVvQLwqg+nOCg6U}V6Wqq$}PvMJ77$CdfutlXJ%;LEfW?> z`Pz(|%U7#8{FJNiuToZpl3Uo91G93iYTe5b%SK0=ZlT?5mG`^Vd50xviP)kvJl4FD z>+Eyq$DMqw=rmm{+SE`uZc-A5XH%%QSaB>u{R*Q@ale6{%x!w}Ib?*EMEp?APq|h9 zr$T+UQLdtX;(`i9lUdl0J9Q|cSuQF)h*ZvWyT(>B^XQ@G87Pz(Ea6v_uNnIH zTMiV)8m1N$Ssr<(HQ(~wSwAIQc(y^BM14i3N|-tYtX>ver9Ce0%rxum1}7P1fXPhF z^E1d5=P~vu7sA<+qQy@wT3BIU%InSl}0Rn`MFlT3UkQ}xd~LIth6P~ z$_mHI77cBn$GNgs()2-2s)}92c5qt@qmGVV;uP`-m7>#fJ+g=&LZlCAdIV>_HqS%E zH@0)~jw`Oe^0G(wL~<-9 zTy=x%w$+~EeWcVK3ki~H%)@OAdALSd=y9bxr0G*QgTEKoJR=aa*{y7leTh2*KJHf1s;aOw8R#?U#ibJ zv!p$iaSOS+4Wb?8I__-R;(!Dcs#=zlP9UerK=noaMCF*np5c_I9jp?Q4WSg~&wd1A zX&)UW7SZJ|C{Bw(HX#vk0R$x)cplTPTl7i@^qCSZjyB5&R3@a-a;?$!&^r1hl*c&y z3V>RVI($Xam)6yrPR;e^>dk%lnMX?##)YFG zid(HVVyfs)wP!|0ucHnd_dWPf6^_lEQD%$Y8J%|31;>lD%sfle=9-JAUm!769nUcE z*hq${pN7>*q+`*^)A2w>Ugc>4A`Bo9Hkhj(Ag8P4XHaog;khyb2=0a&&DYyhAJNI+ z9*qQO0Ko`Wu3@|l{h@?$Dz*mfLR6$Edk#H9qbEvvXF6Z5I<5S)>&)fn(Ij-zb#w$m z11N%;o2OtBzo1slJUV1NnroqIG%kQPSnsi$x_kVF|M0;EVBt2W@sNf^jTrH4-ocVP z+v~Lrun)|l#z*5$yM-qB<0nR3H(x}>c#GhA)%I)+!7w_Cxmb=zvWPjL96wwR!c&9< z!7jRU9?Dag))xuhl#Yg}WsJh8izJwr^C)emo|8o2;B8|<19c+*OXU0pcvohbA)jLi zVVGkrujQe0hHWYBv>6mb7$&Z9Y+^YBoNX1*SCV5^p<^ne=74?f*rqKT(cN%cqP${# z4(5d{?%}Z-f6#_X?Z{W5M47N&gKucHcjFJYVG*(~p@=|@n`b7$&Jpd2bA z6H(+~IE2mw9Rj)u3P}`1BMt6-PJRl}>0l5!gUDdRAY5aF)gs5^Q$z$YrzIPLl1=%a za!g!9kA=|@+!aMqU(~`wMku=7fM(bwEmHBTVi}G{86X6!)oXTde*y;BG^V+Zx@lBx zj%wQSivGwO&W*H9^d-_-@GddLLr!one{d-iz?>?9yh%7j*DP&J&J*wjZ44)2K%MJc zsaz;AMF!*@zIcWhDi%RHu!Qu=tk&9BZm{?c3NR;RE#U@(yRSZS=$Ebk{O z?$5)uF=N@NwO7RmZ?F2B=z@}AD})3&vepVRGJ7fl%`?@u^80yhiQF7b!88lrg8_VbmUu6O(ToOWb`9KxVrozU%M{+^Hc}vo;)zj8Ibb_L3K<%A%4Mw#%NqhOKZZ7K?}5>3#wbZ zcNF(|$E<$jnczoSUQjVUI{E}6D?6ByJ`{L&2~lOxBD z9yW9NBVImBq%9>Lx(e=2j85lY!!l!Ygs~)<{81y{6!G%IheblKd0WW322G=a}WO% zzXtL^OfYAHY!zeO9DD?0Ja8FVvKo`SgUhV#e07WkCb_!S3Bqxs#!GCStygW3MX)_u zU1+xe)={z2mBWfnewucwpo(+@Q)YR`nZh&${6i@5xu5858LC+~&ZdJrq_BqP>rRi_ z7_G1_3`L722bwo?KV#Ncx5=HAx7V!!nWGyGO-mC^a7^GCk&XW55{WkR{aIy!nSTmM7^ z@#R?2UHIrF?{jOUcXS=hD05}zQ@sD+Zbl1UqoX2gZAEBwRIXh6zp{Qe;yxc#Qtyw^ zI1AA(QISNhdUX8`K^i(n-;d52eQcR6{|ew;f+fI~SD!84>@rsqzk@R;4~6jL%3~|%T|d$G`pZ>nCLkF58>&H7yA z4=dpJ&2E|C)6wnp3?Gxb$-Ub8#)YOw$$T>nIn6ues+u+ z)kEvbb!0pKEPe}JvS;zV4M36;lx}@xoE1_z1OG?|;sF!%)eTn#mgT79hs)fwcKu> zGTjf99UIzoi$zlB`Bc*`>d3pG&QaYNY4mw9i7yI$I!sr+o!>y8S3oo~ea^9nk6ysI&keFS_4R_+%{# zyEbrGhGCanWE_5tG~X46@-E`==!h*OS|EN)SS}jFNrnO6h%tg85Pt;G%z=2WRUme0 zbzsK>Uy0GD@Bb%M{y;|Lk@x^z+DGEQvO?k_v2&R}Kd0F?-(bS$4@tHh$kU?#bXAj~i|3HjJwTOHbnUP0in=b7mvdIcr zyoh|OMWsbV@}m14kx%O#k$h)#x|rm$kx_X+S)eN_7CbgD(>PsorwGCxL__L2EdtdPZv%->s7T0|xgZL%jt z5wCBGVF-w8L2;ago+}yl@!t1e;B*6FscvyAOk@OnZA81NNI&dlauC-*>V@SEOhp#VVwPu5pCC3yQ77^VW#> zt~8+4jh>KXcwa?MDSKIhEm10z?vF!z9N6t2vF74Si#R`dK+n8`A zzL}6V{;1t0Y=4e?RZo)3UO;i_Rif&{%cXnLD8JuadQumcsH0*V=Mo{wmx`p(hpFjZ zG?I5gqa!7a{CqSJeavY3Bp~`HL`oBb%AgO$Xj5a*x5 ztq=?6r`IX8?bV4!Q6bq#CQXwXy2euSE|_$jWKt+M4NLos&X8n8RYFcFvDAiWW-M8) z5Jy{PV98XB(WyqJ=aC^fneudLPo}4_LgL6&c{L3I;BD}$G_$ssi%JbIbr#a7wcpg) z+cj&`-qTAy4hjoLa_2r$L>G7DUHHetBzMBuY2f*=(I1k4=Yz;8C3xVw2mVAMVZ8{MNTQ9^$3V& zhL+V1+HPwM>`3X57=3EI+Dt~|yjo3{_Pkob3W?>_UVjcp#G-kd)e4k635>n^Ydl3w zQmy|5DfVp@sv2JQU697uOV2*>S}I(om56ST-?Y&Ik_^}i z$SEcJ8W3Gl_UXD9)UjGFMxPq{o<&CF?At?^_UwBKDSk?f+(PDhbbN@^Yl(Ium% zu7^P#ovn<~rAEz-WI#^MgXz+qnj@@`SZbb3T`rWy_h-rThWwKR*%{Q5X;x_!an2VN z9$w;{n?~jRCXT+xq5EWTOYC$DMzUuQDWGe_Chvkh*yGThl?I@^(Fc+Y+n$D;QUYin zL^A`(ZjVERG6t1GH^eAZqtLBnMNXmX=+d4-yICP|6uN!_C;5;kXHvSTyfzO~k zh7jEU;3!TD@)ru9kf7H-0C>y@^f$uwH!?Xw`WuNj#;UWHCZFuZhe=8!k_67QdKHzz z*AWgz60Q7KhsqBg2cttK{sUF7U=AD1L4UEq@K)PfAgW;|_M1~Z4zyy8Q_#RW%RKV# zj;LAZgkJ8uiQG5%-Ad$1AE>O5x$u3Tb)Dx7gdeK`L)eeZJ?S7G{9@lY))P0w^d{Evp zs(%4dEvnNUQfIXxpoe}3cJb$1F-p}25F@MM4jg0O5JokP}_t z-O`bSI*U}%MJRa}ggRajsyjaoQRf+5A_=0-K~5&K7zQ4fLNqg?tWF2)WuJj%)Rq{n zsz9ymCR1`oZKg~6NzUo4kXS}-k&L3}|NQj+$gdo!uS!W+rI1wADvHKL_oBl^_*s-p#|^qe$Cb&L*>gi&`Qr<9C(8ALNP z%4&;Jw>1WqPPfPCQ=`*c$%vdz&!S6vI^D(!S$sNOnwn0RYR>rq(U{?-(|gmHqu+GW zUOnOQ5I&tg$%rZ}8%e2uCpC0YO5O#fjuVs$=cYNscZ|-EgjC-`PAN(CQ;23JmDQ^! z(UuulT75l6ry8yPNQUIJ`U+jz)9L|M$l}xLs?@Z)N^{Ud*YL&+FRj*y7MOyA3@N7H z+#LO;mG($05EID9lLj(!tL zJEDmP1p8Ev`Xo=1;Z#U8l2XqmC3I0r-UX%B2}*@B(>&o0qbDTc)a}SAC8zF!Xl71X z9nlnNmVqVJGhj+|6ar%QWM-NFi4d{XU5O{yK5f8Hw^GrXjFPa1Rdn^axv zQk)RUhf=y+B%{7c&F^BAysNEC={ac*@J*uwBmvadkyA=Q{Scy=0hM4~DxeFB@diKWv9-qF$7m^h?~K9J`KUk;w!B$;HLUagR?9_1Au zUJ|VkEieTE8BNUUxa#{&qKmcXdia((zFuuPO5%wlnR7Zdw2L|NE|{~r(B$G8XwER& zHwkDqAt#fL4Kub$h-L=O={E0slE$3GBy>UCr`PN|#e(wDvFHhc;M)CdTiKp=dUlE^0H3QT5@En*bUY0BFUg`F5=GlSeXX12wjbN%Ah3G^)ze*fVal zauW7zL{2768|HH7LNqgbY(8ABsbEkUb4rXFHO4%SY{wb%D7v&~%!#a!SjNofF@>vn z?g0;LM78`3CTnbxHdn@}OE`H6Bd7U#o5oGz7+u_>FPi3SGx#n+Z63Qav8aUQB@k(x zFjaGys7O)voT+?aA5vi$Hk~h5omPI@b>{N({?O||tbroo^+LJBOTuf@xJSQ9sAh+5 zvx!sVZT5Jwl#%?qg__vKKY5pChfG#O-!qJ6O@h8#kyA?aJs+Z((PuL|dnV! zP@~>ok=Z!)_S2<3^;)cuSn54Y%npGynhNIWB^a(f@-KK&?*xh&?-W%VUS_;4jdJ_V z40WgyI;Cd5;N@oBRtr6o9X*0FksSE~HM@%=@-D2uHdL}klz%fCJqc01h@4Uqr znJ6}gDuwkhsBHOMj4m~{{E7_7+45<+v}emFSs`(3vHxK5pDZdZ<}JMFen;Mg{@M%H z#xR4o3OJrLGR{soG%C*IUBuZ+F06&uqeuiMiDqh&@H!DWr3|leh-MD2jTY-9qWOaw zRqJC^s72LQvKx=8htZ{dR2|C-iHoXEZg+{E7!^GHhdgwBRI zF{U8RS$Bz+N@p#t>8$n2Ue%=|Lk51W57pHrYdoq{sAW{iRNFPm7HW(YuA3Qw zgLuBdPN5VNi^zC_^gJBQ&CGtj!4nke+2kF&GOO*`n%!Bse7-M5BFX=9YIN5KOWsA4 z9Uja?bE3a8I#H4y;1$Tpq;vNyYJE_3q-10a{(!XK6@&6F zV({3=ytGjKsj#2y--5kQl2H6nj42GE_*;l(4#o2o9tPD z-B6;ZbR^NvCslM2P2L63j_;YDMzyU*mqJGN=dMh8#N zWO>E<9GBZqsWu_gD}l-IP}-F~Q*X|* zjS0Xcwh=nz*+v~Wu3^MF-=H@vK+HT57y`{%CqIR~?M|avpTU;H7Hwn4b%8DcaNZYG zB|{&SvK8e%EEGDtl>1;Bm*_X;c4(AqwE4G(?MAbFDxdefW-F3;-=*euF;CtF^A6E+ z(9rioqoI?a@B7FpCHj5^(ah-EY=u5w>jS$U_U#xwY6Lv!aG!wR6m~ROfF#AD)Yn-d zaRjtq4_k|xBr3Y!k@mPyr157mmg5R?5-t!KYZIjQu2_?I5o?F?SmRk}!FDzY_FOSY z5^P&y^lg|PZiQ&(V4JWGHlc(;9dB%kQKS}aSCjSlc;hs>v>$J5V1>j*TW3oRGdd8S zEojjY!o^cX-1FKEOyJmMwcPUfRk4icm2$L@LQ?hhdqrc0x39l3jXC;FpsO_k;q8)Y z^_tz=pMVF+mU|!Q;ju0hNup;{!@Ec%?}9`}gtO6TbcfOINoaICax&51K%=`Lnwdst zSFI$hcm=@wQV*lThauQtVsGalTvYel!&D%7#eJl1HI z_tT*$`}5e|FjaLoN)iryJr#-f2ty4oiJy|j)%s21h%unHbH?VWzRw9I7fImTsQFz4 zmUjbVK$Vk5-{%+|APIe+iJVf>_eBuROy5LfKus5eO5R&z^r?~eb!0?N-ka&tp1gCc zkXZ80(-=_cjBR?*w?$|qrYCLt^VK#jm9a@{E5Dyp87~ggsIiJuHTXx#`6E2+Uue2F zA-#v)Vq^PTPOUwQ4Pyl+?KAa3tbwBC-wNdpFD>7d#y$E?OMQ(_%zXLQ*@V+&Ar#5U z2dLp)oRoL@8eOn#4U%6o+C2#*zl@wxLh^eM%?wGqHM)=@29=Osj8UdW$lsC$IUzq! zm-dAG3@ap#kd;x&75)WJN-z;#egv<}@B(F-Xo1P8$qr&7%(dBXpr}tL_`@hKKh>@# z*tZ%b7zvhBNdaA8k$2$^$3$hN!R2(L4+T# zPz^AblNC8&PNGYDz&w%_5(k(LwkAa^!)b0UXP@y2)qv(YQPtt)&+atJ?l*rP?>}^` z;&i)wGsnNcVzu}mkccGC&D7*B;>f!o&S8N(G}PQ?G+JM*n{{iRG?E{WIx>nM z@-FzXk_&6-*gzt1xoFEKLC2$!Q%ZDffoNuQ*c=uknm?%2aAH)bQDYm~jZ@Y9A=N-{GaskmYu#BW3LRX%>x?JTlB0r0}k8 zTHZyNjjHmrP-_c2We>GxjHV6C5Vt`zbEw&zA*-oiP{XYjqed;<{*r9R!)+g3Muc0B zC@Zl-;-aimzdDciqw?sPoAfLPQ-C}k+R%F1e)jyE-c!X}R1LfaJI{{*z*8MLf51;% znqI}C2j%qmh^=O*M@sxP+Ua(!Ku_lVvjUd9Ts5e8y-;LyJcQLbi02Z$CXFlfn|f+# zR-E~mqnG(|bWQK&}8ACMI}9X~>s_H_IZDW|OjnAVz?A1}=3Yvb5y<+*s~g&3oQ^>!?d9<%`b zov@dLaOo5NsddMUKpi7o9V3$?q>hojtSXf^U|{K|TT5%POlgypMkINwmZWm3y1bCLtZHnuoj{k0#@*XI)~7Xj025oxlr~N z?qmt(^3B@9ot00Z$V!L)^GPcFrpo>Jhc`|IG{(+6D*nXWJb3m~Jp1cZe{n1cFcArQn047JNIcgKs5*54$^ihTh}Shu*cp&^wrl2?pLB@qu@$#nTFE zyNb=ub0%hM-b7*I+7|YkPF&M&OkCwr4}u|gq2+AHSbM5|K)>g|3p#Lkyd+l z79EZM6Rlrvp02jb#T+uCQ@N^}uR4IORkh8{mN&U&%Q=%5Qtu<=wk`-jY>&~O*4fUG z(KuEvp-cPDb}K6+wzEAva2$j`QwZNyT$mHpkbOvyb0NZ229XP18b$V-3u@Drzi^x6 zF=tpPk{GX~hIb9%KXUm+(GlMM?RZ-c1TbEm_H&8Dp`MGPuS z?uk*R#*z<`1vyLZrb~O4+{FrsWl6F}m*k1?xnx3$L!S{%7+wzDpT-FN=8!t*ScQP~ zBhR2nB!hlIjqYNQybFIgJeY|_px+oRo`gWZLQW|O^e2dBCXmfR$00QgDt~?+qe_iG zYmfH%^All8lMzT#49$PY3W?)SWf=|lIaMqkbDl`m={Xr4hJnl@L<4x`1B0Aw3-GHKl~gt;1`O9POg8U__0kBw2K z29PPTA0NP6NSF2lnDbd7aR9M@`dPQAv|tx6y5CW!&KJh|B~}zeZz|^sRlAozdP+xj z<}W5Ibj6~)i qXMS2(E(lvjkK~esykI?6_LgFH{GtqRtb`#&-pcj@~?J2f&ix-yJyTx=`W!~AQpQQ zOQTcVTC0s?Z}F_J*>npYp7!CCMfQ0uvGrTuePNkek>?ny|4`3Rjub6Or1pN3haUV+ z;=#k@UheeDRQ%gARx_1o(MSqChLq4nA$b=RS{I#}#-a<2o{)q^=OZVRH4Hupr){IG0s=#JIwAt)2cn-@^CyLcn-f;VeJC2OF0iP7ju zK=VT6loB+rglJ~a*nF)wtcO7*%$+g1)CluVG9V|+bLrBaFwbU%#1iJ@C(voVZ2m>+ z(@%}U_W&HemxkOAj%Jls5$8jq!oy3P`_ibq-^5X`ur=x}FV}7q>6Jt)+NkuAr1>^A zw~I9LE*#(xtwfD7|7kRI63ToRIi;k`FCdzkGB&TU={gux!h9=6j~Zb{j`a!i4Pi%< z1xQlNs=mq!i6_iXz6^lVjWD&EZq{cV7e^prb%1tLw(3=E4wYk>lWo!}!W=<$AL<#^ zVWI_zRKA3SX}au~-7;QFup*2~A4!0nR^vn5848ew*m@%R{KGhNz`VNPd-#1bZlqbKP@=S{pP!8UZWQOm6BmFh*l zl;)_)-hT+3D)jJPAReWGKglz zn$2546vp zYSHw2vKo)3f2B+NX!;y0Brci~?n@<)gKwqX%(`+NZ$h*W4#P9%gGCEWeF~XRaD^M8 z-&|2EALRBqaUP0I_pPOmq|8QYZWm?bU7D9@IcTuiY&3Kd*qn}>Ov*OE<~)dIhKb@{Jn}Bcb9gWl4L;8@T09ASZbMEf;nRU=X871_pbx2GQ2BF9j4Cz$yoT(@ z`E!6S?fKJYg$x#d{zf!mc=_{=G)Cw*e=hcSx8Qa5T=Dv%XGb29IFdPEq=t4eN8SZ< zR?D(9+I+=m-z2no06C?k&37Q0nKq|e>{;;@FsPjQLW~kM&itAz$2s#^y0quar&uAe zoVh^m;-zgWbm{`OtQXihMs$OYLv@PfX?EMgOV#X*RNBzu(ac>;wKC3ORIXPoWc7A+Z!%gPprL1RfuMl}yp@C_+406h6F!xF(JI`b`M6 z5007P8g@E1IAOQ_KO_^$i+O5x7cb;p@M3K!7Y!RvHyS+&Hf}*qDY0<}L^ET?Bqw8o^NL+MvHo)8Xdo#>G>9Z`fs$WvNP}glYg@CR_lva5LAGU9?89{>A^t#0&Df2OEd>3Wp zT~Owz?u<0v+;6mg65f0qIi=*ymmr#%H|JP9VTn-1ppxgKG3wOF^PglxPM#0br9F8* z$O?%i&#CHtJ)uG4D|@!d6@z{&sy)06`mZ#KUqS{|^M!pmylhaOF5|;d^gg%M?5RsE zl0nBEAH^Vfmoca-BaK0iAn`?+Q5}z*QZndNh%OC-x>Yf#3_3POof?DABO7uC9YvS+ z3|h+yiDQuc%Ee_Cl@==(yy$*M;iYOMKyTjTS+(WlLZ*(4IhVBD)$hx@h`BW_DX)cE zMc5`9v`M=AnHV)2_KtcG%^YguHr>6ifkBP1LW~x*2zxG>jz`#Dy0nk58(AT75!S&o z1?^lks7`IGXwh4ib_N8WZi3!?2?9(lqAiH+9t6 zXvBf!vyYHaB!ljwhIcVY-UWk>2$!v)=)*?4CqdB%kyFZE|9*&OMv=|gXkCgJR3g1U zMwuFszCjk`M7ozQ?TPdrR!A(79<9wg$RCZf4!gvPJ3kdw9$xPJD2>wl&7B+6Xa^rU z@p3JE49UykxRCrbK8j`cVqPmsGLk@tJv@p)@-7H;Y-C;N$pg%70{J9kf0wvgBPv)~G5^i?3BAwkT7F<;W>z zd>skV%<*M&l8&Z=L5;GJ7&U59b~4$HN7bUn z6Z23&9t*dHcC%I9k3SnOU#lH=igkxh8*8^*r|g|1XC?z*Pc;WRi)_|2-iBeN_zckk zQ>>Gd3aWBf>o--^X#*_8TZs-|42ne3^~u!eu5pXJ3%VX2%tRyXQ;il+GJ?4tIhnL> zcwFT|G&5msP8$fRVNfZ%J4TfnW#`C#oU%`(OZ&0RE>=j~Sf+Dx)2)_q{Ng;LD$ZA= z?YE$#IENAEEY|p^H2eX;xPNLRPYI3^km<0|>2{6pq{E8kd_au9mNT6%ApcWATK!d= z2eS%_jn5P69p3rdbJ93Szu8z+tJ!Q9cdmiYe7jAr>;jWj^uI-S+HM5eQ#_KHZzpAR zF;m_JGat@(l}FV_`+xJB{)gXXDn=(%(SDo*~pP~Gry@@r{~-)~MnDa=X#L=MXdIuBhX6-mYa zrKWdLQQid=j}%l?`Dida_z^s6qD`L!h9k%+B@7RPXl59mZ4X0D6N5UQ{3F9tzI5WP z3uC2|uzr0q{&x!gw*mj#cq3!?%a_4+Csa-(6LJRrAz2vwo)r?yz)drG2EV*h#V1M# zWJ-ZF<<{Q5z+*lMvV>BKMiWMtj8;PDITN!rZ=x`9ZOd)8Ca!5WCa&^4w>gU~S%sFf z9Rrl9`T_mkgmjmQV!hCs$mQE!z15z@qu_b}CpwC8^K`XcF6NMti>H^>%~u_mpK)uO zn=Nm0%a(H{FVy6=E(kM>ix!x|fgDfFXt^2sO{2&8H1ep|O7it+T_BP{Pof5QF-YD8 zgAUcR(C~Ae(bh@uvl}^?^lg~S<{_FHKQ>MiP{N>+=js?mYNM|fS&x(FO1iWkeLbEP z5=S2URrzOFR9ZwEFS_5+rgj>7P0Wy!zULGcij2C~kmFL*%_1qM0MlW~X77A_g`3UK68CE&4u67Ua?QD!R0fzI#|9anaY&HV-oW=^cI7 zC&}y*t6u(#qRP?!Hw?Y}=hG;?-`r6<4Pmlct4vQ+QoyHMGLk^QB^7iLNZtj3j*YB^ zhM_+g-5|*T;P=QW53ta+4ZK_aF0n>82uGl~SCKIBOwX>vI=vWq72E@-ln3v2jzg3+=` z@NorlGHKT^ig_|bGmm06%K4~a(kYrhsJyr=Mui$LN@O=acDa-;?Z+;UWrf7@;wbud z3494&lkii92Sj~_7Z&X_8tpeM)UlM@i*v>KT7H%mXKeN=g=8Y}@k(lT7e3@&IKtXc zE*eK(YczTij{FsJO39J8K{PW*Y>uT2>tRrVa!-sdHK2Tu49J0UH(lBT%v7@iJ7Cs?Ug~ z4==m!Ph-4(vrD}YAtGnmb&Fo9S#QsjlHf}dizL`DsPSC{lXpR|qq@u2Aod%h^^-vC zSI8+P#Qp@)%n-AAAtFK*gUYd=$EZ`|*xE<>9Q%ndr^yf`DJD`sWQD|XY_o+N$7Ft@#VS_tRfnCV_wc13prm$=zKkgQGuDlhy3N}7-f%YA& zsK~qE$8jQb!ntWEd8N@AlAz?}$SEaC{u-j0Q8H=08q;N&f!$X3(ioj;RCym6l2hd+ zbZJkO7qUXKQson((BY-Z$I_^+-&DE22UW1SrCC0ZWE>(Ozy%|D@?%m!*LXzU1y7C% z@`Pul!Q}rKeIN-;eu|t@!sNdpni(dKNemOAj6ofr{4hqL8cEii=#%98!k{KokffN; ze1{d1l_bYg`9nREStnYMNNxQlN!LtU zMs58j#h&n(gE?%viA+c|k{&N2C3Mk4-UU6@iE&3LGmRrJHF`o4j=TgprR2z~A)1*Z z=i84w!s-}QqI6euWF^W+M4`h=lnzZYcPKKznFRkWrM5iP5M_vYhG9^*`m=@JbGRmp^ ziC$gg%`2p7UV`W~Cq3mLRAhbSQ2f)L>YcQ+yil*U7Iq#)CK}~3tC&pi70u4E+WUY| zY;A_U^R5N|De+o-J z;MZ>{v%NBr*}fAlzcdc>wNd(iX{E=!uT}YfNL%?M{zFarRXEGeYtz5ODd9j1CljGJ zHXHMk^ol2zxB+2wtun1)qwTfqixiVvx?b-jeUHFq@&VcPSB#E~jN<>UZsonPr%unf z-ncW3Z<67^MYl@lOBHV1I6BJCUlHd7%+rZe_~Z;bmc{=PB1?fiWO>I=hR~dH9XL?C zia~Bso+h9U+vTh9n@2}?Kd7a1ZHLfp(WjV>tQEYKYP&6vcbDo2U!MexyEjW&{lY`H#ix zy`of+_F+4Aq6Dh$(!t6O4m2ZOlXHj)N{^bOHo~(C`362^0Y9Q*pg`tOZoW`*n)Nx# zjEYsxH9?+NMcw>cYSD&juWrk8o!MO%uMT*+V8cF9HWTs_oDcn(k}^r-{*V63CW)`)kgfD%I=za_uJ5TdUy~ z=(B9O5@x^;9!>nfqzlxBVMJUriim3l5pm5JBCZ)i#5E&GtKFm%({dhhvR-=-TgDHU zDZ{SPDES(~0hO&GzT36(O>M+x(V4>GMOc!+Z^f~eTb*X389G^`O8r5xjnm=wKd8i~ z&q`A`@G9qIboe{{5Mbz|DaHPBt5AP%yC+Tzs*K-5$*+Knjv>pAXEk^*SH_n0g`J}`_FfBFOegN+Q^k}y-O!!Wsa# zL`S{FOyg>+l@m(1b?+W$&)6O|4Bx}Y;q(s%;`j$6@jW;0*~oM}R(XS7oH~#^VR77G zfgN+-rg;^gKQE`;w8fb38mC-I7Gu7}3>Tbw>eEKUV$9DVnt3tC=IC+Ocyf`~(?sut zVVK?RT!x_dI@2wdKaTGSXU(RRT3}IENy#FhAmTUl~r3EVhQ^M>3 zPFP$7fX^d+3IJ1XTCh$U{U`~5&qYoqgBbw49imGDVAl8{1n`+mx3&PL)QJK7WD?>4 zo)GdTYia-q;xtXp8P8ChEIM zh!gb=A#bvpM%3F`6=I3HF8b+$9ECLWW(yv>Rj?-P42J z?CN4^F-Jmt9Cn_NH(5<%*g32Uu?#y-jl%-FG$h1&{;nw23^nW_H4>|*(Yo2R*_ZR4 z=+7qQb{M&p#)@ZQp&n#YXI_T|QkD`yyH}8UIqi-Jm!fg+RYn&}!o8OxCsPC&xc4TA zX6ByF>DFC}7(xQRl<7H0K)RQhfbSBis7G3<2U_g_+u5r`4&VwsPeQuh^<~y5c{l>W-3(Z~7NVK4XmfByKncUd#=A#GmW|N=iQ(lortBaj z>7Gsob6ki?`wR*3A?w9L-eg1#k{7Wm#6dFVy&TGq)nt8Tj^$?_%!#c?yl8X#vd>(% z`El>REnyXwe(D|(e`)r7BVzqkWIZ11Yy28$f&OY?-RO7ak_7rIVhm*n^tV7XbD)n~ zyhWunFicS{0`YF9;9zjmy~M$N9|`f`zDvkk2KS3u72<-sv)=IXkR0q7)2MOHXG0A% zgMia(Xg1n?DvkD+j&J^3URHebQ^)enPnk5|2)_M>R4Dl7=d1DUcSiq7!nglIPNpz1 z@a@kKT@t=24GbaQ{tr`dkZ*J^G2f1Sw9mJn3VD;^w86`dSQTRVc4FTA(xYTtY&ylc zM^l|2s`Iy#MB@@!VF@`W-%z#VkxU)WIhitPz7d?;Nh*|_llf|#yVB@CNjP@}axxjp zz`5%nx-^{gH86ynyNoF~$T_;FhrikR#U!mvLVO%|sgO4rPUGBTSruYAw_|Z$*p@h4 ztn3su|01Neht%kBK8;Pyj+1@%d!0W^Rd3rTI|4pJt_Mk<+@G={==w%dHK*&*5%tqJ z`zE8uCE@Jrk&`K04V-;9L^E^tT#NZ~lrDylxUXia4icB{B_{4iNr)5ol|tTRLXEgD zXH|$JuKlvu7g>I0-ic)~UUa{~aBW1e%40aJ$3N3e9Fjrr@|W}YN^lP>sBd2>_mm>3 zONxNP@5sU&3P*L9q%q;Yg)3xVL;FpPRSis7cFH0!!R9Mh5vmwMB>a+TI*0_imlz30 zL+=6!KNs?rNcah>!r~#}WYi>4(fvlkUWEjH29I5I^0Wy4RBz6!4Fov!g-%vTR%iqV zE+-3f4y+P+YQcX6{n~Tlo@799S&aP*!G8@zGY<%CHW0}64`IY#!qjW~5+|kB&1#Mn zF(GqFhz}383VF+bynt0Mjs=}Qzuzvryw9bm>Dzor$>!nAkS*@-PvZe*H_JYKyIdhz zol0g$NR__FxNOJbq3~;vlPPEo6n-Z}GgFw(fMf?N z8xDiibufe^ekD_JaO_3*67%-MB*c09av^Uroi-g?U{#3Yt^IWD^DI9zzr=Km7v1kb zSGyGa^9Jq0T%JzYBgoY*h1B^*1o*GXdOX0_`1xw#{aaz(>@%!i#Td#E-v0~H%;9ab zOF?O12!s3QOu@n6rhAEl`-oHh;Qon_w+!wdvMMZIa670;qN0~RxGzl<+?QGhcj9~_ zf_pm|G8EjGYQepOeqWRs)TJ?oG6eV45M9#XzEuAz=dipGyOk+87~FJEH=o)0#Y}06 zgm}+=fsnV1u=7|I7B9G)EI+HBn-^_vU-lt-ch9{oQE+dw4(`PHMg;fE$a+@;NCWj!Tl1Z;9zjmy~M$NFA4GBexZ=J4DRQ%DlA@b{|n2{ zD!6&kOCQ|Z69xBn>)=kDZ$xnan5-8H?(JG||5R8vdvO0S#!!af{w+k8G`P19V{m_u zDL5G1bT4smuiW4V_qT<-WpIC!RblahdmU<$sOY5+?j4DOdxv#!C(bt_xF^Ywq2S)3 z1^0#Y`=SiX&x*-XK~;HG=J`OMBQhUM3j5bwFS2zkp0+svx4 zc)?v_`C0Ycyl8X#`Y|lunJBn-S_gOHd?SLpL)Hrg_f9RiUnH!Xz2|;@jG+v{eGf#J zG`M#TV{kv0DL5G1bT4smznz45a6enfTL$+tSQQp8xc`CWXBFJM=za(HPW9+Ytbenw zup|m_Ceb6vAHR6{M+EzSkTrR*A12q1S#7j{|BkSD_JIFpjPVQs|5J!&4)`-{9+2r) z9LAvk8dGvG=;>bKp#LKY@u2^*khcu_FR>~tUeF&pW<6ZzMfW@CwH=GPyRc6QC69b2 z)+7A29gB-sQUnOjfQkhOjtYQ)RZgS9nUru*#`c?ItZJaag%Hh51FId2T}mHDB%H=H z9Yg}%)9q*u88OJ;MM4}28-%0KgUJ&CN0tzQfM=0K`B>oaUHdtOy+Z8(Ep-;OJl+gogxQ5&n>!315mat$_*OfoNtXSiRWPt@mLZ6MUYj zItT{3mlzDcCLs=n&j@)-Fx=0ouy|lNXruKsffwCxFm$gC@T1U^3<;P-4;XZ>4W!OL z0syB%o#C|smcKR}7^5_cG8=ewjPVSie3$-$tfd%6kDK_Mmr z+ewHA{Ru+eGUy-9s<3!LznkS}H5%YWo7dx3wcW7u|0pO!;dA_?UbtUv1dEStt`D{8PQpcyZQZBUtch zGA(DpYFR&x0G}0>&rX2*V~l7Zz*iuenE%|kdn;=<0G-5Ik4~#X*{6cV7|mBpnxp~(2okb)jkWPDp1>-C$AYI&Y*dCMjFY*0X=2P4(;d?2+QC~J+jCu`)gn399sq2yZgFQxXVoL{28V86f-^h-QYc%?FVJN*F>0pTcw;WH8-J%-}0Xh%@+6Lf&LM zjln0fD#S8)^ zAHq;RiD@?&%5+b+o!QmJbHmF>h==kcg}h}buV+{s^nW;)U`bSbkQa%!}@KD67pZvw6?Ox1Q`K(lT+6a8^CEOlXA&nK<(C z>{k$l{?)AvY>%>tRyzz_y^nJG9J+;lH- zaKDg*cyLb(dCTA~uqrHGaKD=6XBFJM=za(HRsM2Ttv!oAyCC;>*o9(HrbnRfTHG=s zhUgz9tMZ^<8)}CZ`X3Xv&mQ_8i7}%g^gjpD%%Oj##cEnu4?_rm4>C0e0YLW>1K`^v z!~yUDA#VwQ_p&N19sqvH^0NW}FS_3VP`i7i!<6!^QljW5fgYi+cK2k=JtF9j-s}hc zp?dCG#2-sZ7G)rRByuvjj3MGrglOi7x7pnjP{I&~`(aGS!EmR0x&_VQAO`bWNQj5~ zsE{|=P8-axVpUkYaKD7*XBFB}T%t zNr)q1kC3-S!c$lk;*ij}VOz;9?8D~idbK@UYdQGVqf@UTsMxzIm^ja~U4VJKts*$> zc=HYXj&$?}Uu}bjms#AJ;~r>K%Z0KBf!4lqqu~~r)8kdXeios&6uvB^UNgKnafjwb z=a;6jeZQHkPNyV;=O}XR52Oi-^kA_%oido*io-#X$VHcbB(-t|A0AAu@%JM}$4av6 z@Po+76uk!iehQ+Q`D=4JWk?M}$lmueEeF|4_Y$-B-${tG_g*1yvYs{^dk?EZEPF4@ z7Yc5x1(wt*K4tN2-Bc9C*ZMEylb zX%8u){w$3}`%Tnq{1vBGHDB15n{%g1_4>YCyJ`1Gs!OT|SD&=_##un8X3yMC9+R_-5Bc{$k2jlW-{2kY8=$U5KFELC1gM>Is-!J4%M$^V#_p&O)vDAL-^$V7tnN4Es#f$ED5UVYL6eJjVU1A-_ zl(kbBze-qt5UHdbP||i|J$N=S7)Y9f6!o?qP`OM?y4nOxtV;^c66KgQr88 zeuH66_jK!--Cj(o&LANk)@y{k$!=O$uVhtNys*BQ zSSQUjBCLyKIo?mpu)b6a>uF)w>=UD@7#kVFx&hIp4C_mWvA2F2({C`W>0aWneijMw zuzsqLw+!p+Srry9tnXs^S%oz(ddb6jTavKeW*gQ?bBze=_mSm-VZBWY>kkOSW)JIo zV{Bvy>wkvmQik=mVGQfPW%><m9aXoix{ou)cwe80@Wg zXkoo4uzsSDH{n>DTkm33 zSiIi)4whfgz%e?oix{ouzn|5E*RE3wXpsh zVc6`0@VCd<$Pm^afap?&_0C}o>o+s~2E&@}B@XLPlMoN8CuYYZ$R{{EekbHD z+3{;uxj1$_)OIACVT_^h5N61BBy19mOXLClMz}f%p*7#~+}T{YXva;Ny2sc|9fXiN z-v|<4M=InbUgPJhG59G)|4G8&Ymt-5PzDAUAex!MHU}Xn4GbZDpU4y(9G}s>#Efl| z5NGTzA#XCAHtpKUsu0WA3AwF4U&H4j@EEyx@Sj(+W zZ)ARpZY8mt+FgG~ND;xY#E^6F_B2-NHwSO_hqClG#caMx--IZ(3toA@?FY=F1k(;` zukTlNBB1(ivImFiF;Q*M`1&5BUnb$}yO5J9ObvYfAVf3s^)VK^z#^3~gs6QR)3xnD zmr^H&@aIT~L-@@?-eg@3!f#}ii-quwUa8ztA4{v%J#2bsZ=$*m?+5WxDpKJ8^C}rW z^MjA6;g#@q6&w1B^0R8iyqBMD(#KcpZ4ciA+ANXX=Ta2lzZ+8WLkjT!k;Vi14fyjF zQOlNJ-Sv>L$ME*Nw7Es_clB95f0t8{8gEDGr^R_Vh@4CjY2fWK5Y5cn4K}=`#t$K1 z4`R9v4rS?{ZaK4i%Ljub#3}mcWHIzdD~j50x;>XQ$xJ2j1c4WAZeR8XgO~dO$4A~d z>l1yn^gV)k$KvE25!yG9LHW??5Un0sgzpLYNl@iUMpW0wn9LC2(-6%Z;hQZYT-U)6 z2KsKM;$WcDy~KfjfP{FUKT*h=;H(XocCjkN4VUZ#{SKC2(CfnUOZljfCGB^htHb-+ z4UE&=Tp6DkYwou^cQ+){BjD8|gHU>_rLT}osS>Q4*=g_`B?#g z7j14|_MX1z_s09ntwOzJyZqv(PP^u!maP4(ta#w3jwHeVl6l3FwVzUBz{uG__X%1e z$pGMwF_ttiU=)?e%mAAuYo&o9jQ;;&3btKGq11`F@Cfn-&V}Czc}p(*npG~23lF&m zhQ{a#4`hbzfuU$zA`j>{p4GQa_{UzY5XqDF7>%iKo21AwV$yXTsf`nNCC^dA?Nf{n zlLWWdA}5n&47e>oG&62(zHK6!KZLA(BGYbgq(%1<6SYl3oT$5myvb_XRBI=zLL5=; zr&_nO{DS>^m{4M>#f$EDD61vW8m)!foE<|6dxWuC5>1#}LPN zv+uxsON>1X0sLNwW)5JRB~jM+Aq?L)GTjElm+mDF-%pYd58u}bdCTy9HLJqnh3{8c zepcbji|%*$s;xWfd6rEK`>A^bvYH3^DXrMxr;eNl{XepvmB7cmF5J2>R$3v(L2EiI*v|{$ zU&fRq>(tcmozbiF^e`UFye&2szzkczrJkBklfU#_FV$N@tte9J^_4vRb3$nxjs^{@ zT1?f8^If&X&xc^MK-Kl4+efWfLoLshv01W9ymAjzCN^RanLe>L#Kxuw_jU{qh)id`!sy)Kk{&_BaQdJV7Xt5{8YC+)0hy3@t_ERGsq=p59TU+5fy z8}eB3g*(+?tnxxMh9&p%%^BBQsJsDrv*hv&y@fkEYZ~*Dv-M)T>Mm3|B(NGc3e|iI z9(a?Fu)gw)m?l!vr*m!G!je{Q!#~oQxLJb!wO-7Z$F|jH z8#tG}<~e`iT*Efz3WuxQp=HsLv*DhT;|HjC>-Z8*_61hiE+?bgdR`GuR(Y*nyET3* zq+@A!lzaU+ly7gJA%zO}`T?tB@1(kWRo;ul3Eb3nIX9@i-c{FHDaz=M=3ucaxr@k><)5nXBhwUqID||+XciS8jl6AD z3`Y#aYS<60V)e5ypQ$m)V|C5d&e(Ldp7$anbJ^9>8n{x1xHyp^L_A)|4AB*jbURTz zu3*)b^%8%nx?LN}&&ore#Ol^NX%;8B4td8riLaf2lZ2IH^3^dZfT5V zyEP|yP9j4HCwT^|dzX{Y?ZtGGSA_EGZFvo2FJpD{bDv;wz_gLh515c`^2D|vQU~_PwQaX_)1t;Nk z^ONyE?bY+nDhyMa*txrKBN9w@9(Jvl!${5J&^0>;4Q+Kf}5b}Y6&$(piB)MJC%8Y^v=H#&!LMQoPov1Bq< zdc6PhIZwUtWY0a|O*$K-sy1vLcP=cttwOF4QC|37|=bxo(U==FHfp4JamCgnMyZRUPLKF{#SW1@`t>CIO0l=C zbb?<=RQ<=oi0!G$OOZ_KD{3aQE?+I@`S+#DHEhUtu-~fLAI@5+ zTugtireN0puGKe{Yen|}&2wvYd3m_Jy@`-Ij~@>eKgz$4L<+pdgqQNYmY-;CtuF7$ zbd(eOaF^?OAlky6WX-K?ARuU}wX>8O_19-YJ(nH^)XSRMqF$!&KkAF2Fo{QfH6#&a zS1B6xR7^M^R1Ds|Yy?q+|3kOL7aSS$_xdFb5c8#J7FWt zpx(^PSDL6igR%)T{|4Ob3-d)QIP>pDDH`*|Z<6^h!>^M0vXTJfjZ|N(ASGiy9nI|a zW`5vjrQ%nMvZ9|DDSzYV9SP>|AtBEESNe4g8Ye6%m@k_K=JQMvGQYAN1~$u@+Ok=u z??0Qr0ORU&?|3$UH6#&o<7hThF}>LwMDl0+0tN`l(jr|*mOlt2i$4`Fe(tv>Ig*to zDnFxa!btu&ZuSMqq7@v;Bj*K>EPj(nUWQ*Kl4T`<pg9Eg8Xs1&tbA>=Iw;<9moGS4IxlutyV9Lf$|F(|XEEKv6AlN!no z&*cjFYBiS|+vu;4;4x{bUc~B%%_k3}d~Yzn>cL+h*;cPtug0pxl^6ryqutfbs@8Fk zcEnnVlo&e=kNogO%+pTWH%C|Uv8$S^ua-&W)KcA0K0ImkVe{DSTwk^`;JRh27|)Qi z^3K|j?!=PObNvJ>SORgomdrZrF*)Th+cr;zY;=NT6v3~`Es(N z%%A_EipZIZ`1`IR-s~3%3kRL%tAQ?6CFjhQjMhUd ztcR7{pQR?`pQ@PK&Ba9Pf)|rS7v{8;XJKB)#;3PIdnyttkE7a!yUa6ib5Xm@wILcT z@J{nhC`Zj>RJ@CBvvXufY-}UFgU%MSWWCXvvxI^zdeO58+Vs)%dX-jN9lp=NnJarG zhy2;e7mKuRjN?TdxuPsBn@U!>!QY5lCYlnRNkV)|^bWt3=6+jDiKJ4{`|?bB^}Z{4 zx3v&h1mhE;kE2N5_kMz|Sl`R8vh=-vZBqBWkARVKY$sDIs`tfe+RStv`%CDp=gpy~ z1Hz$H4!!%|7cFuBTdmK`!1p#kf&Y7D`9Qh0S+8hZmwS9yCZ{|as{D)S}0HCN-*Kkj^;`numq?jPOl$%_24 z_8|Y)sUdbtS{ts~k1w$|vBQraMug*s0RQqdzQxYt&EZ6mw6{*LjP9UaiRV{e6ShEW zP7v}YAE23;AiQim2+uP~LHNg@NKW|k=!y}ZU1cG>Uz^l~e^kCUk0YaMGr2-3Uz@?{ zP!Z3d&$8isD4*W6f5j5h-q1I7)j1CQ$H{Q%lI;J|*pos|AHOtqLr5YtoQYlcZsQU-SoVwrEsE)?mKPx>|YLrd5M|d1=E^3d^(@%N7@NAT) zW&_==mWyf6K{`1NkQE0$cTyYdI)el47IgzSW3HBKxp>0iH61<-cF->rX}kMuxrQS| zryXe&N04ZIG+%Ai9qdMKKVN?E zDxh5F1wvoZLpy!qtt|&Wo`m>>OqwHUPiJxWvBCCo1<$Y9RyZ+@2c`P;GD}~;IdYgGH zF`-YXv7U#$(Bhw2E%lvTP#Na;qJGl(L#`a6vUukHUJ~Lw|Bc^1v!vj;R0nv@GfBns z!zLxq52q`}b9R-5=YD-s^ZfKe$t~=o-LJV;wT|8$JHWKHCT=|cdC$2PgpbIuC+&G) zl?*#kPZn&A$aM@y?&kKn*rm%CeboNc^VI%S)&O4rBwJJu(d4v+^bIhbKJksm?nFo; zCdsrPj-W_tk<~@cz1v|F^2{4aVx0qL<8` z3?b8UiN0j^B#X4cC9_B^sOKz|MbfF5KrW&^qIYK6a};S_ zbZ`#x?%BbO1>bMH3`?HvW~;p4t$ z$X-_4z>BM$Bj|KO=7f_hkx27aZG(H|@2Nr@pS&>D!1o#(s2@Lt7m_!za)J-dXqx;M zz6t$3$jihf!#Nipfv9?Ay0d~86!p?8_EFRp?yP(QMOKIll}}RPH&yP(KONpWs?zJ} z?g>ygALhL)qH2{7ts;^Ihlr(*!@=H$)Oyz*>ZpSf@^$JrM-&mtydqwKA_p<`>C^!6 z3e;UJX}nMC=MxB1>$jA_f1apq!lQpeLiQegnCK`S?Wlp^o8Nv{DC+9}ttz_gf+R)| zuMz%faK_NVy94C>dn=2q*_LCie?C8uwV(KP4`e>oC%IQ#J z$FMJee&>sDyXlHe+SpZwNt>ASqwAm1z>< zBe1{rYi*Vkw3dy;LL1K{)k52cQ7C8jN9c+%n_XpKwyIC+g|?Fm)fPVIHrpsy4GV0v zlPhjZmzGg)g1>Bu368fpr^_?#Cf;eU*EVkp{1vEh9L10EDXyt&=~no@E?ic+d_2#; z8_kQz|b6u&X@;k~Vyn1&K)_>S+ zqt{6gvfre=!jYM&VP@qEC}B}MiKDt*T`YbbbD`c%1e7Tky`tkpb{$e1Xx5j6el0c) zKVI;O9^&8|cC23>ck0+r)+`s*b~2I5nQqtcY07#HFYI{pqO*}=(&&qsrSh2*pdWqI z6^gm&j_HfSL!gs~3whJ@j3z&#W0ERF$HX(~)iD{S5@(}G-YuO&SFBrNS6R9xzc#76 zrOi0evFaAQ9KGYC*718k0y^KOhlbtT@`6eF z#H4QztgZ?LN_=;AT}UDnTG8DZ6=U0-?eq)i44vIWz1+I!;F0X>^|Rtw)z?MxzEA0~ zvX8RK)b~YZruBW7p@c>4`%W;1i0B5Nk5biash2usj~E+uvU8N`LPzj8VE~KHaZDH+ zug+AfY+9vo$vVHh_y(*rzrBERh?k1`$l+%w`l36w%SnjOxL)G7$1Ev2Hraf1Y&??` z9oyScB=6YXL07C}V^>)^HorEhJGPT$Y|?0j_BTYnLUXq43JkB%bY;}LBU|cSxUG71 zznh<`x|^?&SK^Vo=z09cPNPNa0!W2o%}YeTwZtQae)eFba$1mY*PwE%~2*QO<0 z_#aA_-}Lnn)syttRPZ$j!6~%&XfKlaFS|(F_VQD6=F#tuipe=!Viq1M|r$t)q8~>Ysg6-yxj zMM2&O!AWPjXQpp@x`*zbB*O~E7Xr4fN|2WbK2}^^P}Egde6cFBu5Vr6u86v;uDZJV zlU;T7e@@k@=dG%HZ+Fiy`7hrG+_`=0RMk1B&Z|zH8Xtp`KHDLmMAXa{%c5gAignHl zvyR)8_!vvY47^wY^?rI z_42nlOX0VUmNplX#1k~$tM6{(3Qtxu=lC?siU+Eh-`5TvsE@R2=0Vl=P&*wzn1cZE z-SDw1Z-ym1CGR45KYX4Qy}+(U@_@~)O7PoS7UO4>JP@Z$20x|b0bJOjNCJLJX)>2* zfJ(^&LY7I9k??cutQ~TYgbwgG?BUoCME;OE+(G&kJ~0Q0J$2$Bamj}!eY=SS#|opp zI00LO(pa``2^ zXTQYM{gUMz1#SB!mxRadM$Lu1Q{{4c{gOf$yxT9~;PcEs{H^JisKpl_f}^wjl0Sp+ z?W$k0A|Ry5HF+rvM7btz(IdPQJ0hwtSj|BZa{~)~1`#2PgL1xfP%tl@U^lRAJj+vO zo=IcTiG9(f<;v)^ z2=*#Pu%t`X-6ZyVb0LwusyAVy>?yx<@E|Z}1|?1HBzF8JHHjTRawV~U1P4S(?5s1z zB_9n=Fkce;hXGb-D>#tE{wOrfpTv%G!AxRjvqR(7N@D+jV`%;)_V>cqx-V%OFSdXqI!6Y{Xr155KJ8+h;J3NvMjZWXY?Pg&yBZ`|a7G?tP>^5_G;#z9@U>3Z zZU+fgTJXb+LqUSW*jW9aPHm8Yt*Jx`JjZ9|Ai?SF;DP$+C`fQ#I~|{sg8=bK@NteH z!E@nrJxCBjuN@??xz%sRX+eUSDU;EH1h}emiJ|ZSC`cf*v)GObH=+Q6u)*AodN|et z!2zTS4-UK%pIC5!J#`QqApg4Ez`$DJK9|AZ(^6!#oFI81ygx^5zyjwD540YfV&7TJ zL7QtZ9Vju8w5`>nElQbcgwc>AVI8c zSGB39ZMCYGJ=zwicc<@z5+BY;hTEflA2b4Wp24I3bQrwbqvqiKf=Z7lJjjM(a)55; z;kTwotvDcl07qwg)VIOQu6oo*gx3i<)jx)Al~e6q1;Vcu^|?K(Npr2mB*9a=1LvFV zyhZjjAM#|fH&6@tmoy%sX8dH78g*rSJ2v8ZK|h!C3AZGzCZ-QzZw@38FQ==e0-9~k znL@M8#V4lO*i#3ZO^v4Qu=hH_2V*tRZsTJ`h;n#C-_H`NAwznQ4bQLN?wex$mKqyQ z4n0ky^;;{|hR{=jf&r5;V#Z&EFCR?pCk_T*aS) zTd^01yT}#I=RIfBy?q=7Dw@AoTM-FD%;P@_I*30N8FqxH;U>c{AA`zif)p>(NJg^P zL>Rc63RTIcgVzvb<*+B1vew7X6 z7m&gTIx>KJ5!AtY2^4Gts^Sc-fn!Cr zsI(jE>9E?=kP217>sAC8Zb%35#GX5SK-B7Zh(?{uRyq_Laa-v@IqOWel0XvJN*qWV zw$fwJC65C96FxCpi9K~RvM`Q&~955YRyREu^WwwIe&;4QGZt@UtjXbD8 z#Z2a~Kh*gDKHNnv^6;M9Bu~z$^cTb9cBAHV9Pdgfdh@)#7Y6SpD+ixv{^4&;mrU6l z@o!LV+Ai6*;bm7{GW*zwX3mi}_9wuS^2VI@mT<&mt5#6ZP;59jEML|dm& zwviR6j;Lljg(B)WFo$idUK%S^i*P=L-4&;@!y>3~Dpt?rccfP4+_Qt`i!&W8{w{F_ zAaEA7pX_riPtP?@%1>F2jaG``g5fZ==UDo3jhRwZ)0GnhVDPlsPRBcP5Fox1KF*P% zG6tXPDJmiK+9@hFxB4}Z+)!H)uSuDVmZE|SJ7bE54u>}M zgck8P?BUoCZ0I3%=%7D7u^`pE@u`y_6&KW19oulAJS(v@E-MRxdhxpu6nqet4 z%0h-!Vc>2u5b%s-SRd{p7a4fZdB_m{)^rV(REWQZykonD55vnzbq)2U&kMd@0LXK= zhWdv-*HHULa}CABz_a-{t&e?cd+v%bJGuS2j}bXx)|XQI(18uj@)1Y^%ZCF=m`v%Z zOjYQTTRt^>VwMkk>csMqqiK74?nqIhhYC%&5_C_>l)=O+BoP?D#dG`gNnEls}pEp6HEL!)$FmSilCE%LY4F#k>8tx*O*5y5i zH7STpwxxClM}abaat5UTB|L67YQDldRV4QYq<<6!?+!?F@OkDR{?@cQ)H;oC$I;nV z$4lU4SFMiaZed2j=-FFziz6YMgteinDj70OvoyqHK#IX$s5$Tb)k0&Y(1*SS?%0eB-t; zzMV@ju`$aE>6b=W{hQhfM zy5tJyE_`ANhdp(oaO7y(cDJEm*4PAiiCD7^j*1R|fzs5ka*>B(vlYxr!tyJfd#9Ds zag9990Y6{btjX3rl@i>pO4*p~xiL^ImBu!%Ke3k#ydwSTJ}C=@b&^oUdU5}#7RU#P z!QBfaEE3-<+qU)r5?QW#Up};xiJ%^DII`b**bpC#U0YRD53|131h z;+%gw4BYL35^&8q5A96+d$@~S&N=T{sXn`oqOepj-}O@*1&Rjynad?XhsE0Of*Qs< zMUxrl1U(bCXZ@#)G}$i<+)Wb#u4poA{fS}{_^8Hyco=*xdhlM`q{os$xOi>2#Kl#D z8uRH_F$wv%n#rl*nYgKNA~edfGB$^SyQx6H6%~R>A{T|b$VCa>bDNaN8McbU<94HF zh~r&}J#W}*cNn~ztQ>rv`G>zX!&XXn#s7%n%nn<<3to2B0$26&9Lk!T;dcO)|n~6%Cf^%|f{vG0EGDv8-Zgs4!k>Ley$(qFf!0z}l%#zzti~;YIyeqL+WlZJz$9 zzcB_s?H(wMH*3Y(-~fIBFPaVZ)W2;jT>ib4-~PR|f9p2*W$U(Wi~7e3^#UBILrY3P z8maAyMlsCB-@-UbV|WA)$I%}LQ<*l7h4dOI?@D^*ijVS4Luyx5g;Lll}Zh!5Lb@;|ro$fu@3$IQ$8$Qwcf5__J zbe-}Qr+WZkg`$0d;&cx~)BMHha1k2C>Dc6OOVz4P_qUFb`D@c5O+ZO4Z@t1`v8Rez zmCCi5#Ve$5sct4_k+>VOv$y0*yf9YtmXV-YGKtIoI?k7x@p+h%wcys7G6W_*##$ zr{*Fv7I&}ZgU&T!nQPfbJLMfOgGRwc+ri!MhX8Cn?Uk+9MBzJ$8KZo=jhGC)z9N2- zAvrwn8-QJ4E&Pssn#w$fkRcrPVBO2mH4M^3CgRAy72|BqMId6FGZ=vqN$mJK7vpF( zP?xv(A8KS*TF}BMB-Xi%jm-b4p0XbIz{fc@;4T&ytG&Mc{qjuO&e z+D^weK%=ZHGcS5yo&&vhLb}a)nO5e8l*ypNGFE07>I7fJzsa!PsUR$>m(Vr~4uGy} z_LmKi^=~KJo$Gid zjR886IWP)^1ImMCW8YIopflC2VwE|P@cdEeH&1aCTAV)Z+rlf5H|TCV@4(Z7(8q`% zvO_ml(X_pXdK`(;p;D>X9D$4QhDW$2+wDqT-jF4EnR8YWpjVG^84|jFXq~AilCYVg zDAb1=B5_6~Wjx(GL&1T8FBHoS23anwE(T=VDc_Y0tL!8qlQ$79z%5=xEk~Ey>N0=G zRI>LviHIC}V<$8+^u|1WJj+|+PerSn!ri!o`@EZM`lHTw34PLLeCd!sU?Jx;^*- zH`L!LG(MUOjT9FB6gJ9!FUb6Au~4rUsQ!i8Oo*(_gc&zf$4AE|`sj1##=>FR#)A2| zYmecFI8eUFAP1r5{-faB^X)VI0APg-l)yg2FQIAveFhW-#y-PR19^MVBC>WIzUvsH zf5+jQ@U`FN(hYFziY+j>5Zcj&{V4@Mkclz|KR%fODg{5p$`NA0uOc*)QHVQtqjYoe z*z<(BxCWn?xyYV6Fc-99`I-lDUUWl+oO~Cj(S6_r%H(0>Q5eG;>b~I(MUVb8q%@gt<2dpP0GFo}M~$ zZ!MWeweco6;CRde4}doHV|{XaE7PrGTxrY1C+DBj}5mp8xG0c zB*g&naX32L3_KWKcGV1&7kPOWA&&)ahi;WA=v@TD9JE4=HuGpEp_n8XCd+ZYlVuWK zC>C&Tlkh^#B-}wm6vEt3Sr#({dx!h3>q z&u13i39#BU3-5=f`OQKU0y)jX+Z%T9rym!%2H^Q&j?%e%A%(p3m^x39#BU{9XY~^BaD+_H!D3 zb;lU}hF=xF_Nz+Unj^z+hocMoQ!@OJi82~~S7d-nhM!nDZX3=X3S|rmN#|~qZuor+ z#>Wl6kK+?F{Mge|XZTT`Caw z@)&`N{_#(6bhZ)rMR?g&Bha$iY%+5*@bL3>GtjpJgdu39s#_p6Q&7wh?2#`MDJI1f zJXfsU+@|2Unkje;Ai=+^ZNbmf)yjQf5d-p%qM1#;G1#9Ahhz+%j*a#OWAHK@sMi?0 zA~^Sa#^5CYt4(9D08R57gD3%V8iN-)#^^T&&xfybuC5jFd5$jZg-FIAGEqij@RSTt z$ruzX$8FcyLm^{O$U1kUbYt)?7#}wV@5U!)46>)E&KMNAfLzx5gMc}50d-Ivn1NO< zpbj-)1B$dK{d1v2oWCjS?*l*+KO={&zxT?v(=4UP#KUBoe*Y{{ki+!*EHuhz`h7dx zjob9&-DETUKE;NV$MjRgkN*)zXPbWShL>G6{j6L-gT~zM`yc31h5ww4FN{7b7f=VL zS$tw*V01iybIiE$yN0`DP|*kufH2VR10Z6FX8v9++gZ;GEn8cXlXW+}5_WZ*vmiZS z`7a8~lN{$eG#3KNv^y9Z?F**eNjOliX?IF+?)gl+69875rrjoJn%}g;MV`~N>vfFL zZ`$<)vEy7?E8=4uUD%(JX@^Xd(X=}t15`5Y#L977Y4%V=eG6J{?nddR-7Xj(H|=)g z6Ep4D(^F^K9X41mH_LFa&b6s~T&Bn#Z|^nYTCFLLbX97@!%*C>?|J7}nnE=R{_%69|JR zg{i-lv&~@{{tYxTEWe;GHY^}tQRZ$dxH6jYon?7su7W}49_#tr7kt8ofGqt7fHanV^3lpko8t0i6% zb98jP3Sy|q{zN;lUW2lhaDNT62}^aT*%?(!&0V$n4tT{&f!5);FqF`Qn`s)2@si-G zNr0?a=y95%&;Wi~t7O6W7HkBR1q^*(Vkq2_6plbBl%n83+9*ZwBy`D@&VS<*Q#$Oa z1Er%z({?F}6~!x?#pVE9N)%CMcQjV7jY0L+3Ai(+H-qMp0Q{=w4O6UoVAOp>mGN>B z4@{Qoj^H!EQpvoXD}kdtvsI z9kiw=9j*Id7HTx+zJ&HhiIC&vv|NfV96?ejiTeJ4J)@X&AZ0_#$k?#rS!08Wz`E8ABw-#jF7r9EeYhtCd;O zU66Ro=^(kcL#JGj58@LOXuE=30N5u4xf*O{L9Uuiz97Gz zSW~cex*&h0)xu(Fw;;!EvI_DE*}-%Y?`aI2?~-Bd!hJFL4oWN!mc54zvLW(v~*(0(8o?!58s~X#@7ui8heqX}`+xS&RUh$GLYM#ipy zfNTlkJx#dfr2>kA-GG46BMcG2QjLb-PRPE#K2Ry+P$&-Xjsa!U7^#g{ii@_F;Qkf3 z7zXRdjg}gX!Z3o`4k0M6mP)$|gH31yErx4&OH8dQ0!rCBeqzr%y4JCh0H=ld&aIjr zCw2h*o=ojSTTa>uHbD+hO&o|%H3bTIKOef}is=G;Vv319b)uN$XxdgxrvUj&^-%~o z4pd8pda1#0kmO#a|1!yQGHI;u$KQ@h z$Ae(}ET1Y?9S*W;SXm9qwyk$gv5xl~jmv^1?lE_=sMr z+SoJs?M-+ofqswC4H7L*#pd3yxDFbDVr$7^&Dmv*!d>LTJMXz&ymR@J#QS9u@0V$K|7m#KZoL0EBi?@>2JXf?0ndo{ITr@)!(4dh zJ?FuD_*=8Iy%M$YIO4@N8(#!3yJ|MB&8)!4raT64scgzDN=O)-$7SwHvql9Lz*^cy zjFRP;!m(0AF#D5i3KpBDNHq&n3vSQ)xsuO)VU}{5e*2jA1e6~~vz+|H37d1_lQP)O z#76r<2HT5ppgfG=C{(;HIQM)RY+C_V$ejojDvqIP{tPyh2RSp?u5^sipTTx1e2q@1 z$GLZ{v=#A1jxO{)8}zCugAJJ|6f4J1>6WIA8K6=In^-ww)P5zPIe0?Cxf`Wtu)Ph& z$DO;k;}di4*i#429r-}*7AiixSRNWG!IiLsC0E#SeHI5!Lhw3jt+!0EUm}J*P-sFe z{O#iq`sh1LJQmL`G)g?NP0c<%CMilns5XH^5{uMVLW$|Gl%o1LaDspNgdM++$hP|i zg01M~0#Rm$V@SCj<_~)M+pKjm{|z4%8vjM2!s+a}t<<%wh}CWt?eqq9xY55UW=nxrC|P2+IB8#em|y6LI2yD%|j zSYL_^&6E_Q2P}Mu(457ToPb-aYgJ6>!TX{iGFbruFg$zF8m;oC^hLQDZ7&S&z)iM7Gz1~gs8JXyMY{?UePUrh zg(Fa$xdf2!mm{`rrERzm62kz>7gBpz4+~rS!!_CED&#oUssojBqq+Ciy&@pOb4=iy zgRO4{Aig}Reb|b3m761Qw{~TyPq9i*6*eU|uBn!G4dBz7-e_l`GG2-{LVn_|0rtE$ zDm2(%K-Qu1aQ~v!#Ts}9<3mG07=XxM_eM3yWvnrhEMk=CfkDl|FrPk%XLo53g4XBz z;XSeEPBATb%rG%ce67hvy<_m}l`&Co4p8q%c*7{SNKr*YgDWxU$W*k7IcNA%@nL_i znV5WtGdZ2j#4iBR96J^J5R>-HRs3`nerllV@C+Rs#yb#eLIVI2=?=)a604zg5z3a) z!UVfVzA!ilnczJp2Y!B!s_PmLJKe6YYFnEo_uEHs4W_o?|!}L}38)XDPzWYtA@aJ&bP$_8A>( zASW~?8lV^(eT%5=XkkYQO^Iy`PHROB2iCw}s+WuMyhHkj3ia=# z{>Ap5#jkF$J&cV2(J=nMk>d}yBxgoU7sNIP;uG7!b8Vl1PPyRzBt9|0&7L|D+;Ti^ z3+|@@uYvz=&l1290r(HEQ&xrzyZR6uvu9D$ zZDM(y%Y??ZMO$jsHBi3-Wce;Uwg92?a-$bRxzV;lu{bbPE>((+Z4jk}&|0C$BZPQ1 ze^p9HnhSOqAiy6FUuF+U_;LH0L)8EtWdRK90E(33C|IO?CC(YPjoh==x(SbaiH;vJ z=0yr;8lY1;8t+1de6`x_vH2ZM^j;`J{8d^6z*2|OkV1Qj!UZS}ckxCAFGSmbzs-!%=TKAhJ{J|lxRbprExL|jsaPF0jh zqB!C9z;*|0votoITc|X^GOLb{LM@NMjhEKP;jhthV^I788}Z_Cd#zR}6{_M-ObkgX z$U~g{2`=~is<^WjWcaZ9+#%ae`7M-e+X*)i`!2x^D173%OCD@6eWG1P{_HN%gW%S_$uxPc=<8Awa?WtOA`{VL`$U;M3R@^E-2?wId~_%Kpw@lRpkZdwp< zMT61?X&DX~b2xC9;M;BRsU><=}AUx#Plrob;UQsB>F;BE>K za7BTX)v)9e)26aapj+rbU$ayu#yi)(Os7vt5@KF)=o-lYfVLA9b^ACS(y5!2b zi?2sHX}jb@@Up8exhM$kHsN>>^<#i16-4z|x58l;cUC(AYMWwWdf;r0kVbHBidh#7 zZhm&D2~IfXqtIaiaN{8Is)G@h=& zQtb3-n4O$K+kL@?2MT?PrUn#B)+g_Yx1FjI_;`Y6Ph8U8wHCdgfF*zc{j$oN{z~ES zySZ>khr7Ooje>`}uG0o12KbW1J9Gc_6!IFP_3NYOR0k{LMJQ^|*^KHgmZ9_nD`SUV zX4IS*D^dI>zDa}KlJ15$*CpH$HSOQ$n)a&zIuPZ*pb?AM%#EJdb8DmtHvC18D1qc# zn|%suST-ELB$H8;74d(vVOa*3#r!w$8T^8M8mCd>Z1NFODIvZ?QbavNm0F?M3o@a( z)=d}TdI-9RzZC*jU1}mSJS(Eh3TWh}3;tr!<@6w30uxe$w4r9A($m-=!}G~UrDvcM zkxC-`s8p#Gs-@aENN(Sn3A!ieS!fK;f~c~^OBMXZqRI(Ds<`H$$YF!aM2@q%PY&=d zbZX$AN%2)L4HxRg3g(Jqjb1iGmo}r=X}|!^=dCxa-t7 zmD~)SB1vih3B-3^Qb-3yNG;*Os5#$d;V=_P-smL>{$i12oghhuIjC{jfHKkI)~?gy z>>az13}+RK>{wBu6748WKtXb-V^|-C5OEbYhsFvGv?0N=RH@ZGFCUVzYGd4mG1a`+ z&G?jszf9!#gqIxni$#tN9nD1%$OfH>Kp)LZpfJ=4ZW{b7gB3x?veEnt<>{bpLdUZI zg&Q2H_UinLOHkReDvee7x5CvQEHZ?tN|x%A*eGbJ8b^ALJIk(^Y}lU@niC|Qnp|zv zbQWJ`a#eUbY{P6tyZ{=d?T`_XaOPbm(qc{|rnN-)#(1Y@*OO~@M66@5QFda@!P3cW z9PwMVb6Ips5pJ5xk2VPN>qMG3WN|hAi8&K7ifWqV>V`HP=VUH><2*}`b&}GEfSqM_Gs^c zMp-sR-V+Ay4mA^S6^Hj!(fe2!c&_+6@6(iC`k8utZ}v_;`5WaK;e%adOwi$g#8-kQ zj$aggz7d|KJDmPiK18({;Hh%><1lbHeF(Us&#d()imBkE8vB2R!RMk7@3l<|?Pp56 z1Z|e+zl*t;FV(CTUmg-(o}9z^&?w7_d3qSQn<4~UQN*)i)`WrQq6hD@U3!?>CP9yd z@^?WD?TwA{RY)&u!8p=MLg{c-(H(T+8vU z6qDDre|Z?Zo2(psp81ErHFpq|(GlN)Le1Vmd?~!_>JDNgQt*8C9p(AH4RED)5d+4T z*hxGp4Y0PGD5eVD!OKaMXW32s%30BHsfs7&;ds2N)iaC-;F(>G=j(9?0cs^coXD`M zprFGT28f{O4;+jK-;A5Di^@YuI~L17uple+QH@TB%B7z5C$5d4q7SPL1pO6jyQ;8P zF@*2H6272Tg%m{?6ifONA1-3`3AE9%%IL60)5kf?{8>Lro{3DEy$0GiOPb?O}o}Ri`#9?sKt=cR% zC)zz8E82S_4b$jgr5bD2h-uRO zK=M!+GCWs<&EcT_k!((Mi9nQPJHl6`FDi7a69t6i?DN!(i2bTzK#vYFE~(JnvT4pZ~WIdI$KBV zf|p&@5sNi$CZGLL=tJoT&b`7t7l(Nn^RJcXa>ZC-&e!3vv#E)OS?mVNWb;ag2psO2 zgqnr5`UIGKlHe(u7Sq?QCxKrL|~KD89s z3;j3fk}IWu$0w$g*i$D;Nsgv%rL>BlPc1aOw-}$0NjpIf`2Yd&tEo3mv6_OBdn!~I zvrex8aj;zG#yltAFPV8I7YBmT)BTc#Rtt;4-F^vnlhrTzUs^jOD_hf-o|bd6)S@@H zEUdRmyc`k4Vc5h_=!sV%7+VEB3Fzyp3Uc!%_f<}U5hz_`%~v=qCnNF6VG%HMD2DytPcsl$u&;e>-;@7S{c)DVP(eSr`pF{P1A9OAta(6 zM0xaLwwF&Ogv=8omiVA4SZ~!V_In`=2*N4ZuuaF_7C|ErDsc2Y>d|x_zSdzmQr6>p zwduCzu*-L7i2M&Vveg!}Fdw`b-~xX~Y-IjVJIH#Ej{(?v&O5HmWX?OsjXBTRKrkT{ z*|VDEhIVF2eI!o=nB4|11Acxx9X~e*dgEun$Jq}R#23QnS1T<^?;7Ey=%}k25 zgB)!HpE-Y1ob|uN8E(!B3%CD~ZCiIwvFh*^%XDJG4qGfW@X0ZyA{LHc^R9pn(P+G{j0EHqF1;QL`tHmwE!~j9Rr#0u) zMONHm6`WCKDfXEBC3;{N)^WKfI5_n?#o1Sd`NHL2tepPB0q}YSO$_kbPO!u{8Bcz^ z@lK(zmJ5XxE~#Ln?5W}EwET!#@`udmADfub&%*RG`e$szNYxB}8>kVWXf1>9_-Fm> zBl_l@+PVAq790={JljX_TfqtT#P7#b^z5Mhg0YG9Y&d&Mwk2{uKRACAzzS`L;Z*=| zcz`bTMBlV$8TYL=2CO z`X``578`ZHFmShxO2C!E3Z9ugJlsVt3zhfm7jC+R`rjM{n!8}EqXbbFh@S;P)C)z7 zQ^S*SC&-=%jj|A9a~Qar7z8{cF)j*sk&76-=XQxXJia0zKHz|fP zl45rlxSJFNT#+Khce^p%NiJgWzVi?x{H>XUt%Q2~B+7T&cY7ROcGY(i<&%A4oBMC~ z0|J%*=2dLMhZ9G%JwP=-PD~Q)!6$IOzU*zwkGoeplZ+>(wJX$%SoL?bT*VT(yGF`` zBP^57&{$Dzdt8D&X}leXO7cN`lAUdC>?n^#h3bTP^qQX?f>?T;(!}9V^?0=i)rH|c zGpPJJRxj^_oN-9ugL2PsO9_uh!A{h)AE#R7?+vdJ(}1V6@O{Sc0QP!-<~RB7>}PUe zlHA#U#75J}oqZe!+g*$I$%l>^I}+l^IFdyJsHyl-p(x7&P9tBSoUIKuXG{-!j<89*#Qhlicj zXUVqHF!rfq!uC>+OvN#o)SCNaG)Y?A>ANMDOKiCkR6U;P#n32=^HU51cU#;9JhR1J z4|kHw;^uvat!Uh%#@&(&I1&^w4y2Oy+M-BMMBE_8z7dPTe5qE!tHU#Mdqc0{!%D3> zcV`&5n>GYIGi~k$-8g=mJ5aCuKWlaO(%C{<~1-Nx4SYMfAZ!r=W|#70`qRu zU0Djl$nUP8yvgRS{LwKqzq|4z63~kj+wdoM<#&!Q>`%#EK?cd_t~{OrD!D6SRfy&8 zS0>u-n-Ht+M(OU#xj;C+`}S;nV(toidg|O2NQI?T3w|MnGhr)RDy#{o14rdp+ffli zGtA*+sutuV+GF7BIQfH;``f~6dgQv1zcMz^#eT&oh}NyLZR?IH-Z)E7(juh6xkf7s z)scgx6*zJHnlnRdm&8gApQ8bdviKaY3_EyaOx6$fqGwO7E)uG+OKN!VIy+^GEk^rwv4t+Hk)1e?~bAQ?ZO|y*SYP&#~odG>_TLajCSGYGe9M~ zP^=2E*8PH8vkQfMayLr13r~8HunSMdCuSG2r>D*?JXYFL&BFHaN}*Y3LGJ zG*}(jhwE(nPy=g5vXeIA!LE6UNS*sfr3jt})bX=)IBtEOY}^|sI*^KTrDD1|S0dSh_DCP!c&N(>EjJ6}x*K;KG8;gS*0O=npq4Bpg z0HGZGXb@)Ch&;9u+r;>on^JK zl-Rb!xtvQtKVUbZ^(9Ohth0Zr>|pv*)2MkV zjke?AWmkMgph+TJ7qN_F6$ZAl>Wo+@po;w>_O_w^2NyuG`ubsK7@rl?7hyZh{$vK5v zQofr&0UZA4KzxV))v7f%AL1>igLJ^}E?4`kxidkdl_XqdqmL4xRFc$8s==WS zPKh^AOsT0YypPDayX2uKG3|rUC}i0Rg@Su2?_=L;8(XuAiLuF7P-F~#RaE_IJEQwz zC!?ErC1*7aar6cdccnJ8pSLr#f9qsu^Y~IBT5AKmOstNXmuUl>waqjxEWzkbYx^@B z;7Dp(+p;ilcQ}WDt8h-RX4w(pE^-BPc+Y+hAjz=dZ_T7OB|qYakSlDv;4XOCRl7hG zxi-ZFHw?}Iv?;^Dl9wWUvz)>=1^_K?Bc=iC_f0q>pS55e;<=o}SiP;Q%<2$NB zRcrS5U~Rk(cQ4e2qGoxt)EDs^<=7ulu{<Ip?~ zaEB_jLUV1jemyS-0(p{{N{QPI!*EL{@E`Ic)?o)G|;r{1$sciWFtQXHI`fojT{0KUr!E89&14kkCIq&H5;Y>(@t2j2VkeO zq{NfKk~W%LEa~`WsYznRl=ioom~v4HauQ4#hC0Co>W&PoP8$knU4#OjH~^~Pdj89TlbfOvNU^ucv zr@c|5)Es!B?{xKI135ftz<8$?^dEsIbQ8r~NZ}Clld|pfM6`8uVPz1D+-uQ7z9ROl z#VlowXd@bZ;Pwy-J<;g>pixL0>A}54>|1SU(%V;KldtS(^tyINcWfu46TY4roOok- ze`mKdv`w81EoU_Ps&)o=IU8VlG_xf3PSp&F_|jh{arEazl6zcg*BONx-$MP4w0t?e3jaV)B{?zWFLyj zL0SL@;!6t%*oeP?F1d~POMGHU0qm&*8&Qp>?WBMsDmA8#r2Cz1Zp~zr( zZN&6s0FgFKgV|An8@Y!H&#l&eX*uyNj?X=kJ-UhQYKFpawrcj6Ux6LNio zpvT0kS+axHYo|B~!Fz_4lS!OJP`MfN#1Gsa7JsUByIM}hl~oWng%u*=qY#Xp{IH+N zH3?&LHvG;tpwf%#-SQTDRzrPeaHt-W^HgXQk|~0)m;iAi`&KhK7fOy#=i(@+8OEddGDzk`U7F$ZtYFLmG%x+vmFh0kxO^;p2PYW1UsuB#0e1o*3{ij7E}P@ z{{_k3Ro%T*II3L0a<%f$%M%jaJbJ(^H8;9aT`w{^BCiM~k{K$0)z=v@_T+Z>%)Pnp- zaDw>`3w#h@g(OPg5`a%bQ?(VF^%4N&F7vPeLnT^6)+GS%a}3RYSl~hU+8+h6PXJIj z@!gIt>`y72hzt_asW<_O?cdHm?MiI_H@Rj-y!wz7A55EE8&o@DE7QJ7c-D=A!M;9_RRAu z0)EADfGX}+^x_lqE7(&9enp3|=fk-fH~?uMnqMJ3iuIX23WT706}Qcp0qP3=0Ufp% zp13?|yw{FKS;ru8gdy#4(R;vC=EuwRSizsYtpDo)? zQ|wxS=Yw6iBQyF&c?G62_cOTw*GMF|ycLfN@Iq)5QrNl+a2fly3ogKTJ0rc8_nztk zygUrt?E(;RWqbu)fY*n+$mIg?p8WzlNPs!G=7?_;VrH#dCzcvMswMWW@VMQmc?ZY4 zV!>I|CFWbfqXPfoFnD)dmV?hT|M0h_3#0@?d?}934qtA7mtA#%4lw)~CR@21^eyN~ zxk0)J6t0jwCdIrbu8w5vQj8u{$r*&^^w{N{2;{}CABPu}5vW`X+BqbN1h$dFx z*vak%z!Om7ARyGygp_4vmEljk^&nhkfENg04k|m?v?owEVS)dUUa3l3krEgmD0{qMcs54?J7gH(CsCF-yE-3OT}Ke(4bOc zQ;>sz5#qR@2q?hicPR`Oz$9d2m&T(61=qS1#X+xa`13ZcIUDOPg&r6?>yXVI6HOr>e6S?IVE6rO{%V{64O*aOtU;1< zT-47|(csP4wa5T40tA$Y0YQj=jc8pb0Ew67t(QLKoTSN`AJQTac4&OX5)~O}%?6$m zB5-D(*6e3iv#|MnIlzPkhkdbJzFVdbA8T_8qhcQCc!7;M$aY%eKX!zWU;W=&NE+V4 zNcZyJ(volkoHm-}{@MKZtPc1uFm}H}MQ@R|qc$O<@a?F7C7ub{jo6Z0Mxn1@JBkBo zV>_x3@W$Q7LFL?slNUqjB^s*OBf=aFKIaPbGtEmui?jMzz`kdez z3_F_V$hK2nqBRczEO+xD2U1C`D{pf?eZ$?yQrtlkQ3IaKeiPh4f2qOlZfCGfJ^)r|m2kn3n+c zY)AQzmGbs_p*}&r35}^g>TirebbR+fVZ2#`+m#2nvp95GSDH+&M`xZ3KzoCW;#Mn?{lS6aP z+E07bF*5&t8q$RMP%objyr-n8%`1NSrrE-0!DPr5ei$G5x$@*jbo!p%q8DIr0dIzs z`DFSlHO?7BydS~SCQsR$jI?w2zc{#+F%1{+ACJQ!BoSYx{d41B&Qg*HQ4g>*1@p~w z#Zvtf@5{f{SP#iHRyxCZ05ozOn8VllKCI(lih07Av8#JsuCri;aY#qx*06E;Kh;mQ zS@QFE*?5Ptck}ocpM%zy0A)}39 zm(O@?hK)yP>UR-eHN_i^ZVv@VnC1~aO?ZTWiFI)F9xjBc?5u1&HMyNQo6VTiE?h^F&1JvRYt2!SdqFext)M&Qgq<#%+flg< z8Udp#S8EQ^N;)d+4@Hmr!(F(&Lf(a6nCTwL>-lgr6fmYC6sS?ohSy?{>{*TR6YY%g zVcxHXW4AN-g)ne8jtRJO24|is#tu(vl zSKYuxN}5nj=s!Uh%Ijk?L^yd%)W@1nCk6^W-Cq%+oj#p;RN%Q+)WNl34jstCzP>)% zm>H>!SBki)H3Y6wy|61P7Mcazk!sX1%>?%4@Y_nM0Q+HZWp@o~atfN8AfMRtj?5tO zTN9*Wp1H#zQE97SiU40n!~>knqV^%r1hqaXZ-GKk-W*6m>!+8bJsi5^%6la~G3Cvk zI#J$oG;J&IqvWZOK%v4c7hc(LylS1x>rk!2(}<;Qkco1Iu(vt}tXMM6EvVF;Wi|l8 zl*u0yYn>Kkt*{n8Nw#ghaf)ph&pF*B2AK5HiWoZ1kZMR}80*mjmzmFyK40R(si583 z^EuEcv?g`!c@Fzl8=5>Ysx+s3WuGA}wKKXxC!-T5M%CcN8|w_|_3aF8qLZQJJVSb0 zI|F<@8({hw(zk_yyKN2vu56BAMZ<@}UF5Pnc+X*L0u%{50FhwW#mR-HxMLpwQHU(@ zrxH}33s1wnz#h#=hHr&|yU9SnH8NaUA6NST><=~me+ze!iwwNyJY)!eYZ`z`tjAk$ z(6#}%9$t3U02H^%C8Rgs1DHReTZ2huCQL(dtDFr+vlGR9z$QAL=;5>zt=RvhRDq2?JjNu=Ox7%BN(J zNr@dJ3~VFERVmH!O}-+NHUPiyN2iYtLp?JEWBBO}ye8Ud?9=WSnT$URm5yjZg0-mD z;cK8nou&MA#ZeM_-podcSHkz` z)HsHZb5xmp8+@M5s1i>GquOY4F{ol z1*6mX$WKCzC%?|7l;BBxt;6abPyWJ!93Ca{eB{hxNilfMGk={za%WbmYoCKpdS zzVVisw7<>7m0w9gPJ%1LP^rx1$r+&1P9NGA8F%_tu}{;twKJ5NJh5!DsGmC!0b~mG zVWXfaWb9_A)sLiQnD&{H$YKldmX6CVVAWXEL(?!Y{qg9w~i33J6d`cXE=*-0dVQE0y?!v(l*(2db z6tx!)t-DbVHy#4p?Py%^i2eOADIT$BPaQ<;Dfr!PnMqZ{X@J*;k{8Lz)VKCdw;(njZrX1ADT)09hOA(*#Nem0i4&11h-OZ*Yw65VJqmsWV^;A67w zv_-nLneW&)NS4G?TicoU4ZbBYkz?QB>(D5qqV#=(FSBpk+&B1jJEQwWC!-U)1S&Et z-dOtv3*r#_d5%xdfktg3F6X{M)Xo48X9G;%H|PrkcL%HqxE8R!AdtAeA>2i-fHm*g zuf~E5+ez)o%fgdz?;2c`kqCof;BF!ia7Bca+LPCYJIO@`-gh1{gugZS4U|xizl3tb z-Z%IVyzJ_}!68n?M>!;K0KBOj5?hUlJ%i-d12;6}L2fY<2s?j-grRfCz|1W17MUa$ z#{0WcuXl&(ZXG?OoR5DXyu)bkp!Okghpr4+k79C=^TC0%k@N9B=#pEI@5d*W^TD1v zuprfF+Rphn5l)1|aR$7Mc&I!)4%ack!S}|%V5Om@aawgLH)Jp?yyRUJ{WKSJf zfE~sVj{<$$C=I~v@dG<{;gJW;=#x>zEE&Hx9Iur(<)sF^m9&#XPKzZTsg$dUG^|{P z*c0ZbmUf)%g$tKui64}pxzFNG(@+eXFK?1B_<6IR6ic z^KeVjl!8PMFX2Gih?mT*2yHnJpP05}PaSAWHJY~LB|V%;75fY@E^z71XJ!kNfGV+} zd9`PHj6~G7^$b(U*`%gg?rtFjpzmkJW2=BneoHW{wN}Wstv63`v43p?ph8nyQ;fH zK^za;a}8F6UX=#(tpTCORvGr8%{iJj6Eg(K`ZS!ZPn%f*k`-*M7!WB%3OZLqVx0!R zQHynyy3L~y_KBqlD2)|LlNs>oArC#wNZvpKR@H%V^%`(9*(;w*CZ*s_)ciVlHcb> zPwcrh(h`jE7hOp}hSaecN39TV1M$lwY0a#N-^j+~7fJXjrEuTMK21&GKBiPHvb&!F z^See$P;R&u!7FQdvW013dp@-ki&p-v=J=?EsPMoE@BhdK?#lecUo5;I78tV{huts} zu0O%X5gxLE>o8PG1AScvs1!BARTkPc(V|8#&H$C7MnbR%p&1@E*}_7=yBnpS6<;_i z?BGTC#Oz@9)PWt`Vbo~NSf$n+khh`eK_hFY@T4pzunDXK+gDUxNeqv#!I3Gr#cnmw z$XI8WiV9V&nUPrT@T3;laaId!)od&1K0om7$R(iSu$vHni#P)A3a*kJwB9krwzZ(X z#w&eiHKBO>_VH$^cs7(d=cQLIf+hC__fLGmqiBiu3a@9%X}e76usfnq7N3D&Y?D9N z9-tGL5*_hj&_h=(+vUOxwH6jPXfjBPWv zMl-g~xZ3&%V8Tzmk@b4U4XC#IW(uK7Kq28-&=kRu%I_(_d z$TS&$XAqV7b`Ea?SZ(ecz73k@-#J8qVeA|(*3gfsVD<*$>)8mw3Y|S8x>~~mzSni5 ziRuhhN*_i59K%+X(vMl7&6S@I!T-R9Z$i*@aA0fpv(U5)2=-Mem580yt6LCZydJ5u zFk^m;_g%dF1BK~@a$#zu{9zaI{r&dw{U6=I_rWf-1UY-=H5xK({43p#o7MiU^VbBC zsI#0@S1aOMQm}=ek`sioIAkQ^r?hpxGXqp|f`kGRO4gjMJ!*1-gn{60lU!JQH4a)s+hHEBB_F(4+FETr($!DjtU~ zLEi8%~ zn864O=r^!9<49p=sk){KbsHg0S=v2TDG!#L(4euSJT_J;3es)uw2LS9-0AN`F~N&z z)&oe=#m~Ylm_UcaGTCCw#tP$g#V(ABoCEY9?jyJtawrx#QBwP7fhk7tbT3qFC z&Ep?(+^J)W#_Q!R@u$M(XCy{kTEcUH@eybga*c)J#q6q&v2V5A`g|p)zaJi-JIU9d-11YhXcahxN*U| z$%BjVw`Q`PTC?#-ky5rT@^*OHRa@l1q#&ci947*Hlo4XcClSs)IN4asM-UT$b#Xs& zoimhc+9RvaXGyPMbil52G*qvRMx~vF3S<(q{pVT*ZUhoSGt;+<-u+>EyX}K_5E)<= zr&IfoG(h*4>;o}run#y8pM4Oh5OEQ7$*qHn@rhXn?5Pv$K#rzu>tOX*y#$B*M#svP zl4c!P`*fLX1O>=%BTRLv0*uBh3GNfDG_tCoSw_V2-|B4HStXdrlb8qCorXn;_cAGZC~Shpu!*qJ5B1Bzwx>XyNUE6=3&D%aO2wP2kC9oz>b_N;YnsXkI*0@zYd* zOInk`uf?`rWyRNh=<k@ z9-rIEy_AhF>-|zg;V#^a!@E$Xf_*kN$kuH*`!|FK>Bhr#HXej`?{)TD;cncx;N9fG zMfh9O*;hh0{!bJ@wzK~&c-d7OZLy|#$T<5uK#MZYxPB2<*;4Iu%^VYB1#|2>IBefO zgLTfJmkt+{cq;P*q?C^`1C9MXSR02k!+1arlb`#9ah0!;(uIE?rnY78P}0_P(|my7 z_t89@g%-M5cmH#_5Jq`fpT$POysUPP9h?Bi4tjx*<-p_dS;3v5zN-6L^ghr0K`}kVl`ZaQo=k>+VbJ7^S0a+aj%X5z}7DagssmFGb4tidclNNd|(t5tfV+8EXbEL6DAERT*? zP;RR4`l2nRp~83tvirdRz#G1}acCWWTclbD+fjd|EW^igu?Y#-Pcuv;m>FN^V&*wG zXE8qhhZ@=UEogqOM8p#Ve}|3C|7j--`~!fU&cGZu<`wgpN=%-ZnN|G%+L8 zsYT;jW(sRIkWAv^krdWUh>tK-IG`%{3_I53h({2#rE)kN6{0 zKuoPCUVV=P`(ozWk>l!ypejSULbeVVYk5Q(>_wTe{JT`bs$IduG7WIEsR`Y z*+)$9stlhJ6Cg%&F+q62)6oDC0ukF9;YPG|B?43KMm^lU2;^O$`@y%Z9)U^mZ7cTF z!L}9c47GbR$4ZQQ3{=Y1QlYNpT*#fPEZG(s2=4|~>-E!T1Bj*zM|WZCF|?<4v=*uq zIMTL?He%KNWObs&20r+%n(n0jezU+ur- z%yaCk{R$d|)Q-LZ@pJZVoBL{u8X=l`cKzl-qqavUcG0xWt1E@_hTjys9o5dzj_71) zIj`F2Z)bp~u>or37H4jhv)`!A{=6`7_m&U=R~3ANS9D(l;UP>}-_*-+A zNJ)?QXSkf~U81kR%dYMciIh-XIP!BTy8vlwv&fK?V$VoqylIWKts^l3*xC3x&c(NN zWTu2p%6-k`o=ysEwT}0M+03~Q6@QJ$3|P9J+J__#n&D*j2&6*B4hPak#?I}~B{zNU zz$ccm!=5@Yebi{$&e(|vu56HID@+)V}o zu8{#HvY5df_J2hSGVq@BkRkl7X&x$}9)AKCr)?g-6JB=JJQP=eS+bj3h%W=Y zDGSk7W5P%j6~0Xnnw=6#cyi8wI1k?W8UpU}P@&a+AbOrLdc$*K>L}*F0!v@CFVTy5^y zrDP_3*@9<=zwDC-v^V($Ha7pKdbm4pX3|#ywjSq3!IR8PlGrh}&1~ejw#^*h%whCY zI>P?MFSXG_qj35MQgDKw-T*sJuz((7pQh#>O>Vl}f^n0P{M5ve6I0HCMh>RL*WF~w zl@`44*oY|)V`KAwsxxK$6Cgp3ETmNcJDn*db_}Mpk>g@Y$2a-XN%%S!duC2e8nGbzxeswkj9Ox&^ncn3qs9O`olzy83`Vul zEzC+Guj|q~jZJx}5!OCa%0A1vv?>3`3nb6-d7#elUZP1#(`MX% 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�`2F5 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

fooRJ(dzw2SC= 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 B-HZSL diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.Water.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.fluid_material.Water.doctree deleted file mode 100644 index d67c0e4aa01092264775f2c33b3acc25aa1be24a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446082 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 fAzOlC45 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.geometry.GeometryLog.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.geometry.GeometryLog.doctree deleted file mode 100644 index 9e2adb07d2438eb7631fd2601b736eb4829842cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52982 zcmdUY4Ui>Qb>7bI&dko+pV?hWYoXO@-y)=$U1nzyAdCjBkcip z8Ek?J+sSwCPxtM9{r7riv~N|V+52wapL5SW=R4>AKQ#WSKmY0$_FpjVbq&*Ao!43| z+iB@uKiJW7n!S#0`~9c;M<4D#*q;riTy4d3dTvwi2V0P$X_)PntK0n#^@BZ>+&A0a zyvRT4=}q5s>@d4AZcG@HAL`EW8tC-<#=c;x5jM=&7EFltoDR0POGQMn4v{<~dhiqBOl=($|*hQ{R|24jQ|R zYmIHjq2T<9j_sdlo_N2fyWWZWdfgNE`o8XVG~aA`^*ddsyXdT{aVI2iPJndpL__QO zj@RpSGPWyeWXS~)p9Oo}MuG|Q;jw&R2GF*yxh|G`_Y_aS8q z^%>T-ncL>-x5|ndURP`C3-vHbede~?z%3@)2ZC{yqc0>6Z8^oeJ#0%zF)v7IRWMfP zLVkckQ3>x?OVDC{6^yO)HMPTtgZELby+u8iQcV<0t#;ZAtQ}C}uB$^5FX(;Bdl&M) zT?p#K)df{b0?FrzP@B7J3nal1D0{i?ETzj!T<5PlHO3@him{(5lf)xqJlLspv1DB= zE@GmS&BWPY2L$LiD;&57fnq^jWtm|a=ZHU@h(AUfYQ?GB&!_{)K+2%XZ4)}DkU1%& zkCP~cHcXzGl;m`GD0j)mZ)Xt<6%PdbN7UR;W;Zt&vj=776KL0?jMMwV3Z1U*YQE#D z^o^aAd`2j$?$`3Fa|WyX6;a((Fk#vZc@=hTotcr9P%x_Hb2+tuPfJ>_?KduH?VcX5 zF}T9(b-Rx1H#~r*f4=7sv|ptD{46IVTUTVqKZ1l0!#ZRt6(tN_)d2}+gId%G`xieU z53IV6pcJ8AQhY!hx4i(I`3t7L(u4u-2h%dx(CnrW>x3fAo`M1LHP}+WA6(byIIUh= z_d-h%Q%M*yBsN=p<9slI5Y)3D%nxT_7;gNBs9_xG6pr4iky(Kqg_iY$8tIy|Xu&<` z$5bqs;H370t0a8H3<+rE*lJ7!JC=IwHkbeNL9O9CO=7q2^^KQ|^B?cS%2Sj`K>hqS z;}B;!=)9f8h{^gcChJYd_Ekqm^;D*)7nfbFYp7aq)6Zz|0~YEFKr}|v!r6Zm(%g2I zmjQ6|@LA~Jd(2hSKFb7p);JJMimZxQ|4@> zYb(VV|4(4XE|tQF9&6j!mMtntahabDwllhdt=%=U9&5*Wuf+NiEVss}n1jaO<|$1m zbjCN}UXuKEG}G=|dyqGnM1;TAg))ea4|XC(U+uQdrU`{&305@MMsNx}A;iaciKycJ zLUOID!=c<>Vv_t5xM(9{`M|v&=Gk!)?7uJ$S=SS%VT+Ld{|MRs0r%NqBd@&6HhoiT zn-A!9t-fToArJEsU(-K^h-)3o6$RBm3R*^pb%U&UPGQB0=^J(5(CY*efZX2Sog#s@0bVVdeXjxV*Ajb7Zkt@|sE zdk&v9pVGL{P3WYJzg|zT)mr*uZ@E^xpU6YJ4>W|j*4t3Mwk#I35Jc+pwVLj_jvFRN zwe(Fx#=7_df6djJegpFWp02Xy*8pJ##&&f~e$>ql zIl!6?)~t1j$L%%nriF4rQKzmgg5CA5>nvk5=n-cTZc-5A`eofFAA+j(eB`|EeRtl? zkP>77J8cxTLM3~COSX*|inOj@s|o%z2t^xa3rK0Mp{pGm4F-o;|F*#uqDG7jFPIu* z8<^IC8WPLQMHllO^#yVW>Y~U6N)IQD#$8dICQA`jklbRZi76+UofWxImpR2x4RS_R zp}`*n7uM!nz%v56J-4P4vd=AIWHHx4U)#Pm*Id)=Iamr`{}9^fMUuru1sz4>Y9EXe zA!3aP-nWL%?BEkrhNbeDbU8Lz0}z0A+ZqMHLK{Lu+?K8+vUqLGGBq%B0TY70#_R*@Pnv&AD6;@IK(D_H#p|l>VmNCz3H}TTh&zyF#ccUT|5S}I@B+g? z%fmmtMQa8BNI#_rT9uOi{y<4=N^#L?t)7&&>SCK5zn|sZv9iFtm2gaI@J(4<=d!^xJ&++;*wj3iQt#4I{kCrIzpM} zhT&Z3jgN+K4d$bXj_%{+4J849uiXS~M}&a?H4l#3VSW&XZK+ zLF;k+1K@fJ|HOM|HowR23vp!7@u`=SHBzNpNixE%nI)#z_r2OI^h+^#TRUTk4-?HRNhg@SY7H$4Z;N2_;9?zbiO# zSz7;2m2TWrOu8k+BsK?829Q|7K{R@r+BSejG8Skw&N3=c^h|D7&JHnb_!LUY!}%;I z`ZV&b4~k}rp@=to1TFcK1zeLj^qbUA9ETpKV0j$+1gjw*hi)u4>m|XZZ1M;(UKBK6 zmWc6{Dhz*x5Q9xNmO%`ba1b%RLv0&C3>iy^!7?g{@x9!x90oC7MoCo=<44H1>4?Fb zJ%Whw?EZA3Wl- z2v-T>hhplcqQX6)ACXvlD1{I4<%&V1cnh_604ZcFkYYMftAZJ~=XUfkm~j#%<#9aA z%Xk;^tq(J9D)usx3>ZQ5xTS!95yvQ>v1AL*}u6rNuzWb_QYvdYIreGL-yn` zdcpd)l=`4WWMRw3f#6^c6O>Al&9MF*3Xs$I!7i0ulH&BGxIbDKwNp`FM4nQTwp^qe zwe^_5Fw?3?UeHpBab8!?`yWU^GK#6;+)MXs^ z-b=yqzU#fLhJ4&RQn(vXqEv~L5vDvQD3$JKu5&nQzR@F9*u1Hja({>^X*)B^;7VG) zL2UV#)basrk+Hy*E7QtR@a6Nl{XPu7d=@2D!Iu}1Z+-akreb_a<-!R1R?inOQDV%$ zr*7jI^Be`sW6ZOxhJ1|qyN%g6jMJ}l;GLax!*==xZ7W8E@3GLr*)vd*GyDwEnT0cF zvCsI-*|T!Pu;{Uc`YXTHm;opa-`}w@d{ETw8=|u$%o@KDj*YL}0(NZS?AWrfh1jtr zxvw>tCR`Dx;gEoTk8g7QE>!_Y0R7vLM5+9HiOS;`uj+c?i8JfZm>9)NP(9BqZ{kPD zr)YcOp|i9duB=%?c`*yh)!ijjp*icYTm z8Z`_3U%}L&K`OU}>z%#0IkM2+aw&uCEf3n?`EjmnaTS!Yq=GoLps3&*D1GM8O;y37 z4d$;yNmb14N#s)$u)+rO8%mg4Gs$fPq;WT)8(k|OGRT#Lbnjh_6m4}DQsJ~1*hyg!OEgbN{Wh^jYhs>)0 z!K1l-It&ne3?)?of+vx0eLzrR_iEVk5k!NB3K%ER;92S_js_1>usj+(z-q`x1Du@4 z2{t;KCdchcOoRbn5H(+x81VTjY}-@}h<14}_D5$0OG81FWe^emh}t`V2r?FkFrBDX z0fs-x?dV~E;g3;L6=3)_@~saTO6>ATGGGMp;XfDfPvXP>r5@w>@SiAH9v{BSYRJcj zn;55tIlC%xq(aUJZzd;rOD;>i*)E9BlYaD`Tr1_>u&H(<(0iBYu(5Xpz>OX?c z2SrDuL+3Dx^gsb;vlQu3P;Mt87?{&Z+W-Jy)e+LuhDz(trp#DDI-jP8w{d zYcKk^KowT`JkMjZ!?W?Zj^HZgwj7L^>}7t*Msgz8YV$ITlrmI)iHirVC6=6D?1j6& zIQwvIkM*Rf>A)%HMEY z*nmq{L`k1ap>yb)5pEA{qGW9uqbSqfcJ_=|5ex5E38FbPnQFKadB4OiXLUvIOE~%~ttA8WZ_0z1RQtHYp&283t z)%9m$>dG%XEOF@&$q!4Mrm}aeyUY}|{XOb0uC`NQ?TX_5zUa^O8`>8OIw(tVzm9zC zQ{2}|&oy?rwR-FQeAM*IMs>f;_!(DSiW^RK|CDlY)%}vlTvBykVD)c=>i#7wsg&yS zN;g$?Z;h!LE{H6tw~n2rw9yeq60zY*OHtRWcZBLX!3$J$^&0xPAx8E9O3D+1EM0vK z@~ux-OPpsE?Y?Xjbw6WfTu~`b?W$afW;XUsl!Ghkw8)&-LyC90i`Bmoiuw*#QYl5{ zmF6~Uy*4(csC0>VIYmXvLPZ_2v=l|PsE@c^B}GMnilVkf2d>|!8U;O)rKlH>@0Czg zYWHQMs4d3KxS~?raEkgE<=~2{iOeMx^&hbMH$qXLVI`GPR9@+(D(ZVfi^`YVlsUOF zIy;alO?}_9;dP`a^%to>xl->Npi0s2-xdA7e*J!-pd+*N`}dJ=efs@|VyAhK1(%Jg z|7*tAxT;g!aH{^_CzwAGxy zW)tIaqOCtfWY*HnU!`PFC*v}fZvGP4_=|S)a^0q2_AgMM-!m41BhkI$vq$T*%Ijyi z{+`~)z+-#E-LV~icaJ@pf{ES7MrB=wzffVkHO{YD<4ze7T&FNWS{?IqG0e<0skQ#!$V zE0G3hR3B5aW)R6=CNsWi{Lgq_emm<8GUGeOdE?K51L;!NH(s_36dQk-Fm|E;qkZGg zgR9fC&mLv&Dc&jzDMqu85%FyK-}v9MHw13HqF2J77j&fi5i0(X;iZ|_qm+YNBs*+G zT#u63zNa)eECH+CaYUaL4;^sOi$8P_Ovp#X9z&hMBwi_C2db=#^pidBsQ$K{~Ej_{S^EAi}aVMQH@GSN@b&RExS=W)1s8Vk~`g;eDuF zBU5?%@!tF@((MPYqMZG>m5~$gS`}y#_9N<7>n%iD(tccz$g1{ZpXvk&VSm|jQDVY) z2uWp@F8_6t2+gj`}JdSH!D>cx7=JK06+hx24-quHtV!^xTG392uPt3(k}`IyX=b zZgf^dwq}cvG&-^iV03s16^zbPsE-?+rzymY4hvN_Iw2|5jSjn%eLY5p-|9Y+Mn{lV zG=QnAYRLJ){?65LUBk(lnZZ$vxWQinw&-WZW-^-^_=t>-3YdH(e`JSIv9pQy!TE9cVq=kMKksD&6g>1iUy=v#6h2|dz zEi{W)EVLw%#w3DpI7itthS~2o2!YE^5cTA%L2$NXt9n1-FiUU}WF8io^VCLKJlP}~ zX0Z|~SiDzElFFE(Yr=9 zdV(ccD>(A%d?BXtXC##G%N5FegZJ(*Z!jvXOISR)@WPtE{#BcEVS|S-cFV|=r?u*| zTC+r21$3hhuoj85BZ36I1>4E4{@XaZ>)>n)EoViv}L;;(lp*pMDW4jlY*W+ zC6lI6N*zoiFQI~I{2J=xrtv>gh?zzfs%#oVQYxFqgLKJ!reQ35NqxFmT*p(tawpPy z4xX~>^9!dRe@cZb#*B>FNB#(bu!qSP3BD^tN$Pf774xm(OJUyiT-&yR981_jWsyo5 zO)0S@mafKj<+`xxW1YVRW6DoGPUlyVKA_}PWTS>^WB;0w6Yp8o`A$qdM%`-tn0h#A zW50>Wsy23SQfSG-o&W<97M6=Cv#&9;%#}X0u97}j*Z)PN7FpMgc>bWK*)5pUCCBZE zNyo11EaR>tukI|>5pGh@wCl^dt-D%V4stI^-I3e-=6or;0k=BL;Qyl^V$7xe8Q&6} z59Z!1GM6zpvLnJ0Dj1x5Q6D!r@1_tlI4o4z;PA$Pl*$HYCi&JurtzurYCyUndi>Ik z&yp=3a=%?NJEkMJ_ZjWC8+<@Q*r~w}ktkcaqMUEDmcqQj=rK28zqSg78HXQ)%YFpf zc|HDDG*yE9N1&on!>mKM@k1ZF{AgE*pua^Aakc z=JTkJqvmHQ#88ukDx+pdN@di1ZQA<-JJ_xMouV)AqNdFi~{fk0y)1^KiV80yZ4Mvmy36Q-ag`L7oMbl@KA`$oH zq7|5UJnmGJ=^|eKNyv{OX3+i%GUfSN68LG~^B=Ob$^fSp$%SZ0MDRHK#+!k)E&eMa z_J>u7{XQq4aM@^VH}}xfrOHSjN{PawWuxsR@3H~>M@0X0eicJ49r2pWjj(thu4Ag`r2G`O|$1#3`|_YpA+-36<=&g@L3A)j)vu-uC+OgF4L zE-y3ATSxE@ZyEV%xFrWCE4XiWM+!~WPTYzdTb-s{vg`Xq%p|JoYONqD%$j?DN2vS-cf2a@txa z_Dpc?-K3hjue;%%Z#61v!^47%46~vPm(T|5Bb54}^$+QvLzZX_^-V~~qSIO%AXEXY z-J89jDc6 z>wRwJ05AO6slIWZEAc@qWZc-%9KIDP!$IrGf|ilMJ;9kk0+&3el;qa~Jn2e_QhPk9 zRKZY`2S$yFI@qRkX_&Kf&04>Q3WABW6I6UtI(_G3%^y&RjWt=Q@>rAW;(BK2uE9R3 z%%Nq;w|~+{k`G_vkt7}^DqIgb6!X%+3AP+GS8rcvpS)S(R5bIJvw3XSo;ZNSRX2b5 zwaMm@Z)v_(N7!@79$`a2rETk)=VQ6e z#NJPgY55=|ULi)Oy5{!*CtQlCDST!534u-8K^fkh3nzD8|J0_ATZvMNx< zcKJp0zHEIHg(lE4>L>=8SshNJ5nAe!v;sF@5M7dso60L|LNb(?NHks+Wu=Qo5`JjG z|Fp5JN2%s*GB^G3yyl+{n5)dMzz;Xi?$Ou=HWZ zCokCW#XK?rk_x@`+w%)g_tr(> zk++_^!gD&milKaVUUR-5P9ROIY{wW2;v%PFXkrgtByZMHqBv=a_93#WDT>`;lF&Nx z-yM{lut)=1#SBwy#voCUa&$;G09?3|+ETR1uEOhmLisD?j3j$i&{p2wT|qgxz3YVy z%kE+l1-jEgG6D9Emr%jpJ%ReTm;MVBV)l-OD%-n|l*(TEb>fMqOgmTNQGxK4sEN~l zUn7nkH|QcG$P6xyd*ssEw~)9Z7d>{~NOC1(cXjxTnvmh}cO;pg5yF)&nfZq6xiIhO za4%u7lvy)n7lIO7Vw?3>!e*wLrF6^jC1ff;m-e;%D$*?Q0$Cq`Q z(R0_r0B#@eGnuEBMTz5YVaQxOv9f8shURbM%{S)I_gnKf4R}t^ZDK3YTyUlDYBp{N z_D#ob$ld&XY`P7`eaFWZ{!?3mnoOg&@UutqG8XJ<_FNZRIvS#^)4?to(>Ae9>2$C| z-0bJ|gMD~=uIHO=Z+;0Y#JC!;)ek0qPQ%8KX!$jmaC&~X=l4$=)2D+eeuThxT$D70 zX;2+oZ#!N5*vTuzdb@oNKWpMAUXH`B-M-UoENabj^wsOL=ca=FOOE5)I32HiIW-pS z_VlK2_d1PLI?&KZ%pNRYo83m!>2%OC59J-?F?w5PF?=^sv#og^C`WZ7Ll}WU3OkX{ zUWdWch(XQJ+CG0QrhjTY*r%_WV41J^JuiwCm(83G_6Xdem2_R}poS^%zNu4-u)@2? zw85Z;Za1A4U6~k6_57vdZ$9ps2wxlj*kH%t8wQSSv~jz8FhQg?{eCdb*{qZ@&PwSA zhZ0{BMOg2FW(0e9xe*OA_qFj4iOj)XY6Aq#Gr*!Y+SCtrw>5jYhmAqtcniO`>UKZ4 zf}d_~wDc~-1l5>~(-XKpatX}@N6Z!kRbMh!F&!H0p|>Tmze`31TTRH;?pCkUZG`d% z#CA$i)1wRp$V8){A_B~8C^!SqZnpVN(& z>1m5?YKWk6QtAbCY!@2i;f_nDWGHmENY=oSSu_snet<%##M51-h`LRswb11|u?m2$ z;y)px`$)MUIe0|VfC_Z5OW>ZpGr^v&-fhs<0jMMn;h>UT6tk#-cG8UCYQy)t-ol9! zi1zRrB<@7E=N)(XL_fHSQZfRNvf*Q21mFPOu>vd7Z9#H3-KKRdZ;3A~QY0@dD2pIMgRCv9`L^_jpwV^VNYvXnXNsyV&qTYfEuYm+Z z$99d2!BtJ9I@i!UxVoud%m`)`)f&M}i zaRsXh=B9 zqN{Q&I-PFO5q68t&{=fQ&Z2V}?C^#~yFM-28fwvso<+-k7EM`OG_P&ZjDbbd3Kltr z7I}}oV7DqYtQotpWro`^G>yj)ILLIIUuq0VG>e6lbrzj=D2Ocb%0y(CdMZ}pl&qCy z+8-+)IPdyoSguNzCBDG60=k+`kASHk?8KhRHkSt&&B?ck_@}}DNBZxD8e-2T6k6=U m;uVGn7K`2)Ml;#jY1++puSK%DOn6gk(FNB6kGLy4|Nj9HL!(~+ diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.geometry.HollowCircle.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.geometry.HollowCircle.doctree deleted file mode 100644 index 1bb216c8994003eb6756c3a2b5eb5e33f003b817..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227673 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 YKWCO?!Zc0K(Gn>$A@^x{);=)#|J_jK6aWAK diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.geometry.ParametricSpline.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.geometry.ParametricSpline.doctree deleted file mode 100644 index 003b0e1d091f357faecf7e282099238bb9e736dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12734 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.geometry.Profile2D.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.geometry.Profile2D.doctree deleted file mode 100644 index 83c97b24d66d6cdfec9a4f929b235188683fa138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220437 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 Ml$ntG+<=(+e~?1<6951J diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.geometry.Rectangle.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.geometry.Rectangle.doctree deleted file mode 100644 index bbc996217c635bbb6da772e086d0db8da9f27c00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224771 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�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 ^V6WcY23_^do$M>6Lu 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.geometry.conver_np.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.geometry.conver_np.doctree deleted file mode 100644 index de05ae14dee3b70bbc67fd41e33c8ce4c84cb4d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4139 zcmbVP%WfpM71c;;Nv%igF`hvJkH#_r#}YE#okbSGzz703UIfA@KwcYr!mz8@&9bV< zN|B{$EsP`!2NA%XnIFh5Uyyu)0sl|dIhU-e?$*r2NE&FMczMaXJonslS%2#N?d)hR z{M?}_Wv1pMo~BBt!g#ln>ZC4&vi>W7@n`>qKX?6#zcRY665-t%JQA7ZX(g0@>D_?b zZI+u+vwqu%#AaG`%Vke)$?cc^T=rehW;Pc~Q|?Tt*;H3EF~Y-WCUhZebvsJ5x)If9 zOqHJ2V(I3u#hhaL?<>}5#g{(Dy;X8VX}vslebyaIZn&-HG*@mj&y?_2^@O`!Zf%uK zY6}$T)Eil9=!Dxz&W(W)&ppM9__UMOmCQfgbZA-@_^8`vCWQ_#+*t4z(1GdGMm z!S?4DXXlwZD|A}t;>`)X@b0}f{uQBfhl?09RoaU{9$M26YeH69TFaj6ckYp8kC!bCixApnOkoU-ui$p>b`Z!g zY>d)DVBt}$;Mt!S`Eyfps-K;*5@5iM@O1E>WA{%Qg8cFSCrFDl@nYQ7Pi4+7IkhjMk2wwGhzrp?r4|a zE%GN{qTqm^d)P=SjzG)1#jzsk#RAWdIOzrC5xn_>pTy%K-jy?>V&|y#>>CU7k}{(Z!*Oi+v`g9{368qu{@2?Bj%qH zTLOjm1Kr?jmpfV8iWaB2Cw-LDf3zFP)7K6kPQG5=qK>Dvihb_hu~S{}OnLcFw+&qE zZHYecuP6=OKFu@I z^=0|Yy<;n`OpflT6)P(}gKWmW+_T#9++VJ_-PT8>7}oT@2X2tm6?J{q_4xhP5_>%q zJHmp?&N1Bz!tG^R1+JvtZT*(#HJV?mcy3GAwydqcl80BWKNCt++@gXpNI7l`mKP-k zd+~)N7S|Z=Hp9BgF*+ay(=CB!@#0=gl{=YgZI!lSY4Y-cJD^LHstY#9-Kg-e3`oaI zmgs`+W(Hfn8!aLi!NOi;RbYJjCiM)j8@%F`0-4}Z30}a`2mFbkL;1hD0h&T>nNW~BqMYm3b~^m=FsQ_n z)k!9*N>@yBmFA)X;uIkq@0>Jk zK-V?4Fu8T8vO7rYqGTQafNC&gkf}=XoHjfRmcVSv{lZilQKy>WE&;D2F)y_dY4d& zZYlD;hi?MpDGtHU$Ol-MXGLcHi=z+SpcEwoC;}y!1i<#mGU14wD#Lw8T3edu z<1x%;RNh*t)d=4MV>Ax(3<1ECSy3Q8He8`ZIsD*+$ziGOlC8g;}7y~ z=9+lFZ*W7m><=}H+5o7BVH}4n*9mW+JxwGoSP2pziw!6T2(kLQE+PK(WfeY`8WFey zdvubiDLBxo!U^ewsVDdRvVzE)YaUCHK60)-I8#hSiu%1p2vXoWapxW-@VaIKJu7GU z2qcvaVIMc2aUg3xjhc4nHiWvNk0rMgwFJcrDx!a7C=ScwB_$B&7(szr7UBy1PU+L= z3-3-=tklqh8M{rp0bN_@%M0$?WQ@=98~L?yeKLf`hH3fDossX;H_X@QX&=c?YIm@l zv9QHKk|FOD1GbG8D$Ld|#=2~YexN=wTugM{ks!FfbI;g$_g8l8w{H!LPFD7Zz*d$N z{n7osni=#p$VQ@T5(V#Y;mLELi!-2aY=7L?zXAeZ`d^|1a8*Jv0ZN0U#}{_$v0~oq b%pq@knM(3HC7#Tv)^}49xJC=&MQZdPSW8-= diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.geometry.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.geometry.doctree deleted file mode 100644 index e1764b918f91dade2c9b1c9dfb67bad6bc6774cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18411 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�+>UU)8xG~OID24r`#dBi#?_@N$4Kchjw)k%bG34*5dk>{mW7fd#(0L#lsLvMmV^Jfr1!TC_&+3Hbkhgj`ba|B&V&2LFq6SrhzUm(>pe|8FHn6Myup ziWKWBZzbRYb)q*bw8E?(e(RVsIb zhmSi@$0Qt}pxh)JaL-^1Mb8)y2@#waA)J&5F49EAM6gJgHHlzBRzHLYzI3bKJ6@v~ zkJpC1d6WdShG3PC-|D^=fbj>(B&58CFr5=JCQK!NY{YQE<0N+;5wr0yQ!bsRK^JO! zyr;Hm6Fv07dX#dXv8W4p?YSz>4wYWc#l3wVPF#oJ#m_^DScb6&0fZcwVoe`Dq{&|V zyfx$E^bL3w3#ZTf`L|0WDQ~~Bq*XDW7A&a5N0YIq3RYH$db_WurG}JC7T@nxz1@8l zSVGrKUa=|8b5#wwFT{x6e$ z57wfhE~JBgg}kNWLBBBepzFeKcs{rgCjJ=J`FgzwtzSqdkg~2@FCcM{*P!+D0lACP zC^?}S1z$lcmJfpJtiMAYWp@$lrM{#}UwZ4C$ctcNabFEDy~IC4Y}CkGe7h>@#Nd`* z-H1A#iG6n5TAqoy1*TT^{LCgU)EIWp_DLVG~gFI6>s@vj4VR4%b+U4BnwM7 z*2SIN*PH-RqHq>dJ>P9pq^Jx_pW!Y?Al_p~L?g|^blis2-chmK3VjNCSF;fJ#WW=j zbrY|0{MAyYR7fC<01++Pk!vESRzL| zC+w&PsDmxRWFq_E~mE0`VG)Nz9B?S^!)@`xqGtc$8YO_5C z!5tF~L$kBn8L@(>Z^(;lJPguIGh#+(&9IH;mMH>|f+HysSL+~U0fKKa>NjEpm!*rO zian}JA(V(P4EfIa-##ChxISBcs50Moebs>TqRkLqKTBP0Awuv(EaO5gGqM&$;P*V~ zslvK2gWbh)TyNfowDj5XgPy|TB#i-D78nqbE&aNeY`7(cTAM-QI{dtk;e!t14p=r^ zUsvI!3>`r;^qGKdF^e#v9Sjo^F?DDuoJkKNV^%Da>CcnAfQ7oN!v7q(P9j3n4VYRiDYc}<)jcyX;kQb4sk#|Z5Htpo z^l~l*1pu~)!32PTL>RI!CE3)}tz4|q6⁢yF?*#s5Tu_ejMJ|n5y^|D!M|*g65Fp zEcCyF*wOc#e2ZB2n3o@5XfTMg^`P(QJHbM{*5KR=wl+7B9N;qsaFum7@YRb=gqTuJ z*#YEKIqP70@Sy>?-81j}y$`$%@?7?JT0PZMN?!e&)9L|JjZ}6Q9>yl)JF*Qxf79R{ z8;va>A^<3o!O!#J9CWgyX7J2TV2I`?4Y@8(23?112dV+@Tbn#^BYZ{!aRrfB4DfXd zu6{TKt^)|_4tXEnsRNBM6t5lD~Y!+l-1se3GKR=V$L3YC`8Q1bOQWB74eY`lgxey_orB2Il2{e3aZ7y ztRQc=SQBxJQ>E1S(;-MkZ9CZwMZeKkN02^8iSe~H2aH?O_%9F(luQxJlu16g9vFAy zlOFOpJo_)<>^z$U9;XzZ#am?G{zgcGA(aw5;x>8m0LG)LHu4ZVSeU>%;joTPsWv-*kXeE_$o`Jf4W5g~v& i#|>t@SV}&gB}LnrD^SS~(vZTt$1B7e~U diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.geometry.get_mesh_size.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.geometry.get_mesh_size.doctree deleted file mode 100644 index 5d973270720b0e2fe6b05536aa257698d02136f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4193 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 EA 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 SNv3u|o`{L?;d~mn@&5osBCmJ= diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.pipes.FlowNode.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.pipes.FlowNode.doctree deleted file mode 100644 index 6ba1c09bec9f886eb0e1b90d7fbeac29f96e0afa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434600 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.pipes.Pipe.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.pipes.Pipe.doctree deleted file mode 100644 index 66fbd504c6c747b4b483bcc1747a6659664a281e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467931 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.pipes.PipeFitting.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.pipes.PipeFitting.doctree deleted file mode 100644 index 70536b7c2590a438b09c912941f96f665c4468c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463799 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

6wgHkBR4cm%s^x{GqS~8KDW}?J(i5Xv_LPNc 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࣪$ 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.pipes.PipeLog.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.pipes.PipeLog.doctree deleted file mode 100644 index f932422ee632b0ff22ddd88824254cabcf977004..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51900 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.pipes.PipeSystem.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.pipes.PipeSystem.doctree deleted file mode 100644 index 8cd32267b5d2b0755dea9fb74a4fe451a4a535a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 515404 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%0A^(mvz!0nxpt9*0n#u+&w~A zby;UHyN$+!xg$f@SyCnsT~`IOYbdQ79Vp4$1A9=C39AO8orh>oS`$tk z#MzuHw_HcQmFmtmz{FMjEa|gPr74=cw@YawPLubfvEiU;a=RahwyOEUp4^-}RjSwb z z?<0ZS0#jxXxs;X|xi26gj@;csJ|=Q+W=-fHa$m{Hi-lZX^?paL^(*tjhkAXtK7`x^ z1x6tEAIM%oBrRG#fHk3i$UTph7Yn(( zYIFYv5G`B3EH9AT>s$39HxdcPyr`b~L(++JU)4TUE?-l0Ej@)-yEMq|KhatM3kUJt@sDC?CW)QiQmKeGJN@1|O^!tgSa+M_KxU=A9O6 z8PJ@EXl689-m(hxeTZK)thtdyN z%wvG?dm)+`!j`)YROd$mzxOk32JuU2iShe!65{y1SIEc2?>(#uHvD!r$rEb%8czHo z+N>2^r(G-G(smsjw4chiaOwfqR+fw7Ew?(&56t6ubYeMmQ0*&SiZF8mC$b^_HrBtT zvCE*z?JWNknOB~5Z6ri_dQjS#DGG|1Sp1ok#EEP%)uwUS0p|vB5p;(n=gb~qE+3RH zoqY2`X+8db!_5l@4qJ&vWah9F&F9QmzlWQ??q0O$fJO8_!8yNU8V&Lor6uOEaLLfyC2Zs5f!H&?ECZgX$mdOEx-dk;*j`}Lk*xv~IWk>8UET%9Z_JAk#0kM|bS$M}s0;fM^nhfHU(h}qJFz8j_^hZKI zCQiT4n$SO-u0u-_RlWakTE-jC)}?xu$%@k?MMdEBQZkpoDJx3D>E-lWUn1vAET%Bv zbSFeJkE|A)@{W%LPB$}6260Mhx}D5^EMjJtg!p)Rp^%RWmh)H>`iIjtD=*e~%Bwc_ zFMG_a-mz-rn{Lgs#j-qC52UJhtdbQLfz?-&oj6vP^1?K*-Xn~deNcU+#U2K*J^<0o zV70tsC3-#*Xni?TWe}~DmKd#nM?xH}FBS4J(fShBg#MxR6Rf;gXysK88m($!xt6yt zEK{ByNL35V@e7JT=?}?19Hon?APu8G7N*ON(eGQVV8G~aAetGYmW5^3?~y?0|1d=c z5lU%^5xQd1N9ebOd`yIXlQp4#2t67tNmTWq5vumJ)zv+g*OvW^J+P|wwf&s7QQFTK zxz=<6nUAA(g`ZP{?vv^FzQn@kSuY*N9b%Id+ZB%NOK@d1CKvMP~{7d7=B4aV5z{D)oD3?5cbdgErR4TWoB{!2&%= zof&vgI7#$auJ?p`@n*_>Oy!OA&vB&*I2tspS}|2G&WBowpI74Qv#RSw_m6t9f_k2# z`D;kLau`%5HPRVlG0k|(Yl<5NON%@# zL6_Hd4s^yfUZrFmtAUFTg&h}l4v{Uztwq?3EVuNw9)#vgTd`+lq;GeX9`w&{BmEa| z>3^`6_RiW_(R8Pa^;z5my3jeWF~87Ri3EA;=fVpWLsyo=1T4FkZ{p6!h01qOHp|{> zxCPvSS6H~Kv!XFSIa@EbtL{Q&83`;$LZO;(!2@q0=Q);q|Coxe!2|RQ|GE{}8@5yw zBfDcN|Hslr%KA~RjSsV|m4CuN(wVqfg8qf0Iyw4OlQX`PZfeV&bI!R>C{CUJq$&68 zGtZhn`y6?%<)^iBI?IHRw4VRBvfvTt1^uJ9S*Xpz*A9hHgs)Mu#n&p|(%ZK-x-YW1 zy?$1$KeekybL)lwt!J(8omKb0%5Tu#`2N>X=Th^Y*DO!9J-4;7M=vXXK-qUy{)qoF zzpOlhr+`QLdJcGGx0+*l ziHs>+@#(BzA=;zlM6S5P?}hX}Ek!w8y{p{bUPKBN4p(Ju?431(!&PoU*>*?bS_*>i zAec+`l|8Foz93C6MIHLZx`N08m|x0WMAj_-RF%IfP33nFP{prFpkg>;0IS`87z?XA zEuBe@)uW5^h)-}oPPx`-i+euDDYS`1>Y8wFX|AZBl<7W^$aDh1|IB(DLNFyKLhxe! zu0{TbYS}lsO6v_q4YyxqE$f{%3vT}tW!rJ<>n7k--KvS@R3Ei;CWBMa8*A)C2rVau zQ>ok`r_z2>rdxS_&=GpugSsG`Y8iwgA{0vQpHn$qrI}kM27}{R%X(+c;#4Q1Y`atW zx(PT{w`yWJ)nZF$k~`I7CHL^Vr}>q{y}jzNi0sm>B7akUwIh-BgkNoA9S)HdCHK#- zie07kb{37S@~maOvu5$DX_RgED_=JOzv@;^EWf(U(wUH7nM?f#3apQ*d;tI0)|}qY zv(iF>X^Dm!a6iv_Z;Vo3%d@IQmhF6jWn*y4S9%PfDjjIjU`)J2%bNyiJ8o z*S4@qvuS6$v1x~gg^XFcVXx&}j9ccX>ihIG|GL${!zT9eq>Y$t0+7CIaKw0qm;q&@_6YAKg-!Soxjd=_j!}fdU-Sc`U@wV^YQuV zLatSw$+a5!f;;K>xt#SEUI@LjV%B1nKwPJr~k@x+61;b&tZ3kf7t@&zMsu>5gDgRUo`ggzm91}qWjhAjM zJ=4{pAp1TW=zHbMR1B7vb+uLAjl?`*X}od()_5uh;y;1HDobfSXieB97ueEL>6Xe0 z$`Ijfl`$&tho}JSmp%yb!inhb3l=H|Q;r`Y2SIF0={UcQX!(1oxma#(PgPbSn^afS z%Fo(-wVdal%VE*GgTuvbFoBpy_xf3B_!pwCcq^%5x&9#%;>-0v^V=GEQ$u?wKxW%a2FeFtcvvXcH>PUzMDuGLQ~*NW~w zS{JO<<>M-uj5EJpa~?k)EPj-KABr6Gy&?SF@-wZj)n%H@MYp|2+)PUx=R)-LDOB2JCaW!FIH zypV*1URjO$D!0>r4x#_tLH{|_e_Dg57gi2q|2>@j_Xzgiwd}t~vi}}M|BWDCzdh-R z_l7LQ%Y}!NcxBs?5U-ROJn_B;7EMOHZ|IWf^4)0SrE205?<@QY9#!I%HV6@~{6P?} z_*2os-}&uNPQ0q`mG@II-NgG+B=(zlMF%+Xeg+kE5wG}N67Oe`LlUoSBZ&9q)ZBQ) zd!&k_`RY;^^Y;8*>G=PO+7eOk%Seb*?-%^mcDZjf^~%nHdU+wKsP_k`lvD2y>4{M< zd&)w+etS|=uahqpbL;>~YkWgsDFf$2O7$WZGRDI*vyE!DwNVw&n}VOWe-<;U^_dw= z4>mrP|9fS5U%3`&pN)o(i|p5U(=F7SPz7I=Q1j|Bz3-e6^d#l6OD+r&ZP4$`^XmhA z+0M|Yk*zP>At%gqn2!|1XT#5rPJT;tGFBsmu+rACevhL#wDjK4a?P7TK}SKzw5}+l z`{yC=;W6@7euOI-Sh#aLB$N>lt-}H13-91SLl!qXQHa;M% zqWD75)zw`eyP|@->iT4Tt-7nLpYDqK>H1z@yT1SDRGoU>s=D`f_e_TW$L|N+xqa)@ zsdG-9SDmUN72Q7438Jv&fY94w05GgSN==xW0oi=%UbtMX0mW4O7E8Fd66$#>BXGSM zpKTG>A|fS{`Fq9p^O3Tw{LRUCOFL7JcHs_=l3 zA>j`7HP9v3>eu2E)9UQ08?7#}=~$~DkBX^PFS5OvKE1BWWI)09PeA^xY3p?X!mHUi zqs9U`;yz0p1;_%!tq-nA9WEE^jUx7+)UYe`fe6tuUn=?88;(5W=EmJjpW2Bd(_AQNif=>g7$f7Kf<+Nlkg7htYfV^w zN%fTNbwyq|*>tSz9B40uFDt_b5_(@uH0%5&RDeGLL_qs1EIHHF2;*_Ux(D_w{%3&0 zjn|jp$uwT(G#2LTD4)Ji2279?hEPZ9`T~!FS-p88I2x0UW@T>~F0BW>!c-4lY>%oZ zDp$+nn1&WgCgayi48KmOZvH>?( z<5~f&jTr9~xqg<5TvS^AV{9Z#%j1W%zFn&}s%ZKXVkGUu=fDX~b9m|ToPjxmuqHZZ zkl|`nWw%%1K~Ahdc>uqmPc~}nMDg-J2W+_8Z)WT^@k&Y4uHLC3hoQc?)=zmjS7`SNRNlVqPVC>cXoePp#9nu}!7g6x?24 z8!Zlvm1?7KI;E%Vp+6;CV1e;^mhG1uOgAinWm@K7oo==gt*1YgyT_Vc>1$|BtA&}9 z7#mDXVl0ZlZbFkxxO}*VHYz)qZM?L~BUan8ElgMP2W7urBuD4+n8U$_qD*`Tf?@8V z(kyWaUiQHIY6pdqyJh!7SEgH*9JEOOz81a(Eyv0z1m3{sVH|?b2Qyu;{gZGxJKWL^ zN81*gWvEzfH6k8dN03h##vN(nl^Ps@I}!<=M5J%}mX)f_dITGWCSe17Ypm3YaAmI8 zD(#Mj>XX%B`Y_s8fxP8p3-;afGSsO{?ADK_{Hp95DW@C9E7 z%MNf=s8!Idael>Ey5u4gs14vj*ZO2m1%nz|>$w`O|WNd+zbIUOMO!cH9l?VTX z12umh{G;%7PDgTG{Ev<0JosO;Pt#>uKOBfyt-n&bVd2g^V<}=01j(|5JU}Y2LGZP662Zu2VKE5@)1H${4#&ZNexE?^-*dQ+w8=3u^ib$zqU@LgPR>N}+uPI^~-AtN6q;GkfYn zGb?;LPNA(Es={$!R?~@XCeX1l@zqx z4%E2-ZA8+S{!(K2a}p!B7=~AFek<>mEm!rQ<3Ry4=6fy_m zQ^)~F`4s4qtK%o)6H~|RsT*}HvFTVHZyu^Pi$ib*W2I^_XiO1a-qgX34w zcg>7~1|c4)j7~P-$eDVr|6JoQ1J5+2{RBf3XoMowJp(H!7h9s9?nz%^wXl2+wt_e+Myi+=*B1e_qtyUC?#}JIYI+DxGIf1EQK0XI}=!KbE z>lSV@c6UH8rm-{VCQP1xh6uwa2m*%hd?IlM!}oO3Nw`7|=8owiuy$aZ8WlLln7ssp zM_)xFlQl4I^&0HaZB3ECFPaIy_Y$NMo0rp=+)kOt6rG2SxGB0z(!`plR#ZWzNRSXr z5eL$NDS9h($xYE;;S)1O?5P`5B(dq(6g?5nt*?TQQY=-g+ES?%Dp*$O)RgsgCrH16 zdh^T}D1o##%zo#Jum}A#yR}iD+D;hcck3sfOk6JCPso^$Z*iBXw z_7Ady_Tz=+mStP(o-IPz`F>W4>pvt3^4mK_zWAF6rYn2r1g6=$_d^f8uy-3$Ck2_l zKR}13>GM%jSiwy5O&CN$F))Y^6Av;N!~*fV8G(9a@tUe8VFs^65ucEN>XFj#h7*~nmgE8YkIxuGIp-XPej>RWt%-B;m#!O<2 zr9$qF#0@BpY(J@Q3CC}|UOqF%t68t^Ethsz%l*5=6V)#zQB5;c+Z=OJjua%gHnQUq zNPF}}Tet4nC+gPJITnW|s4S%4@rx4kGlF6sPNbbG+qP#Ty{-J(DvN}SJOynx^HTW% z{iI5?;2xpch@dC`Ly_=ONd}ko@DyiV1dU)Fx-IuK&fOv4!;=DjZ5a5g5<7fe0=kEQ zt74G_C^-T?|3h`LC)~vsjV{`2nv)X~u$oY8j+Yv(>n7`PF$X`(5jP0(o|VP27l}m< z6Kl>cMI))Mm7H5?^94-@*r z(YM@oE25>e?8(@O$HMPd!%vp5^|0FK^SSV(YM;+wqxCVN3wkVd7xy|;pb^|~qh%xE z+7whvWXjC)pP<71PA;6O@aI3Fk)!YjU+ZpOYT?gHV+=xathY)Ieq+H8%K;Sw{hHzG z|Fnx@AnizVWQiv=d_XT3!kM1DQi;?=5FMzGw3~2(*6oB&I^F<{ zLXNx6fcOyj*tH*@AFiCZS#1-1o|U{{l#FUDTUwRww+$^)k*cx2ks?j_DOF?P#17>R z@KdTg{B#DWRE;HcnN%5x*v8HcQif010Dr>*r+#3u3Aw|Aq7pu_pol$n6BKdH2gB$% zDB3FAb#d=TC@y-UNRox)A{~@BG~zyL=(MMk9oAn5ogRxE?i!p>mF^#v#=IWbq-$hT zQ-mXuy|Qilo>>wB>XZ{(Sk!4y(-xGxLQ*0}P;wVE$`X{kJ`CLLc@yxALCHJAUE~T% zc+Y-asRt!@auReLlzbwLx0^H{<(*~-O1>Nh?+!{h_&nnee`^LMYR<(kLhS6IRNMjOy)9pu^4&*)7|{p-5^KHp;$lVga6$z-2(`QF|v4ev`Tr2tRV|1looO(M}-N znG%le!2#ym33L*`3Od+uqAXlpJai!b!(5op+C|3knb0)mK+V4sXk(BlHrL4`j~rdtpOQz80+P`qU%@`@VQyd~*Vss+hp*+R{J)@m&m8|EKyy$+=6YgTw%vQ;B^G=IQ7!W@QALmF6d4|7yh>Q zcjX=(c7bUyOf4PGTO1tGt?2rA88+gJcGt@B zgjDtmyAQhL)@(mMF>A)2y0B&nn~u}lQvFWU!J10DGl;Pa8;+}m}5>y$j)f;8@N3t^L3BtD7 zK!kDgf1swu-6Y!XsS&nrFO_ZEvzRNEJv+)vVMaE+aA<}8DgCO<(PH{lP+R`3i2F84 zAgA4P8>R=LQI=%=Lt)@oFK^NXGp`A33C;2&`y9r#C2hAz2(bQV4_|A;+x;~zLmpKU(16JG2Bo-;pcDeS2 zm>9-8H6b1dkIL;@y^f=l>RP=k4BX8X0-lj8{}ApX7gu=C9dczQr#b1f1WT5Pp9MeE z3&o7Dga_kh#+NcO_NLJMzVnYq3|z+yU4{J-gAfS$(eoL8OGa9njM_( zN-28xlUy1G?`A6ppJ)8xZ_O}Fxf<~>&M7+#yBJ>fA`EkF|Ii#bs@$prfy~Ua)5{XU zmvM%3(g)Tu&SGp}*yFirX$f!Pk1I-Rts`_gV16p*)qJyqDqX|8!={Pf%YZ_oZ-pW-dSZ zLML>fKDsJD`Bo<#e=`RI;(vyZbCjQa8$Q>|PeSCi%TH`+^&26%aJDXfb;@AyQ>uc) ziJh_hLxM8HD5RT zQej#FPeU_9vzcWYZE;XF3v78h|{Dbkfz)+6(`{`I|E7XMp_Zrozt99;tS>%1o}xT`FmlBa?IyG|Cc(T^k1O4mJq57Ka7*^@qF26^HSj{c2sW zg1L~B;C6YmL3gWiw}pq{j+<`gIHabI?hXTYvw?tTWWyW6UF2c|?>P?}!rz+Vpi&0$ z1&FjA4)(*#=?Vw+S*CVZE>5c3WC?5tDsR9hi5|=xZBbaaLv+&63^SiUF5Q~yyvj>6ia8zISG`*lQZ%B)G*#| z(wxUTRV?==o}U>8?{=U#_&nnee`|UgYI?@Y5Ift`_&H49UU(Wu`_&gEo%cfbrk9b> zNW#M~Pen4cndV)H@qnHE6)B+%-o*=dMnff7C>oC7N_E^CEbkA*`W}&Vh9V!hQk~xq zi29TrUbJlE1y8%`FU}vp6OFK>8}|uga|8!>w9`TOmA!DGu4p2zS%aZud5j8wfI515XxIx&S z?%F_My5lZ`896cd-InO5pBVfBtA*v{4;ttBp$*#wx(d4qWmrXkkJm@NQ+Cjvm5gQn zl{y)dDRhl{LdzxID}D1hIl}y|r=m{$Sp>suo0h`LbpXB-n6k9-TcL;PFqAsEcsTwe z=*eLy^$&f9Qu{_Tl!7=QP;V!4XE2l-X&&=M+2-VKuCc_TD?9XFFgVk1EOLd_ zZ^K61$oyQ6!kTfGd7`jd3>u6K2hxF&S#gmtGAr?k85#D}jggVqbZlhcaI1+ahzaq0 zIoRx31gE5BU#TKDv!)(yl?3HCG=Di842=unG;4FI;i)De6sqODFkk7{ac2I=Z_iD9E`+n&ALu|o3xeAFgyKm~xyRD1eO z#c2!KZ-Vmlmm>Aql3Xs+;|anCpi!0}{NgZhcce+cwIDpS>hPR!7rBCP-m@}y_92JD zDZ%>HCvg%e9vouMk^~=?YrhL_81EEMn&C0IBj`FuD0KreDP%K)8)3ZNr1^JFccu2c>8T%v!MoYY!RHx&_**kQrA$_Q8e(Us zr`E&EUU=Q+k#-LA%w6y07u&A4+g=O*+dR@P308B$#qdCZM#KlF6KpZT^SC?4K=Y zVa!N$KE*Kef2xa4{2KT;M+Nj};q!FS;k3zIVE*k+MoE2iRbc+hPCEW?XcRQ3`bn%g z$@}XZ9f;^Lf3Wx58F3t5& zzqE_QjB#F&2fUV?5km#f@iH8B){_z$WJq3UcMa^0;WlZy3|!nfAZBSnoFtUmK+W0* z37>4y7Da`ZVk5p*`hXmdUkuPXlI0S^2g}8QBurj<3GyS*CAVB3!Y5|A*i$!_OJdWp z<=Re4bfjD!ZjHg^bfaV3dhPcWBcGm9jLZcq3D0Z0xE2Z3!t^JNL=rx;5~apyQ&h*O z5{#p~gA_s-_(DnDzme3qr7mnMz9`$y)G}n)R43_|yd7u>+Fhh5r;=LRGJnW)w(gJR z_;VPI|AIz_(O9J8v$ie%R4n>kxEr_e;N4_19^Yjs`L#yUcqq=t-$CqbbyBITCg9VC$?lr?zc}7_5iP|snjMWTaYIQcY42N zKcMaa^5amldY+iX9kf)Ea{`dW?+EJt0U8EwQfBp32C{FUF?E>yTz+}EHQA^|>?T2x zAJpF|>YbU3dX)Zr5;n?ySI6SoaH-KK(YY0B(IB!G4d&cfn;f5*>Zi}03kXMR3kc@t zuC;_K5K+FCAdygGe`av(`PLII2Ux)bh<`m{5Sr#+Pgn=7jP-<-2JsG{uv;q&mpE|r zuPi(rzRo$X;BIC|7xomSBnJvn#w5p|Wq?Xa4l#3tsrMTP%}o?q&fO^8MZ6F2<1XT> z@rk*J>?x0nc<QGu z*nu_dt*$#Ole6dn+J(nxY#igp(9=l)(Z^xnaFVX$vEgwG)06g@(iZOp*81l|*opjG z*|vS(%;bB3ef>z7ro#pI5H#sWuFy$r`;v|yRg%E*Gu6T0gXZm zS5F*#G{d)M;y^Jh{s>~ne82doFhR`~y|Lq-59RzDu03Fvn6dSQ7Wm+>g5O?O9Ip>g zR?E%pVpie9cE+Cr?S-&Yr!st??Z~M4IAyL*qbB1VB-&gmAzISsUS`Kl-5Ah@qe z2r999Vvs8NJk@@H6;hn0ZZXzH&w{4;Jylc_hNpUrn1?RHx*XT74wU_l>!u*FoO5tp zywTBx{V6%FC~X-X*HsyylH)3-nA-=nQK9^%(1Y$q>5l6p;Kv=;z4*i&SN4?0aqX?Y zx`q5UmOx0!Xr>(`#r;PeQWu`7aY;PiT^TSOQ%lfOJv*j%V);v z3}-G)J}{3;+umlTCbdN_^M_11%eTmpI~_{*Le~S(C|}O<@50@<{Z`(M^2=<;QTJP4 z$56_Xvs65fUyIn;Im_GOWe=RdwsA6Rax&0b*O#F;(?N8KyYLE)lUb8MHCIrK4P28K z;V?70g1PgI=ZIzd)#|1GB;HvniKMGnyV=cdp;9a`ZV|znh>@KG*LR;cncnAMeIL z>vh-f28NPftt6ML72o6Q5j)%U8-ka;aQ%!cVLeli=Lg>nJ(}*HSM-Go=vWK4@g@xoAhO;AgPW zF?*3JM+PZj|l{ZhwYw1y9B&<_fZ>gXaovHGL&s zFXSs=Ogr(#Fh(3y7fzsKIgU&bVJV92l55Y0yGA8!i2Fz7`#lYK;}__#?{~gzJ5wiY zg;Rb8!KT;o8=!{JmEa zib7rcd8+w)GjuRs-f0UIKcFZ+&CcFCauJT4y|-bb$Ah!?Nkr7^?0q^o_I%FX#{pJ{ z&fb@xX?|x9r+!Xn?;{Qz{m$Np;A_8av^_X-_CDz7!v2(;Jrtsh&fZ%xKqY5S%p9Qz z{Dwet_Jo3SH%fQ*R$MNey_NXHoIUn*@SMFqa*NmzFX?H&Q$?{GXzm-}~tn6t30e*bp_XqgI96u1Ji{VbiHK-^1cG}FJwcqA9y$ekO)Mvn(~?iNJU>(1R89D6=@ z?k0fMp*wdMG|lhM;T+HD&fVa^(eKXfgRgVDb1g>~9(N9fD5E z+NvRRnY&TCJNF5|kGpf9#3$y?v8RLQ&cSZKN~;2gIrtWAH>G9pcyq7g*1mOSvRT#o z=qQ{U-G4Fvzc?CAV3&3jnsHm4Ajwwui8f0F&4e9NFO;GA7I4@2LuebN|W>I1E0b zZHDlQpE2KnV`<=cGq~EY*_@PHeWwAklA`TlDRR1u@xLQkfVn`SK58E_`&!OG5ERZk z<3Kt%@9YBTk{g-}@rfB4_SA);QP^~R-q~@(SG9&)Mc6AJY0-K#(WpbD}g<9*E>u(dM(yhJy?kn6>RCqLHR{OO`aJ-ziwJT3G6C(0QjIb`$d2L>P^C z3SKKaXwMezS=R_IHCY5F6l-skrnpfK#AVXLHeV4Tem;V+4a2kGWiJeaTkyDLxEuN~ zErT{pG7a%P@DZr1v2#H|2~2^B&q1WK*@5HWut_-Fyi%`~8dIq6d8og))QB2j4dhj{ zsoyEeznXd%p1CEXZXNw>Y{Yf+D<$^fmJ|qx!2$_55TA}#Gq9}36!EGZpqAeaopLSx z9(-b2nmu)+r6oQcYw2~v<=vB`zIb3`iiXCve(iko%xGt4Fu;Zd>)3eKbl~pSBX!Np zDB%eM77{?7H=w_iNPdPy$}N&%W$-E4wmlmtHVxkYx8(?3s?w7J{tsxB-TVLVa2M|M zFYh9o_y2W_1MVbtZL9r+?yE5KWiCWpBYTJyp1OiQSGOJbsv{(FoiT+uz?GO*SXtOi8>~3OxMg zSbefOyli(F?q-5ZqwuK7@p7|S8bwgMA&Q9hVMI{gUm9vb8)z|F#~Y;TH4$uP>-e#o z-_o;=)!aWC=c$vJY&teZX8`-ljd6$>i?wp8QEu`ZWx4MVzFhVxX_hJtu-A-nl@&4~=NR)St)oI~ z$H{%sRdk2zmF)k?9SO&$lS0UTmQR(mUKEtpu%)_Cwr#(DW^B8s>^Tc@n7Y;0G}k!j zPQjDPYR!j_=%qRvZ!W*n4X-NEZ#Ua5so}J0Zj4M6Yz|5|9-fO zTy*C>=b?M}Tk{x8rD5Y|Bht3dcn-Ymh0nMxm&qcBa_KW|hcb)l5#HwZTwQ9es2~Km zO6L(Hovx^LjN~S1Bv^`>9150xpkxHgL;Ce$~vxAp+52sRb8g?4E=q zNB>UoIDAg2S>`neYRu`mM}2#)Y8NP7U8cSgR!e`SEYkxZ1OAB&V$vtW-MF1<-i=?Sh?TY%f(d^&Ln%+jQt>{1 z7h-37pRajVCcnoQDit6(SsST0pi&-u%szBH zYY}ToUsPJr?$Xd6_zDuFBarHhnx&C)w68SPFQ)WC#6St>&xmBg9{Ht6%W1wE8-dIK z$$uPWv5 znL@2JUf!{}R^C^{r_FuQ-coh49PNNol6^(?yd^3%*@6vW>%a2m&TYMu0H@ zk-zSX>U)r>$dYA@69qtg0p{{_Brfa`5`xzk`Qbfw^L=7i@R(s>TD-peSt0#zdqYd{ z>-8~lZvk*`A-n-)wzR!WaYZ8ozZ>1m{BKAls~B^JFO?h~n`C2{L~=ToD3cO5hsJ16B+=BuGYYvF=95fpMkn%yfg(@8^8+6&=4$wFr{+* zM5D47R?CkE`EFE7yQ@$|g)1Tu!8Te=F330sYv` z_Y?5PZhmbTye461BOySg3jGkTJ474Cd_Y97du~x{c7fF_%$TDACeRK00%=^^UY!`6 z5)>PuFdt1pS)?(?=Ews|+2FdjfBU$?jlj_AjHhkE>w-ZxQlNVWvSD+k#1`X5*Em&Qxf&_8Z0MqJVqoD|WeHVmYX%IR*{i(1= z_=Qp-cd(NB3P70$-gn~@3%uD=7lAh!Ff3i^H27XuZZztR4$FF2TYt!XFpE?OwY0Jx zJ+$VOVE^rl#+#!%Hg8TYw=N{WRNlk?QiA!8pkRgr>c5h04{CW24bWZ{U1<=8yalyD zr_)6(i0W_Gw&^cLt$&gub_USy$o3zhQ7C<>N45{MZ?$uW7jeE4`U=tc@Lo6~>{%iC z^-hrd3hy{|E%Cp?z}+bX01`V+%lbvnih<@)myqefM+N@kFnBjxIru!|4}WWh3(5&T}(6G87o-JjXyje zT(L>W#?di2EW5`O#1oD3_KA8Ew>>~+5cW;;>y_#dR7@=!XidQ#$b0q;M9T&yN{!Mu zd)~7T_rzneu*~mD9^_he5HiqkaTDgD8A;buXfs2%_B}a)4-ea-!t2 z%TQEtkB8j$slQTqz9tvhsV4AM*l2xB=mH1ghX&N56fIgll6X~!KazN7M)XIJG)D#8 z$r?Q`x};t!Q*0DJsx@v)_feGmQAp9bha_xC^}CQsf+$y|$Q0 z1OAqd-vS(fkaqruBKkjD(899*pB%GKG0gm*>eo@X=S@r%g6= z>@Z#e$g|I3QFFB1IuL&rV8_3MeqI#+9{wAndXE2q{a%OSc?^6nX%idcoDWPA!(`8D zl;7!Ol$`$Q{{qpcgb^NPNI{rB{3gvKg^2YxOALk(N|G?*2$%{KkwgeyF2N)IE~~T&Ou&#TH2DA zX-~3_OcBWQkU3q*#PkU8XB?`1fPW4hh zaLt=N__`dSGlT5T9()BFfkn%ZJ@~IMcz5=IgZJwXeX;RN3>A~7`i#YI&Fq2VY5YaR z&dwe@3@>|;Juub`iG@6Yu=Hv>fgr_J9W zoY_vgqm2;L%S76X8!X6l86mjmk6c*|lm0_&Wgp$D#QT7Mv zk!WbL*{Y92byk%X4~pNKeT*-daft@Gq8P+-WGFX;BQZuwlU1noWD9^2T&Y@VQPFq- z+<>#Y>r`{?H&{$b$4djS#RA};!pK$1nP9KXl|C`sxRnsu`1-Yr5~4Ul z9FM(dzRAW;avF;-FSjNeHJQ+me=7_x%ta8&W}JtOvhQ#_jUB02Zla{Hbet}E@Z4Zn zLh0W~gXFIa1oLg1VOih>Bls_*=k|w*g@wpjo3|S5()1M zk7<0B>|nO=&N`)WiNPSSfa--(OCOM2Zw9bhtUex$&V3M zBK<=}`G2MUg_g7g)O|+d0c-?x2K>J$@ej8or7VUEF*^s6jM;hiIe13nkDybontzN> zOf|EoE>yF^r{fZ~V?fkl&BPb9pAZh(d1Jq7zGY_0*qo;{3f$5Z^HHWcM`FNsiF#u= znKxJ@VDcI@@u!l^#n+h1)|9WXPM9y-wr2&|tV*>-oG5(0suC#UwF>Qx*K6^32&Aay z$R8_5>(ZW{6V;D~Mj@w87#S?qTASfpGsIU6h>t+*Y^D4Mn76%9%KAz_2^3e!XG5>1 zN){3(0(?uKvxzI?dx10zeh%WFO+y#2z(5iXKZO7AARi<6#t0k-&Gv~6ipg~WQxt>C z&a2lpLmUA5dmkRi$O6$m7EKP8hKGwIm2!2siB$p3R=GrbqA-d)E~O()I4&ggg@QN3 z#ML%R!iF4TqN)MB)Bo;x2?V3bf%uGOAkqB-=#rbvTk(mRO!m}` z$&}c1Y%))R1>_=6fE8Ko3!X#Y^jXk93tLbpEU!VOSS*kPuV~iH3A+H< z7Wubg#Cs(%bC~A8g+`z(RpsH_9ij_(QouhF2JT)tAmFMbb0HI6(E=0s55(F%QbC3!)=ig7F!f2)yvKRgomO2~IO8mYYabr`st7X)1KVgYIn zF$DgH!hgZFA%}P@7bken9dcrs(rgJnEWqF72-qKL1na{iaC6`&Xq06(oD>G`<^Ta# z97vfBXNEh;#RJ}Vhdfv+ElPp~^Wi7K0rspIaCsPgHv=xo$bi8xa5n=8cxDFF!ky$| z0Pnj)2COvfc!CLw>1V+R`L|-m9pRz4nQ?1IX51SF?q&u7&&-TBg*(Z`4BmH#%*eUq z{zw>aH*wz2DX+}Gw_yL#FnBj(Iru!|4}WXMqqTm%WI`_1kFO-Ww0k ze*h#h!*h>ME28z|Q+@F*GI$pw#Plke4C?_T*Ib1+2f!Q%hD{29=rLTNDDRa7h~mX zZF@`hAt*t%;rMl!ECN^;AH&cJ=b5M;`6%{jYCZBf6dj~;LVU-z@f1d?^-`-3%W}53 z`67Z2v8_P-tq5?jMab}|h%ZlNqk_C&f-m@s#h25Adn!SJV#cez%)nnPW}G6Jk$nh?8#cU5+<0Zr zxp5i=7&=Fi+yEAc@4T##p^4C1B6Lw>{-j02Of2~)FH7(jizQnHOEQc>;bjBL#ETF2 zoEPWp*@tY{IXuh`Pc2oWJ>{u=ut+DjUN+$rz$Utm;83aqaQsYtf(MYMnfC@5 zKeOnUi5)-kvIBpy*l|`@V^IvUL1$vnf8}LR7%FXaSepSVRk5M_7b?I(-{g(p0D>Po zkA0f%uP#n6Kiph2*%0QcxL^Sr1wB=x=JlkV_AQ@0x)FEMf^dr1N5(R_+9=kak!v_q zYIqtnN?R2Zw*s(F!>rHAq~)AR%xa0mjqy&6?#f)FBW7KWjj}UK?E-b|XasN2-WVEZ z#!25+mUFi!^{Q_y!(cwS-*bfVCoIIo^`Q)(64#N0xu#}VK&Ze}M5AJnJlsgsGFd5q zvr!@552&^SOS1SoUy^+tKCvZP_SD6aEG=qwT41_;v|enD!F}+fV@2a=TW8{V<)ls+)Wkl|?+16`0a_^oy0e=t%o-60h z`!w~IUcjTT$9{qj{&rcSaJY+&2|gT}_)74^@r&Zm{K3!+@szavDIZ-`&&46$Ylj><#8h$#-mK7n7h^GBs!^R09+i7h<5XyrWyV|(2JYqv z0aqOH%$O^}z;p3~_t_~wOe2%v$5Q#bV21Waabi3?9ycc{898x77`U4g1YB_9A zFMF|Sc!IvT=kw_3a?39Onaq{LfXgLT4>x7$KszN&j1~g?cj3T&<-gV`VgIr-8ZFoG zQUKUO$}aw3cM6T-8UM_w#w!HauHHrsl0=4M1$S0VV0H-ZHG;GMVGl5OT$jOa--HRp z8!lLe75b<}Cr6cXVcRKNBDl0j^fz4JSA&I$5qt+eFdnSIE~sF&UgE=L>&PCRqLs4X%Zf$UkhsCzgL; zPX{mma4hV`ueD&qe1{ucMRRX<;h=7kRM@5Mqtf@Ls8-Xz!S!4a1U)g4zQOe(tA&}$ z7#nnMaK&yylSss!xWV<$We2l`clHKXgF(2#RlZPaX;6;Bm2U`Vd=v%ZB7(8KuruLh zFT60P(D8Du7Ia}cU22eGgX<)GBR04SJb`~_A<91g$=u-j>tUTT>+qP!`wXA)x z3mG-|)K!T^?X7-*)?9h|Hascfd|VFDrCG<^QTa!p5#*&*RK5V&B6JAQbo`nE?V%Z&E4IduAa=G*cr(20g-y^8;AT?E?ZGbqylD@(0E>8A z-sBqmte!J8QC5JtmI zj8OMd!2_G7mhmIC*y-1$-E{x~_GPp|l}hl;uJHux!ee;3hvK00t)%bwL?!p^*VFZ~ zWO9A{7Hq^#(QhP`{Q`z9$rK5ufGOfYe5NR{vbkorFhqyr6Ej5YsT)HivFX?lZR9&l zOU)uXAG)A)GfDzn=GdCra-e-uctz8I;Wte$nidi?aHfX%&vf+G+HjI3!3|Pw&1h_kn-~IIj{>#L_sLe z0_ikMbCR;S{RZ9e;Eu{@t%xkZDh`mBwu^8VI9w3!i>({=ONebHH1 z*i&p)MvKh}IBI1ek{?E!&p!KFHqG$Vl;v7GErPg@#92&-^rY7ttrpfaaGN0PCaVd$ zS9Z{z-3+&k(h8lcLcN(Ul^S}V9AtizqzDxMJ%V8-Njnnau%twBbX1t>`=p?Sg)0p( zVnEhgHKNZ1N93tm`4lwDQX}!TFmQLEOTe|2`Oq2r-w$_@Yh|AIoGt$S7$bo-i!@`B zjDMZ{SDnQ#1BktFNsjbrELx0SI%In!rm%~6SU(p{pCa0lvk+tOQ|=}iXm_*&t8z8qld zwdpuRleOubHs&}3cM(-O871}6)ukubchd1bXcSt_*2x=};o}^45j_t+&q`hpJ>xDS zTk@2;9@_{`nx^li&R7?pnlc#tl(q)ov<*2}_$h4&i84SHXHUbYe7=xENJK9-<`nh_ zEiN@lqG5qkKafa6?(m@JA$(#%4}0n+=;3+|u<1DH*~FsWYIWBY=i!=&|HxCkuA9XX z?t8m!F#fRTB{LKDcvgBK#McIUU@R@pS#Nj^W@|dky)dQ@dt05P178SA{-8APzeu^v z?>&E3wr$Tc!deSN^Tg5j$2}j;_TB(m!qOC?Qs5?Vo7AY{|G)v-X{t}c%U<||>jK;* zzwl?!m6@qZvQqelDZ&C;i=7!Qh6DqBl-TF=56va@4bLjWX(iREXdfCY>tbV z>|_(Tz)xEC3|}hY`wd|rLT0}$m#Tby{Ap~&-M?SU5rkWkDis3;Rmy=RRVm-a7Eqx1!}vNe`Em@MI)*K%*=fiA%%4-5Ci2t}+rS zC+=Mv?j%=Eg7@wBJB2mDHTg3c5lq?BJ-uX3Ldjly1|n_SpAGP`7xw4a@XRC=bR+a; znjq)26IMt+xXU5ATB1UX4QR9xhv{2Tv1;RwgX6$h`8(Ebi5~C@Y*Knch*Q5)!hHvI zpT`Q#TD1V=yiJiac_vnRxwf%Wol*+MJ4Lzsb5V}cBKKjV>}A_(_xhNc>_^NQn3$R~ zz!LFu2IdT6MrsbfqsmA`v{%D-{Idb}5q-09o;nvSeh3kwk|}m!vKrtAf&(nX{QyT? zG%>Y}p>v?DPjB>Fj)#wcEq@QNg7Gw*$Uib%A36~KVJ<*j%KjRM9UKSZe}bm!=H&K5 z-jOTbh8y8)2kwlY0$s*9b>p4b`E~I*h$tr|qQve}UJnP3aX;$a4%FhlrKo4jaC+?H zFpzh`*M7rlwcyvdt&898=)(S#0&o? z5BTxG`w#fUyhZlZg||pPSEqaPw+W@0acBN%nZ3o@NM)2ZbVGJ{(Iu?|B_QS4HV~Or zD21Tm1sy{k<1V*d(xDf?V;tH;1E8JuaCaW7$Du!K-~$)ydwhQ7ksc}t^Wps+b;G?Y z=D-Yve=wSaYc0y=;7ns5b~F!@ZQJ+FjH7An%d)oNdx>KEo7;0TfRR-{68+Ew0QyAL zQm)WH5qvRUDn-3b(lLjFx&<0#aZsNe2JUuH3AnOZ!Og5s3wM#rJ>@<7^_%XVp2$gX zyIdY$Y0RSpQH-@{&#SGqar_3<4 zSb`ag>1V+U`L|-lE5k!^v*MnNtavaC+|3FCu2_*0xV<;rNiJsazVk36{H<9`t#o;O z0wQe(ZY$wsF9J9H3}c_h=9O+=h91q}&1=_00H^Pv_5jy{I5AE%@x&)*Hqi>=UaxHy z#;we%ItcdRK#pjI zY~K&$&l^u0;m0aEofB~{ZL%lD;Iy9=LKEX$q_UM#CtJ=A%V-L85lNL|FRJ6$oXf^4pO z$P2%UxWwj*SXJ6p!4Zz1^EYK1szD(S2dHDR?d(Z;>IASO(+$Q-h>Nu3Mr$FD(In|* zr!SA(Dv6XM`n(AmWr;pt5eDw|vI%%*FZ=c3PI7tKyl=lw(&Nt?I1v;x4x^LhwYiYs zh`7RweIw?8`BDl0`@k(-?0vdvsy@-IEOIMm!;L*>opf@x6aq3AC`8b!Z6i_Yd5n}`Yv`oCo67@{s(v|KSEoEqip;Ct9s z5f%0}#T}BYwTx#DA_i(g{*g!~{E)E6Ly^j?S%p{pgZeFYM#Jxv2uyQ`vSu{o!P~wf zg($1B(QFD)`Vk>_h;njpfcZj{K7iF>h%x|8^M@#?ZnA|a1qW*W5aom*QEaZW`LZtF z;ON5sltL5~kc=V9$_!8`L=m$>%yPdO(LxlVP2G*sLzE`q$3v7BKCuvmJsrFd1!`QW z=!xG*;jPL_t#LKMbP=3vbp5=*o0tlhaUmv1S>t2~Kli#gKqBx8vvzUiH-vsC%LF{X9ZLLGIwJR0TlG?qGWvqQVV{O)EBS(AR){I?SJ|2`DAba>QMxZ!gi&)}a1fuE zFUXz_o-epnI!~?A?#XJYRjJp!{@@cc)?I0!y6_46T|S`(+RRud{lddtLldbv_m9dy zoC->HI6plp+qUnSE&icKx0&}5UoHuf!$)jGqbxq+>%zd@J|Y3n>?6J-+(|AUk@xLa zIJ%GcB1QziMoapLO8DYC5NX>-oPd|T@DYzonVnRt|5@nH^b_4PPxy)(Qow5dq8J|d zI1L2`z;jgV8}ox(|MU-)y7)IjKv)Jp$25;|)+z^}=$8~lr`c=#VJ^~<*Z6&G zG@HD}MHN8E?KLjJpL*mqE&x~^dX0xc)BIi|&fjca;~WQSey{QOxwuYV<8Po*X!JO@ z$ZJFa$>=qHHv?4i8pW&-)7-DbHLp=9CwHTCukj)vEcY5O#wX@AvZsURH69NK#I>;2 z9Z#+D9cZ6&D3}hy>m|1Dm>CBO9NXk!lO~2~JLC29bj+5Z77AnPw6D|DXQM-TkGN^8hW z!)WV3t8J<=s_6Tl=F))~YP*wo1E(Fev?=#JIb@e2^z6Lc*7`Qu8L%>y{Wt9zhi-W_kpcmK2GZqqW400Z7Zph>^e){xr?P zEJbL$nw4=(J;Nc7P&>v~vZFejHqHJXs!ulH{Kxu8)T)e^`y+9YJ^T?3S4Kw4c-wUa z?i|D~uzd?4^$YQy7T8MJOoj!{>3z&PI|1x!&^Uly$#hR4{eXtdr&hi=7r`joa|bpG zW_unPP=_bL5ds)-#UDw$GhNh^haq$wsn$!aEz!1Z{NN5KaKsu&TsatpyDmZOPz>={ zbPzYLMdL>`xXkuY-p4dU59S&u9c=kVXaqTL`(R6at%rBUc@liM=7En3*|5YMpud#V ze$awv*&$16>1fM`7;gSg_0u8v`4h{rFmeAxwK7y`9k^5Fp5i5V@&g_w0o&ie>pu`b z0PbcB0q=zbcyn_6_F(A z{0T!cA)WYIhm|Uw%hV8ri0ZEt)fewEA&0RfIb8saLjIC2r}5_jch{LEcv|~`q?|4V z*y(aA>14>MO(vI|I=)%1Ggy(v{xXw5{*W;+OvQWxdEAu=fy7w9QOCQ0eIn`hJmq;?PJE95#M1dVGgQq6mDP7j9VAVMC&c%Im4$U0Z7hV z5)jq~v~DND8Gj^9i!;tfH}Xw)OfT@pzb`Wp_oISxZmKvzv{?^PkJn=SVz185)J+ z0X>g*I{Q{bO=g)DZt|6#cz#wV*zM{DI}zL|N<8zP{U$0Xu*)?qMH5X)$3pg_aQo;lrI;QG55m1X@&1fV zcr*;$%>)9jn2>TX*H^=xvV(|da~8R5-E346?PMfc!avgqN?q(gZ2w&rr5x{^OSQ(>?Kg8 z7mLIX+y@qasu_Ek9D~b=3%kE+{PCp-#x8O=#1xi{O3M}nw& z3LSPsqpbesbJ@3=zqwQjdct@wz@LQe=6@(mZ|nrq>v`{~3-|3XaJT6u;L3Cd&zgO8 zxQkqdoA(?x#%Q;&(u6Z0{HTxMotK4Qk3>}y@Tg)+GuGb`* zYHRdj-oW7di0E!h-O)O*ky#68+a3+G+**XBY}+TXQTA-x0=ACB@KAziAJmWEq#o3d zAGr?d|1KiLRUPk4&B^Zt2bk~VkZ%L5kWy*;59;AtEU;C3Ew%0}Z!>>BJus@~zAqq&yn&JQ`ng22NX-|^*$JX+Uiez~mHp(u` zbu4b-?if_i%7dAr-BS@*wWu-@Rp54Zc7r>dyhK$r>ieiUxm#XI(jPr-1e|U-pB9d^ zg|A2IaQ1A}C{>`)1`eVvHyZVZFf}vYubM&IbCH#Vr4Jf~rV2^`2@7%{m#`>3Z{OC2 zP$}8`kz689frZe;o@8_C9bi|%PXqB9MiUl=$FK6#4(-LzG&;#J^MtQqa5pHs)d-E`YSbSnjipv6&rT2 z>$2_aBCM5QKHNnz@|bUzN8c#VK9jfqVmWqKVB+!iZ-+)9Z6l&LbT(hWzU_gx|3D|0 zzK-{v>g~TP4BYMQ6L95Z1-<=$2zQao+vh#|6?2dQ3vjBD+$h4#+qzZEFnm-q>nmZr z-K6;vr@IotdDJCVt-zxK|J^Wncm9=w&oln;w`R1X^g(b|*XU!_`&c9#KuYqC)*5BI^% z0@X4bf+9N4YRg=%R!eUP2C&<(@OUf;&q3pBI@>h zkU60R=k{yO)>_T1B&QX(9}O^J!eL*mu=&NaM~<~Ig-Nl9OT3`Q0u(!~aiJ@M{N(?w ziKNjjOmwgO4Rl5BCwC!#0o?sI6$3+BcG`nh2P`PehvhVgkn4yoDLNGP3YMKXkPeoe zu7)mogm?`;u?UepbrB&dY&u?cipEQO%EgIl-G4cBN|dMo_@l)3%tVQpm0@FPfuqoW z84L;^`2I{C&9p%A9L*h4?FuEh0(+`iX|i3fP>|GutAdK`hQo4`?iieCls$W5mnlF( zlj*ON8@e|*!NT!lL$+N>s+iEfAYRe0I!@Ln@RJiI>@$Ym~Q>UPN$-YXE=!loDicvp22AZK`Q-urje zd*Iq!ga`33`XI3U0pVbyGz2d&(1%D`MD!wT>|@`sP?J_!D$QlExZ~fT2biRse<>!B_}h2I`J9 z>f^jGk@2wNbA(NR*ta?wO~@LIR)$EOtZl#J@x(jL2<)(Qgm#hq62U^D9@Pt_BhRQnm$wDG{Zbba`c$W`FDVx%M{iua%HPVKlOa_S3piGh_5$UVPnRmty z1vzRjcheg3AU0Yb6S~0J_#tg~I&BT_WOMu)DF_82jr|wvfOZDll4|f z(?3D?x&-(cfH;#h{UgH}mt3NP#&>+J!*XoMGf!4nfTIwKng5|M`>F*kj2TJMzcS4H zpXyQ+{}p_kW54>>;PZ4TlC&|T$R@;dx8XW?Vu?HU)J@`!TMWRaaChR#~!&UpVW=9BmPkW5SGZ8p+* zPO8Ca39V$!$68;HyyDRJv(iXU28q%2o2h2PxxCY5+nGACC?mD4Ox^;d9aqUJDWttr zc{%MR(?hAr=;_^=0V;WVVxmZSOgL=zWFt>cC@g=&Li{1}H z|7pF}G3fN;Bu>@sodZIF2+#-hTGe{PvsQb!n@rs6bN{Gp#i0#TCz+}t?DMUZZD;Cg z%RIEV9KSUVS~450pK83AKH|n(`GV&AwQc#gB4j}lBZo(L0yN6%5k~A=tsr=r5(*lK zLU<(IG=ZRjJaSP)CXi8q3A59&NxLbXXzlgNJgh zZwl7s>ihb3S0~Gm1Q`WjrM{u5Qmqf_Xj|oLY38nNU(g#mXz9w^i3=hO&{mBOp9AEW z!^tscU=EVQxv6m#e8#^Tz;9f88V_JE+}6y8PqhC3((2zbEpa~{>^g5^>OgzR#MCy% zngho52k5^Y4nj!azL^YZ5wtS}8JaQrF5 z%l~ONf#WX$wjMaLx%US=n)5n2;nu~HGDhHN6DEV;u8aRIWiZ$)1&$~?83V_UW`Ih8 zqnIvIDzgTT!m|1s7UIRtaNvl)^T6?Bd}4tkd+H`|o*!&>Z!L zg*VPjHLp7~LB!G${>SK1AkbhdoO9mni>iC8J5Ebx`R4+9?SoG+D|B0-Q-mBQmAqfbex=u1a3Z(m&DD41mE<^`VVXNQxfU9MQdZ&B0%Vck z0{=s?p&stSU6IJU@M|wU3VAk1Mz;~kygcq{K$qp`bY_1-XW zH;oCn3IOMxCUA!*h54Jpz;lIuyw5yD4}WWherig^S0U1N==T(O*^AKc5L189UAi9w z=w_tHw1o)lR-28q(nx_Tc-`j`t(|e4c{7Ij)_~OW;k|w5lwS7;@^a>J!!R9~`mOlMX&+kB&++cqfpP0dBPu&=7iA~3A`kUlI zd?|Op^@pvu4aRHAxyBA%12>>awGB3L6C5n{O~8^}**Gdr9igz=1|ZZ?@&_edexdGjD zu4Lb8NmO}2uQHqRm3?OKwob6y(hYXvgkFW5cw?Q}dwwUV?d%4%oM-l4+X;ftW(cOA z*}EqU-0g4>aOH3WFN>QBcah8O;5~<32?#;inR5w&U7nn1N;($tABCn8e=7ZScX$|X z-}I#!+3jEZ^ zT*1#n|E4RLG-1LoTps|ZIf-IO;3WPJnJuT2XcgZ~%LRLs<(d}QYUX@3EP2*R2HbC) zjdmP3_OCP);8-$Q+spg=ew>SDl&$>%HVU3}*U1)z>Ak;i$z;%Pv4n$Cy$hg`Bh`zq z^(;*-!pPsutVNgX5IYZC`*^b_~@Iljqv zf1eG&ulD6)$hvrL3dQi#5A*A${s;qxxtDh3WbXU>;$OlgGNcW`PgJ_=%3LBq;`t0V zpu{E!e4R@?_1pRgIsKKwvSLB@OCQpb1a*XA>Hkz0)cA?;agGfUd*JhQL6vke1l1;! zOHdu(crNg>zsw|&m!yy;zeIL$fnWR-yo-vj4;!~fzX7n*<;c%M#FJ$5em10pOyX-D zR;tR>1u!U+e`i4sV@WdkZic1*({5z)eE>UMCMBH=nY78|l1axm-W&YvZ!<~deJR9A zNM#r*ZTk5gQ>lKEBUD<^L;oV0W<`!O#W&{~9kJvDY?PfP z>UKUPzC$m;98}*Z%Ab`Pw=R^4)^oZ_IU@sGNdivG@F`73Bxf!O2x|jcUKat5$ijvj zQKnwRvF=6%?mPtQvC+BUS^7E*if8HBQx{o!%6NBrgWm}%lgqE*i3%#bSNF8^WzEkc z5N~$A{gPRdwB}f*t-7C~DA8|`DR?1Waz*|Sv$;sV*{{{)z7ym_cUMfc8eSxLp=>+b z=xr_9JC+ENw~ckMMDPYl0Ota}JA-*YGz!@yeTm>z?As2P2;Scbc7N9mc49$5C4t2o zYl+|souKxaZcxj)MDYDi5d029Fnx*O*J0r9+%y5#a?_X8Yw{o}zFwfF^@4q&X+4%J zH_dzY+pVC$c5|)Y`tTs!)9WZ`1evVV!jO}~z}-wB;ED+;*ZQ3q?j#o*c;9*05dPL& zB2chy+m*myzIpi!BJjQM+*ec0g{;u1h(-K%LDG!2JT$Qow;H#kZOJbO*`k} zfLTG}y}ysb7VqzB1`dT;Z>3?Ww&NBeJzzUX?L(#l!x!=x#o(Z}g9GWHw&Qx}l6#Fe z;1jFuU{76mjS8ENYdcPZL%3n90-V-RV@HO<@#Xaz9NSQBS|ytN&KP+|$LV2L(hJq= zRi@W`Y|^CL3m=xQP>c#=GjJ8)0ZR(guL8W^YGFErV}m8DxM*w_2rG6I3Y~SV7rrBM)KX(w+LW`9FD-&w!@)m{;h4F2SOWL z+xX~EnytNU^Bk!8_qP2p7uP9Q_&aD68a-kq68G#=r7Uedi=WbMec#IfRpbgSti$lh z^Ajpe@ZW5dUeWs(Kv?eeU4l={>tjz{czs>w3O9kJZNmL)leOZWeYm~Ba`dE&mr~7Z zgYkNHGj(Qw_fp~{rfE6D6HTjXk_&H#Lb?f0Q>!FS_Qci7>ckI9#f*Vq1XRq}^ot;Z~F1+l8W2q+q64J}h z7YINc&!4V9M{xL8 zYjUDm?iaFiFi}wQ`aYtWFjs!TQZ8*gh>bvufadR&G!M5V>nKr5l*nVy5Rp^gBb{zzag#Ce74ZcMBoP zzMqwteUHS%EoR{;``fZ@``($!P^9<;Hj71W;%0GtblbE~+Jce!Lng!ZM>+f)hU>S` zD4*e4F%@zuJo{^SH`xr=uNg{yEs-=_it+KUkO;Qn`X;>Wh2hdqvhfHyH(z}~Bh!5O zBwrXY{n$!3Xw8&~L4sQSPaLn$lv#<8bqp{jKFX02O>Tq43=Mvxrs-*6A#f)+X7Qv1 zNn6r}2M~m8vsil~! z@^3Z9ms*4hBTjUGF+oXBU&JTo`?9AleBUm!Lnq-)KSjK; zu(Ep+_W4^5ueA!eEoBwZgw=(=s~??`z>rVFnOO1rA+X7qYF9`nac(4LJUpp6_6w_p zHF4Z4e%MV=1SSNy&wJ7~XlX8dWvb4^P6cM5?SJ_qiL=0~Mkd=h@ON|&ule8ID2 ziT8?}ORhH=V3IQ&c_>Q7ixEs$>w8XMN@>K80b6?E%^t01BCYAf-Plbq7SoMQ&`*qCtmd2mVF)o_$vUnDgGKlxHSlXAp5 zlXA|Da9bUo4}*>849>YGnsd#ZtF4a!Cj8VFS+D2Zh+@`1r-&E6DJ=w_@@@-8C4Tz} z+G?QQt7}!Th(o7ULBvc`>ZKql^Q{VA3$Q}#Vu4k`Jjqtfnebb(?~>)WDoQVv6H{a5+j>av2Ro*C8(sD+L7xpBjsXr#@~atQ3Mxji+ zY6sYstD#eFYOcX2W@^||7p6wx)A9Q9=81Z<#fq@-mhauAp*>cnO_pJ8Pq8*O9KW%d zsoN3jRk-J&e;4~7rGk=3rdb-J?$~Y~Slm7|L0F;S9KR^p-b=FSmhG^9Ysj`Ub|qpq z5>I0R)?ISUE_>i9z`7F})49h@ok8m zZOy9ivKQ9ONY>dCfGYYQhQ3T=<`8m`{X16oQEh-lhoW1LGZx)pASjsm%JhnxP*fT--BM=dTQ};0knX#I4Uq(C{)J^u%vnC)Rt-Pj(9O~ zh|DUy#|1=YZ2gQXLkzgM$-yVh>Ifv$?9Fz2b`X7_90L~C`yx7;-d|O*!*0!on`d3jLnfA!cmN`%y=62)t+P3&p5pm`7grGSsklQpY zg+`%lt8N+=vTwC=uY4B}oEXN>U81~!_o>Jbynx`(!d;3r}IKTXm6-Fa=#3 zKEl0o=FFXg|FjMDB;152xS?qdf*1^F`=63FaxM^>f$+wQ*sclm1R%N{Y1GG~^4?Mv zHleVRCg#x!y_xA-#rqe8dG8KPe}brU*We~v*R52*%V<4Pk1a zTAGnP=YMC3dV2cv5vzse{kqei*iF{-=euMFGnM|#&QL4;xm*)(p=*qHN~ipb9F@zx z2>WP?BJmdx3{(8ttqQqzk~@JZGZeoadg!?oQNm4DrCL;ntWpE+nMMacV%mu3$oL-d^8WG=7Oe4dO;TaQebHEbUl|%k`zlbF zQiHk_`VhD9z%8J((_9F{wD+R~?0;$W?jXPu&%Og2aijGsNj+;uTjq}9SwUpN;|f5#mb~6 za7;5=#$Hydbs&$r+9s-)BFP_=Om79T&`Uy0$qXyaO|or!R*~0=Yt0Bqiw?~nGHnLh zDTnN`F`gvq4rr7wiF#?c8+T~LyHR$=-h{75%4af^OlIo}ESW@A%#P1M?Cj7ef|tE8 zYQ`>BOZdsM)uAiXvLz*4m^WjE(E_L0I58x!aT{@T*)ph`!x_}w<(cVf7S_VKk5p#E4k{_P@^}1+Lc<3(UKcOZj5L5>;h=i zF;DZQmZLC!?v&~=48N>*+xCaMaEmqXBAd^U5bF;7rwhVJy6JF^O$U)n_NJDv2zTSA z1@9&gEyCZLsb!^Wr!k#(ZT=S0%H~**lWfSdr6H^Cr+@|y~fURFM zfyyFz?U$sEadVAL9M^tl$2a+|{jvf06)(mzbbj4iQYeO>(!S?6u}@R?nD_45uirw4 zx=8u?idd3({+eM41UAJJU+b_^#WV92ONZQKLJng|g1Q_Ug}f?VP~)!v?l}Z?HNZ|6 zR7od8P;D}~1l944=h`p(%S;ma3&y}O74u1CFR%SNKNq)2CU-J!Cu9;|PmfGK+kzaX zCduS88J7M}yOGJO0d~4fN;(-bX_Lt%la6n^*M8aGW|GRYQ;3saPo58pG)?C4!H%5W z^?J20s!!mFZl&rLJfA~)hU&Zi=)CesX|f9Yk>TJDyl0sEgw|Od%Tx=IRMTH6hw$aO z#Ds*o%_xx&W_+DXm>1xf1%CVwh1r7^G{00L;YolWV3_$o?M8s#3b4}!nA67eb8r_V z#bD-!$PaZgM(SZblp_jH%H>=w5uzlzRxcEhKi3HY|2&OE{z48Sg8&*@!j?ammT-Kt zDdRL#RI`C(QXhAwP%WW8!cZRuM;aocH)JrCw9691lThUYB0#$=+w9ZyQ>WxDfh67X zZ$+y$H=9bqKR2;|ilkO!qhKUuY|cLfwm0Hgm~d#+aH&-i0&l-oNS%-iDe{vyK%&hkJ9CYWNPadp%1-j7Na&G9X`I)+JA7%FecDHg_Rq|WT^Gt)?>b#) zU(VPSmP`_YOEY{*LVy&_B?RFKPrI5$3Ph}9gd0(bgvdv^8x?qX5h(Y^@PjW^-3f!@ zOI7Tti=`@B4(jw`zzw(-Qmj^L9+q>QkF%musI3?P4q~-UFGi7$ zme4*Z2b^OG?S0TFWM}jxwD+)YJ6uBhVkg*rt{d#cf|<5Xb(N4e_)SUK4?02Z|8|2~ z&YS+`-4dDx|6hCG0w-5d<(-g__X8qCB_uQnB$F^1&_%_O1PGB8LC^#wh-{~)`_6RV z^mGsXNHTzmB9AP+f-ng90CZIpS6$`P{nk}MS47eEfsfsFb^R8<^||in+tqbH_J8Ve zt8R7Ox{vNm23LPlxpVtg)v0q%o%64%Q&kZQY5$)QsGR~odrQ#zEn4f3a2IZ0{Sk$$ zn?(5Kegc`9H~p<~SCQ(9IbL(LBkERI_qX8%A!RiD50F-v3qp6{Wj_{#^t}eUIpmw` z&j7!|>p~&>D3^!yIBKmBZIwv20oeV`)SP4yG&_Sa3OlFMy-1YX;kDWgoa{-*e3mMs zqaJPasuZeh8HrBcZNYa2Ye@&CY}J)t;MO$jl9T@?A!%^w`69o|Bog!%P)9NqkvY7O z43Rl`RLSAaZhB&oIqazixTC1a9GPBkVxPYAFXqmu@stDl$joM zFvs^CZlMXQZuqgxq=|>{n6H&iO*(bT4MN&M-a~x-u-RxctjBWwu*SvgpyZZ-0VzO9 z2bo+wP`B|nvTrkjl6PgH?(Mx$ml%{hl!dg9_Ci`pQ1TC12>dD|FdmeA*Il?Bl!(F; zf|6gjt4IY(c+GC00k=`6qY}Clc5!z{Q;>BY|4|}0`KPi@OJ9=#8!kj94DVtuAYSDz z+%5)DxF!ZN#Igl**&mAjjqWN^iGkOgMhxz6!`M*Sa{mU>9TOW);AKCsp?>|aVYWFu zd?8pChKHu}k_b_c+YT3{fkfFD=w?Ioi6o&!2L;KA0mMNmTj|_Rx6WBn;>`2kkk^Yv zLk@a~QaKgJ#4N8znVhq{SwfVKY~=<5f1OxD#3)Gnr#s9XX3E9Q;d?` zR0>7i%&3h1v=>EvCd!Ui)PPSRMK#%EQ&h`05n*xWmx(m;=or?d*T{Z`#f_zswlJAR z)}$_zNv{u%PF`h{9Ia@?O`((f8I{qW_M(%oK-uv+8Sp8jlO~&NI%)YPGAz#gHj!5D zj$uxhR=P_SaV>ijSYNTuPM9{~I{OIwv@dZj52aEh0lz;+nVj%D6xXuGJ%caD?{S|g z?DpkUL<{Wpg#-c?qM-KmSrjSaUj98*>x4*tM46I{WI=6WsL*H>CK>ZBP!4@ieWN%( z=e1#rc2JCoR&%^bc_M*Wg$DdC!KXq4h@Gi4z-Y+v8WvaoEzsz-u*gV$U?d zQLZECg-|eG1$s7w$5(;aQxB^^JqEq3X?Uag(yme~YVBuz%>HbVJ#y8jbKRj0cM0f= zi**Uj$VsNu5RTTpy0kztP1;NKLiNuVJNu`5Md|z?@62JJ5z{i4Si{?Yy$l-eXfM_5 zw)S$R_(E}MENE$prK2J;C0#noC-^oz1+19w{|QlNP63~Tm;IOmeu}=@Dbh$Fkag0cC>3(Cj}`&3?;pS7iI!x?T35HeXt z_w+i|NQzzQBD%xS zSm~SpIwIP1QG4;SA1+G2vD@rX+*5rOHHAG@R~M5GOTPrjC`=m{%l5!;O;XdM#>HX3 z^$b>ElN?vBUSk(`S85m4O^9ZtMHXr6Q!|->z(SZ#(uaSuO^wNSi?w)wiVr;Ldn-( zP1Kp5;&8m|ho@Mk&vrudxp%k-rH8!(Q(fs1jtFPcynv(?USI){oy-e-i*1!^d4&@0 z6{Q_dIdmF+$R4|rh27+)wo?t|&Ta9t^n=g%HmiM=R+(k1)F#@k94=AD`TDg|j?caF z0*x=>f9Qx79M&?4dB94snUlx7u*3RCI4MmwO*@&xJzR8A49@J=iKUIrUb98zR~q=e z!gg@sDlRIt76%F2%7m~rdwooPa zu5Ef^-jzM|;#~u3GJDreQ1HA2M0uf^QSSDcvF^63sA&H?P1oYs{jY`2xK+l%uu1AF zVF1j-HBS-4&ZBI6mctGEk4oKd7V2tOcefkADabor_tqrmxZ&3qYaBF(pk2S|BhYy~ zqhzQ2Q!((J0TZlV-tK!V``^Kk2R_)%cUwoD5am%~%j^BfC+B zQaArCM6`)2uEWcIpo-&SdZU0D-$8X@m|^d05_cRQQ>+F=Wb*(-Zlsnb10tuw4m9Dx z#RyawTwo30iivuQ@6D#m&x>{3eV*IHZj+OWoh`HK2LC4LwA+ygw|N6);%@T?K|7;W zLUWsvEpVH>kPL2f&JEIS&ZQ^jHrZ1zZZn`Jv)f#QDaSmmsYkiWnBW_kJ=#4U+Ta^S zUz}Tfj@DyjE;?m~Yc|{DjX!V!6|URE3|p<$jM(_SK<1X(u3jh&UIQh_x)yazkoORW z=BS1;>!@9swlJ+PhOOT-g7w(v6IG^xeK>DZBe-9v@ddOovpa5NaeJ7&B>g0ml#%bcfT%aEDe1l zg<`x_{qQyJw%GyID-+7*7I)!x*@(gu%I0o&6{%#yYfd8@_qX8*ePy-$K_c1&R7c@u zKLC{;(-s&gK3DS~stAK9Wtt^$(gO};b`2~^(gBv9Dp;Rj&3OY#;_+-Oe2p$Xpc8BO z1Pe{O;EK$ax4$LTHSzaKkv}7-Nd<{kQYH?G9u8WQ2olN00}}Bd%Bt1Y`<{BtfiY-fkvix1@G<7vzjZ)g*3Z=6vt$RM;S3%y+%;l#sF)){S#TjzF zTCi0w6{yg@M8q=tLb2`08(rWr;+(dn$dnWSElluj*t#oe_zQ?S)4Klz(mDv%ohuZ# z?$1EI-PWCd5nwY{m8?)!KXNlX=3pk~$$j&`)@O?Fi-c9hO zlJYR|5rc7i=ZF~O{*1`x7X3LQzf0)aAXhdR7M&N8!J@weRdS2IgPxd0XHUIY^njYo z7X2g$s6CM%tJX(wgT1_lE^5U4N78Q6{j)<8l?j;5@Yt}stY}+*+w|Ca*{GpEW{s3f zG(*;w$1mD$ifgcA8TaUjI{CtG#IH*2t4_6d`-F0kw=+ZeZa9SSLa#RB4F8a51^C*a z@z!CneYEi^WJMxotvwMy*%l|-HCd`9rHAI>Ki z*DJ(i?FUd_*b_x)y>v@!;|kV%lx!h#5D&utaJl13-e9K;d>e?R>^rrG?CCbD-+Fu3jjn)p$qe=F_ zqwzvAc(gC0O777fqbKIk*i$baEubc|M;mHZ#t`_`)S$iL&WhDSvzZHmYfp)BYF))e zdNgiaTt{~6OByyhnMw_mUl<_Z(=I!G9Swhna~l}hoazl*2Xm*Fyk;?vLh{XtLeU$} z1s~=%Y~6afC~0M9v6fGpdHa!27^!gOi-J052e+5tNvY`1jU0xe?JgL&tGpBakg9QQ ziy@0e*6mz;`@Nuo&b`wE4W#5XU9k@XEjqv~skYBzMYlYqfw29g_`2W#H&s#+VZOS( zx?-6>pNio`T@#2h)z$}VVahT2k3&BF@D=*q;})jzAJ@ToBK zp>ruZPeaYT;^EzTt-G0e`s;99f;13*o|?{wA9IN^&E6NBtQ_!%P!8Y0xnN>)GuMC5 z)YP^7Y=+BGmTR!xnTOrXrFwD7|F79772A&R*Lb0VP{KXP+QEKKx81vK?23 zb@bZQ0sl-?>67{J&!Wn&@V616i#7I75fVCcyc|GX$|%G{#GF~V%QP;~dwr@Q z%|$*ADl|7= zkJtFhmEX{P8>jD6oL(4oOpV{~?jyh7k)7WU^oQR^F`Hnp#i`k|FV~o1@?ZJ+@;cnx zJGhX1efSvG^20FY7dx3~hCb zwb*bW0fIeK{HDX7fIdDz`YAoJ0TO%aVSprt7+LpD(-o6Y8H{Q78-t=?I5Z$Zal{;7 zP(b7`XxcCPF(>vk662O_hV|)%Am4zu7qg)v(38cvs6V1NX)IFAl|WE`rNG|eKMnho zu-SGa{`o=P8O3H}@@`!M1~MM$Q7%jLOyXCy>@#2dDp?!+t@ye&;Ei>f&p!XQ2APtC zfS%$m+&+gW3Rkeuc}dS!cNM837I@9kc1{kw={)>nI1ALeTW^uLm$;i@7sF0YLu^ow z=PukX22prIF*My(q!I(KIinad%yf6$wA&9Yq5Ks-srBzE@ECy8eX`+4KK4Q z!{|SqsAE$hssMjBUiM@5A`}G^cnmSU{Sj0Wp0&_DfSj#(s@>^qB=p8+DP#lCH|GjY zTW2Z4+h8w9b7|Bfv7Jd@i>3Rbf_pxLJ+l2SR@v*n6>XCME9?hNR3g z8+T5D=OimJ4a5t{FzNjbRLL>jKhYDzbnK}IOsA;HJn6kgiarX}#RcZ@MGb6@pLaoP zsz7?U8Opbu#>m<_yK8FulVPQ1_wx>v5bWyJN)*~PnA>#<+c-0rD~^Z<-QgQBYrIlZ zn2R>n@GU1>&cW0^%HrB9HZvJ7NrjD9n7ET~O5R9&EI(SP1aG1d-2%y02|CmZrNzGx zT4>i|H=6rNkhgRF^h|k2u7(F1V9p`G_emwhE>w9~NrV+C_ZGau(f#;UiE{BxVSP8u ziruZvM<&x&}+>+z^q zKj9|buFKVgtbe7ua69Wo;R#vaaaWOw^}ObctnYbP`VMzX?2>qELPj}m1eRtt@F^Iwwis4u8DpHAo*PK-h8aC^)NAviP z(k972m0eoi$>3ubBU6$|n$_;Y?P3sxCltd;?kZA=f!CZ-3`dx#xJwp`)E817`YR=q z?d~?&yT+LbWwOIvxLqcqa3zz&8St0Q5Pzu_>~>d@N-DhWj8b`uWn|JNn5ChQWTT9? zs&SL<#@WTwPAHxm+=bi4BMMI}p4;7(q!JIWJEM4x6r5LM#4h11);^J<3B6N-d7ryk zcEQ}AP%s~L7j74fC_J%X9(7leN-(_cjDk5ra6K5QcgaP}Smp7B6pQ{!N##54Hrb`} z?SxYKsk?ByR7By4rSgQkl2lURb!U}|Ia|^#74=0R744Oh%G3TVgWo?2nUeVZ_3py$ zQW1qGmddH_N>WLM*PT%+8P)|}~Kb`%Lt8ViEfbM?I*4`eUa5%uoToIjtQRcD+b&{3@eun({$SDtYud-=gAT3L(N zx)muLm?GmLXVMfZ1odjs1_&y2SHx9kVN>(OBxh_zo)wqF(|DnTxor{z+XStIhTkAb zI^2|gpxl@)ujdNbIbF}y>aAR1bkr-d!{fx+cVZ)Ty-~rbr#J_d@2C!rkvpU`C^6rb zLCpTGlxfX*a~v$5x9*|~w_i9cbyfbUDt>DZ6(1h1_#j8Lekc{CBBJ$!lqq>c>%#3= zGC7AXRN)*`E^(+U6mkV&cl(Gy3nP-WpywzAXk`bnz0X>w@k=Yi}_a$lu zkDb&=R8oA*$(wW`s$W1^u4#Nn1m!o8HGKpnd4*7j>M93!Y=M1`S}2YV-1{`X*4Ofk zwGEp^UFH9+r3!t{S_|AGl}i}7_x=Q>ioiW-L*?RHwC5*M#6qw1koHXRfqO^4PA>AU zq$jq>%bt2zJ&&Jk<0CO1xX24jNvLWM*w_I3_T z&srpiwQM3bXpD>C3mv>*vYY}1(R)?=HmcK%97aFf z-4%69+o-4-SLc#zN3@M~`P{S50`Oy8_Ki=$kb7HjrSGhQEMzT+k+t zR-rNGwWdThY|}<_!YfurE5)e;orTz^GF~sWtKO79pR!;h3E#LfRlb7kIoqQlxf5;r z?b@$NT4nXuqk;Vx?m5g3AN1XWio%0FQ?+JzI+&KjVkjw*1c_C4;UdpJ4 z_AdF$x4`p%9F_8DuLtRg0Ri^Z0}xR3WRCVau}L@p-OD_OiS3P2JDWGepaEG*G!VFB z+JFGI*N=Iz`*0P-aj;;W9*!on;ohKPp;-2KESNl*Nx6Z8w%ht2h4xDAkGJ&yV&pKi z-frosnxrt{Ye5B_87yT3G%O4>U*ZMrjWRaB3fh()Dk#4AzocT!a5${eX*$HoxIRDz zmS6Q#tl=VAW=VbUx1xQ?&8Sq1xikcCpF&-LOiAX+k8u}np9U6%t4V>Fwb%i7C8_4g zdELr?yMm_XGA0=O(i{uHgz((3Ro1F9|BFz7et?CeY{p20jGqgt!#F`xX*oN*(pG?W z@`=<`z=p?!?k9i^xc#WrZs4qHwyzyV5}-ibDNN^AW3CbNjyQjDv@+IigpNGPkW*>+ z4!3@264Ri-mqlMh3ojJ;U9&ZmQ$PX95I_N5NE8%sT!mUel^h88^u&Mwd+G%U1k_{( z0)u1@lb>`#JNlTPjo8{}6cz~!#9YQ1((3Wi#6Wqwe9;LV@n94SwWT>dePDjj{O+}e zs>S==n~WTWIkEd)swS!5eN|9F=kA$@u5@L>S!jm)J;KyC>BqW%P~H9Bpuy>#v0|2g z4;5oN<5cIHSPRpv{gtSpAJ%@AVXQ+u<%7eIqpGmc@8+Pi{V{z>jvOU_U?8s+9Jjgv zV})pHfUd$SXkKOvOd90`!lRDftS} z@6(wkzow@1RU`9ElixU5nQp=8mnh2xK^zN4b8bQR52nkKo@qixBeY-?cc#ft8HL?v zn$UZFh!L6^>?AnTWEJSQpJ}q1eu*5tq+{^YQC3CF%5oelwJwd5rX;eBO>0HCDHCJiHU`Rp(d#3oM(HkLXJ`g%UPi!E>o_ZJviQz=n zGfhrvju#p&oPt=bwDJ_!%c2sZHp0doVQecaav;>1njQonw2H-Au=a`b>FwmkO^#lq zBUD=v1Eo>1MVGU6tWj@IG`E~GnA_t`=0~@jK1vH?I0H3zdbKbQ${|>zSZ`=E(`0HNwf9ml^yf7YQbY!TJVKl zTJZG9-e5K+?#q=O#}}%JKg`m^@1|~Iv@7YJLsebP{{T_PhUlsQ|1P}j$EZ4V!nDn1 ziTTt;uQ!L*5tc@duR|wH+X~j^S!D~M&Tkf?unw}r%d^j7ir&;>YDc`*KF_Ps2^7TA>zjlu(b6MCepg4==36CWFyG1x z$uQr#2~~2KaS}Z-n8BWUfEkLK%=4|s@PRpVKdZV`ciXHm9M*)!WdXBNINwWFt@lHW?zl%aH?Vt zu(;b@xLq)!@PvZ-3wIT%1jB32D44lqf`lv-V-DN2NlJho72h9r(`{$XCph0#FFZ_C zi77C8RKEU`^$nfWS*Fj{zlw z4pv4d>9a~}D0dMpR^$IvRLL7Hw5!O%h*Vd1uv-QB1{=i0(WV*?ch-*M3?AIWjGZ)v zQi=Ynu)C?Mx%vb>G;=uKoga_d%^L+0J@oK5N)NLv(JXp#f%dlmU^%D?5>3-`{jwMOMISSkSME9)szt2|xEKhROsCYGKj>6d>6C^zOosZa zmZ{#|S-4xMAKwKBiOd%-v?8_{GI87DV^F>jaafR@12ad*mHwLiiH1%z)xaFhD*r^L zzivJ}#8rJQ`!v>m4nfJOCrbmW_iAW43`@HStiXcfa7{787u_n4Z!`n2fd$dw?gwrh zq=oWog^?=CV%CRD&QR{$QQCPO+>J?cn!sIE1WwTL1e#&_WewWLv>6y*=@f%Z31_H} z3M;F9!OSR#Ef#9jwo0v3*~=_Du0ktSnw&s53Cwe{^#Iv$Rjt)d&7~@&q2hliNspyc zV_~U^Onf#=MZbgCdI}jDGNVNrr82BHxtXa0_Fgq| z7u0L;4E)FjI?#bcqL8g-uK=v^8{er_fD>r2exS@Q0Z6tHSc*`d>zhNMHgKjOXAIE4 zHi&BKF!FRx1bYF%3an2cxe1I9@51SnCr31Lr&x7&F10nV>g*3CkH0n)E|LCzC{lmv z7ejx)`1{6U#XPgMiIn++eOKlyFyMhIOUMAjD`!BYmPx?VY!}Py^pOCT1?_Zze!0V z@&8l5#lP!jhJD9J>J0rBa>eFen1lw|E!rMRCI_=+^fR+@Y@9j>V@D4(bcIzZ6$_0L zW(7zCq7>xU8|C7$DN9K@hfVp*XSl*UR9w=^Doera$#?!-r(bY z>BX8}m8Lf^+*Y&!Gt)6TG_`??j*4ZXtWZOF1(?8nl~$P%H`;~;tYLPCauT(yI;OqM z+!E?wKeHT#plt)qjS>U19Q>nm$7(nZg-uH8w6lhewi{&0G2Ew?u(|@WhjN!lp5;!? zUD3vs!?4{r%po^gW5hFSYfJ*nFk_J_LF%~vO11dZKrwHB z>NjVx|5;a0jco=3JD(D%@bpVq;XB90wL?*5=1wGs&3%`{^T-fMo9Yq-pKrtg0WjnI z5_GFn7Hj26v4q|!4qR^V&#hiU9G6ClgMKl@F&HThTWb_$W>JY`^U{9HX4g$*J~7=4 z0MGE2?rB-{59Wpb;AE9sJ_JsdO}|1GQq_aMl`>s#=w%``e@&#C(=TB)-*t`YX8)iZ zjnZ@@FePwPLW!)$tNLv{I-AHp2Bsr~%#*m+`67Fu+467I(Dxgvm`JnV6RFwsOIWkh z_){}?BCfxy?_58P`M)@}+uRS^>>M8AE|7&uA*dHh3jbiREs+$y8Yu<(#gIZ)H)oC)rYVsex$;2Qc=)$A3Cyg6G5Y72n-?Oj zN9dhm(55U}vmTl3^8oaVp*83Av$2YBv!+CnUB?J__l$Hy+2=7X(>%T=R+_;_1X(bw z6^pVECqwKqi%oP3LO)_HQ@v1a-)V5!-5@b|x-e2`^ot?1lcms-HboILgdMyNusJ{`Mi!LJM!@hcv$|w7q{z@_DYJ=5@B)30Oa`cNK zxfdpsoT4}v*-}NfSy3XPw$lpLUFzTPAdTY^%xQ}~wG=*=a8K>x1f_~SwK8H*hC8~c z7JF)CxT`%={GQqe!Ari`gvc!~ zo!1`Xogsp}xc#zccg0L|&fqA);-0)*dKG(ZfFUVvM(m%BzFc;(#$#z&Lhn=;{f1!+ z!luQ&59jMa-WkJfW9#clDcH#Us{C66@V9u}fktG9{73sqVtS#y%iOfv z*>ef!z3P0imj+eb)!0SMt4YHP_qXBAILc`H->2ScZpQf%UiM=%PUu`m7BRs+5&i=v#4%MKg2yHo^FMIRVY`&Fd5*G+#d?(%>Bar+?9^iRlZS``Di?cKvG&czPsN7EPMHisM-LqV zssrEZ)=pz_QS6?6OehT)ezV9AhU>Qg?K%<%o+GY{4((>a-^7946kD)oA9%%G=0)*s+T3J3mwLw8-CE7j3;v^>OO$2OWw+Wl^&}K5M;g>~_iLYV46qr(};S3d!C%|FF%Y|4b<_9VKU#Nx_{(rBbh~XUsiKpPRi@F@$Y>86?AciD3)4uqcPZ28&MC&( z(skir30_EsgC#x-Rpw*uN9l=;wb@e-V{JuE=7S}MxJlPf3N?n^#?k(#BpH0`#YK+6 z#Y}U_9Bu6}S+s?Ox3Oe^r z&t!&_eC%Zj3?=BI>ORnSMYrBb?_v8%b^Tdya1AisGZKnr{u9JK^Kgz-hx%FzQ|83~ z25RUBQV*TN+s#=H*w=t7VZd(VqQvd7{R&o-T?!+)1a||5^QiPf&E~iCrK{>t4|QE1FN&_9$&nJ9j>2iO-=-p1EF_{kEf^Nqu4+GT*~C! zKduiqI=@c`{9Zy$w;%9(sgsrI&Y!&)Wx3A0avbnmMAq~N{F3=db-?dS7=;)v%$b$D zOhftfUSB&(eZcQkQ~>8NI|Eng>MM+*!wxkagC`mJ;SzMK;b8C$$l3=6M;-7RFgAR^ zubZ!#4*0!CaoT#o?_2xG@3&;<_j~%o@5BfE1_B5j@N4p4`FZyNzb|q!QCGQOpt8z; zVGOtEQ?VFHw%7$2=~HpQ@3Rw>Di$N91G29xnpBHHk^~6$O!146-v@nsfb;`;Vgn@h z)WZO&$HmC?nC@Z2A1~&o#8T?Ep z&$2oLZuS;gJf2kH+ueoR7oSAo3D@R!xT{FDHpgoYJ0#siOEsmFkcSux4DHvZUg_KL zdX!bJsxtpKQ2c(3a*x)hdIIYr4v1@l?C|JTS714+eX6wx?F?P1m|(>3M1Qr8W<$#* zoqPCQW&EnLfHJY~a{>#nSaQ-gqhjX0(x8O`;W-u!(?Bc-WggDSMHBW15?T+yY84%| z!cSwNY5Va?sZ?d#Lko0FT)RP=qp*?L<2RuV=1P1UKb^!}NxYhC4C3G=XsF~9_ ziTpl8?c;IFhm9PD<+kG%swOFJxj(3&GZV#XAem*R+&P*tUn@iNxuAKrXeu|NQLOPF zrD9A(lWMZqTA1cW-;Nsk;YLH3gNGDdxY8e>qOdD9xhLJJv(Lb~vI%0z85rgJ1g{gg z)GHfam6r0^Sqo&hDA0pesXd$*Q_6WbI))vcs+=g!N7(B%8WkL`z`lgj6ece?3$TD& zSSCZ+uwaaX4@R-v-ps9sTiuU11L-XfB?(GDeB8(`Q|F`ns04AE0!DWYUJMgSpd7 zI439Htc>AWBXpeMT<}$H!`7{rv+grMJ4j?EZQyhQ6hfc;jrVVZMh-)Z?f#9bN$THn zK?TzlgB&Y8!>26_6jz!i?TxY&X9W#O@5vMs{4=Q-?#a|d4V#PRn?-lyvg6<`-PyyE zBs?inb~;J%t0=-;-1hT$2_JDGvSOC$B2`5$s6sykw&1LyY}X53cxc6eA6`t$6bL5M znoxI_ui4$sLWBvH>f<;;bIR|a6>9F^Ux1(__InF)b6#tT*V0*x93l{_ICY@2aAI;8 z2Zpy1Z0ygc91HM*A@iy76*NjY7B2(dC`=G_`v9%|TP3Qp`p2Ms{eTm8Q^J>=Z$=$q zB%vv;01^Hz_();}se7P*wcvjOtZ;I0Rd@~lT*L{sYZaVXl!LJ!!Qo0c)EK{Ee?9{B z_%tLWo;sgW@H+%`sl4*Bl!<%gsi1X+J=63`8=gvLz$^1YqP()QxuNUF{N-EVh~I}w z`2h9(^u+u!d+Nn62lQn2%g+|(O}Goh^yZoFV?&vHuzFg|lsb28mSUs*_nW3?;MyvT zw5u$fc<7?wQQVs6pgPX2pW2NEEUh2Fj1eMFy)A5m_%u$+e^w~H>@@L4{>w%VqqEqJ zJXMp_`9B;~(3#<)H!#65(Va%ROV=mLl6^PeKzh`mxaa>X6=RNnmxeTr)1{{MEx+n> z`?!Lbsi|yE@VBDo=0AuM`++A;Ok~5vRK;__zA(UWDZQMw z*pR3SZB;-jHyHOxp>hdeN%?G?5?R5Sx(L3NRC`G8eut?O$ov160Q{PWy7CW8M5SJUO7C&L+899s*u6@FYs!2LwbZJmQ=kDp5E0j{# z^knEP*`-U{Fh1m1+7wjxhPorVKjG04-9M=Aer3>L8~Ab~T*WMZl8Q0shf>8ySPRpv z|3#>wAJ$(FYUpAZU)Q)3RfUazHwUHdkLgQtj=2e#Obkbo;x$h_YM|#Ie8YTga-`csqylPR15>z5O_prdVlVQ5W;oqc|<4 zHg&*16U(T zG1^I=iVbvRi(T-LJ{242{xU(SZytusl>?H_HQZX0Y7w0$p@BV9{06!a2$~OsiuA+= zLhPxBfshzZWIfIE8Ne<4@@)My2=_?nk0d6hAyIcAoVCOrhC^$$;k&i$=^PVX4Z-Oq zBYsTuS|f*HlI>$6s>Y@Ca?22f8to4%==}MN8xwWwR`Y>w7Zw@$Y44qceFMWdY zD^ONO2Ir8q4-AePIt7dk51rh6%`|j6O>x>fbQzn`6*-`o4c@5Do=KmehklgWSO z^W8(I?;8Cffv>^|bgXl^KNUkKvc)bGsSTaJn4nZKbdnB8df0GlBZf{ABiJ*=51n2O zLGz*0Yv_p$o!HZ%8#*1^o+#mh5M!(qgbAJC9wqV2k;9_Sb<+doBV$q|eQ^Onn=~*g z7{WvC5b8sR74wK6dXk~eH8~U3nI|jZPE-D=z}%Z5Yll@YUs=8?6k#TZMdQFpcLsT9 z4lj+Mo~K4|O2mYyxRH7MLp~%@(F38^D?9Q}#lHsv9@vIP5urQpM<$p1lT4;S*7vY) zwL2FMXF?YZ&>~DW$>H4WP1=m|=iKz!gD4*1bt*Q@CGC>s^FI^|{?T29J&=M|5pCF< zEXZ)0{!iUR+WGKflMk_{=|ADF#?A{~O&VUfzYPbKs9x&dPt=(~CAZ>bKgP^Qc9|(L zNIvc@<{(*`Avr33N>^4bW<(N=zHqzXu5}n3KCxuodHf)E?2txS$Y`TJjxE)NYJSf? zIzpS-deU4PemrO+>PDzrNS;-x{}&P?O30R`p@mI=?P zT>orw!j^J(^3BQ)o)n+12-=#$*N-EUtEcOZuEM_6eEsZQ-05nhi8ml^mqyxwETmo6 z6KNNBktW`Nw2L*;-kOE9x1=U5jZ0KY>z9c-(3A`jkYzEa0&?p zWA3Z4lehRiB>XTgx`0Ds#Qqhiy5FOsJ#v8S9-s@qyMr?ERq;mxez-wbottL@ve1|%mjKoFmPLwv**)Nj zyPeS2KD=3mOi4Z9BKEEB0k?O#8Sw^gX1nHQHf14geNUt%b+MKi*~JBr1s_68EL=3oohs6z@3A<6nkeXwuzrP%qk zQlZf(Omgw54P3cdh-sX~55$=@JZtx?S7L|S#N?3pe3poDT&=}8c8<})Aj6;AA|f9k zLb*Q-h)^o?A!pmut(|@VWx1@qBP#MiWKF-cM_n|ucDgjgyeXPWG2$cNYoXB}Tu62$ z+&#(O_sXFqCdt9pOMzhO;yqyCx0nG|-GxuK(<5^2R@o|T2PEj^Kz6vtkgg|v%%A}uM7y&?-~ z#)sK7+*$R$eUyo|S2sUgyBzDzL&DD$1P^)YP zeBxqiQPkX07S#GiQK0lZ?kO5Rxii!36!>z7;>$tCtM5<6Fo9S9f-*fB@am&PXe3_! zytD1;@akt!mdmO;@aor*H9cOX4w(|Ke#$~)G+uoOU#G^aAG1^ufmcb165`c&Cn#0m zRoQc-0f;uW8eWxV$et-4uP(n=;?*PQiQ!fDbm;KvW?_7BGX?-FE;V51eYPUcN_tiz z=xUbM1ByMVdzRKLomM9=1fcC+oqTFU>m;y^{9R$(jgVBddb=_1i9z1Z)J(v*CgZxN zZE4k#SeYH`o*A?`1=c+snOs&;$GWGnZ*{DDVHegFZ-8|#)UfWZETmo36KP4Y?nD;S zs;NnfwsPHo^2C57|2gz%0?Hg-_5)DrdsL#jE60|%pvEw^jO@P>W}cA1dTgXQ8@2^T zwiC!|t!RDU=1K1o1xnwM2yxC_s{t0hL9yr{gU|P+;++7W@1aaj2Jrb=A~X_we$LtU zbl~$5l;twB4)FOkWK9n~smG=SpMPtiF&cb6h_9o)vxz9#IBu2yQA-u(ry}5}bC`&@KJ&-T-QztwGI8vXHj3C(@Ea&3YEn_M|2) z+NO0wO{Ka1vxzzrY95D|{eYU51#>YZ5=zQ(=FO-sj5F=sR)WmqBSEILXaT~M%>#To zo?6<^In6sofzm-FLYOnuQh-0VEB+j0c=_H`j1%zke#-P@fR~>kLL=ejqt3RcgO{I1 zSuWG+fR|rI*7Wd_I%-OI`AG|n(eU!)_&VAho0w6+%fGQyVSXy$B`HxtczIufQU$z} zJx3aXXj81gOKFbmnd0H)(zi)?xs09|ykt*@4qnQ&c-&wVy{j|XT0ASF2RNyp@FDOa zrwSnGEGvwZ%Vwfx-hsm}6>Qu9mPhNU8#b;B^3IF}F415cTqI6qhl^W-hNggv!^q^a zX*yhdHv3kGi)VGgMezo3@hlB4zBCJIJ9;85DO{{&A;4%LKVVz_%scxYMb=6zpHJj!MO_T;EV{e*>ghytZyPXr5RL`aUZ z1mMe*;>$sXgMX2VVFC`mn=(Ba;NT-fXe1o`th4Ru;NZh3%VjzpaPTY0njQ{PhfE0v zKVhLU8V-I8Uq`!H6XOXu_z_DL=BEM48 z^5+r`E~O_12ieo1gM))Q@QPpQJ~h#NBePMeupS^{_qiK+qi|a1KF10cSK6D#(Z|Y8 z)Xxe)u7{AKHQNm!*9Lhzx6OokM}uqjMQ-9_b||?eXmScD`CMdj*+U&lK8t;;L&P#rP8ZY|+B`s5grkZk4 z`Ddsw3@W2KuY{MDFmI!1Ev8a75`gMBYHvS*<{LzT(q$w9nlsj7fJ3(_4jp93`JPm) z6Oi*=lCcTHgNFaBc%*AU~gP!`8vv=_RjO%r`4z`Q`*Jf*Q^RALce} z-FmqwX=P`zmQO=Y>!CGzSBpOhe8|XQc)Zi|JL9ZevE6Ld$17K|yJd5NRNQ}5XyHm_ z4~Mgq=n`daz={oz838)!40j}rc~bB_m!mYr7t~ANVDz-`Hd=Wt@*2tny+G^7g4Vlp zio;kWvv3#-FC@cZEU!kD;($|nV(#cQ^wfhpQq*KVjAb?5p@XAy3||zSa(bfM3yIv( z?&merGX+qskBy-fL+A5<`H^Pv>zP7)@Dfv!(fzxtu5)84Pl0Sz1b z;Lu9S#Et&<0-B@crj0*j6Y1njR!9b;Kl>fh=pRN;%;>YHUW|SOH6{bN?<$|EW7x2A z5BR^vWl8dawa`J!{_-uLmwx6xYk5FEd&)w7d5IL9qN1}}x)(ZRbMr)H!fWz$vf1*+ zr&x!ehN%y=JBirm^1}@P^cyc{k#&p8tIBhDv&(}J{$cJpfM&hjC<3Jnc8+2f)l?aL z$xk%uV-2s_oO;F7K$3^ja-=sOD7X$Wp!7ZdIzyAsh@_YXLk>b>_XaP;Gn7soSRbz@{^gMO_WWq1j|FmNdMHdZU%EdV4+a?y%0Ha-kahd3fhYZ+`_WLpV;mDL*>A zb9l)cX^)}2Wx`6}3qZc-A8c0@zos}<`dI{UA)u-zKneA;FV_@+9? zhJVa^jYhqZFBfX1s@DL!iPU0islj9-i*{B7tFon^e-?%cWxNRSGDv546d&4xF#IIgW zG`)7Ip5H%C`g8=YU#vI1yq=S3NwJmRTWMCfelE|KDor}9k(R+QCxDFeWxqflTY|r0F$Um3j>lW=B6l&zCD>dvE! z_-aqy8!uF<`9i5gR+f={B$Z4eZ+g{HZqp8Q=6JQeQ}Df=1>BsV|3VcjwNeG0qm^&r zaCi^q35s(hh=OXhU|dl~$r~lx-B}TOizAUy6<(vX(cq7H)P+jy{d{`KpZ%wi*EUW8;PC4WcB zW0c%~0h0Gqa{Yx!Zla|4VkBis&U^`y=TowJ2a>gv{Fag@DEa%HNWMkMB^M#NoRUvc z@)=6DU5w<9DY^5dNbaWOZI>W<7bWNJLUJJ`fAcaV4^eXKWk~L%{3fRg7Hkeoru+bOx9k`qRdY@+05N^Ym*ks^}6qvZG!lJ%4<^^mNfq&SMCOv!7< zkQ|_7qKu?X$;&H9MkslNlFw7Jri$bQN;ZunIhm454N0AnY8^>~l4o3j@*PSZpG5LKN@ib$WIiQTN*a{> z8zn!ZIX{3Rv1S0GtW$-R`kgOa$#s<6M9EP%AUTGTpHT8EN=9x(Ql{i_O1?+Q>_0^^pOPO@@)JtdzYfVDC10fE zYm{7hGm=+Pa@Q?L?xEy)uSaqwC109C@^wnSaXXT4Q}UZPAbEn4x8H%}eoBtH6G@Je z2Pt`&68|nF6O_bR4ArYf9)q9iL9!@pJbg zIgt|DsN&OZ7N24eeF{|cX$jeh_-*q@}p;m?KgcDgK7s zy!?(^KK%{(CiWKoVtk}t4O|L)d6e-o_;U~#2Z XthP(!b;ig6EGiLP63BuNPlx^+f>(!6 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.pipes.Pump.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.pipes.Pump.doctree deleted file mode 100644 index bedb085359949635c17018e025d628a791c2e8df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429667 zcmdqK3A~(Dc|V>&7IFg#TLKsYZwQhbxJigg(aWL`79l`Tpn!stxijy*^G@c@OlHZ= z6%m)(N*%XysanO|s#R;%pHjq)Dz3FIb!lsDU0bPIv|6pTwEypOmiL@@JMT6V-uw6S zk-YcJd7g95^PKPZJZE{&`@H3MU%O=K68hg@ZMR)>ng_R+tJP+!YIhd~M^syt{;b{X zE!?%R_4y08FN_aXb;@(yR=-oR7Y0j^qf&Dk)sEdv*=BD?WycL&yVKoqUBA6!Pp@ZpX3IUN(zPz>wAxdxgL>KyX@?!CdUr>u-0!uz z{n^=aXWsqEXQJ($E?Rra?!)?1wIze)PP1ws)J)5*UON@7t8IcUH{<`0#s9b9|68f0 zFjmK5?Hh-UoaPKXGdPWmZ;dl6SWeTD)ly||HTa^o;+oz-~dnG96aus=Wp(zk4;)zSfjUGIANVHt5fQ> z%N2Xla##Ore`s}DLEIvsG^Z~!%}Vo%7@AKmWAdxfi9SG@F0 z-Yb?2j&b{7t8I76y;dhIA9~N3TJL#jv`q#}TfyG*5;Xn~K!=gNM_TDc$oPDC>i7AO z0N)&`;0#w&YMx4fm@xW7r1b`Kr_g_(TZ!Y z4uFZwL26eGRya*IR%kw7DY!?LrO4wM^x+uNkUaov8q-Rks8 zT@Ze6f4@b;(w)>jALLbv#&@)bR%;w79Q1bAUhZf~!|eKj{8P2%yU}f_eIQ^ta>%!n zIOJi2+Hi-E+E2UnUPg>BUBLfPb$-O4{HvZi$5!GHS!$DXSo0A3iZm5-%zvr_Z0Zd^pQ3PEA7j99j}FxXI< zZB_dXyX!`8YIsCsiJVS#p|*dp0#6t!7Y3&%3HfN)u3t&!cALXv4b42~mnqakM2jJC zVK7DmVQZ?6pnSnI{tZ^}3N8$el>@kn@lZn^+SFDIj+pK@8l1fM55`KpR)s9w>n_wQ zRFVC^zkqm~QbitOtzET^+{~!wQ>ae^!%GH7vcaL!YWDQ$g+4!6MZTNql-o6Zu-kcY z84>xUHHol-RcmtZbKN>uTC;6XLbKQ1zDqvt6?C_Luu_PsA)(&(^;W7_+iq47s+11G z8+yrSrYsU8$I6C-fT7&b)YP9tMRKBDN+k5=+rWb81cTK`u@ANzPQ?M9 zScbWBr-{c^aEa(gtUFNkxR0oF>wws3^cd^d2dVxW2ajGT3gc1lFp)pmxykBTe(VIa zY`xm<)ml|+#%@x8ZC9DSu`JNFup(hGkXbYX*)GkTLP8nrLm3QK{~!sSviopP-=es* z)1T_V?|NLyo6(h(Tq*xnRrqwODtwA^t3C}XpFmaCG73MsSDr$L?vyI62IjQ3UX!@t zaT&`$IQo{GZrgeLZI8QM{>!lcHGiRl`Rp^&R7)t6J9nNtdA_#Zav>H~uwXG*uf+%2 z&kKWNw7*I)h-XFXrVCG6vSbYZ!;)HQ+OZqe?%3F#19oSwgMq>7)ts)?Ygr&oXL{ah zv}R@q-7+KK-JG#Y2 zUD0JJ5AVXgnr-c~=O-*;mX3|3l_m;DB4x3-no6U~ilg%JRN7?GmcYF4%n-l$ZwoR5qeT7mbOrso@5G!D7A^>J6CT`7i zTKzUB2vWe}4Oc;_I*-uDsrc2By!fe0iy%s0*V?&Vi95|MTIMcCx<9CjsUIU+)owvW zzg-23$y)FpL3Y6k251i2&K4`y?Stq>tY6x*7L8OLxBODK)quOCLhb@p zsYKS2Ze@jIT%$k>c4VWVvIliiRqPPk!F?^9IyQEZRVf21RjX_F$RjR<@Z`E4;4C-i zIYeA%TbnPt;-;%Founax{DrxJP2!}^YBenu^Ys8mONnqSTj)tGG__-~1`_j^P$7w%D zKrw=CV5)kp*g+T@yB|H~?1B*y^X zu)+CNT1`egZyjiLq$HW=GEO^kT3HA9Fe&!RmqbT^uY zl%0mvEl=ClTzMW%!hqhwpdl=PBB;4#0-pERE=T?Sc8o;*HdVK-|!y^ zGNeyq&xIjOL`T~%W7(}sTFou+C0wXtsR^s!MHAdui?Op^uA*YRMd+rD{%jMj8XLpP zOo;~s0-vCL{BSu&1M;nR5a1aF#HO$UQ6-|Md=$qzh}dX2CE|C=C~c-ylI+1rx{o;p z%nAJ$$tea4D$qxmZD*)|GP+@u2uig(%`$AxC|*iieMX=@$|erv6pNJ?aB{bTag{nT z7M#eC=*!?qdwko@tr(iz@~W*lxEHcWJA1<7n`fxhW#tBpC^NR2=o?z?cp#?NYHW=9 zi{IziOyvVR{Rl?v*)y#UXdfmc7ZJ)3I$_|!;DI59;ERGND&f7)Do+8)fLm*Z@JFD< zGorCBbv%wa0G=}|3s=df{7)G_H!->)l0tVyku+{~v2h4P_uH@xd!#i%{#13)@kjw6 z*l1jL{Uui+7^nE>MjFylwK=M3w^wzebaZay?O@!I-a_w^%TKI(xq+z60C%bkGLfhg z!?^S@bskS&(BeHw1~d@Q)tpL=8PX$f@#Q^Ws9FUpf=kG*%xm3!PMhJ|E5NvcwS+qi z-KCGXtkbQu;HB|)$2mX@dZ3K1joHmst-T5(yuIpgVi%MQUx|*awSt_?_B~*EX4-D~ z0B;ePhAh+oFY@4wbq4Cn9eaNt1PPRlALv?5oJqjY&ZPDFaFoK0z;;68^C_&rW~i7a z2dyb%!pjHZF|4QZ6&>o zRV>FG=1#m&SwYYxiq1=zq&0gE3(K2eTu?MLfJ>p8yeVpRz$vqa!{xL5$A&Z2!C)pr zJfU)u^2<2SO>^6Z-bqEUdQz#F0rCiusZ%@Zss~u%nV^dKiH=>Jz=PeKn73)L zo0!5D+r%sen`W;(QJF6{CxD%veJk47RiiZ;gb@Y}cO8<^%St}R(V`b?(`*FMsHBe& zFf%}}kP~(Sm7EkH#$ezjHZ5DbbQ&2OgRU;-fBj}@AC_llpu%p_K?uygTbK@1daxLR zNj9{KZVa|S`?;V>;-jNT=L56)kt@NEv=pH*J~nn0F)PC${ls{f&(m3fY)%6yHB%iM z+s&#;1VB^nPHPs^j&cLFC)e`XCrMzjR77HI-4p{pMqZ4p=%Va^0W!~_B4{r{HO9zn z0RpThmm65mVm08CVQxe*_w9mM1r0&2I$>cJL(?BVY|>OiPLf$vBV9qIf$Lx^8Vcbq z2H|w{Kr(F8s*Dz95Oq6VYH6$`Rd1?dB$K_&695s`DS=qbl5u9w0e8trn$JGbx9lE< zO;SU1YQRZ6UdI+r@DuCE_zkfM;zC4Fo-x9mOCu*Ogk9|%L=swqNR9dy8J3=@BJ7Fx zMpiFb6~08nRyTMI%rcTRSA;(4F0SxihB+a|ei|t|AUH8EkLb(dSC0;GkLb?b2IArp z`Uv7da5z-58WS|Y;jHa^)s2CeV4)3|=(l096F^4gM+umU%M@!0(;sjpgAfbG_{hv?oelYHn#tjZwL#Z*I>KYD!iGB(EtWE9KF<3Y z^S(-^?xX@Fgr?0(qfa|=)cYJPnYaqXfPhh04F~KG3K=o*p~JEfk3pHb?yOU-V%S3g zG;E5cQj4FZftx0*YKtu+(DcFSZ4#C3D*C`!OVJOeNqo76dL9ZA1OkF+aw2uBm}+%X zwhT?i*hw>9#m5ic&1fNQY)q)uR+`4fk>Om*aqvd75TtVbjElkg2R+MQ%68#&cW*6!tOEJ zwfqI&jQSb==}*;viGSpdZrmQ1rs)|0O{m=R-c+kPA6oCjJFU6UAC{xvcY-qBo#rRe zNd-&P~8JH~J- ziLvv~VOzuF^*@9*eu!ZO4l$sz-V-TgFL8w7WN6BGgkdX0wId9NQ!(BH3@_FWFw|d% zIl#wIp}rdbfU4HwAFpf1W8HOy%N)VYXDgCHf_X!kq)F8aFo{eBlN=jV zq%lgD#D~HtZDye8Zf-afbvs0JGs>A!j1tm*@~b!t_2~E6MvUP!W_dYzi!+NukI9*3 zniUe)RbvKUwBfnr7twSd8TjIQs%bbK~r+Xq*L1S*#)a!!ed~yZ6TWx5-@`X!p`%a-jV`R!AJs z2A8@sW}5$IJzOLQ_#tUi!~ai3qrmDBPY! zCJ%%HG8J%JC*kJNrQxk2oEFZmX@Y^hG4?m$Z5E=r@wP1vZ(b8nA1+MXeM^k(G{D_K z4knI4k^?sr)s!vowPL8S%Yc+sN<+;!1_532u( zv9JMDtCkG`RGUp>nQVBWfb?H67Sn*V0TvQK`cL68Q=CqcqBs8sD(dTIb?rWjRuJY@atU@`u}?P<(Y&jPW$S zYLUnIz<&ijCLj1OV}-=>)wt+1{5&0DbkYbe9Knc5p*7?}!&IYu&!t4AZ3w;P?DhFsnXO&Q7MeGtt} zE?eWsMK!-ryz<5vyJ@`gNpcqFm3!zhIj{T)Dt ztw*uY--?DVG8X!B7XOTzg|x+dG2n_rYYB-+&mGD|zoJ$LxJaggi;kCEq^r{C=(k31 zr=g?&f~Jggw0!vx=qP$IKg9IKTFn1tjOjE+Isv8__S$Mv&ZQ6G*ojHG?~0$m{#2k(cF4BEX| z5zWIfmeV-sSXfGM&`*TtOg1M;F@Ji96%xxqd)@gHu@KFf60PXS%ca;`pT>*1BvXyP zAjM~=k<}L8jO|oW?NlB<^n4~>LqtF6#`Bq$Ih4;Xr8WonOs495rfJgn>`J4n)9~5l z&}6c_VU~71L~{pLv3#Z*pinW@t{BT{d^Sz);xW}z=rMUrbpb0Rj?d~}CYIzgwBf`? z2Sha&S!~qJV%<@5$u4cq=DAzZ#3P=Jp&asRYHNT)WGXmht=!rXS2=3@agWixY53z$ zpeZANyd9#s`D07;#LQ#DV#Pv#9Ah<&JMJS_aqhT_9+Pv&D_9|M+%b3&-cEn?FZh%J zQ$cE@qN>jcqc1Wh{B)MSa%h=QyUo?igj&W>Cj1GtHNb>2RWhNbMPtIB8{M0R3I83M zGBV+BAv#(n)Ei%@DC*y0tfn#HQ7c_0{8!;Mlf6k&%nE@x^Rz@1QZ(d*>iTQE7fg@1hJmdRW8 z;+I?Y?vP@MBiQT6bir}rGy^a9-a@$)PeA2sLPs1|a0 zXV>ne6kjcgC7qy1DC?YXL>TMHRItuTf^~xWG}<|tv_#H2)6mXI(3Ei=at1_m)6UMw zW!@-H6pMG(#n?}Qul_`G8t0v3=`lI)tYwA7^3G1lJGAf3FE4*T%4J4F4nr?>qKJ~ z8RNVriw{Q4INB==yyyFG){c#Q`~soO^Koi>fO%vpnCAq+JbrDO+dpM=dm8q60Gcwg z&)+~aH~U1t!VvC*VlmK1W2~n!(09mXoPj<}kI5P6URKEP8E8*t2HK-_#h;1BEHVcA zX%-)hnt`-!A5ZU381#6q`48ou<5q=nk4y#k9Pi~GUa;ov6G_2Prd#WvDI@Wm2GQKa z6TR&dV)|mS&M`5j(^%&T#Syl44-v&WoDgST0gu*G-i>p&P7>#FlyG( zuEXJ7pM4HQefA?Z?D6FfWu6&oc_8YMsbHS@!7=$=RpG3K>58T$Y)AF4KDAt3_iL8T;Iw#RsEipTIf~ zCxC<@kDfV{ckZV)2Y5%OYU@0@Ce78KFuFPo>3kHLGLp{cA)1?X;?{XQ1|Sd@=GD&o zVl1aI&Oeg7IOBYX9+NZ92UsDojI)IgQ*>V-F2telW`%$HUGhxg{Av~XC!*quj9nhe zV((G2%Q@P97XLE5DVpIqLV0BESQwAURPe|V^3(Ggc^pqdLzyid15Fvp;}nSICJ%hc zF5&_|eCeFN*j=m`<)|2QX^e3;`G_;d7(FIujFqgASjKqTMHas1-lI=5;)_=}e>>Z6 z(lJU>;uX0ujk>bzWACTK3wZ`yM0@7%Lp_p7J7;> z#v)^(3$pld)GTza%R<#_=@a(&_Hr~0xmiMas6y=v#4|D#JhaM{*NCWQbY_|;#)hVh zMAU(3ZX((gMMSFEg^FFuG4|4!==aD;oQa-AkI9+nnXHglCOY+c#4LEHn|DB>o_2q> zjnBU~ZTjG}dxLRoKE)CXqN0n8C0?1uzN2P|9f~FFss4)w$fPP@5n)%72Z#e$ywpOtdLk% zI757J7m)@&-`twB*pYaORfr+zOHayT?NRfR`pkIMnV#miF&F|EH%}>9W(Xy5(uxnk&z{A=0B*1I2Ey5XN0(?DoNqz%+FBL1@ZIXMY9J+;kQ>GviGz6qCI# z##S1WeT^K%ne5N$F*%dHixm>fWG9N58K{b;VP$%aikpmj68cPZ2E_wE5LH`bJn-Et z79BMYsB5k;x^&8wUTGGKX&7P*jNr`}$_*=z4C4lw3O}#)6{oSpkt92mNz^K6%E%Jy zA)1>dBComfH@;AOu{_3V8efc)t2kdAMvuw);{OuyMe^?-pOc`{;$9hE^r(Tg(_PlU zS`((s(Rkv&hr;LvGHPImm8pQy3NEan=NZBe;pCWRjJ+|&q=riesu0bMo>QWhAVixB z1)A$(jHQ9*0C|Xm=30784w|c3A+dvO>G~RNtyX&Y4?op`nTzYj3$)6`!f!i}^vfXP2vdQb3n{U{}Rh zkk&1KU$j(q%i5~J+Md&E*mV6ppIk58wXpU13%4(f*Om{C_SaFaiLCL~T`S=gz7nF} zwkKb_jB;}ZZ28lF=awc(VKJCc9rsl3XA-8Gc#Oa zE~#fu&_sP?#^nz6CBGmp_^w!~jXHeb*knmrU^8;=Tum`nx4)`jZQ zkaikr7|QJ9RA|bGv+$8LzRod&oI$zdFDC(>hbz^!A2!~t%w z>vFrt_G{co1wmCyemat0#V}Rw+EuI7Wcj*nyW&hcNT36hcE>5Z>!?G~rH1@#M1y5i zWsZ3YGvx2i;-^uwle#Bnrd8_IaKLev8H&aF46BBKQLa|jV#(o-G{Si5hvsHs0le3k>3W;T_ zuUsTgzp+o;;s^}e>Y1UlFRV|~h7qO@;H74{LHkO22k*Cu+OXYZcY0;)2l0b5&NP3( z^^>hq)$Ug8W|dCw;?iB3U*Zt&*_LCEZ`--m!d{XruiBc!ZWCmYcJ_pIO{-~7Sg6!x zdik z1bNwPqKNvN0 zou@HZyU)KhY=}Df+_~KAb-JNEcG8+K9+RoyvDKOejm}OXxuMK~H$YQHIva;*ZaUi> zO=qrsi?!5rLX5>UR+}U@aaKE?9+R`$F|3d{R!hFrba{eGi=`%B^r(S!fe%QSjW?>X zNaDFdp)^AV4uk|U6;L{oLy4=R|Uy z4)7Ty)$sgk(U|c5SJo2(qd#R?~ecCkDbB40Z{nXk3 zyU0|q%h7%{8pC|T=;1UB^HFHZI9h)mqPZDnJepy=Ml9BleP4{(G?w{C@)c*957A?C zmiYiHB$j11-DqPO8k31Rnp<>xRXS%!oBeFbx>xS>B&#IIsaWJEqOyyOMIOpx<59DS zx*kTZ!eN;i)4`^V54@OGEBKO~mN}G5)~*fX5}67vIWDAFjZTgy`Jn{=$3Rm?IynWR zx#=YGdYCW+6e?~xD#mgeqnu6d;*2szkI5NjB`YMBQBK8nAzL%1cPFLg=+Xz#VK!hSw!73+2Xw#UbW^{X+K*ffp zjLg!3Xl`bSyy7>?2!&#oa*XvfcKJPW8E2Pg(PMIUc_u3)mR;VUZT-;36wQzvET7_Y zj`HnC3SQ=FPNl{cPCXk|R*QXk1?L>ARb1NB!j2X~AGU?m-RHE~yH8#L_TChN$&Of{ z#okrFS+zUeN(-y9U^_5xr*QnVwBv#W- zfkeJE<PL*OPQ$48K~qLX{WL^#GirRSrWv46Z2G|% z%V})-cjPY4rthc6wtUClkNiCxY#Kk%wVM4|oNcNwX_qG-#TqCE{E;y3B4fZGX6X~7 zWJwa4addZBpZFJf$_@y6ehqd0H8haQvj#-Fi5VtHet>&()?MsLaDx^(su6MJ=* z{atDGJJ{W)tB;*ob;DpfA;l-(7fo1XeDa+vmLD~rsIzsVr(+`9j%5?d6v`zljtS!u znF=mhtrep&$!d}t%FN{mXv)YW>mZt&Ng~hI=?yOwk1UI^n8qVp$W5F_meON#9{Jy7 zJaWRGHYfsbU^KD%!Uj0(*4u6O&`;#=iXF}s6pB`Oc9VVN+AjY+ zloOsoEepgKG8LS#f(vVOP%`>3O<-{gG-ad%2co&@Ao98n(dI%i!A&v7(wN{j@(^c& z8|X1P6Fi+25*JYd5MGQE%cZiL~mq; z#DQqgy0(m$W6BsqJG6^|0KAOt3R-|Vz;<)##Y4P8)5d#^^ZY$+>}Sa69Y1ktdJl)T zeQD!_tq-Wp6#ic1biY}ledg^8cQ0MCbP4^B`Yd|qA+Lan1O8rEG#mnjJ>vU~EFEFg zl%`fP#XWc>dXKB*RB<@ZnU5y7u-u_E_dnF?0L{r%bfn|MRB42_^jMCcaBrs}y#Hm; zioP?zKzOTBiQI%2xsn-bfkIK=f5(_kqrQ#gFHU{GPS@jq$qI?3zW>Du7hK(iv!h@w z+*1Umqs?8xga@25TbaOS(k%b6;Y@YPoq21L-a)X0ttYL?ZoB3*50=XPUaQ)wl;~F^ z^zhO*o+kI+g7vstCMyjvx9?1lPU_U^SN+vQGqR%vk=SX7F!DPae+%L`*oprkdmR#%JQ4$N7nlU7f&#-JF=W>4xKpDeP5G%;ILsX0JR^nJ+gda44u}gM5J| zx{d6z;n+cg+BP55YM*wm`Z|6I%&~-EeLRE+Q5$*YHtds@Y&-c$oS-9!!Nzj#XdT=>JHLx$|1r1iy zL4$+shEs8R3wN>%bLCER;m-Q&P-MMA|G9?>-(P<{{u!{wDHJ2_<)}C(q-OOuu3WOD z>}yKxL9~N>!ftGPq3l6!4}KK-o*IPxeZ@Rb73M0IGhxmY(HN&BbKCOYzIK+o^gr7* zd^89@h7PgMr8WhISeXi@I2@81%w8yLkbgvd9_yT5nChL_FrvN`q8i8!$H~S8FT`FP z53vnVi~H1I1--%ij@f2!M`gziU7UQ}ab3T?V^5C;2!zX(u5}6G1&SJe$V_lsuau-5l zcl!J}Ls{Uf)YnmHylpQO zDa^$fO(TUrAy08q=+R?xQrOQ5i6e#NJArRcP-!vJ@}fr#Ds_1()&sFZ=X(dWRB0Gq z7l;%Ih1zGx^Z}^JR6y;dNPQaW{#rONoKe%D?sGA|Fbu`tfM{;iMP8m7ZH7Vt@WB}S zX#o5YIgJDGujny306)$Oi38wZN5}5kdduxknbnZ^F2W+AnffWF_wr$zeB(mt$7&zQ-_lQWcaHXI+uIWm>j z68r^fRAZ4ax@x$G(@@PuXv#Rip9#_2R1>+D5NLg&80MrHvuO--KKY6>%zAoE&M?QZ zLSh*P$FIA6-06w!u1?3U^swQDiwN0gdBnkDcDg`J4HD*7Y;u*Tba-DYESp@B#nz){ zlc%}65WIUU|L~7iL{AvP^M^7^i&`FtW@IXuWqr6ZjbD03pQquM{m_(=U!Dum-26g2 z2)O=s#`bR|MA)EEEHfKpJdI^uK_25QQ>Vw|EHlFjiDj7$%wQC^;1vb_z5-~4bB&By zjCmBJyirtekul0WS?oG$Mo}NzY&Tl`c3*MVN#to`U&c@l`6RV9z#%df9J1D@MI(>T z8r_?QJRXFmjO6iEh~_4b$d7IM8(%2acp%1V8f*N3T*X=AWAvDuHSTAH#InZbtLXkw zHuoW$>38vfl`VekLqsNt@+ubjrKs>CW09X{vGb@|M7_w=ZgqR5e!EIh2+*0?l_ zokz_YJJf8ZHD|i8xJ^HYGQ~b>S0K)isbGrbOjhHFw$XuUqKjE*%E%GVhG=e%*cdrA zA#)Y$Y?TvZD~%lnyC#)Li7=rvGbWKcRL`M1&I?jiS zEgcz;jJzDhRzDMlT4ZeX(=7fSHCw6oPH|r=Hk;X3whUw?^MrEMaqGjlN~VIV##A91 zRh>v;Lz(`pgQkpBbs9u-Q&r@9r&_xU#Z~%L}i6%xl($&YMY zl%Ue$$ObQZ)F4t{NyOJ}4P!n18VZ~;88k4+%Txeo8Hs9;nHC-hr@%C$dnLx0hBFs! zh~|dO$x*Wb*5X2er4(Z-4J%%<;Qo{jT@vsixAT%o21)WJ*QzM9ApSIZR293P}M2AD&p()2*npb^N2jV?_?AooI3#xeI( z5Y0^>k<$ac;f3On55!nZdgB1wAI`k@v7dip3-UBAT$sc;x$8EI(=e$ ze(t_35WUji%@@iht4;`G6PXG&S>sir5y~189ZC?t8k#Z^%83xoO(>BsWcb=%C{9@! zV>FFZ&LmH9PFY5e$vI^yE2LPQGAWv{$T;QPES4WNr<~(%Y~VhEQuU^4&%h=kM<|cn zO05e-B{CH}a)c~EV~{DMC)0!^C1}dXAPtD-W)LfKP9uy~tWAz*#+Xavj^~n(ICtDc zkIA{?23ANccbq4WjnjE6x)lSjKvdWzQj|b9!CF;knkDxfT=_`X!_vvD9?g%%G$)r1 zHS2kqXy77amX~Dl%b{eJuHD0zUQNuxbA&R>`>1sRW|66!S-7~yEFUs@G7YnQ0Gcu~ z%O@Z@N@fwQE>u+V-WYRf%<@(85oeZn(_?aGc_%9*mRVNes5tJa$2VLhPiQF$_1_bP zFEZ5sa~7M88ujXsCbRu@?1pb(-|!BJFJmYNEI%=f17s>VV69J!Mg?OeJCte4N@&VR z1;;})Hx)!4()2gJP>gVRjMX$oID=fp8DR-MCTE04k}<+gW~nYw0^MUtFRIB8f8YTj z1w|g{uJq04tDS>LlFX4oQZdZ$h{h~3hIxDzAB>t|)Qkn(UZQWZMaLB~M<}PU;=nW5f_}x{tzz9z&gS{2 zVCd>q9CGa02YYhhO`Km1w|^%p9^TIiyLtKbEcQO6j6tKVA(Dq@S&mS~_${?Az!)-B zFa{IX7-PvvybFeVG7V!q!g^<>%O%H9iIFk}Z*`#<<2Nzp(ir1p@)2i@U#088zhH&L zGR7vx7-S^zz8`x{qKs8RcAGqI(Ue?~Ag5x931iy3U+!y!+DCX?9>QOC0&nwvw; zjM`)fX@8;E8IaZ*exck{*-CAD6R2V%g*j^`53MoAFi6q}dg(JWo_Re9S5= zuiT!++J}%=8s*Bq63(PM(+)l{MK9z>&s+j|LwV&b)ZzfI$W+EF0Yw_Gyu;|{G`#XQ zXv)Yd?}z9Jc_rBXLh;I*VhpG8%BRR%oL62?kI8xEwXBdhUP-!VWO)DM%f;UWV?~@X;wO z4oo{UeVog}2q44$43cWNK8@N1HVE&0g&nR>71d7VgHbbyx_vYMW%vP)`jZQsO9xWho_;I*FsZ9YIz4lb5qN<$jBwkoW(lL z_^KG&Y5ekGav0~A1$s=*FRx^U#PZ8IteMx)f8F~}?P5K4PQ>b=}Zw9nMR6CU=N6i`Py>RoVa_HAkUU&+%D!>ae75-gDq8bxi zYV=+jCb$@yOvW_KZuUSlHxop@7tUH-DC}PtV=4{%W%3V?IL@QTc>S5DnhI7a#qfuE6Oe+|1Z+ zHStxJ?gUmLD~)~?XM^btB&Xxvh=gv-KhNCi_teLk*&q0ig>_4OT)K^KKU?g=C3<~n z)~Qx;Nf-(!W1X|o?{u95__J;ErOgSe+Op^dCfxgGIlWDCsk89)R8x_U3rB?`tFQ~J zAIZ|cM$MG!)o%voZu}*4-h82q`8{fBfH7q%7;}wRiN>1$YV>Uy*8Bl9Wehrg4$<7K z8TsnBukD3m&hNw+O=Hf(Pj;E}+rnukbCaZq0ses%63d*=?$`|n*UZf`ro=sRbhs0Y zC+?fWeR56yfev^0o^Wrc<2k{NM6z^e;&i{s&vap}Z{8!u-_w{bSD^n4u&4fR#-mvU z#dpV%r5E2c>S$5zRJ~%Hzz(WaxFO84u#^!C&U;~T_f7=U5dV-O6k!E?&U@&ry;ljG-V{X*FZEk!EKEpIIa1G;)WEz|NANh&1$=}msayIz}D&zIlY2dn= ze8s`Fg&vcG>vUE~9JmJBF*as2eQXYVn=DyoH89^Qs=UYs=4WKF^r*Q+oq2DMQhaZBBR68P|FLTDdU*^a){=pmdG=2;U*{)zdSd_ zb{fCDi5$lH-z?8M z6~oG*FJmYroI!03P=ZW_%h&p}Xxwm?(Y;HfvT&+X!LyzG|jJdC=@9{a|2lh&m0F*3GaGUu@K zFZ_#S{76g<=Wpb4;_wuz3C)e7>5GhyuFvAJQS*^HLN72fZQIpet<&ny)S~xqgLy+) z>Dkoc04vEF;=YY@A zV{#7oG%F;I1M2S~t$Y#_hW`H(g)TDm|4$ZMjT-&e`Iah5I4BMH<6tYhh8Ztr#}R>F zAe0j}of^goG8LR~fwq2n!S{j_AagPGg6=$zPlu zTJ)Hl9U82VyzKBcQRpILhc{=j)u`DaFpFT{g^FbbmMfGEK0~bxuz^g~W)b`YRBCSc z*G8|VVS&#m8v1`ke&Xo=D|$?h{*SXl@}mF0M4^ie z{r{Q8R-;D$)BLdk>zXMh5x)GPjPMvMj1goi7-7AL4}8kB2;o#xF_bC9$*@Ag`=&a-XyDwr@_tAj(D?A0$D*M!kE z1oYOURq5FL?rXdkhLf8!?gvnF>rrv+>qSEs8S}h0i+@JVJdbzdleu!INf$>%u4;-5 zpX6<>N8d(%9vD z4AEC$O>~bF~B$izsb7RNp(F^%4_Qk_8E*-R_(WpP6=a{l6PWTT|z3|QyzMfhC z?ozjT4`*p!3UHdUt~v}A*--x(>eHW!&N^6DX*IeFyALB5{X12DL;c50#{1cz!Mbw4 z*Xs6XaWm#T4BMPx@Axc~{dRbW>-b@a4n1qFUfV}SexGOGNB^+7g0SE<{i*tcNZk7T zh1(a#Ys&{?7rEcUk(F&6$-`=sO*RwlVQKVC9m*6%3sn$U~&E2!` zJnU#YZM(a@JwI7(Rk~OR2DM_8jADu#*tPbPJ15WATzBCDGfMpjTI+6_Td`!x82-m4 z#>NmZ0ygxP1mB*<_>9Xt$Hs1A8uj1V%tu`AIW~54;CH^ml!+`*MWLe>(p6S%jii&rkY=#-=bp##;Xgno&u zHTn&FRE-saV^qBw>LJ>~6VaG*w?rRP8XJ>Wu=7?zAysJJ!aM8ko9HYKk>5&%D18!4 zyg^8IV{r=39NJ@J*VS4b)CKVinUB53PQv`h>P@|>G?DftC-#y%ec7F^MzwGk64{#W zQWX_sSBv13*c`PH|5nOvTpEwp;i(uHuuAo`%axkdY0Z%`DpuXay2D~ni0|3+Iegl1!wXl@A%T8ER006d`58yr#bRg=I7$TWgHd3O; z;A$^lDagh4rs>OsV`DS;syKBlN+ng4YIXWe99rZZo!|1X1tv%BOVhKE;g1d6htrUM zw3_m%>oi*8dB*P0lY1tT{Q+2aoQi5Reiuo#a<@iV+PKV|z0AuxE>2LQ>|HgxvX8!* z(CE)LIf>y?3BokM(`vFSdz!s65F@l%y?L-IHG+KD+|q*^aD9(`5O;4^oE`+a`TzXyD`0WY>YluNp|L$O497^xf-xDNRx8RmJc$jkk66_=x^RH=*eXP zd7=5(7#qv$|E7&be5|cM97r0k|1ywPJC&k?O^E6?cztb1+VO$3dP{50;BoG(iI2k3lP3QA zg?n#dwi~a{>uS{7FiF*L58RAv@3%*SFV)2b407kNR0P>vf`9X{KU@^x12&*w^gDHGHCX3wK36>fr%? zH1+V`W2q;pnh@&wBpHa$(pPXb8udJA>;`G5=K*G|=&7NBdcFkF(NT|RbHS z>Y=pM)bm{u;?(nDA)kA~(G-j3vLV#t`B_oVFMZ95?lX!}3rRgc&tl(0 zM?HM)Aewsk@3GXAR80u=Y&cC(4_Bj6&qn%jC{fQz&}8c42I|=Y(a}+lXmi1-XB{)2 zmwG5ocaFK&im2yFB*dxbSRrq6ix%~)WmSl!o)c8m<5>oi+!Oh`BA=^#4O_J2b43;l zo86c{?zzmJa>=ztxh@$^L;jo*grqJ=@(ZL<9YRuFG9-_Wj`pk8=&En*IB6oK{m^8> zg@LZ_fM{;Iio6Ob(E5TC*DN!nm$)b`HF3R?gg9~4g}li@8gb3AD#Q}k!AEORUNYmO zR{=%6Z}qum(Ngc5vhL;qveXAFZCvezNeg2 zWeAaN-s}?Dk-AEa%^pixhBB4i1WhK?7}#tFM02xQBi?aM#Yd!mb6_ozlR z#@s9sm_0Y6vJkZP$xl4&SmhS0L3K{}F?`=6P2kauaftz{&xdGksBVfnrKFl&aGbW7 z1-&?>wA47gi-b5%8$v!IP90W-IGheP7!D!HD8raX1r&ekYoHm^oQMj!`u&zHmOgZ} zF*&rI$BcAE;ucH zhFQ={OO%$HmVQh^oR&T%FKiJ9J7`zHY|0D?0(m0wna;J*Jbga zxs&9dB3|Xr>ePAo1ov`C}hd`%C0Yj_+fG>NR+OML0eGn$Z_y z{AYmow;-Au-jP@QhP1!n=>8ltr5D|lmKxnZB_WRPPYd~k=>8S0ltA*(hG1()BR)yfSBhznS?mNPZaVd4{5{qI#z`^ zfDay*{xwcHr^zC!<}Xk8nZryS1zte@yCY33I@y^SkFeHAN zC!_KBWwrKFutsaQ8T&_?dC43!nLuNpwHHA&H?3`soR=u8>(>ky?0x|Dc3GF%&`W5P zmYUFBMM9j=+Ctvs8;#IrSry_4E%|)p?M$DUcEo&y7d>jss%>fay?6s+<*V}%cvaid z>6C?F^$X-Dx&I@J)sXr{;m7<_jL*fm#DLUqLNqs0Be$hp8x|d>4>AjSaY|{aarzJm zah(2@kWYxykFzQa52wFj`V!%k7k%h)dT~5XFHVfpWXeKty77!4PA}GQdMf=sl!?Ly zXfpK%15UR>bo4mAxac@NfmzUtQ%ckQWA4Xdf^Z%Qahx76U^r@ZJxkJHQIae7%|oF-Eig45%+1aW$qhSPQQ`%vQEW1z{@8w@x-6{4fZ>19R7 z=~2vrUYt^z?jLhM7IE)R65===6Y?g{XmRgKR)yi=^dhD&5l(s0=Jt&u?%f@a)7^=2 znoL;;PHpm&Z#>g4iE)Vmr~4r~dYtYqI!;T>f?k|bT56oWkc2o+ZxQkd zae6bW!tii<7t@yrr@ZJ<rA#_nSycWZPf6&=6tV^;Lym(o(>_v<9Y@%!gOJ|TYJ#i}qo z{Qi*XON3uu^r-QxogdS?2D=S5A&6Pt2qbIg$8xFd&r+0*~fW%w|}61ukd_+c)u&g zi3WJz2hrT{j((3LXyKxd)Ng0D^kSUSQe*rJB*ZcPRw17d<8NYB7#_yI#q=e@I4^qC z7!S^)`Q^Q_12xMQf$QKrI-SxGEdL+*%{Px`O0_|H=~i#w@R~WzsmDiR++;xUYE&XO zieu-|yy*oWqkqG!=*2IkrN-|@axBO1uY`O;{QiPfVR-o6hMJ@*derz0&ZAk^NH|2R zyb(wa&ZCt`eAKP-%FhydUeb6Pxs_wuokuGX4cOOF#-Yrk_r&eGDj>m$&5)!smR?(1Do*Ffwsg)4Vw>u3~)NJ>A@|&6w)TUNKvMCKAx$DSyVkN|*RAagu zj6Ed{(>)EEOl~qTT?wMOgRsbz5O329PIp%`D|+dU(sVSN`?r`Y?I$4~iCrn=P2SPy z?s8UzSh}mGy=y(o_i!aI9-6`wf&QM)$$k$*Q{3UH{r~G=J*3BIr}y z>8@u^sxpK;-$jPw!=#boaEp;MDmxW<)P_ zQd(;2{2U2!>U^`1H#tY6&Nr|s#8T(h#Gmz+{Fg#Pk=Q@_8oy{s?C-O9Vbmn1zNRC- zylx;H{%Q6I>QZ0RNvDR~^K^m@F3QZbv$n=@R0C5)&FWTI`{5XA_ zyVXS9qSZ8mwAGA2=+4w?La_OE@(su43SJuxnC}#h%fDCkwiq86fcXK4<_6{|Q7>MI zHWwU~Z(`>2qLR{5qw+x#;;4MRkWYxp*Rm=M50zhM`Vyg%7d>iJs=Z|D6J4j#GUJkR zL?Bb`C8tppg3jNNk2pGykg7C%{#Lj!KR$mQ;|&8omro12mpeCt`9yLNeBpf2v{%IVz<|peAv)4=liFNxR9?!==S3x@>CQ3tS`p1UB*e$fi-mkbXgrx! zVR)#VXZjM2o4jaq`|?M#YS!6oH5*RTE*pU9W{JS2nsvH4qfzc=2|Yb|5BW*VI^CQa zNZ%m*n1AqmZH!9{Ablr9bAvQ;)~T9ZaGbu1Sr7bV0}`#OW(p6^4h? zFED+HaLS7wHBK*ar;E-0tle=ca%)_WXctRVzrf=MP&$nFCzDG{2r;R)WExovJ53oesYY54B)*QqPf8v zxs~i`dBKr;9y6jBxs;~6$lS9Q9k7}ubGE9c^2{wiwCm!dDK*@E>R)pmI#qCuXTF!MNp`^ zM8%sunm)bxLKh=`Oa|oCxyGAaqs^ZhyGxqWDi1-E36loe{53>#(`Mu)D!#TCoHBpN z%;=>|N=r?dtG2t8`8^?Tau1nB>`4DJt3oVgURthH>~0qvxTWN^@fOROwwxZg(CPNN z6IQENvpaK6*S6$IW_z~Xo3|SHS+e7hv?(Gync5#2=r5u-Gfol>N#(s!6QTMVVYgAP z>?_ULQ?*uWU#Z_Qoc{@Aji5vIHNt>|ff4=n2qnc`WK2$q#{`sXym+ax_oU&)i=fHm zIs-56foN`CjQj{;u=xe2#tWDwz0^o)I?B!cUd$ECB*df1Ng;3YkVcK?vMR(;WAgKS z`LAL@EYxG+CLe;DHp144fR(UBvx@ZahB zE;FDPp_G;yq04u;2>mA^pAeznVpSL(Lf4@tsfs@22sM0JOCU7rD_sGECQ=oG&?k|* zya?4l(RCjE964D^6YicH;|&8sFNNsH5nA{!bUmIK(2Gz?)7@k4!6M4Nk%agddbW^H z2$OBB3d2L_4AYlr4CO_e+c$zJ*YHg(fzYV$a|IBZNL2_zUqU|eB2@o4*Gq*9^N*o- z#(2Yk&{sipHBA(R(=$PsGz znwCIl)R(ye2u-9a1fkz1A9)d~f0pZ?g$wf|^jk6BFd+0Hh>jegh5stoH<mSyafE(N$R|YTS6CH>htSn$CysJ?(T5zNhVN(zghqXnD}c~MszMOD14i;8RR18? zPWpK$QSP=FZx|4I9z;iu(87O@Yb!IL7on7KT$v?eHCLUIPp2#drOzin@o{vOt4v$aeWCDU z{(> z8j0t-Fyee#GN1g{GDYC>yc`NcP&CQ!OsD_jHXHp(%S$bV~$a|~cT7oxerx;YB0 zdczBj*~c;)dNE6Bx`)htS_J=BkPyf0X+l0BW=~~R7#?PCX8OzlfH=s(i#E3}fAFtf zz3aED<(^$~nmxO7plmpv<;xg>UG?gnFMsq1?aLT?Fza^mA0KJg`toZyzC(C9|J2~N z7>5~fd?!S6<2drwJAdN~j^#OKM=zEsEj5;3OF|sWJt3bE%llashKJ>MF@1@!%!?j1 zmerxG+48~CbfYyFjWwAg0=;UfO=e7@DrC(468T6hhD%i%P`@Hvm>;NLjPZs6sNaHU zZlFdU%5qy>aD;x28PJPRN=uEbWA2s$P!OGn>&W3l1G&H$Bcp?2)=k4Yivo%TU7PQ=!S!ISi=X2GQK8 zjeI%Q)AE8NcLOt`7rB(CyU5(LMV$O(65_}`QOKK|LuL`d>N-}1;URYq)0YUjyl8X# z^2f>Qf~R)5V>f%z0OP+$pjBP)lvGW~nA#=Z@G*4-SEFIGFC3SDMBN|b0|PeifM{-P zMqZ34+FWo{&NB0PQAug3QTa*|;;5_(`GlyPVO1C&D&NHPB|;@Hdeo>?YroC1Y3-MO zjX>vfwYcC&{5Uh77m1XX z8j0U0A&$h42>FCaypL63cu4#O)0YT|yy#IQQEeh)6{$SkF~ZT!5`jsziR|W#9&g<& zq0#IKk9X0z%FU@k^d$OyD52~+XfpK%14K7NG&e*eH<4Ad3y#xcm<7E!r8M0?=6)>V z*mFpT<8+OXH+e>jV^^~(3=gN5GJT0~%8NF)&lAU*v#vS}HrP8%eBeCp%9r__IaAAmmp0!r5?IZo)=h^qsKMZsA3m{oL<(mFf zZPj3G+OZqe5_{YGu7$17U$}i?ytZ8IhpiecXFo6ae;HSjY%Eg055}%76AxiMyUWIH z?BeT5YJ>g-qLYM=(|Sv&70;vG8|t^yKO1Wk=xDI8s>M{RIv=PdeqKG*Z#3*)c>Aao ztElBA2Pbd>;`J6xCM_};W0A^ux7XpP6UJ*x25TA+?35cNq_&zfnuftLW|xQ%kgTvbM3xm~2ke9P8+^JZ(UPWVA_FlPz&jl^i zKL*__d$(;@oN1@B@Z!O$_Wa~*tJ-ha3-t;K9D#%iKH7vHxSu-DK_sH{xE5Tx)nLGA z*peznb{p!ii)kWd{S$7DSFx=1*Ww@9nYdfL{cD4mn~v{l&9-s74Q9K~v94nWzeIbOcb({DKW3E;bTUfTb%k`Y`u%$CR=KT^9ZO45-D}wsyn3Vi z3>j2(ucZ(&jVyZis(%HwO3}SmKzIG?ka=eT-nk`}cLYdpV%`aWl#)|{bUCZMte*Hw)os5|Um|ceS>2+u z<^g9Hy5qs=TF29K{KiStb8d)fO!}U4yuQS38G4U*7eJ7_H&J=&jj22(deQ4x;{v^i zl84!gKIqdI-8D3de?O~Rbk;n*=w9fK??tY4JiW+ooJ76oH8G6|^dhs?yJ}WfD7};sgSgq;EJ!e@fHnV!N*BIlqOJu@eHMMiQ%#B6N@!FN{kLNt|{LMZ4U~kge zA}z7y!U^mAs@<*NBQ*FBO}kvNCoMOZwdKMKVOOSRJtALWJ}tmqeU2B=wd>u|mbxJe zo)n)P=acXOaj$<$TDuPRr(#UKOw31XS0L|7w}406SG$*DPStb`vO;qUs8Rl@Of&A* zocDUKX~t{MuH9zqon5wi*3;_x7E*)765U|+rARCjTE^?QV#ZQ`7XIT=R-dBT&9Snx zZpXuR)<+lEM5(sFZc_$N2dht$s`H_Gu#7t1g4?J+Sg6 z^N0Ray^d_sL}7E6_2q_B=J#^4&x~6*%GL+I#jq9iv$EYp(oMzQNNHg1JOFpiV$=iqy=keo_;z#-SF~~s|o8s@Tn`v#cCDUX+(!?%2wR=5q z)WV(Q%?sHeE@)9}XDu^L-;|c7xj@lqTGlEVP0QS)r|IX3J}fa1Ptz~YS$E2h}c3i(e#7zaPIznwIr~kLIb0scD*C`n98J+Viur>V2Xt*+qRFPK)t~Yz0jp zBq2`IA9CwzmJ~ECn+BTZN>b8veJ{$Zf0_PMrvH3}{xju1Rq%9Yy~_S;v;R)B|IV=g z*4Td?`fmuGy7kFUr#GjiQ!Y?6I+e9bMyE3O=;`#w@SHx6ji=LJ_#}LNG@MSUn51<2 zuWkX45}iux2k2D(Am~*5sepgP?|6;rHH|syRjsbCBsG3I{VuFBJUSIs=X829%5&*d z{37XeBYu-~D(eM0{ekdNf~fZd74^3Iy>`Fn_gUCRV*c( z7MwF}XVY*c6iuuzIyB1(__XN^!uRc0@qe#&4m!>4di~-k_5@#x#yfVU)j{+5>VTT% zj_F!C=Jh1iKY!QQKh3y*x+^;d9o09%bo+c&Ax+ed3+qi!52bW7Iuc6 zY20VeQDt$4kV_MZ^D8g^v8YX|Aov;*;+%b#+ZyjE>Suew*|PEAY_24VvsZAkTkxz@ z@DTVtD3UYwpVJd#Z1$9gvEABaW^Ak6oQId1Go?zc+?>G`5P>D&@krkGi9YJ=?XJa% zaV1c{IQCx0u@I0OeW?6d(IaJ#jt`Z;?33{IXY}8o5XtDlhRWdjzmZE4xvVRQ z`~j+VG9o|N#}`TPX%gHDQ|j7St>|?uPH@EORXSfbi*F0l$4sOjEWsiZW93G-W#RY_ zK3B@W5k>16C45~C--+rssv@H`=O8*n*v{9ixwN}z{peLd^_HdQa(hW&`d}8m-tq}D zG9POG*R{7?H{M00?6*rw7umUKURtkDTfXBZ-xJB-O8sQEmXtndq|CcwAhNoVT=~uPR0j`Ds;<1!flou z8*Kb2#|Bw5j13c1$z)^0+443qzRd`xr;%db!aIWCayDwP)1U5DW75Rw1(h!vqJF8k z_$(6QTtf+FO2s6l(bu>I4Bm9e20eV|bH*-F=;uuJ zdpL=6k$kLPj2i>_0$GU57C6~y`-R7a=He?~p}#5If7oq#dJa}rtKUaz7zfwX`qN6$ zw>Uqk1t@R2T7mMWuOGO7tLlE)Slx&enzH0*b}&HOscY0uZv2CJWL_xc?~7e+9okv1 z`c|qCr%7IzYT#MM2I^OA;%%I5tQ_ysB<*NDm!HSl0$nElF}%fj4n)=aLWAYJps+VS z=E|Ms!kzWkp~yN>LH!;oe1HA*_-DXdM^$3)3T=eBdDyl&q-ymyt|Z3tqM`O6I@qa3 zqxdA`yF@346yeV*PV!O*F%8+&0CAG{2$nUzPwOw|30Lb$%HdO~+9rB*iG-5(=%d7d zXld`+d0%^ShdfbN_it6vxl|Pur{TNIT!GW@luX<%VeEmBz@+EJC&RmR1D`H4xr&#a z?qv0f&Z?h;Px~(2%b;673C~awc-hIdjOQf0-!N)C_aFDBJ}KUsYsWN(vWlKg9Vb;! zH&;NMS(gKVbf;NJOvU8*9xgOqe-o-YFzmk2?|c&Wd3s`#F!q#V5+)`zS_6uSKg^+>+QD9@+)y*5=E-BJZFcRP*9#jeN;q&3-S_I>H0VPCv{Fzw9rJ9wL_)!e?z z^OvWdab$d~AY;ueY@VVM^2iq1_V~JXJT2eolkiebEu5CAn54A4+bv*FI9K{u8Y`Es z*W8(~o~AgY;kGLM0-CZ&eIKduFQ6TU6&W@Wh?hZq!tfx60@-}DevH2~I@J);fz$rsj4GVB9}GY zZ&nD@IM~{o7lVfslU^RCO4Uj35^a((whvq0skVHx;Bpe;1I;U3o0uiVKqF0vfrcxI z8fXk*{hy&oKFqv}p4c$Mp7IPcZf!CTGZVO4s9{%nrE;U8t(`}0uh2V$Y@J=bOelit zP&Ltm&sz`8;3KQ6H7$HwAfozlW70+r-cV^lHiu+*dQfy|35fXN>5D!I9}vQaCn_fC z@brLNz+kaB+c#>h566b2wy2*KO?}TbLHe;wnXmp`Qj=>e3st6#W%r|mVT@%P3~&&` z8Wx$|VJ*sna)gUPmmKV*eK6R4Ojta@U^gzj+qFP_Y}%u?4%uK7hHqO!6vLT&)hdBk0huUJB|t1RQC0dUsR_)&)BKWiz(;2vV$U8nvDQz$9=8O zgv>nSHMRA=%FQ5tQoHZCw6QrY?aBX8CVaYUhOm(#V&DB52;usPfxCIP^a80LPfGb- zv+`F5_M%<_rV+~3&fqfYIZ{9WLlx097x7h35rgBp{dOCROr`E@xzpRe<5f$}oqWd8Vv6J*s;Dfw|t{rgP5aGxy~imO;ObXU?N}V46x4SjG2_sG_lZle8H)dTt`k`w&PHPR z{~(H!v)T}nkt4r2oZ;s}?L>ua3_8UVgw;a_ecy?SCkIA-x=RvY3#i!YI0YZ~t(i`% z-^ObuQ#gAeZ&{SxDz_fhX+9>ZFJt#aF~Z|Xh)-tkSIrL|QyAio?pIUQQ|#z|iG()R zMRh@6vBwlP5N}$z*HT+H#AS)ZMq&i>Zt)s<_Fq%gS#0ipA3`Blr&6*W%f)W)9_49+ z>^Z(v)erv1r{CNU#D?#0SY4yD=GgEZs1L7@OCr{A7xXP*LU-`~OKwl^MU;m7FV~;v zwR3diXfHt6L6i}9|D|zI+mfZ=(;;Mv&UFXWk3r_J!zTRtpTO<4Tai7fc`+7wcHI5F zRZ+fwd?hQ29ry3V^d`zGcH9ZrrlkPND$bVtbpowo$6a!nOBsO)jDHtNEYZm^AX;#o zTi>umN8aHxpDI1EnGbu)GxOohhh}7+`J67J^y)nJ(1W`X9qUld^6BT$*aeP&42qEB+4VKho8Vm8z_hZNz@Dxz)bAPJ-G zwJhrp=lxEqwuv4+O+v|g^iU`L&rMZfG3kFcGh5(9Hzn&q=ddUJclq>tgIa%Y5R=_k zu)0QP)q#@oly`KH3ZLx% zmY&#TpFQQ6?2E~B)?@Zt#*^pZIwA_U8!^_Lk9gzx=Y z$JaMg?fett)kqx1#Q0@S_F-pniV_BLj39M&}PX`!As%N7}K2qIAPi&-O zPdP>^Rh!Jq($Za}b_=6bzl~3r+7V0BXG{8z8m{~*qQ|RO9h&hf_IOUP#&ILm6FuPZ z%a7Z*ou;&JPMp_qW}2;z&He};+c{B=TYe>S;EK+mMy|U>M-B&qdE|PfD?2E#KYU}= zNs$(2X46mg9I0m&zp9~TrTA4^+x=S^_ua06LdUf5LFXM1O0vlQVYBk^0aGYf%SFbW z(9fESNVUk$OHMYHzLlFmEwZoHfDmxR3jU+?gZxvu;k)K$guCI}ybkIxQN$^$ht0~v z-5``Fbi*U&B2u}5mz>58=DgmJMlnMDEmUcLNb?dT4kM)To(K-`AAe=?lnYf%6HSFO zs5#Zl%j$|@*)T*kFB6UlUHA81;W8<%ZJ|TPeEx<5$9UJW(y=jMc5!3N^cHsUuze7B zy|9aj?OCgV-`tPvo*%E`d(V4KloADpEwGEemSv7$#Os+a74AfDt zgxH5G$q@Toh$4CH^JIEru@8I76Z^Qe$sGG^{{P5(6EL}|Dsem^31npr5e$KX0O^EI z0}74?0w{b>i97ml+N5_31 z9TArqmvI}NQAhvh+1pxg=(LDiLf5Lg-Gxaf#|U~9?&KmHvv>59Ce~`Y*KN=<3Vj9aq&if}V<+7b zZ``k-sqvf&x*PAJkb;&y$CWNf*D2fvJta|~32?Ye%#^XT$|%7T!+NJD#GB%y@|#Vs zlOSc9P4A62?xzYho|7scjdxLqDzfJusj^1moa9-GB+L0T(?h?|#Q1uAFn(fuIVUlG z7;oH93~D?lF@7EIq7X4;&pi@@a`;)=Bt?=#B}upt6UKe5$#dBGQJcz7o>fpOj|AHg zZ`@BFYTO_X>P;TWQt?B>e_FhYLgbM>_eh?CQR9o_aQjj7NQrmt$_Ec}TorHLPgdD{ zk@3gN+AfwhHIhl3Q?843CA=Jji)A0ZFiba!7`Fg595MDGv?b&N0@iTR`P~wNG9rBrMB+2|mXI&>f(PoOuPq_>_tNoq z3J@Uq3=}S~CFJ{1+}sipL$A9f#O2no%25km>yvvk27^UuXBtlIoLfSkm!nnM62h`f ziHub2$XsGIf=;YO!WD-k_9F{!NF5n;I`NSlbP`Yf1f8Vh>*pMZ3OYsC+A@PqM(u?k zbh3cW3OYU13OX58i!81wlg6me)`0h$R^aCVx0s5-md5cw(x0fh3nq|cAwXE0MlSmK zTur-5;if>8=y6afkB>DLZ`|)lP~(P=6+J8;@1l^8C3_AFadT(NVDS8=$R6R%&^ei@y7jRpvH5O;SKRF3XwtfT!akqvbL+Ig+X!|0`0nbXTr|QA>KP>rSC2;mp2}H739qZSV3*H6O;G!HOt|(4EuTFUD*^pr)SpzN zwiSb0lTWm&?h@HZ$^^>ZI&?p@AuXBj;geWC6HonEG76fWm(Nb%95s}9A-%zMQ+UUa z%>F|)!xqe42YlJg0W`~cIg_jxtJ;v<;xO8P><1znY;+L}($!eC*=|X_*EY)^6_@#R zYusk}ovPbic-VFpzSc(&DbQr@|2f)Qn2PD>;o)vE#&`OIM)`-0MV8J2S@CAbh4kJ+lblyJ`tr~HB2Vc|kpc~_E3^0RW|C6`_I*hg){ z%s+UP0MFcFb!-l9m@UD5;h4^PcU9*F;!9#7gL)Ir^R`ND5Dsv$EQ^E%0*#hK&xkXu zKid2oM8C9VZl(G;Hv=)@ATA>t>A{+L1#~H`nOEYIux7+lKh}(bre|yB6yzJo(mpEk zC0BJ`Lh+k6eQn;?joLIu{jg2*;`y;@BH4aMoUuaU3JhsQ(uL^BZ4416H}2t|m(;lL za~M54HSUL<8jiU>W+k^n{d6@*ChR5_2W7_`FVuLq>Y%$INh)k7ohDKUZi9L((^BuX zborbbVR5rkV<-76HY4r!LqL4fM4y+^<$bYF(IP=R< zJ>(Aaph1DiMtV>nhh4}DTP-^Ftl_ zj3jtUR}U+Zmn{S(;sZEKlUzo2X1eZBy$UyE(zZtN440T!t25iTo;gg0S%tp(Pl7^L zm~^W=FZ>_%MA!nn)N9!PR8_aTaOvW>(j&#NO`2XiZYyW#SuSo_=XmU!c(C zQ!4@Ic{^0f<2+v(Z`|)8Qsaj699s#vA>KtH=UMiwRhgUCj|~poFZu|H0!@QM?OBqd z!z$xDQ^R_vX|g*$Cco#~k^p5c3p^{{xSuA}xTeWLThHV{;G>59CGqA9(L?syBRy7+ z!v$QERVk%X)HsB`@*vc2J(9P_N8+c#TXIt2FXN5-sX&cuDnw75{X@KqLX?m__ehC? zVWoeI!|g}SHznS+*b9c0ej0DyPgdD{k@3gN+F>QFvXX}*bZ%Iw1TP0+QFB^1k7AZ) z^`RGOv)Zqt*|z4iZt12B1Dgi};&LNl-D_amTM@52eet42Xg!!42+MHqHbjcx>TXCZ z-6;us4&z6yS-Q#_qfVvqYO7POHA+I%4r8pTQk^Kz);kbYnwhILCQD$|wC3O{rpDyT zZI~if7L~Tmw$irt41C%J3aZ6LpJ*8<3gUPo5M|GwIFd`horLAX{;8rI%zh(lltz@;d%^EO`h=wB$ zrkzo$O_UmNAvpx&NWQJ>?mjSxGZessfQL-mZAy!)wa(4hfIn|KwZn{yv7wAFo7ySZ zi_E6B1d15_Z*uy#U7=#h)HXs}v1nZ6TI@5SYVl-hI03C>YGQD>8OzC~c7g}8a4t2Z z3D|4vy3ev$>_9QA*0Cz+6Z~(M;w!nk?Va5awx&T?3$OVj_06OvW*CcCPEn9~!dHIIYDYBi8wpfGk|pWS!*IP`JR3M7FW1a`PsU(UGc(@m-EtC7=4h3+ ziKBXnEsr1obX~yJIa;M{;;d1X;z|XDU9n5iWVZ0b6^G=MiEI-`n#<+LM_vq1BAP6o z`iUk>{fldAy=D;{l9?q&=?vrOG#s$6jn|BINfl8J=VcPfDbh`Zqsn*BPgI!?W{zAe zQ)0L2(zGDFSwZEEGN>G=A4nW{ObEpspa~byGXE*SG^Pfz1$lhu)e}|S?t(?U6E)Ux zmEKbY-l&G{4gdOsEz?j5rc;h!%dPR|{lOO5d{|tXVc41g#U`{Vps=hRY|(^HrVu(e z*z$OIIf!5j<<$vH1KP~<8t9DIF~c0rK^Mxa6KK*1yzs!lD!dxUm^WLXXc+<%MlSuG z30!4NH&Itp*LUWvpy%jY37&kO6nT7CVI{f7`6e}@X z{*)n80i;_N8lc>oZ1av4y)EL{;E-4iL`rBL`x^0xpU2{Q;7h9Rd@Ucw6>u7V>6>kq z;}R@lRANc5N!cHA<&OQC8h-(W@MEZCDTISfc-D3KrzX)K;@$WagX|`sV)&r|DJ&z> zia}F8`2j-bDu&O(%RwjxO8FX`c$9JNQCc%Zn4VQbDPzv*oNGKb&<&p_BIF3lch8hl z6C%$LhOaedW;+ny1~YiCqZ?p%0K~Oni|EBXWqYWp`D7EIA#Bo_njVF|R2K_+;sV-F zrZM#xv|M#nwKLmll*A2p9M?17Y3!X_2zwN^d<0g?f6v4rjY_%IDpP(39qcbT!Tv?J zG-jt~=0>QvH}L;pBk*q*_pJdu2?3RB015~__9sWjUThuUT4*a8xCmdWG7eRXuLB$p zwXAi3H5T&rA+tLx0#ES37+w*0ER-%dui&a+PZ#bKq~HWHQO@AR!*aAr!3mx@tk}b< zz%T(>%K0m0n}4qY_@w!FFFpzLPdxQu{*e*YYd~Tn*-1hU2aUe)xpk>~%-VgJdvs4g zy3L58ca&!UtS`LZ^t}E65FyODapUeis_uMUl^!?lYzhd2!`PK;TW^MsZ-2;T)_q!y zyntEvPf)3tS@(^2H-58Db`zeFN?D&M@gR24H*tTj|8lVcj2Hy4!*s!qPP)vAy3M}M%;zQlKj$3VpG=DAY{b7 zXd#3@Qxg;rzL-X{|IN2!3*n8-w{=+QfndI!g@6Xlw}(Z?Ud()Z2(;Cs`SwVtTHJiY zxn9tG8}YyxHs7{HvE!Xl>yu5MF5IGIz9AFkG~bTO(JGm5Jahb(mMK5bns#`z2O- zAeebaTnc~&&Ag-VE3meoZ;F|Dhe2CCnt23U=Y2slZ>Cf&)m7d3 zI?x{v)maGJzee42)X)nUb#kExPwZM{Lpgxtz^8Itb-y%CO~lFkn{Ha9sP#mb-{&W?@_IBEy#Z z8v>CsR4MUCvoWD}GA@|TnvmtjDJ_$okJRLYg?o={@#HrI*xDGGlooKcutEpRgrG9W4 z=);&h#f;WD%|?QC>--~OwGsNPO}fVdO~Q;EH|Z`@b-OQJ2%$O$ZTr`#tEj;jFzUvj zQZb{h74ODx)X8qbv)eT4b_kHdCPCV$(_~MsN9bIm?qYa32&2xj#9Z1+v+gC(6`OS- zUT4G3+Q02IXP9<8Brr5C!O`t6)9w9Y3HnYH^c>#V(WW}6Y4jyDsT#aUT+ziDf33lJg9xp8amR8@Cj z?4`4ZFN}=+w3qGzHSz+c+;*r`%#^z_-i_aslih^pvT4daLVy%D0n(Ji2#a^aRAX7@uas@7{RH5X3#vcGCt<3IrvqoI!3pVFrv~TC(u=62aO6!^ z2^wYHXUvJ9KY$n*gmJfqLf6Fk(xQ7T^vD*S=2gf7nI<*e5cl^%9M=L)3Xf_D;@C@&$qUkkX8}yH^Jw2 zwFNmNOO0x0PqVcPUX?{E$`+i0g-i)>b4k0c?}FbCEo+{6B8`wGdYHJ{984AwDFH)Q zD-6YJ(#C5>D5Or1jr5Q@VH&!WN~D2LLWzi{K9q=trsvcN$5tNSssi0wo}BO}hBS$) z6ILa+%#SJo2uEgWGu8Hpm=^|MSz1KyW>po2D4*)+M7_Buz4>Q_D#&8ec%%99xx`m~ zzKrXWXQ{f~1CKmMm8>?g<7yPoN1YGH^Ko6*eyP#-8ifL{w(+Zid!SOxG&fbjpXMlQ z=g84iNnVD~3006>4taU`;?t>vg$r`R&2Zz)i8t(XGo_0}c^%Mskear;essE7nXOmb z>NEpBoGv(cUw0W?9aXFB>mKUxvYlHMCE8=4e-L9DIEgQ<50hH}*a4`hgvOpG@G_;y5LD5_vEDzlts zuP;&W{@LmJF~a59klcoqfa(DK=N0t1v<43rw1#Y?2d(jA=u&EppWu_w8se!Rt)Zal zLu*{usdPqxUrQpz4G^k10~x31;3lfD*5En|PHSkuva|+GO(x&sy1EC?BS=U|8l?)U7kjv$qVXn=- zV(KubhQqC6-YcfCo0z}OVid2KTB15QP^wB3KnUb1oj7SlMSqi_A>)mf1t+T^_*6|? zQ|sX;8?hPJJ@{XkssoU{tOwM1q#S-YbgAXA`bcs(c?5h06)|-Yh#iIwNVbT^o5LqK z0g|3UKHOTfQEttl?Jq;RyUVSTEqSxbX>31|dS@PXIMTV4i6rkIQQS(&yInyauSxbg z4;D}$8wp8XJ>ROP_)o^p24VXo=v2zy>+ng)Uh&kA>{ameA$!Z6@~FsITtN16odqX* zHDEbqudcBFWpB&j+icl;lT*XtSHJAVZt}|BhU(xz$zDx>wCvU2SoW$nS{l4i4WYQ~ z)x%Hj!e(6AI|VNXD0>z3Que+9TGz5yePr4DM)=IKm!SjMy9)u$XZ2nJ7jm>QoU#Xl zEAV%`JOe4NsuhT@R7$gLcz{bis&H2ym(+y%>rCHQUg6Lax~@5NAHeG}*tONe=d^b*Cm1A+Tx)RYt;^h-0~zY+ua z88B|ReNENvE(BaTK^7x2Z)7+!-sXtc|4NO}Ct9ccNsNC6mGZ~y54u81Gd}?W*W}4A zbbP{%lCXDy_sRWOfD;xE>3F@SYw{yRfU6X~051oj6jo~PrBp^I0Ww%25UX-PWVJ4A z1Vb1;80VJ})O>1T=1H*HRfQmX2Qm^vfKuM2gduy3%fo~$O~A#jBO@cAB4#1!BwiQ= z%A-BioUK<@?ySP4OK=+$=AxX2U~hR6o7xF+f2n4wd&}b;r~@@7n|L);v%v}^U&r^| z_U3_gtY`XZaYl0#200C1BKiY zhcL23ltpvk=gc0q9}Ao?X5 z(YikgwFHRyL8zalt!aB1qB$mKu>*1Ck0J$j@J0eKs}tI7#>~YNBy7K8cVtKK)c02! zN^TEw_xO5#|-F~h3n_l=oDSO~7jPn%LlXvxFVe){6U^cO> zi@1hduIhGQGe3qyAlX135dYy#$Np<*s;VnR(6WMuiQZ ztr2iYPk>6`^Jd-=erCLJze7!p>kROV66ecJ0*G44acH3=j_G^RPnIEYFb8Q^R68`&djMwC5X@z84F?wnHH4A zYBIBT-r`zseu04T>rHbNSKF8m3@r(m{;bAyFWyXnOp8A(ghujhzK4|_2nU0fJPrVr z3kaV3P?q7>u<4cD3A^j0m$ZClZtHlx+-~o)%yi_eTjUnJ#n4vFo3QupnSNMu7*s8O zFbG9J!Gl5n3sqbg!v}-@rx0fdCvJW6Yfl&MTqMs8nJAa%wm!KpN2}zj@yubd5Ek}^ ztHy%OUn%=w(4&EZ(owq%pM;|(o(`O&_TWlwVxrorHpV?0x=#u^WU5lo@#?;Oemo5Z zakSilJGFMs!m`K61^igKu-vZ7^Fn%@*{hB+$(^ndIYPctmtq}dzS4SV94H*Sj7c^F#^~vR&8&e`idk^*pbCvR-E$UbiK5FdUq%h$1+5E=lZm49f zQ}ShcB?SNgn3A|w*%BbxzPl;+(rcBP_Q{P1ooiV>8D0*;vXlpf z3~rWT?YBbnY(big&6Xl9&?|XhScD8N40{Jco-@2XS1v(Xf7}!cr@|Ys_Sgc;5Ee4` z)avyTtW`p!d#*W)Ync>e5bKxYQ{~2F6=L78EZKlWVvvmj?8jj=DjTvYm8f+}JImv{ za9d2dGy#j8rFMCuTG~^d8{r9j03pz<_~(Q&)-_?C(ROQcJyrq^0hIrlLiyB+?qL-; zDbRppW6j2Bz1HsRd+9!2JEP+WE4pi)GNZ79JZ%*0CVOg~DLB+spBT|>GSq-=MB6tt zs(VK9Y143Ncey@WEp3NmUwcNy^X5{yEq(!6Cu)=1R&J~`!N8xLm;k~+i}LkwsR>8K znt~)N1to?6@TC})Gl95tKtM39FAukO-)*npVZmdLff@4Zp9@j%lURBKQ*S9y@9*Ia zh^`ggm6|FB8YI!I<$&&qnP}xP=P0T9@Y{t(LNR*cLmbIB#Yp1Z`*rMt2OSoq$mk!( zq86$?nxlh{$PRc;7!81r+B6R5bf18-Wx709YQQcI9pWMnwfI5s+l+z!HJ6nErR;rt`<^1AMYfu`@f?N!wHeYf2kZ{Far zKjM%KrzCmdYJJA2y95AXaxWe=svUBrT`f+SyP!=V4E6=wxUPG6YH*rST!7+qv>D}K z=!A*mQsnho*x-&6*wZ*MTNhWSw#&P5_er~6o1E&v9&|Qj1^%T}nS~wbAoP$R@FJOQ zh<)mkTyK z0h_bhYAD6=Kmb(}?1VzBU=wV4gkUE$8?ZS@o8w|S!JZ~_J!Ns@7-dYIh_>@z*nMowtYwLvkqM^;kZ>GCeHJ4(Qm zU`mK@PJ=$#$U< z$UW?#x(Yy+PW9FJB%EsT)Q3||su(w?_PPRkbhXuLwhC<473IV3^nu)fN}y$J)|GCv z9Jl!YaA~?dxqZ{7^fKu(YLYhX%3qodr=x5bU+k=@x(9UAE)CFK&0J$4hHL}v8k>00 z3z_EIbzS7uN$$@pMNR{~!Hx&+>{*&&`a zkgw_m$d}8GGuHs$7H`}i9-zkcTGTPoLhnIth7Ra5=lE-DB;A_w_2MUNoIYuCNHjBbWc!1#p{+b~CdKZjr`}`Q% z*$kc{Zes>pyIi8FCS^&ufTrht)L$Xrx{8&gZ~birZ`^z)Eyu$HEhii4LCgIQbSbsm zZ}CZJIq}qwmQ&F5tmTfuedOr)r#A=(^Gb1*u&%p#-a^M_G7t?{mZFn+cyxK-y#0Kr zd+p~_VRGqgQBl{5DuvjKTIISW*gQdg~%KT z3Q;x^Qize$iob;}r8@i_J_&Uwp88RT3YwnP;VFwwuZ!Mr>M`lUy3X}ps{VKdoxSV*#Gis8zQ5((M_T5Zm*G%e^W zkK+*jtw%BzABjK0xit@`r~1>G3WKQ9}0IBPCX9$(EwS zQv9YyAb#i(+#Mf*p8_w=Nr5-S8~0Oy8rKxam<@j(@1zh7WZyl~V1?2sDH1G!PfP*v ztO@YRIQV`7{C!RWd^O&$i90dz#2=Br-*O}eP%+a-{5A!T2c6DDM)Kb7twHORFN0J?!S7t@Gfh!Y$^I1MFFhnxcT zR@R~9cH>=l<>Skk=?<{2Qb3!pH0o|EggQFmbTd|po^X1Z0gT+XIh5R!dS^%A&m!-j zv~_Fgvc`CQwgQ(aNbaJ9zct9nBr>g{6IsHf6q2Kck~bP{ca>Yghnv{#(8Io`(6HYC ztpid16e@{O%(Bvbx4pDv2r&F&Zc79Sw>ke1G+1ssVTq-}BkPlW0xa8OHTN`N(O1e5 zyjT>?q{M~f3uID)%ONRBLy(W9+!=~z{ed##z#eT`CBn6zW2KpL1TOr zM3sLJQU$*_R5>F`72g;%Io#%Qk>mS=CkJ>DCN=P9T70#tljT+g?lusTEJ%)sOS0~2 z8+*BkaU@joi!S`)5aUcHM*bmaYPjv?qQ+qYy!c3pO^&n4oiHhqrUobzE*B()azt2a zv7@5Le7=Lj_&{iWoD(DoesM^$g-McQ3>q%CpVut zPiKMqmY`3ZiHYjp$WfH2jwmcd^|)-Hv;pjm^6FT;5^qML*n+>(Q1UYXwHsM?#qV<6 zb=@_*?kb-8Sa+qx%U(}6Y@Te6cBbGez{#mm>!ekB-L-pWaJe3)p;DeT*K6X9`$NanxQ?p_Qp4?xH(n^7F8d6NHgm1@JUMuc z`n5hXrs!})sua`2^F`C=Y4K6|!{d7-h&s5xcsq9nPrC8v#T)n2hZ@)PIcV#d+&Vt$ z=KnO_d?5lpAz56Nr_*^8~0O!8rPJF?on8LZA|-36{3gi zxkq{wToHV59Bw~q)xsL_}@v30N%;J^7QoK=Pb&$sfA%P)c|2(UMpSyrB9fiZ5NjXI<)o7%_Ych zBQoVcf0gE*1}s8M;5)E*AJ=Ta)OpDJa#OIlR z<#fTD+Q7Syqk(xBPzMr^nka-i3UQ2MrTig|)nXzHOTJ`=v|nmk?kNNi#TGhHDQ83p zVb2*`7|YQr#TJ-Q{xE^Nj!CfvmQ4Oi*(nKM3-HO-0QbZVWs z0%uCON-%P8fX*mtxU!Bn$wMT%{Qf^v`XL~=8E(ivQ~EKdh8>`o8uOkh#cpDgg}q5U zQ~DRGg9A@5_e`lp8VJlUS1+{S`Kp577e9zcaP-)duV6E-RrTlaau8OP!)S7A)sLZZ zHlp;v_)O_f;43U;h%==O8&K{ zopW#r*+hA^u9Eoo)rO|guLx?Em<|(r6@BtvtOOK+QU6?xI$o0mG$RQP-pEEm2XCS$ zQCB^Y#q?@?5@K3B^&zG;JUt)1S&O+A)8|l+3q^dfcvwW=IzNF+K9zPwb8-@PPs#Hl z60$5IeYkKQ#GnJWQ7)AY$>XQ;hi1J~fp(_EwHYWb9!^qqy9)qM&e2oj(n;eCjPce? z^14{%c!ej8ob76WKG_-AcKisaWckrcVIf^@^pihy7njGo@cYuTi@1M`!VyoNoGrky z$!Z#IsOxNBT9Y+73!!tR{&Dbf5K@1I;#_i@cR|A}@g<+Khb&LO3MSvI4zn_FFvt@S z&U|9OZD(tN?94Lt9yShF6+;reW@}C)X@%peu=Ijy_L|`MLYh6;g;E;_PkC-7-eimw zTGMn1CG3Hmge!%_z9D!PIT}H8Oja9^wN0I0I3Rs%Uh5E+3aOdnv656XH!3WL*$KB7 zkeXqlfSQqwgw#xAo$>k5rSt{5_#~8!c0&iTx>IZG(qFsa{y^ zJY#;;4nS#Uo3RF!os#@Wn!nbF_P>wtX5vET;%pz`&zu?#_xgPV>?W^|@OsrjcVSS@ zaTL}#l$EA{^H$4=kE!AK)Lz^s(5OiM4x4e6$E)DwAe4uX`J~_Q73hJrh%-cX9=-}i z*m+c^24t`cOxd`-&WcrkSTGw z>Ad06xwv^|6fS%oZO=f4l5Hhbu(avC^KPKE%yr#WMm@vkKjKMJ2r%ZS| zGcDL4D+%d&mUYi;z_KjdDKiqk`oWeMJitGMMO-mD>?a6hh!LiA8m^TnM6B1_0H zrO+9a2Rf4#SV@`(&(T9nAD_%#{WFhB(y0&gm4@@xh2W$$zKxW^*C)~<`fpCQ!g*i(JC!}v!qf2A?2C4kdsTp zQaoI7NMb({`aC^ z)v!zR{P}Td0_!d=lv!&q4n!2 zs?2y*zcnuZQsKiF8wo@b-Vc@XL=yfX-nc)KK#l82LPn;!FU3146ibkOhb>6f6uA2R z=K={~VU&&~Xx>ZSjX=A)2}ofky%u zxd#UoTI6uDN}T}Ns>IfC+yTWsh-=5BKx3B8ET>udkJP8XA6qHQyCi?)ey`J!!$#xRn!NM7Y=1rWN2 zLpfP&nIXw|`H4z%d|&cpfX?!Y&w;AN z@3hD1YTaosM~8mrUg!a6a4^|On?0a~ud+WSiWKjBS)ZKb>B22ajx#byPRIGs9IcY$ z%(H@dH7u+VLF6>EWb#+awgfu>pR@#L@kv;M;;9cykZh}7&!lf+p_zFi{q!7`AYN5W z$C)9Ld+_5r`^xA=Yy~m23waErI^!;84L;V@JZ8H?U=5D%B5>)1IVA2E`&{T}1BCx* zb63b_d{AJ_tSo}xwUW3C=x2_`*57g4@lI8@`-=Io9j${&&Z+YtE?g7x^n!R7*fg_y zACYQ+is+N(tIZ-z4*R91!J8Bw3)q~mgGza9&iBR}_uHJ*xK>Qjvzs4{cTvdVls$)q zm}zm|D^XyW|JL+L5oI}lW`gJ!niyY?55~Vs^ve>G%tPisj5qEl1~s0O7{88pQHU6_ z=U$0n39l3}4x!IX3-w!*;;^U0WK+NwTLqQ!%!>{2#{HzA#x*H2e6iEwofIO5?7Ijt z;$`if$Xb>suR;!TeX(c5%R%^JGBs~VR!e{E3cwosV?h;aPMrR0_khvekMpQN>|0Jd*Wpr36_8sJe+!3UmKqk zz6Gic3*Eo~uDXhb1zfeC-P5EH0?9p{#7YavJ$*I;6CGeN_w*>NRO71B#NKW^(lA~2}PkC0bw-nY%hI`5a z+FvQ#J^duWC*9Le;gfJr#nXXvPxT^&P8;9LB89Hqhg*7%?Uw2`hpgzjx|eDc*S|te zsE(NGcG#%%e$$%ZexOd6rQ^=$zp1(lCuV6P!1X#$%tS4j$c8&(RY_aW*{d19Q%EY{ zS^fqp<*}ewTpy!e;K&{|p4)S2=(X=;^mR&b)pvWWg+vYx=>l50RLlP2<`B?#J^BVUFC7=VGOWCs z@$4L}lKa84!tY7ApwQ|VOH+TPZ1>|w0H1U}evD7T{SZ$F&iznZ3h1g_&jzW;R#MtH zA@5x1XFcp>+wq_VZLcG}H43);xe%zWoX!U=-6CZFnN`u+|cHW*sXd^qXgOwJNo%a$1$ZzNE ziw>}uo%bSWt4BNU)ljv#orkkDpPkqBfEKp%o(rW5+j-CSbYV(5jO~)0hYXU_&bu*3 zt7PZ#tniy`E+}N@u~_m~%C_^q0`N&Y@2mJE>^$*w;OxAUm8sMz@0_idJGExRW9toP zZh$2%!x|H;1d*?)@!5{lS=n)#AHA|JZ;-w)yC zAnd2XpmbQ9y0#TX{%-Vi;T9!}5E&$=MR-GwR>>mdS>ZSCTu{g&WZ~qm zlx-1y4B(R%;m7ewScKx~z*&UH)ywS;ZZgLdPU)QL!F*U|wV(yqy?uU6BrsRa?1?sP zSx3fYDjB;DO#h)No#N_jo#KkFSf4AB-%4jo(`x2hzyRi~$xd$deW!+FIE;Dot7A8@ z$-`^fm|y+ts)L0=H#dh>ibSxlakceQqxW}eEWW5@+{D*-NPdgWxK`E|;pHH#EDz(! z2-{&#)z+0gK(eZm!=VI*5if%C+6*I5@GCTGukmCbTi=YflSroy^B;GmiuvD~g*#!y z%`{cI?QoOIRCHR-8u#7yinft&U z$gU@4)s*(h*x4YNN1#(Fs87cyA*jVuAA(xL)ALdG4fR^1T5gRtXFHJUHN8J9nC#Z7 z7ZlfWs>BW~$psp#wV}>%sRIA58!laIWeC){Hr7}b*h_cb>bd*qD96O-?!~HZ_s;pz zJ(amedAc^<9=VtvWXgDF$gWp@xQjK~ETlISEvCE?`p^)+frLICV}gyUA^SvKzyZG= zD#d0L>jhk=c##9_5#}T z`vL7>IYWrn27uS{q*#2d0pMGD0q_k1z^Tl$M(>X|?hma{<2tk=GZnJCB$8-p+J7wG zMWMio>^WaxMKWx>ti1tDi;d)o2(+v6&xe)@;f4u&0pZ;;u5Q<+F%Vo8#(-Q!E;S)FviLpToNYn!{pLieQ=6`il;rjE z;s@LSKQU3o3z2JZQ5}|mU0!f9rBhW`zVDZ|HGBPphRNPo9?N3EX$2tHe`s>0PlgN) zFb(5DqeVGrv*-&Vpl&SGps01--H&Y|NHtkm{(Sk3P;4(2R7U=X# zbL~T%_TpSixf)Lwu!W17X%o5!&CKm9kWBC_XxmICh>|Fst5IRcN+#$c2e7xSbl+_+ zEg4$OQwCCT!|F|(-Wp?W17X3AegFlS)@5J}i@s7O!aPb8&1BgP*Oi7EGb4>kxz#Gq z3APpD4j2}UaUXxOCF0l}3G`=jRG6#?Bys1205Zj$_}XkMlRH=HAux-YuQb+gby|)? zNqqWr0cE(T$*0MsP`Ch}-VVjH`BdS_;!_t*K0fu7S!EJfqsA?niy_A|P*a>CPq;S4 zkm$#^ns|Y1h$a1&<_7>cla0a@G+6RIVnivH#Mfq9gJa20IW5PbB$oU~0cE&oKP>ra zXgixF6`m}XbkXEvNl%$IHiVpSuuZoj9=UTV_r-qZk4g zZYXrP)UI|$pBy?+yvo9eT&TC+>52PVpuK5|*b^omNq&{8yP&Y^Bx~LfMV@p@jL0pA zkd4rzN>6MBmH$GGzCcj4yo*9XW!ZCBAw?N>l_8~Q zqG|3}CO)!}N58aSIx9X1|KaX4pi-VqlNZJt_eb`raZQAb)K!mci&K(Db}$e_XwZml-RQ&$)5%_@Ln@ss(L6vPRF} zeEUAUr(qdI-ls0+7hSpamU`b+g{zb&%C)*k9m%f!L_LE5+cQ_s(TRAcZNXmQh4 zk3abbY{uQ3aH!2JDJyabe3zrg2sJD8rhLE+1ytYJ&8 zP>h~Z%uDeT>t*>vL;CApApM2xJ#)c*>CPT(BWhf$5ya z0>sPOO4-YTx`E{NfYd=KWqDmaO(v<29|}lfea!QURq-0>oRYv+T9{`E@Y)-RMf_U0 zr}f(cQL+o;1a`DCMaj;`O8KK?OYyQ-IYTttxtZs&OlIbJEab~Pe**$UJM2YgdIpY0 z2Uu)}{q@jROoVj9ndfUzwfGKuvc5dLL_Mn$~*QmmApmz%gLMH*bNt5u~gD(##rfetIx zCQ3E90$f}Z4!MbF_lquHYR~Remj;cLE}H;@8nUxOLRTm~(S*#arB=BH8)P62YqiyC zwpg*ud%t=Hy`>OZiCNw#$m$qcjx-@=K?)RN7A@7?i^PzxC`kN>LQs>_z_K_HB$gW? zA`Zi6p;PHFd=8(4!yumea2Waw5Sbq#OoyN7YGjR{<*p-G%P+7KEiMVaz&` zA#Wl#P+=RS!=)`-cI{ywMjOp5bq$_~<|{o%eiY@lxbgf0Rd->b)Cml)^`T5)#k{IO zTkW|l`GdxzipU?f`U4;=riM*R{6GuF;YjV8fT!q^h2Q#+a zu1x}h5dQ|z22KEyC+oVmA8<}Ggv%Y{wsuQixZ1dYeF^X!%e=)SMzy<~YH=(2E@%@b z9QGwP8{fHb_}Caz92Eykj%REvMYc04zqT)g{Ph3UL^ALeM|zO|-qRPl&*_8zBCv-w zs0vYRNWM$@66V7*X%I0(5o?m?$NCDEi)14`EEjzNx|H7E7x77Wf8wbR?@vS1^K#M2 z)1aBklhx5Zwa(ONt%3(^=F+}kFh!HEde|$Rr!;on+ui+;X8DFA!VdD)9io@Rp!)00 zR^Tw|T3=NbW&V%a{`_fluEib4|4?=3D{E*GtUK=GQ65~9*1kh6FdjmMB=)rVZogmG zRlhYNmsMnKgXA-@B$Ua$^`Auuk;`ny2f!mkb6EhP^WGObO$X z<+aWw%YY8=O4nh=9m`P0x6pMX_97R$mOv4s|F+Y=E&qzGb2Xu@m{^RgbKMM8i?4Ix zXohY3eG*?V zt$aKN3-B^QwSUWerQv)N^~1{{Hcz>0f3%?XdaSe|A#efz$%`|N?yez;P#OZ3rXak1 zE?4P$;(hg7!}?c+V5KvVAAm}NK@KVn8FL9=o6Dn~gB{6-j6rn;yZYzlzc_8haY#qZ z{#n2kE^3|%DSA5hbI`VV9z@K&ui!bW8`XqcpD4^&N6cKri*Hqal6i@v)g>rJiFnV?h zkD6{zrhUNmq4hv09d`L{nV*F~zw?2BWqEk(q=yG1-coK&!remk-SzEfrvdZ)@9wxytP#}1PP@th)0HaUDdUP!yNUZbVBHMM)~jV$uYy~fo2?FQsa@wZ zdEaes&fO%IwVTv@{x%v@KI>5I3)+yJfR%t+fRnc0( zrBud$hfg9xE1vpM#tNFAm9aim5lqAvyevr_$e^l0HJ!b^|1817ZiA_Ge6ZL#1H4zY z_WkQUGl#nku&7CY(7f~w;srl1#ntOqRNd|i=Eo8VWavu|T!^Kq+f;nhbGXvLr9hOq znI`w)%3mlHcr~wIE&dcL#k_n|E&hinYXm>lNlL8})hqXK<;sbe?G)Iqe=t<)89F{n zse$7+&f&_FdI9bDen2aDxN=)B06t6rm>ns8bi8rDF+q)MV4~Pf<6!xbB^CeF@~IgghJS+X%1MTsXg`z_q~9-D4k{&3H^^h&CgM;%}Yy;w}k=X@4VN z3m5GtO#6Fi+YHm9NJ=MBRM@e?v@UXdnZP_{iX~BW8wd+|wTQ7k`BnzTu;?o>7QH_C zhA2AtB#KELGWn1+1glWXu7^z8EET3JLP_j70+l@MiLVQ>rY~ZVsGc%`EQ)T)TpW2?25O3PWDi*slMfm^ zX(sHx8K5)yC`>|wC+EbFaI3qus)eu3wlYPg$$(Lwe6iDV97^KJy9AWsqW$pXOQG#- zo>X|Uc+y3ak0(84f@u`pvbnf&cLs7&Tp4eb(kOm4hxDbDIJ7TvuEc#@3hJjD3!G@XyUKL>${6ga*ClcK-@@ugF? z)Cf;lYa3n29d{>{N9Z8m67ac2D>}o$^gDJ?9Sp->eW&ApAcEm13gG4FAuHvOR|X@9qV< z7xx1l2m5t^m)|(y|9AER+W+eZw1VOPPxJ!dM+Jb{;r}nh8~4YZsc|Fj{J3UA$DPFw zJ*~eJ@1juLS@s;(Qc;HOC%58nWHC&D@Ai->kxuWsIK{nz_~faCaR7Te)sJZiG-k;x#8FE1O^x)h zIpaytr8Et%!zZyhLp=3i8fs{I-kfnd9Ib|P1bCzEL~U{w?h%3$`fab!N|duVKoYw#=LuWza?h8(c!u5#Ef%J4cqDqBxb~JV%`wz0Zhy| ztvcx5Ge1VS#U>*cnM^Yhq*6Lv&M5Z1Bv)|KyNJKBY0$KpFPJw6pE{J z8Bs9egi!C5_s)v%>6AU81SuLsiZHl@xQ%-Nr^=lYh@VoqWN{L2R480ebH@7#Ja*)r zsb`Q;#Vj@~{5b@8e~-p{dfhhra7=;F*e462kQZ*TQvT4`(t52;3H7zL=jKktGTswq zhZ`r#u#oRa+4m42DNlnzHKO!=oK&idr5o-W*?9C;T-wPfVM*o+-JiDA_Uh#CF@wt!IF?{Iq*+SnS)fuAS<%X^8gv91!8)@ub$#dZfdoNw=SvA^tct>H zq_pmaWII*@rU9J4NZ~wQlQbWb2o9UbMtX>6ybZdP@r<|QlhA(RsSoX^q3JoEajIle z%|4@o3(|UUBof8|E#Wp0)P~tH44IuZ02fQrvJBVs~BpEhXf+?uL<{g0vPKB zoEWgEmUQb^<61;L|rI?Qnwhy72JXh6kJ;q%QqT+xP-X{g%zAcpa z#lic7BQR??+={tyT@i4^LAG!mZx^VvbfRs>6bX4VXC8 zWZSY__gBh}>iikNC+*sI;ghgy#Zw=4ZJ$w{Q)cST&ZxSLLkD%7mAOqplh&@^hb=2} zjilg_lWuAru1EVvAc{4yu2IL27ngW`!;_v-pLJ?D(`2mdDBY>6L8oCiF@|Q(A6MZ% zt~%)6J3qEE)7jvOkqbJIU3}+kr&_rX@^C-4wzt+8ap;s@hdV4)LPoh#?=?EVr$*~D zjpJU0##C}YHshM`h1T4>jcE~)d<1$Jgr&MxnwHKKk|yesx;9Z$IAhy1G-p64id8j6 z1+dab3AuTU(v4TZk_SXIAkcwS)VKBERXZ(tiw{qTTxB(lSHrN(N#;x$|LWNTfcF8z zD`;pv8mk4?&rU3aL^4;8$4XIi)!Oa9_F@QbT@QKXhD&Px%QTQig2o9aLF1xZAfY8D zRKd!N#un`;E!wf@dZ!Sy37>{b&g(_Dpc)!kG&)`0Rn;;Fipp+>tnKaHV~iC#vsd3r z-MKh)TB$?G3=w`_6qUtR>b5~!J+9O}8mbmwsY4lIt<`Sh1?2ZnT&T&ZVY|RzDch;} zG{7gFn$O^qaB9TUfpcn3LZbz9B9FoiI5m7|)5#RR3TN}a?iRLmFxdrPz!crT-RSZVk%%DAl%|?9=K0!Kk2*fsK zr>m{ncnPz%w=sj@RC#x`v8e;e1tDfw-8)mSjn_I*p}ng%GgGawkF=xTF7CVS72!@a z-A|0t-BkcGiA?fuh$^5mVC{ISA2VW6HIeFIB*R*-Y$UYStA#?<1R@zb8#Knlp;M_q z9)V9nfrzI*6o`hW=hfczGtG8qRHnB|FY#^+Y7bp2tTyhPAGHx)_cVdb(j1#*kV01( zf+Z_he1NMzWlrGmI`b+6hddXocbavtjH1b{7_AoxM#D3LuVju-@x*uq-H1 zrqAM8uh(_?r$%C;5aA1;1@Z+>K&9A(XSIntk#>r*#sYY;Jjc(7!{F9^UBUfp?;j-_1WYJA5GCjUN}Xn8YBO5jxkpxC~wn!n!!z6zZbf5>pCN{ca0Q_@hkdc}aJI~}`)Y_!)FULw!-+xn$ zB3_g9Jr5f6y=)|;?;~jpehpnpZT}m5653uo^`q?-G(Btkqi5j0(pFl}ZwTvoC?D4F zH_eZRcU@N;M0TEnV~EFb#N)HDJrWM-O~CCx>5XE`1X`Fo>6hleBO1U;upiUUe{rR~ zM%C>eSY$a$dbNoWIdZL-Js-7R@_by^wO?w~4XNQ5P}L_xrM#-Tl%uRIn>9s}6A(Hf zo0H4o04}eC%IrkJV{0N;Ob3j@YG+?}{pfVFG7F)X(|HQv!|5W>vah=guFkDh_H||U zcgbaT^cE%7W1w#kwi+;rE3I&nLjceL=!@iW(2jIGp9oK^A&B8wH>@`1&1Q9EnQ;Yx zu0*uu+n>Dg8rbk9#x3s?1{bppH%y9KoblRYhs*K{nEZR+xn@rB>LDPeLn*r+&18f~IG!aN3dfhHXKMAT(hbheh_EN9 z>xT8jJmp;n?$SrF-LthOoLSBwnMb+`9c7)DW701o#$?9Mjw8O@so^lRKaPmqQTko_4d8ZncPdUZ)y2eQI4s1qf5hIg-p^X^c#tiX)2lOxi z@!utPL9;cv3!j4aSs7TkVwK>V4;+r<;e%p$9w9V`yD(aAl$ziYv_Kn(dmV+mk!S4W zvF7UD>Nsr1Y0I68B%Uh6r75ufprX9&z5&}ds34w9fg2-dcZ!yn^!vRZ%}!sW(eu1@ zW}$b_NAg^(Bo)%<6!zjZ$xUHogF=#x^q`P_1YJsn^kaMy3Q0WmqmUFdJu9TOkVHdk zB6aZcI5x4|wJa3Dif7cC{uFVnnTPi!IEf?a4 zW`|`>X(jpDAue4OtGeCW=f}kgTv;Lq=nA*vVrUXGucuo|j#H!d$>Ts=?-;0**I8IA z${KM!wTWE2H|mvpOUYTiKzBwz&~Z{S4IIC5(v)4%3uuq-3$$ycfHgp)HvpQMpt#Zt zXk-0=RxDQg^f-L}80B68U*0?E?u>Wgk59@jv<={%@;76(DYot*R{Q!mkbXS8+QkD0 zXM?fYcgMT&<3e^*1Q+qLc054K+T!ZxBvQZUJdCwsCT0Y=K^i&~vcaM=3p6F`r+1_wnX{a$X(x{YMt@4~;+ja-p zR2)?I@MrK!k0%yl0b1e&t_DGCyP;CH2E0SQzmewhg&iiM_!qMn&KQe$SXZw2hf>(6ec0UNj!P47*dKS z@wM4jrpV0Alkaz0jzdX2`5pmfxM)8-`4`Z3Hcu)%Sv={Y$;XqPGQlf7+_Jg2@|79L zDbAITf?!x%7<{lXcxSU&A1*a#Fgt0vE`?@odbW;oQRA!h!ez(k6f@pU0)UW#L8_~Z`_+2R}R*1}wA2-QDi(5N2< zUIGARGqA*sZRg-&4Dz__a~a3>GDhlQF6CI*oi1lq;;!`zjpQx80I&%v#UeWWAbGd| zl7Rs&DdF;;PfB>ooT?l!J!yQ?Ok>S$B$xR3UIuHX#7DeUI>G*XVUfk>1|9Z5_awHS zgaFWCj~_}qZxA;EH4AYVc~W((6!oMmd-G5@Wg!G*Mck>*4DY_y1iY;fP;{>5W~dZn zd&D218sQ%>stX*;ytmNk2<5NDO8HT~0xz$hXqCy`^w=#h`;0;w_wUIKT_1A9>^fU! z|Cu0Hd=e28ygf%zVgkfyAts1Vcsg9gArM}*h*zSeD2_+@D-B8aBC=Z!-4D48^*tDr zT!s=)eJn%Kvd;*w@?>r5fs7__{J+}Xhsn^lb=PCuW3*mtRLh?Ia>3mYMy=q2RQI_D zd`X7}mc57WBo&EdTo_9~+wn4w^lrLU782y*nDtIi);|KdO_R=^Bk?t|->JF_3Zc$E zyTe_43GLC-^4Pjo3|WEYu_K{UOskmd2#1QYJuZ)p^a9@~L zy?}OMKcE%7#pkKL0QeLEpphVU@pd)(?Z)Wq@y7itJJh&NDZVszi_cB*E(%>ABYO_3 zoixM7%i4=QT4*F|5NLO?=f6Ox3}UfI?zAxlq1<+P4|K|FK9)@6r60M|#;9nl05Qa{ zQt{s;{BrEH*)KP`le@WJ+SU{Ijd8y6E+-|wLDa|{HLs)kF#(8XHJLGtRM=4?8|h(3 z&4-{%Y07*UpTv$D@zjSYqoL_}N6qnqqZ)9`GhopK?=ZA02928RT{aKVri6yW)sDj@ zc@%LwhMv-<#i1@V(z*I-(STjuFaQ~J;Ka}1C_-m&oGn26#Y&qW3-DcW4)a=o3r|}Ez1~3s z+3#D6K3)i86rKGjR*FVvd)ZoagtfCMw0DSaF^1I^Gh^Mi3yp(T4!;4FJUfT*wHape zgp=*Xt&E*RzjE5M!&dIDCR+UdxqvNP)C@-#-8uAYXxofKqpV5q98%b^mbF~u_?ERi zWtIwhYF*$K2}@`6xG3EH)eM|q(N{hch_^oZk|>(FH)#KEXB+O=j1;COLQYIM1eH8Y ziLVFAlovSd#bG0+JWs$DE^0DmvH}Vh*d=rk6whW#g&m72UF7(f(o?3`b~d+xTr7J^ z2F8lB?BKSu?FHCOmI~9=V9$;i5Fpsz&W5kewlZaA?yW;zr{y@5#Hh~`P=<^4!>D&b z+u4k&@MJNnizXkVdddX0v$-X6apa8|s432ogWS&cu|m`)k@*oZq!dr$>;1!%UvXLv zGa6!(c=C$^%5c$sc=Bt|b~aBcJXt*HqRGdTo-)DhY;M_HT>0S)-rp>uN{x{OL7{q>*<7RCZ4RZ$~fXwe>u~O9hw)UeOkEU0tQk$5lVp5YD?AFHv z9C)=3Zi8lTJ*$|u-L@72nryc%P$?El!|@R*aC`$MMS=Y)k0~@dBFUv#DL+Y;!+vzJ z8(kpZqbp$!>M|Phqq$-0LzoynXN#2U1+C(2OB`@rj-tc?h|WSB5SIqDS%sZy|GpE~ z52IBcj-2=_4M{6EvRMVKV7bEc5*U+f=Gc#JbuF_H2JJgwJxZh_I zE;E>{rp`=LmEej__t^(_n~H)jD_IA{+!zH7*ff@2Iah0wX--Pgm*L45~331Q9|%sr=7 z?aa0s@+v)GYBT}H;c#bD7y$V!gTC6(jPPRun9+=W?cJi?v1#qXNe00GB5(>^;N9fKX&5cDY$Z;w(h%JHLE^_gBN?4jM;8K-yrd(b zk|(f)uT3fDu}17@r?~Bb;`z?C7F(RQ;v^=&Xp?{|T+}pWibgtzp>5NM!O547bSlhP zevylqxQ#(Z&Y>BDG0a?KnVd$>Z$;5Cim+8Oa(I>~W=!o$aXFX_9hNHLibKiyFuHEU z*un48*qOp7v7JRc^a{IY`@qXd`Wh*Fock?LgmL+d+{U#Dcg2fB^;D;b}yS96JG52*xM@ z|FIElywR-jHfphuTE7V^NwxkK1(D5E0Wrk`05K&SNy)eD+gUyeT}mn(gkLR=V8U$I*G?+;EO_ChQ!^~I<|!3?SZL|tWy>x)PJr@BR~r&ztyTiZ z2@Xr4LQ1vNd(FY$Bo6d*a9p^3Rn?uZEc-c8>&Up(Ce~c1F8y)H$X0X+Rb?rlerpW= zQemNhkN2NY36y$Q`Idnl>5KQobkCH3XA(93_p0&ej`YLgT@>1xBzq1Ui>B-PBY}dj z+{3cA>#F%J`42?8tA0KYF9)H1Tw_; zf7ZU1=1kFG8k_2mu`@8|gvEJs!H0I_?ShBy^m3>PN>ZXnNLh$ABy!#jryGQ=F@W zwc3G=J!<%}VvlEv=nj`3g6-@w;eyz|4nH6pDdbg#V{&kdePB=fa<0wdSijKxx+}`B zag8>q>K@?8q#mdcaz?h?ld=&fu+!7Ixo4>H7tm$5K&9B^HiiC8qO7rveU-rk1hOx^p|c;kNEON|@4H?}MI1Mw~j>0a4$KHZxl!;$Ifm!ifR zs|*vxd8=vjFY&SYcWi$uCvE;U-ngGO)Ob$X{3zZ zd=lo4c?oYkXJ4&x2rN3 zsR7Qif8^RLmmjLYt>d1xSN_f%j8jTtM6>9nQ5KC`I2Wn9-Gz%u$A4dnxRMCDL;JM) zr8XFhlCT&nN@%n_RSms>aq|?Y6r0MXar49+Wo^l=sgYcZ(7BR(JG>mIf%%~FzER52ts0}8V4kqC1>=k-M3W4LrcO(uEmSsAuwjf*sEtvTlS93?ePpFSVV2Mp3$HqwK%el>I{rS)s@Nl0t))Q_}Q(DW>=hu|h> zh$OTPfv4P5=YpHyMcL^lf^u9=!Pr#;$4YNcfH3ax>88`IW$@-FCM5F%UNhV4O@6yCptZdiExFvns%GK+YHjBx_Y z_2-0TuPN>vl|1!|S{p@ry zFFSe)Z0bE?PHO3Vc%(f&hhnAtn|jw?40`-}*v~Uux`1{34N{|PcY9*dwwbv_+XP!I z+O}wH(JgRoIxg>HW%#+Hv}nho>zzW-CVUz$IjmdmR%nCbt?HJd4ZuO4u+XjR0wL&I1Xo+(6;u{QPxcJvv9dq_4uRR1cyRCMnJ^?fNq$m=d8hoDj zgbZvU+t7&sl*KXg5Q|c}*i|`NrOk4zfLJZqqjjOC)j2j0{FSnIpZqnzC!L?a!6)JT zh^IcBA95vnO<#F@dsl5{bf(_yjP5SCApJM`9i^F8bEewr%x&J+4d#2YD+XPi`P%sf zA*&H_neK@6oUCDGZ#bd&lv4|&wCQP`ef_x`I}l*qR@%fE+H~G<>D)@SJw6I%;AnfM zJYL;aQl(0p&O47ZGM?+?Pme#=$AfJ3ucdcTDnc2p8XSR&toqaFe zr;0D$ChbBC8LL9qCHIc z*+w>QSvZs)7Xpl8;2O!N#yc=HhiT18dr?_)Nd-+a*ljq$_h!p(gmu@RsgBnsYUBH! z*IfYyt-McrUowtWz~Yn^?!KuTmCeD}2@7{W-y4+HRg=#E`3K?KdPR-&YcB;HvR~`6 zGx@a1qmkgWy^}c-_~3KI<6h_0-b(YR^7weQ-G&=eH;vj;X;Y~-QL5ohsp#FpEf8>4 zw6&)O7k}|#lIrwKXRf4p9;Di3s)z{V9+ zKjva!O;YTPJcw+{MnaKIEy69wCK)>$^!WsID%JZWJ_+?Mp88Pl8lIkGny zOHsmQDyhw-C-QpFh^s}pW>~%d=>iMGX^69yq&7%Hfh)l7((&^6RCW6$5C>KV1GS)k zxK{oGeG+>`^#3ZOo*|iUcX&NpmOsy_VQY(kEXQv0ngBPe4!R4NzK&V2Lh(7PSmTWr zEw5H%D{c&Eyd?KxGj1$(jm1L}483UQ`ReSp6%5GGgHn{gHSF(;!XC)%{cfm~XSeO& z#T)nUDxt=8m}{AsK0F5crAP4DcqfJSmB_xehIa3kW95zs8Q&q0;7k<5Cc(1y>ZF&} zy0c^tv^WTJ;80r((Vd?^ht}B=FxZ#_+cIsmVt8YLlKB$Gd=ue1he-f?WaVK|5zq#a z2nwH0jJ9EWEgTuGwQ+mNL~U{wvJRqAOChWtYHDuyEkVc*b(lVenxDf;GDi0sHNtpJ zQuB-uQ1h~pkeZJibUWf{tmKcxC!yrUQ$I>xLDRF6KNWc)&+_F^OxK$Y1XVso93uCm z)9OtMBEd7JL%rX0>S;imVs7Z?nkQu7gw|zS;?i?jH_r1En0dTGbH&*(8C}kxlGEMLX~vwCZH1*=xMC6To2A1 z_V^eZAl^?V{CdT^vs`(yv0RDMGP+oqudpU`lK?3q#UBuJ0FYeQNZ!v2mCq`KMOvu5 z9V`9cT&R2v4&A>{`MM}7i>;&G3vI=s2$6NPw?oz9>u4w_3N2K=LO_^asKocC4z$8} z-5d**AHxQ`3zeU6nzof?F$8~9fN!^8uD?VO{4Y>-00<5(R4T;U3zc!a_Owv>1C43# zLgl{?5Z~YH9pAqk48C(OR4M{k3zaVZwI+`*RNfs$qRDc~*;t>vBm-Mmlol#c7RQW1 zEJ_QNx8!J*7Ajc*v2wLX>q1SA4x0x4O4$pQXFQ#qoHOxBI62~}4=0D*hF%vcPiaq= zTOC+otJgZC>e5HGNmIo#w+8(iU;Uty)7>{eHo6+g$i;k-C2g(ugPRr9e4LCX_$m)o zCdA2kIBh79IN55>&a}6mF`g#F10R2{709h`I7aPV=7Jpg>99 z;##(!5hb}_wm(4T1fY5=jSf(~pW~;GDuhRhpI(TS{%^)l$8hNW`036lDvO2po(gTn zyopG7uMSmwdh@zb9JeA4;( z1wIMqM?Cf6{PY<=6)DE*W!&}~a(GS(hE5?nnXDRgbh_R7iI-Y?kVY;tcO;Eqh9(9x zD^5xVqpC5~ob6b7MdxAT=jvN*1(WS|t#xWRQs3`(VK=dPWx8Fpw4d3l_s^N zk~Lpx`+Bn)k}n1t4>@aeBtzJY>ryReu92ZZ9kaDRn7cfeKowaUPL|@chV=X>q=9Jd zIZ!Fj?#{=?8~5+-q{j8`&S);x>*HM%+S@664hw5$THM?DCjte|T!`-N^wL##mK+2v z4#K;o1YkaP`fLS`q~i@CwU(hVR&K+y)+J!qZKajlX3DMdwEO{YO0Y8&E)|&p)l%9s z1rbraUu?QosnnsuM5zorNylef?b>em35N>B=F#C&rCDmgF4I{!T2kwr$P;40!>K3h zvkCibB81sbSwkC=rC3RZWS^m^7q3Yc2@@Mava*pLLb9)dE~Qm+FFpyYL_GCjm1t;s z4#}P@Bzb!jS+Q2v>0zC4Z1^B5GPJ55woqQQKr9pk)GRB7b`)9zoX^1UUl5ZrlV@8f zA8~3p%Ou$#OV%6nA@-GxX{$4WWW=53a9?rSYpzNm&*+*;A7Nxp#1xYkOcO|#y{ z3>EoK=wT2ll1@WfEKX|j7tjT(Nf%?RDg!eFWUjdXg7ER<&L$@2t-W z^$0Qvvu=W#lbcLR)!m@w;I2GFLBdf=dly!cO76cE&f_&n$uWsQ$;n1~ zP;y7!%1Z7id=g4dJoTgG6f`|6xnpHA=h0dvonj$;{8FTLg*suScFX)IHTPVo1}sa3 z(eWl-0em%cQFA}!RM-lHHv_lXTI+15hQqCXt%cp>)mocX2i*ftF-J$OP^`(q$9SV< z!DG}Aifbl4{NyrhMrtM9L?HiKS%$AUx1w+#j`*gMh(Mzw%5+wLq$A`{S;`+RoqPl9b z5ym$N^S~7!a#{H0&^lWN2D6e;kh}suvjxEX1~8vWIL~1LoUYD8HuUWxvyIw~v*52* zN;@F~as{s;sa1yB)%t|os{u<$h3jdKcr8I!NY|c%m87n{SB=h*UIs6rmL^@x$N*g{ z8wu&!Xv%}XfKH`L`9XXV+EzUEqiq#DJ!{)DNTgB1omv%qE{qIUsuQ8$_d|lgZ>hRG zO@+1cJ@ccLJLR3TbrDb*xkf$G_TdQBSt@%(hM$5h9I#9YpC=aQDUz+&zwXpfvf`)5=K-33l`N9#X0JVn?Hh!xRt>pv9+irWPmd&y6+8P{X=WK1yj8hgH)k#?0o zf!5&FZw>ph+iXkGVGsW;9gCq-o{0NV@y7iTcWPWm+=KZP?taY+7K#6E277vaa$>x< zLcwz>*?#Ohi7>IzlM3octfnviT0$%A2 zK?k@!3WN9}06z{E3Wnd+Dp`dtoEp`NjOY3Mb*N|F<#Bd37|4h$e3E1Y;PcT`Ken~V zuyz>zVC~38Le@?s^TST)QrbG>_#|u{@zjs4qoC>8);W;`xlY)jOdNG6YIBBhqw9uk znt6)0itVw;<0Dt&rcivcEE*HkEJNmebE@i!w*4|(YRpboTeb1gW}`kQvp)@&wrtt8 zhj(D>JP1dmaLseb^F=fJ%~58LFG0_#y7Lw9E<^!gRp?~$o2&##Vblt=nU}Qnugmu- zMEUHH!0P#npi&-P{`z?1eqBzD=g{R+g}*!ANg)+3`_@`Droy`t33~U!k?9#h1k%d@tTfA==2kd!)@$luSeojhchD zY+)MUqsIIn;&A(s^IM5|P3(iHONembqi%ln?L8RKviTz8kC(Occ4>i`JRb)ydxBo_m~{%)(rj>coDKZe+$>QCM)nY@pVOLSM1VCX8|lHCy8^nD z*4$(9Nmz5@sUK@jLDRD}cWS2v>w!70AqwX4avKO*bW%;mE+LYKbKC~!a|6PJ!&uo7 zpN3Pz@l5>@AM7S?#Am1KV4>wOatW0_mv(r%h}=4v{-7uKGu427hE?2p)yPVofz7x9 zo{RZe^5RzT)DM+D83ij7QCoI_0SYx>!oH;Dk85jwu+E{m_}7{|eh%%k&U^^79P)xlhOs{R zbOv`~QOe_mvN&c8Vo}QD^_MwXrE_SkfLOWOqctZAwoi-nY#R70WuHUa1%#GPP92|w zlOvw`aB|3P=rxbmX<&*p+BI0x$diL3n9a-EN*}I{OdjKHbw2%_X9Jl`S)c9iyuhj9 z%m%-|gWbefoKM%_PM_OV2i-T!&$b3$tT4P_eaE43`?!}{X{YDtKshO=17EdO{CYM1 z;_i>eUGh3?rZ4x$+n5$3$XP?zJ2ch&t=hnQ`f_nMQ_HcG97FGFVvNhMfQFu3u`Ca zk!o4=Qzl{ivWU{Xt}^wqXdUDaUlv_Xe?efl@M)h;!D~@hMg?!`j)J3>MXqA~%c6L_ zW?B}FD@}(ki*|NV-`lh6`}XeWJMpr}y#c;uQBeQN!^ba+{yi`s68NgM=D)JZ6`xfs zi^vwoaYoOw=sO8&70V*&faFy3_cmf#BsoHOq1l&3CvcF;@02Vu*ei0w4bp-`N&lS-zIqo-J2&vxEkcGE=%)YgU`cV`2x zlzgwp%NM?};WTeksbK+)F8RKM|4>c*Q+yNQyH zLK|`cEKQGG@eX>jd-eiL5i#;lidz=C#PtX6SUw`Zb6gWZ||im=C|2Z z2Yy>glX=g^<=hu(g_&xuV&qkPE!T;U#5-}fWVAOwN8z<(7e;r9zVN-bfey}ooH{>S zHBfA$y?OZH=HUbF-h62wrySC4>1z1qV~212t_003d#<8fCDv=e&G!kF34fs6dXESq zrCgaz!O7y@pi;-&zNYZwM^GqkUVEKbgXQ)3@t%YH_IX4TDG=?T$Ay0~i)bI~NVEfO zqKOoUcEBUr=dy_Qhp9zNP1rkE=3(LfVO;xdJAK%L48We^~uhQoN1@F1#IL!R0 zQ7(&kQzZnqlD4IL6)L0jn&^*Qn8q)xMV$V-s1WWZ^l{qNM|?@~dQhqlK9yIJ!Kc1~ zCb>`j7rJ6Tm0fk>Q(b8?`_wDN_?go6f?dK%HN{f;^o} zFISy`&=o6{bCSH%8 zq(aGGkM>myxke*5!*8GZ^l5nB*80r6t!(e`ysh&N&3gdfcGYJ_MfQ1zSONe0wYQ)M zFR}HIKfB2N0ncbMpC>`N_j83%L*}coeNXqg?N3oxoNbTUh4>PRrr(7~)6(}obI_+e z`i>{KAMr~eGMbO~krnYzkJ5`6gU=v$^n>g`3Ax?vsgNduS;c!D8bk@->pYsER`Fg( z&KyZ&q7AO+8Id$b;e}>@uha7p$z|u$72~q(ssk=7_+i%VZkGx}Y*gz_yPd&aHOqq` zR;&Z=>U$2uWdQBk5ye`Uc%_wA-k+$Z?ONzKdSJ#g)irKe=lEP;szT4qwU_)HRVa&T z!~4aueBR=D%;5(1_C0}lyW7_k9CZ|h;_R6B3CvqrUN1-8!S9_%G?4<1y2Ha!Z_Ogw zo{mII%26k?h<0yBq9x_1$FhiaB(-SKCX;Ty|6PchPv$0)F33?=Ah8=9l}9G`SqaWg ze;*AR4Bbl{G%2AP-d=KCFtdGrI)kJ zMW0KhFu_H?NQEv0F8Ue?8p%b!9ozSGT=Wd;inHM{T=XANG(8ukNtlw0eltYIXfFD7 z=6L=(>XtocXOWB79^p?~gNkc^+)8f}NtM}o>|VFeDR}H|6pFKf zULHHn@_Kpf{x%*fQov*Pdw6Uvi)iLQvl32bT+xK+D@-*s-GpaGf^7|;7o>O-U@j z5h7zWv3v=+qkVCZEec}!Vn`Fgtb$n5AWBFqpH5J#AeM6GNLvtXggwMkTBPtovlGiT zAC<)N61rl_NZKq;>baT7u&kf5ERd~#)27bKYs z|D$4(*WyM*kKTADxy3E(d}0oH33(HOPeh4Ek_NNW$XnbFr=XF$P$TLEU%YF z?rfuxA_X*Zr-w!!$|Bm`9f_8dMowoD%}y;^v;}LYk!s|c+ex}0jogUDZqP{I3vEGS z#PH-C^7qh?-$QVr>{~EcY zoo|p23hMYmNE5-Vf;!S5N=O~Qkf2sU9p%iCh9KJTdZ?o`N8yELr;e+SOX|3Wt{8P> zSLcs9%J<`z9s2d-Z12Zeu@0yrk98rqAD00HXFQZ5%GX+=O+H=yiHZ`w4GNAPmGP8t zvs-pW-LK2vqMh2^vZD zUXAU0I;!^y>WVXzF;wsGQ8Yc(qe+;O>b)EyV>H$K8gfTF)gXTpRPV1snh0hURF4Kx zLaO&vf?5UDlQTyefM~<&p?cB`g%_Hg>a98L3j{MR z>fs?TG-j7n1s%{oZ|sR+we;?JPbd)-u{weUII~#oMEzNj!!g{F=y4oR4zF>`IuFl< z=Y?%IBa9}J9<$TLJ#Lp%(8L`m6leXsG;tft>!pc%+GwIk0ZrWFp^5iq5$$~)iI$Wm z9?2qFBeiJJ)~uZ-sW3|KqtRNf=1HGGqHV7 zM<>6Dy5bCK44wQQil(QNG(}U=$*+gV7)>W%MDA!e9OQ_CPX1*`6Tz&4PSPMsNGJa! zL9K#L%9$fgL9_w(&`D{K!VAq#Cs#fs>EtT9Vsw&Soj*Ex72@C+6f=zrvyv64Fb%ADCDE&rSKqqwCBODuhvh-q+pU$CnfVNu;t6kc3x~At1>K zG%12}(iL+x57AWzu0~0dIUvaz1Y)Zqe2nX7Tn}@3l!p-|qFu{xpPL1IxmGMf^3mJ) z|2(9ZE8J|(gwHhDdlsWnx)OCTZl7D7;G*)k8j7D4Ln(YH#+#@o+_KKx&{-f%mnU?k z=P80Gbz^DPfR@j@eGD_v<#s;)}IlhVTfR?-oWy0f5l0C)5i8dAO zj|9}6HJ>Hvf{z3qMPfJn#S*sjM~+JFDBeKb(owhrSbB&dZvoFLUrGt%c#;H;TIKuW zIKJh*4a26>+iSy^jl(%>I5#YX5zDu@ENT}0RJ0jBi-HRgwq`-VMJmJ%`hU1GN8csS zx?(`+r6uylDJh&a(t*%vH(TmPUAMN>5rLz{20nF3W$`=`7g&Wl}KT8p6d7?I-9#r*j7x>aj7@_MVZ*;&a>`zSLyqSYIQ?LF7GIV)3;7Pe*1poxea@nyUe&QAsx?s4B3kU>@f#Gg&l%ti zYG~y!el8Y2n~gGl4cfK5Hkr#GroUP(^Wyoq!z-q0HM?5FdQtslqQ@Du^t_Fb9ojTF zSfz!OAq(4=>v+FVsn97!sBbM#(aSnZ(T*B+iLW{#Ihqp%$~nto2}>G!z1Fa`vVKH| z?&dp-OS!W9v)5U!Pa9Afw!AbgnW@+5E$EZYBI+9wmH|0H5i3Yp1l{L#lDqX$XNUzW z(DZ7)R-kxx&Z4G0wdMLPSgy64OZ|V;^hTrB&`LPux2!jyZW1+bx16P7Bc-aPm(|j8 z)&>3&sKT7UEO3T+z3rth_5UGI*jYw>u%M_CR8&TvTFziOS1mSkMXcj%1^k|`S6j}- zI7hzLC};(}j$wjk45rwHe3eWZF$x%{`jjyZdgTn|ns!Z7NzQx&V{5R0Nu;^s4~k_8 z28Ldvnk&<-Tgp<{$fnz`lIoV;EY!5=3XP{_`gFZ!>6*7B8zp&LJ7QP{AD>ILf?-hr zLV7iYwLA*;$$5b}wgjEAFca7$!`}u)Hf_o%qjQ+#tLX}jSbD=YYE|4}7S0g2e4vp# z>i)zKT~3n=Bd1!#Kr9;-!*1QaY{VI=>vc^X^o&N9P|9QuveV3PE-Be|-P$@fhGc8B zK4X_^)ls}@8*4eMC?^vDIW=3a;P%+K9sNk(a`oGO8TuS*OyvXBQ;Mp7gRCAi72g2h zR_l#XL${|`8<_oLCA(5aV~gzEBxVsJ`?V(eopl(K70sQVZU^|oht_dtnKe_jbJJSM zD3;3jhw;0hT%)1C#H!>l(e7(vURzMq#q2l#sg-N_oKWq$d?^QcaO3%WgO-^JQTlMR zjwXg6oo(3AKeq$NF?wowqdJ8#APvI`G8I;HGLX-x(BLiCa(p%}U?vG;rZTA)FokCz zLP^(cG_op>T!%Hik~7L$u23K=%fwzzHPbD(^zsz9X~&(5^y-lo{H@c^%?ai&hN4j| z7?>QkW+QaD4)cV8vm8QUXxT8XsH31yk?nR?_)-y?7)>D=wN1G{7Sa?du=GAk{_KX*ZnK9RWgo#2g7*{rkl@DzxBV*M-2`7H zc!6Nkb$~H~7QrI~-@P921A^VZ2AClD3c+6xT)P!;9fAE$zzo5_jez9@4-tHVVE;D2 z0fK990$fM%GlDk>J~s~d0>SVOzy^YM?E>6EaGK!T1fSmxc!uD_9>B*5iZ=tw1iNkl z>?OEjFJJ?~{}L>?74QJThY5Z`aM1*yL{KGojo|MH-g6t^Ai+hq1NsT>+y~GI^7{b> z!QyuTmJu`w?k5=dbxI@H@Ed?@2%bIw_%gwzcL1&=c#Pmlg1+|x1_`zw1neewgy1B> zgLeW>5Pa`_fFBV2{4PMx-GHAE{2RgR_W-_2u>D@ZE`m=T0z5|WWDf901V5Yv{FvZJ zdB7V4>vX_+f>#Otmf-FZV3MF@04fCUGy&rTUm^H&f#N?Ly$WPC=%Q_4cJNW6u~Ki zS7rdO6C6DT_)UTO-{Dffs1Au;l&l5aLu>J#pO$09yyh31o5HLeP zXIYzc;59qejUB>gQb2olHib#CeoYDpY*O$+lOhzF6yn9CI4~xCziZM*z9xNwVbXUR zChfp8X`7x&FIi1`6U&~(u?M3jt+Gs7iZz`Ze>1hfxIa^ zAM6tBc4e|wc1=6Wx-yXH=3eBhagl756r5fA{pYv O1)?p&!}F!#=>Gvm##{{m diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.pipes.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.pipes.doctree deleted file mode 100644 index 160c0d2584580c55a53159c5f205e1a8a16d1096..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17138 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.ANSI_4130.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.ANSI_4130.doctree deleted file mode 100644 index 1cd450def8bf3de9cb36286d9bce68295a875e12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227941 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 L^NGMBbw8dyO5d3eeZL@&jFTkl!5d0%ZbAzDc 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 CZBA$a diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.CarbonFiber.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.CarbonFiber.doctree deleted file mode 100644 index 135ab12e7d08486989351003bbc10303d2bc9f18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229053 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Ðl)7(*3r!VmY~$%#fmSqi-jAv=~C?l^K$J4Rn0-Jl!cBYn+_(s zPU{s_?k%amwY{B3x0@K>)@11p(gBq>UTI8p9H9xuAg%_q7i7FOU7*#<1HzN$)caLy zb2vaZA(Q0*aV;$uLL8NSXL=FI&JQo5zpgQzpBq?p>^@F+esmuP*Hi6W=jR=GIbP>y zyXm7y0p|Wr8-+RkjuL6<;#dcQ%kiPT8rcZg~Ecbe||wdLI3|!Y~n+QzmXAmQ|h8a|(Pen+OxZi40*PK8qqbK7W{=n2BId zqnL<3wJ~K;Pcu|+GBuPf>2twNdm$9!f~17&9qDIY{V%ENv!`LIU)>}-PS+xyleTCc z5AzH>&nxgeUoN#zHXDonNw1BoTLm!Dc@pOf>^xTh%pACf%~efTcU9MNW>gPDB-W(4 z3h`vv?6k|6W;z`2V8JCdHvd$_UB*i^qtX49?p!<(HKS6kd)umbT7KhI@Mj17uda?~ zv2zz^)<;D_>v+6LzNz^QuX{YE3&|tcv#=X)tu)J>$j6icE(^y#q(-G1Pu^9kb-Ykr zeH%|=$8ZZ9%|y*| z@nordihd2d!Q~T>fo+S;W`r%pp7G0VtK*pv*rL&?7nd>VR`24?EGBgP7VS2zQy>`V z?c#5|n#bN03AXTs3)CFNi3~K2$6jn|d#z?WD%P-V3%pwsPghGd_2)#q)m!$#vZxew zLiy1|JW=sZc9uYIR_G2kvs9|%%@lZF_NYbOPsg)<0}LwSrhq2x#qP#aooI3X+Id{Z z*Nxw5|5)_e?Pj}J1yHI%!qDevTN#(+Zsu$@s7x>_-FUb2i$fy#9>z&L%jxPm$lPzW ze{eF#Tc`~o7*z#}YG_k8o~e}@OP$gZmV%lU{Jq9&bmQ&V6W(lBiWRQ~F+njtW9%e9 z4TLy?DX121Oz@ZCy2Z1lPSh;wSMeGjvNcob)LTU*e_$+o!M4EB-Kik6nZ03>P2I0w zwL-5`X%?63Bu`tsA1RQX@VqF8Vbz?w)S^CVE04q1UF}d*~aYRza6q+BA#t|ExO1^TqA)BY@#<7RBbjEFxPyf8}Fnq zSq1QAG4kr@o(SEs0q^H8KYBIzIon<=JLKt&Ccj^j$4D)a$e!}r3%(aEvNACGk5r?2 z4TVibrIQ#%m8jaiZ9}{pGFdOG;i(!>3|k~2XX7p5nMPDvE>``eY7PHGe%IBSB>J1e zdI=uy%L3T0(s=Wy!}IxXf6H+^0G%6fuk1MScYSb3Jet z($g&ajYY_SR1DilRbT_A^POKO;l=gdd^E0ODhV=EKj~F4gwLP~RSy?apN)5x@ztrK zS1$J1+TCZ`s3yU0Y;OYe97ozAlDn15BROHuPGr`%4 zNMfJxd4WSBqzn)(5=imvlgK>Q|_B$-z4b@wM|J#r6C+NE5`zZNUN?xVp93_VjAi0u~M=ALNB{K(+Y^UTw zO3qTU_7IXOO3qO7NlKoWNAff!2NsYVq2vilo~GoPBS`*)l3zNCdK9E!z`T4iUE1ax3YKpUh3+C?4EzO#Tfr?G%Z7U;^>+5%dTV{?uHO-u&lfCuEI zcj6gygt0E4Df<|wBr^~L{)QB({Eo|(`G$W7RfQ2*KiRCQLCZef;k;B|PgxYFWT`CE zHj6%NVml%uywjy6et{nXHD7LaXdiPo-dJwdYJBX#!B~Gxynh(7`s>|0p|V<~Hk2Pk mKg1yA1uAWCz22x^vvIbOpLIgxdWm%NbcGC((A^vsEc`!+*JtSf diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.Concrete.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.Concrete.doctree deleted file mode 100644 index 3a741c207ace624f6a44d5086ca356570a9160b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227352 zcmeFa378y5c{i^6SV@*_%km)~?E`CNuU3{X%p%G7z<^J%3>aHxG&|F~Go#s=_4JIS zHP|tS4Tj-}vxGAo<_L!a1PFu#__!h95FkJx93c)kd_aIe0(^wy|9k7`s_v<-uAZKi zck}%HJYMxw*ZWr0d;H$I`_APrTeN8LBKohpKA5gl8;3@V<#MB0_Ji5(s&cc`nerR$ z**}@x`mEX8XNSA1Tg8Jxv(qa1v)x6=QL0qy<(A)=y=At01Z8hm>%pj?Um5tNcD30E z$t%k%D=I5*nH{dI?k;av+jU=i)jiX1Oinagll~|kMuTR(THafjDz^PrwFst{H5;Xt z-}YyT0~jp3!9PSbGtn(F(cLx6+puD~h#I$ND@S%$7s4i1mUdT&mR;LjRxP~gHpskft zA?VZb|0D4K7W}`J+6~dQs;srckXW@b2`zTdk=pTwnOwYT!;=*?)n@B#_Yt=DnzmP5 z+nz0UDrZ-=DY0E!IT^}9^_Rg=OFgw8#+xJPO(Cd4=Iu^PH?$k?gT>4G4xcsRkydtX zDGB@9GUAn*^=50=wb$M7_$OTZxDm9a5LEnPt1#6pcj}#B*R{=tKjKx2t#ZQ;f?Ye# zL7v;1Wjx?%qF8D-TZQICAt+9?{h3`mMlTrg%6=oLwr6&od(JuMj3Sp0>w$_xmghc- z-q3&acBbmr%Y~o~JDqG-c3tquM}@E2#Hj9vFAJS|yGmZN>rp74lTSCRLC|ajg%-@H zx$B(Kb1xk6rhH^}(!{2re^80n5K&x5;vz8xJ z(Q3hsRhL(|)C}5%X}?w2KZ!!ldDI2xpTCv)Icah|(`2#HXtt?2I-GRRy?N*9ZQ#I| zw}si=mfa)XPO14qFkLM9V_ulW+p>E%%$On2rtWe^F)LsJ#&s3<$sNKQRdclDvE`WR~m&~_REgsS{mqJ08r zA1hF#+dqm(FC_5T&OlegjOm#%LK G3hlYtS+s&?8#RxX5P7)X@Y^Cj3AZe-Br@} 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 UG_F@jHqX{bAqm;d9fGC*2X6ln^8f$< diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.DrySoil.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.DrySoil.doctree deleted file mode 100644 index bfd1806fb631048f1b718c242a5e541a3caaf4ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226735 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.Rock.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.Rock.doctree deleted file mode 100644 index 4970a8828563f7f5e5359b411c78f4864dc84637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225104 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 meuzQJ3sl-Z@p_AT&Boalentq5>lMp3K? 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 F{69tGpT__I diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.SolidMaterial.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.SolidMaterial.doctree deleted file mode 100644 index 76fc98a107f3b658054238a76e1223448c6cf539..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231517 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 GSp0w9V`kp~ diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.WetSoil.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.WetSoil.doctree deleted file mode 100644 index 8c0e566ff3ee57664d23f5581d2b1ba940bf1ccb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226720 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 Y4rCsuRYE+OQLgVNByhDBgl=j0Z;V>FTL1t6 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.random_color.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.solid_materials.random_color.doctree deleted file mode 100644 index 7249a906cbc896e7cfec4e8e9e625b390857ff3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4034 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

k`zShPtvvk}H`NiswjjDHV};ta+gg}ZS_ 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 z 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.doctree deleted file mode 100644 index 5ebfc3fdd1dacdecf7bfe3c94df92e2ceba6fd36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17459 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 s#TAf&4^?^MzdcRrvAE<0FS^xk5 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_core.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_core.doctree deleted file mode 100644 index 52e4dbc96183f88752118ed80c26d40467fa1fa1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5633 zcmd^DO>Z1Y8TLoU_Dt+?oNO#m;$>E_yJKO`Ah8FqBG8IxBN1aHKK7K*s_CwtYP-9u z>8^Ihhm`)05>F_x2n6RXX4E&KCOhMv8vvB>#g_uqyNzP z%YPoO*gw5nWFksuBNhay40vJmRv`T{;i)oTn!`Vu&&*JFbM~r`W$tsMSAgM*C=PO- znwLiR30*~TF{dFx0Ic{&YcKIJ1UMoREJk-=5U zlE^PcLH5EE{DtSsoExG65_f*XXT;mr-CV)V6?gM<u zz7t0&H)rL9=^j%mk0zypR!9r$QBaV?n|{oS0zj-gVAQR)f-;+LCd|Lcc}O^=-c)Q# zM@H<5M`Bw%7VF|bUyhShjs5X&3!WF_UzgeVmr6l;rXcy?X)d#goV8)&T2o`NUW`3f zDp{0C!t$%;=w>BC6IKzUynyiUK3^**VnuhNG~lzAEu5LecOa~I54!#?e(&S=A%2G> zICPgsR@@;}7Nt{|QhyX=HT~h?U>KzX7_f}_pl0_5o(_%v;0?#Hdri`ajWcCfDZVd` zTgub7S6=-t>1@2@Z`sue=@wF^(}4`%B*FrZ@4{iA(K`qr|22gUanh#~uZZ9Ws)R4s zp(Q%{@m$#9v!g+HG&nsP zI67@{^tZR>=&!fqXdSV(%+nmUukCtny??wlUw^+HUu#drGFuI3U(<5V)W6=Eseir& zQ+y#`EPI~*c2dSF@~CinO{`#xD7z-N^yV2t{0`LzL8%{9Z3jyE=rZE3eDoeh@77C? zrM{4PE8xDaHg!>L6+;`LjQ*bIDp1js#T#-xYB#P#fe~kV11scxqknjdqH43?zvnW# z9NW^_6GoL3{R7gh(LGAGa&nF)$t>pB4ac?7kLnV2L*)e9w*5d|)LUU0$2RFehMuRS zPx@DdIbUC0SrKPn7_>PAb-8_eUMz-(mg}eDz*z*`e@rf9)8)2JXueEUy9unjICNlL zvhp-%nP?eE|Myf@Toyuy7p z$Hg*1vo#3gayA&!GK}S`!Fcd-&e>swe>%s&!1W~(%@hfv>@TUjRx82@nSoB9Aw9W<6$(MHV2W`=QnQ1F72k4)qOwZ@E)|h z?#wBU+yt@MMYavvj8o!BzoT-N7BPkznR;0+r|2EsIMq>7vDiFc(Y+dn2iTVM-m32V zWlqDI*NkS{HN=f*Xj`3@FthH_FlUF*Ft>RtFnZ%t7MB=S>P}B@$WmpcGG}7l9rU)4J_ z3#Vn`%`oC729Q1t7a69pghuQFBp*2lkGX|-uOcP9dc?$w)rD&2Jk#4b&t$H=m|t?J zZ%y|Ei<@mn@9|j#ttku|MUB+aoq$iuDW2=UVmakrU?7DifOMgLpOaAL&$=I_(2>Ve zRAll%-7Qsk{G(%AyB;qddOXi%?jgMfG0&lKVijdg?>bGlsB|n9qYsu&mPnjWDeU@= z?wp7E_T$BarOWyr$pBv~1XL8;S!E|i?l0Mt=3nYC*6`6nKgc;^BJcv9ag4yJPctpL z07PSm5)F++0eltR!Hmjmp9XDj4$^Dr8qoHaN#->!2*p}}EhZ_8iQukciLboN2*t>{=&lz;1)IbqNX6x59U2I;Z3t5!W!N|a(VYs- z3!@mqA?){Qg-0;C*;wQ$Q43)5yZE{TQ@Jf%bkBBju8blIl1Q0f-1|`XGoE=+3P)7> zR$e@fhG@lwBzy(-FSxjE#Osn3e%xdWt77kFujA&yL^!!AH<% zKM(yS@&uWa|DYz1U}fa87d#(DT!r=xB!IC{NsPz3icJtjffDBVmOg+_CSDVsjR2mT zX0P?V;wn{a=80%3V*KF0cVbDdzg^(lit>J6BCZQ4>Ve(6trtt5RjNHehXH=jMYwo_ zmaPhL`=ZQH4(J=1{qR-gfoph=^rJL{57dd_KBbDHoGjr*2{~^pnTtmHJau8ErtAw6duq=tF7qZxYb0&z~U1&wq@6 zh3*pA7Ca!?gX==Phwo4J92M`0_@vZ3ZR=TbJAMQoAb#+KgHVvxc#iKj#NiN`uo2D`gJv0J}tFWq0Dk9?aeO7IVtX;mjEb4Ve+EUDWx`mQhI7@CF*C?lIc ztKeTk51*S~Aso;vBe0;>0uJCFY%<9L_-+HXHoP09eq09RGgFHDUO>sN$_uW?AN>!+ CpkB8C diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_entrance.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_entrance.doctree deleted file mode 100644 index 775f45cbfe70332dd29f815a414ab3fb0f9b691e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5286 zcmds5-EJgD6}Hzqw#RFa?ftPpyABhP5F2)8xIju|MIc0yMK~BlfU8|vHQhB+z3%R6 zx~jcnq)3322upQ=l;Q>?9)zbr;tnAp-U9CUPE~hL&#ZT&>=k0AS$CZ}b?Vf2eye`n z`NN;?uDE|@SLGtkW~dL=CI;8;XZImRYl0bi}&Ycw&!4*K~BO6W*FK4|z77$YRQe_!w%zi&RFJ z8B60(4Ws;VAo$||+7v9q_9O>lZvK?dNWafpy@J&%^VOeNf1dT6L3?e*zUc=@7K`5GJu=-xzNh0lR|gqa@A1S*DK z=(1P{jKjr4AAu=l5BrZE_6s48T_li%u9M*0s*YFDf!rm;C~gj(BUb?d5I^+ZcqT|? zwqW-ovx&V2ZVO}wDC|D@fy`+Mk!)5FF2g}f?G1t4hsca7sW<1R8wuu8-Y)}s;LUsq&JiUDf$Jwm`&Eb=GNS=GxIe?1FE|U zjB;Q$CuNej$ig|c0xd(bfmT-hO`LsdQRa!{Q`p{OZag}6YQHBAy;-3Ccgc@jR@io7 z8_G;mzc9}Sl^wdKOQxO{EEla=^Vjclru*;DLcy{rFZ%CS{Y(GH$cze!zWwQm z@gHA|n?WWAzKgpu8=0&>do_7L9owb7GTYT;J>CaL<>9Jf+RbE5tNBP0ZKk-^=!JY% z`;G&Rx><+F!olV}9mGxti+$A~$_IkG{ak17G6TUjUv*8)FLzk1Zb%8_Er7h{jVK=a z*7n6#X?lI}(A=flg-R&OvLG+yl%mx2`W-D1QucJkY}GtG!my`<=({MK>7pXjptXcm#OGwvq770c>liZ9NtQJ%kqBFBy@LU!;NcaT@d^gONU`aFV zn0-Erftp6wt7@i>=|p^7PO)9@87ngQ7&wsJQc${-3^^Uj{?7E`3>e`mgL+AxXu74I z4Bi>Is`6lQGT=oaivWo@N_YXpNmUdav+I#=N$EH#)*LR)EQxsf_UZ~ccQ1FYL%sUJ z;>6NovqxuuuPFhD64x*9B&ZT4n{psd_5TKL*5*#ZLs>*Y#B+EGwxP=wYBZv9g5n88 z;t0Nq+C8HJ*rQuuFejNCsOjiB%QO!f7X+}55Tl$G8B0juuA?~TCiBlpx#DFc1N8Oa z+T*iaDju{~Ixh)za1omE$TN}_!Q{8_1OZd|AzXCd^;rq>3LG(s(^%Ud?!9GtInM)t!V#6B18kcp zV+P$RILw!X*10+vjX+kz{89^<4e|UivgRIfIt9QPXr976+FfUOK6vw+-vXY!ViGQi zC(2y>*J|+yRz@y+&WmBp^~CLg1TYdhO|V&4voWG5(!!o@nnUYWOfrzIf!4Lj>Gm+%_+X@$d9sIIHTq^)|$Bq3kNMy(=Xb;hgP(Q&7A8$a}L5S7o zWsb5y4>|62rpg0X@E#e)*#tgNCx+XUDpWaM;)_#q-b6AVjr4YMZs9ZOm`4cVOQ;|? zTGA_XF9g?lz){VT0B=r|Xr0>o)vFPlHJSLdc4gLhc0q42X49t=#4lVCl`Tea=)gC+ z&T;mk6kJOqzaoW4^y2cdHMbY2)crX!q)nOuHNEtp1NIFf`tPUPi1DXg{HIKp$gc2# z$xU1-@j4zx+&n7ZyW)e=?6j@t#O;JJe1P=97M?;uTJw3m+Z4}-Fo3nwu}m6=aIANi zhz)mlL1MSw)h)WcARqa*(3IfsEz7EAQ09c}K0f$fQ vPY@31SP@u&Rlx!LhD|0}Am3`p&W5+*EKJIXd}c~Hr-uIp8jbjv diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_exit.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_exit.doctree deleted file mode 100644 index 346d26ab7b29fbb992d5ee61936792564a710f10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5222 zcmds5-ESmE5%fc;Sv#?@aIZoM)zo znI3!n5DAbHVX5EJyzsyu!r#CfZwLwTU%(r`>YkaM-S{rbJt0oob9Z%hb#+z!s;cL= zoj?BS-irHY_KQqL>1@cuFjb)_tl0`xP$nYP_A`6@JNvOcGToeC7OKnxVa*CS0vW|& zE>ioNXMeJWR65Sov3^&h8PUB6nUb; ztCS~EPz=NDDU;$U6SGKLk^vF7elBLD+ZXLz!Oj)G^Aqduv5|3T4M_*4%bIJ-b+b|3 z?#$eZqg2?la?DMSYn?~qQo|}_h4m;b=*F8t%!>jV)vM!zUTUW`5}v(Znr#_hSr&HL}=DjTa=n>MN~HG=BJ zi1AXZqD&H=Uo}fN8xfXph8X4rF8})JS~-?0rW2*1n6-T2-6X$?%gQ%k>#yPWCVp?@ zcT5+D?efT7_XsA7(kWbN-U+i>{?T#&C`$WqU>S>kt?msv9b5C(OP1mHTBMa5XWH^o zenSpg#xt*Oy!u?S*=Q-=va1uaEpC}k`)cyCD=g^vIsyh3y#)XTpEKwYR`zIx6%pb< zm-zw!UYlR`2n-2-+<)@8pG$S@BA#}4-EJ2`H6~@p^yV8qHVzj^RnWs|ANYtnlcXkJ z@b8h?!kGgn8pwx|ZYUP~-kl}!Ns)1a|5la@1nh;dmExuxQYsa!>_q6#AO*NZ4C3&$^%xY?R+XH0k zbC`O%?7lXWd@7$2qW~kv)h9lABT!bKcx~g)Q4VQsuG6P4)=AE8)aduGrqMdWds(MB z?a;XKT(3WWX}$jRCG-*th*&nMc`Yep9Wkm4tO*EA5l7c#Z#Kt({56s*!p_{Sswyhg z@FEhI0ZOYi`}L6VG>|H9Mb#Ij-Y$xX=BSd|ny)jTV2dW}-;l~sny@7btvoXu7$L1$ z^Q~8?84l-vncvZ8k(SNg2byw=t{s59^lg#l{2>WZ{) zwkBm9J5=EgJ*HJa_Sc1#f0JjQT9j}i`P8*D&xJ?FPUZLHBkvBV{(Xucmko9tTmzNr zc7s!QDCjP_oEa%LHVy`HmYf-tL@u-CUA!dob?0cbrBsxp+`RE3gH1uRZ=ehn{Ub2k@(%0m{443UCk=;4G~3^YzqC}EK(M69Alh# z(QA&)NoEbT8{K7@WUL867}gOYl&?JHF$vsv6c^m&{y8ZtL>VfE-W^=G#Vk{WVC|hQ zN&?L;B9sRgqWdh23O#$XfyR0hsqJ46|C=uY4;Uy)j8 z#mQ&{axu)Vv{dO3pASaX+$T<_063Wz3EZRIlSO2MH^2D~?75duf+g`pnTvm`77ws; z3fXg!4|y!@8P}fuc}Ld%9&FAtn>nz_Ymk^RK3BbGx`gJ)bcdO=XN9 z;`dgpDD-y z^1wBsM+H$jK@8N1;SQyWq8u;rMF|COthh%beFHhSh?!(8LO}QmDoBCW^V-}Gz;(_9 zs#whM&4?1MQ~RL$>Vsg7CqAuRn{|<1(6*GivSMId_(I3=Kx9}v^4T7 zQg}#TPCmBg&H|M>Jx7MLNi(75mOjjYeUpfO{Co!(f8ND^h3OL66+AGxh3i7TfsY(+ z9To3g`F?43+un2Hc7q5pK>FYaPa%-jd|vN1#q$9M@OCm*aT5@Z_1+S(;qER-?AE8c zO?MXLBj4tl68!yTS=9>498yT2N=gvcYzHciVQJg}Wn}XQ75y{V;S>8I;D9a_z=Bx| l1b{!V$s`Np?S|}pxE-ZIT!s`gQ^I{Oq-0m+1>Z*v{|iy0-nak& diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_gas_losses.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.dp_he_gas_losses.doctree deleted file mode 100644 index 7ca3a6f1c9a79e944fc0c22d25db2216b6a1da3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5258 zcmdT|&2J<}6}P<}+v9J0cP-GalZi-(Ep}!&AOThcLWC^B#F2n-+ND&}T{G3|?yjc0 z+B=qr_>dA|sZON0aNwWd#=pT0AtC+?xbb^c-90@M??%}ZSQ@M9)vH&pe($sTH=RHJ z`reZJGkZlQqjWmpVVJ5=6xM8nDku|?YWt}@{jL4To|taVpBJjk17Xb)I06~PVJ=ep z)S6vl*HK&ys{QMQ2y~>R%;o@9ki7Prpua3 z%R6SRy6c5mjiXf9i*m%xCf7QTMx}-dgvp&KEa?90LCl?A7xGsJ6|bBa>;a}G!)a8eZ1-9>$tLf1HgX; zzqjyv8^2S!J`l_!cj*%V7o`)J*PMmf{3$1=y^|>I!L(&8dM`2gsWp#YvJ8)y7i{I) zg|@tuUz7b7oPT(AIP231#o>ZKX4hwgHg23wdTRW#i`=5=Yj7lByoxXjJ_GRyR(5HH z6%qVHm-$?nyuNtxlgE#Gxm3dak4{}!kc_UA;T)`vU)eGHi`#t|9o@1}g$Ka=vG>gj zNs9A1A2=}^P_yrjfwMzxHxzTe(VZsoS&?x{8yi_J;M!NhlBs?K>F-sZ|G#Of^JQnN zLx(031p*e~7)J<}7OXpSMrdr{?bz&U?^u59kzX=9wXxZvv1*9ZDItM4^=zW(^}G zJ!`)G$~DHt{9k7`^%*TGZ$n`UpFpQP#Zf);y@Q^erV0%DbA3 z(qJ~mWgNTs!c8`rRsmT-ql@^Py!gbT@Ds_WvBSk2d2;F$e^(xR)8GQ%BVTfvVcUgo zpi$2}hL-OVQJ+7mBoq z^mQ+gJe^00cJEt+G) zj7mCuOw_DC+K&D|b)TiEf4w9Rv|1X9%74P--=S!P$^YR^K41UZaZVflUi*gMhyx`ZNN?>^_|83Uc_+(xy|Kkg5Gf7q7cV{JC0?>f+^Pj!gQU2N8=LF}YI-z)XQtS?0$ zjb^`U++B;`2{?*!Jo3bt#Ce;uF|@`&N_bU^P2_Zk}KE;WSK zto@wFB|7A~Z!l}B)LE(Rh1|O^-HAv=&NUJ`CLzcBLh~fUWXm5&wc`@g&1zcaF=jiI zx9D9#t2nsht!NI%O6gQ-(ONuTHaqkvOUr~!@zzQ#D7)0fW-L$%z4Z!+eBdb}7LLN6 zM_RJ_b%PVD4b^k!!ffXvQ@LibxDtSG#cWC*H`9(epmf7<8(reD;h8$76N*te!Ew9K zd7i@0z>y1{fYJs0fuKv--<#bi1x8GysD9*)rd#T9|66@mAs)^zGLh#hXULObEOH=D zs-k$9J&$xtO2;cri)ZsuGgV~Fx$pu3ZxGgXArtmv9WO!<8lc8BO2ilyarq>ij<^ffGr&}S z3KucCDpK z2l&J=wB|l>It9SVv`Anc?Vcwh>%aB&ZvfBTd>kx@C(2CxS8MSIR!%N^De^%i^w^z& z1Td63iE&t0^AVyb)Y6`Bm}B^4!kX}GF2MW?>Bj6A*Qw@HCZmar@q_=a#)@2jyTG$v zvtO2o>jFUCb#p((Gd|!Iw8v-_pbrf1;|(Y~2(kOJ%upKWV~zU)Q{{mhc#jIAbPOM; z6T=~;ilQ7X@I?tZZ>+eFM*1>xY2h=;NQ4OCYp5Uv8q6DWKLFPy6R2o0!*?Z0v`+1V z>dO$EH6Hu4c4O{{^oqW)m<^v!5WjFmRJRDhp_y-6o#PxpDY%wKenkoo>3hmY)*Q}J zsgrYLNEW~XgE zCvGQ*-~*%&j_?!;(wfif-KKaxgaNFbj8xn>gk!z8Ky0|Xa}vAtsczHZoP6ZlTvLL- zzbLC(L777e2~#W9e^9Z*KrzhBWm1r8tEpCBC2VIr^qYXJxF2R4~xj=a^7 boej65G>FTPd}cy%zZp`ptMY>HsRsWA`n>RV diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.fanning_friction_factor.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.fanning_friction_factor.doctree deleted file mode 100644 index 3924e3e224c8d7ad61bdb4f53b21066064891d03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4881 zcmbtY-EJI774}bN?D22xYyzvq!7Er|i_8oNkWjRX7A<>$tazmWd&7pNrn_dU?e40k zyV@RKAhAM0u~c`dz2F}4B)kT9JOR7_->K^E`LQRvVk0@KK6Uz3opZkPozwH@)|c&j zOYWc9Eiw_yagRljR1q(%S&vj$rd(?K#vXrR|74F$Cuf(1D)W$AvjmM$#7UHMX`Gs(i$ISoE~ud8(o-${b0>)5cu{;-(?>t z1DzXYe#Om?XfjKe#>@^m3jMC zv`@8VrTBs9PGWp29wU?R?hY^?-f->+J3F)!6fqK{%X|j2{YAdK;7<=zu7!#|e1ew- za7pSX#}2Jzv*T>KjMv2_TIO2|%z2PMSiE1M7jB(+=yMH}%)kBrz^pSzc!j+dv- z*qkc8`m`C@>bR#qRcXt>!1M1>OYo>TER7?0l;BvmFqc!#}VtyH-v0JlSF9Rk+F_V_B zV)PCgmS*VD+M4eLo~nzcv)oeBXn%Mmj;wfY+E}5yt@-Gi_9e$h|C~7N*={O;A24c0 z=*J*DYc`1X)Zh%`h@EA-ws*mrhczwT(r@5{Yv*VnW_?&Di7RzDv=L|(QZjU5#lOV! zzgo-;B=Qvd?gBPHI(GN}SRD97!HSm~<_B==w6Cz=PTx_$__HfvJV%bi->rG|fHugzAq zSwHVVqw=X}ly;@6WwjnzqQeTVHF|(Y_Rn2y(o}TAugM?)tE290JLy*O@76OT1a4$> z;2;K_ynajC7j_s{4>%O`4FrAFlZSZfN2SF~-3*c9sd-1|Ocn`7IVFQES0nUVKSZ{) z(k!tjOJ<|i;SnB7I&azRgk?@6YS0X%TeZXwrfBm%e3;?)XoPh``7n2wimYjWMm$zD z;4*Dh>a5iERP3Ib&WOv3uJI5t@R??5W>3wgKaeQs9FH5-W0@y-+9ur7NK3moxaCu7 z_J>Mo309oiJXto|^lc!^G#F##Pc0-n)b_I=R4ILO6fpVFOL)SaB)E*V2TM82*>SQvYfs#ppkQyLefF_ zLrzZF*JdY{h*7{LNR*&yI;9?Vf7W#j^JsQ6;CZg{Krk64JV(UosvsY;>mxm7rRA(x zb1=6vXX5Nf%S)IbD=wZp^)G?vf9{S|Jdk#Lafw36rCejW{AsO<@Heapqpm zLzPEC#50arUxqZipPDwxbO<6vMB)fo1)-0L40q`BBAAHG3Wy#fQJH2z13?7V31To> zE?Ghbcb&w6o6qU=Hl?ej82pP=6i+z$a24_pI1Dvae27^sP1pQxfJ2XlIHO5jZt z^VLWn<>wZdNe4Va318s~f@4m(Hupnlod+E4EeY`R1`#dN^xEuIKTrUy$VAJbV%$vA(Y(4bs^rvhql{CEBruwQkw1Q>^XDWVGIn=eQ<=AP?6Sp z{@&9PuZJ=~w$p)18bCPJcjknRc4x+7r#{uav_E4Xe4A?``1|v=svWdBP)MjsA_!|X zLzN_mG<-lCS^Kz>zd;;c*%v4W%v&fdgtY(w{DBRV%!oG|vCH9REW@OX2s0z9`;Cam LuHpqhfA#(coZE2G diff --git a/docs/_build/doctrees/_autosummary/engforge.engforge_attributes.AttributedBaseMixin.doctree b/docs/_build/doctrees/_autosummary/engforge.engforge_attributes.AttributedBaseMixin.doctree deleted file mode 100644 index 1cc95bfc806c15d6fee7621b58c4e0e3bef78a11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125276 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�tW zXcA>S;x@uDOt>Pe6*t9l@SsI3U17m{f^nPX1nDy zbA(WuqUFEjp`{Eb9iu`$-co+TJ}h*+1yQ{bwT6_(d9?`aL?i+`@LF`8W;|4Q;LyOq z(!jxiTOyfQn08>K6iFU0mtSD%7GbD&&F z-O?u9Yw0I#HDB25?;&h{4wW{B&G$s=?T4MAogiHgDQJKKIl5XuQA-bNAa&tge zW7s^P=kk$KZ{*ye3oMiKh?tus_c}%3wShyVwRim-lKI+#WWHr?$b5o{CdqQV>{g8o zQ7Kk-nx+xSuQQ&?1EDZS+nk@EM4FDn=*nO$L2cUPl(LF7mf!55RuPPq_C;FI@KANN zAp1`~nl$?6650OQ+rVG$pWRPS%s*pKMg243&W!dt^IMH~jqN&)sH0uNWBx8|z_&fD zEKG9Bf|We^Zy=OaoBgmwa$%n8WL7-()BrQ8FT}BR{7WT%4~3Ph)Vfc7~0{g9p*`mv{?=qCo#&nu`=M&}#ZNzlMSHxmf+$E6}IB;a9p zp#v#mU2XVA)>vP&V9|Kjd8C$M_T8=~EMD9c$u0#xmafEp!}j91xi%>4FIJjI;B&oB zKTaL>N+-h9`B8(q-vQ zlV|w z8l4xI9S~Np99S`@A zS2G=oDbDXx*O=+3Ey&v*VqiL0<1bX87$Q!Q`xHyPLGs`2;m{)ssm~! zEwC$5lU5yU4I1!&f62x>4*s@E~ov;`#T(=^>eR6XWY@F&4EnV8FrRPX99qluD*(2C=!U8A|u z*CCvx)*%RDg^X8pDMGK=m24gs-RRkJEjb+qt!n|T=X*iIoq5P97bM(4g?`Z%B>XN7 z+Pom)9jQdjw;P^9+-3HPzS#TO({ddP;WB_BO3NceLq zZCsG>$w<9nOP`Off5!SAu0fyYCeihAl$!&(8W$u4^b9XZNFisT1quJ82y9%C@Qpbn z^VbTJ`QPS-%)Kp026ka zLBgwgs8uXTkoH9y(eO~CU8dJ^()ycAWG_eiEL{vuG2S9nXFteG_3*yyp zPsOXQHVGtKO>t(`*_bnbF^1izGyiAAv187s@h8EV*VK&p@WxxH0_D^q%~FRjhRdiG zqw5}iIZCV8`5pqQ5Vw*~*linE6wqx1CAP;6=Y&kuCp-KWbSZ~;t(v!_lG!Ij-{iz1 zS&I1VX}fbNmEe)+$AW>S7o!=BBmyGQyoLgi=zm6g{N?C3=!wl@*i+G2jOt3^Nc4Hc zs{(Q8{0CP?8#2#p#KbHm3T+Op#YVxzOTS{~f?F=y>DfoUvC=L!Ipb?acU>}4x~OWq zl`;ZOWp^6aI*yfsjHO+dTp~9jZ1vY^(0 zKMA_zzke~$6LrChN1!*yMTR^2@gEc-Y)hqWdh}V5%{iH>iOwN%Ef6(Vwjg%Oc(7)S zmnG*_1rO^-QO;ZK6OiZhm3tzK20FrIdKOXdN$eh;sQOql6v3N1SI_-{KKxO4rAqZwuUesI)QS z{9vTsuwBnb*9TBn5xPEta&tgeW5hY2XE@@VLe4@F=g$%uIf0E4=g-scb0of>E=cAt z%?+7*i#P{#4@I1#WDk4W$r0yHD*58}2p)O{ktmET&Lgu})^JxMRmzC-Z9UW~BF@sj zNWe<1pKXDYcHdkgJL0@~hxFC9&=d33*i%toO*l41BhKf$tp=|6(C~lv_2ZpdcIc-{Z<}wO8@OQsL(H(|MoBq+U&o5D3yr${EQEvt|ETMM^P@npFt?n zyZ`ne>s#D^qx6ss&$VLcFR8TAfBWl5y&ruS{q`kPB+`)?PWF8#NQ>52Jo z?CELp-_G;ec(s&&zeoP}Y|(~_`fkPvX|(c%^xR$sMut#7b6L)9krEL!Hos@1X3{i3 zE?uC#9ybIHEZ&%Xlx1;*8E{+3jLz_X@5h5 zHv4IRn@Yrd{>1-8T}Aw~e?qzZ{sdu1?|#}}v%basG)fOy>|B1@PpP!gPkSm-Z&=gw z(e=ly@8KHs38{wOAwO;P&N-p0(N7EL8TQjs$XUowI}Jk+1UC9VY-9vs_l1~0t7Nbw0KhT65#%7YCY4b>-C+Qm}>NzT?y%zL^q_3iQs|3v0H*# z4RZfgK<@eW?!KLeqSCwj1{L~6^X^uhfkB(SyFvPCj;6=UP*;)Z@g|hZ@7)oc^zPj~ zh1^&^9lJi;_L;@+5nAKaNO$mQmW~{0Gyc)O^yrBdATA%xd1< z*L$c{cz4piNIM!Hs>!>P6999GZ11iM{&Mf`K6+x_9eaA3yt}hztacMu)g&#Q4DJ!Q zAh#zcYBu|BzQ53JhVj_!ppRJ_^NojoO4_m8OXG)rt`2JF<}&!Mko^$|fo?Ivx{$uk z@8O{Aq9bPHcu(yD*P1#2TT30*uN*yFE|FYzwzjA6Gr?$0ep$`D;rlO82!>iaKGbSY z28R&yJ6;ttzMS5K`C3=rL^5zlFPrvtf1GtE%wrv7BKx`(gPlL4t}%B~wd6dA#QwY~ zf1AnE3&i%A^Y3UP!OaS!nK@R*jo?y0b_chO%5i`g@24RdT`6r7^~s^zMoSjJW|p|mk0^-Hpq7Uc5S`1^YP8->FGhocLp72PlY%$`Pw-eB$5k&=^`rG>muU!fRh2cK6lyNJ3!9yH-^%272*g>ziBlVa zWGqj2Puy0gUBUfzBmN02BGs_GdaGHUZnq|J__^D~9gqH?*Yd1JcmIGtB=gu+eC-f3 zmiZeioi+{(@XDgD1O9rM(x^A>?g5`p&Glfu-LAg{w|{lKdcz&Xk+x0GZsN|zRWGv| z9b6jpmM%Z9#b4Fxc+(xPd!V-IfWLOqZrV6{pw&iAYjIz%?RwVKG`_6k4VKZ$VSF7D zUpwsvzHRVYmGZb%IZVI0UFW^afDy+{v|3)X<=NUV`%MnTVn1XigMpSgy+waB;#kt`9CZ>?1a4x7;79 zS&iW9pufdFS_jEI%j>u@)1W_CwZ}V?sBfdd59Dau))Z3Kg7y`gM%2B>-&k*gKxG`$ z(5iy4U4L!Io7i)~9&Cp1`lp0{EZgmNt6i>H&1%DLgWS~Bir4iwaWZSQ46<6f{`SZ( zkt&>*L2vwxyk6A@S^AXl50S$DW*UPFLe)T`2FBF&H#Dr~WXGDcLGdcSFSnar|9BkM z(rQ=BReKs@f@bJqsRRBhei{W)q+W%f;@;4sn7#QMt&Z0!t0aGU9kR8d+L@Xz2l5BP zvIKbn09Ck&r7+1R_N%06*X~qX<)c$1Pn+$d(=FF7>m`|#RJ`($x?AV+xv5;OyViJv z20~|Mpx|n$7tpcw7>o-|U`mGHHi&HHiFyNrgZ6KwCp6;PZKjBJlWMDiB;D%A^_ovud6pacEK1t9AFU@wY=Jr^@(iS85jeVuBfAmBhG-`{&AtyrZt78kc`?Uf-iI@W4+4KS5qQ? zc1FlH?#74fucc(V=ae$BAMSN)J75~v@3r-{i)t@&UO}eyHv0H7ef%ALT)G7x`{?6= zGAAz zd4~?`WrsmKbkYwy3CN*C6dXEa!J&;g4sG0VXu%g-5a!VP0*Brwu(_^76XK4)L6>Dl z+zpjFG=jJTg7XxDESZmUQBUFdz+1@v)Of2As0Yh>LL@QBy*5 z=I+F3UE&v5d;n^t)q$mkVaiuuA=2Lhskpm)1HfV0Y6E5W!HyGe* hD0y9w%p`hUy;*5=s-!`aB+Nrqf_{OLeEL25{{#G5&ei|` diff --git a/docs/_build/doctrees/_autosummary/engforge.engforge_attributes.EngAttr.doctree b/docs/_build/doctrees/_autosummary/engforge.engforge_attributes.EngAttr.doctree deleted file mode 100644 index 21b4b3ab6ac9f1e4714de9a8fe5a07475c3f3856..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53362 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.engforge_attributes.doctree b/docs/_build/doctrees/_autosummary/engforge.engforge_attributes.doctree deleted file mode 100644 index 269047532e1daabc43e34d3f165becf44f95f659..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8304 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 Yg?cs&pBYiyuey}%^1MJ5JRKbT53NC{ApigX diff --git a/docs/_build/doctrees/_autosummary/engforge.env_var.EnvVariable.doctree b/docs/_build/doctrees/_autosummary/engforge.env_var.EnvVariable.doctree deleted file mode 100644 index c1d17f28738903b3d89ef62700fe0e2e4c2e8e2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76442 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 MtVh@=9_G&dUo#TOEdT%j diff --git a/docs/_build/doctrees/_autosummary/engforge.env_var.doctree b/docs/_build/doctrees/_autosummary/engforge.env_var.doctree deleted file mode 100644 index 2bab2ad9857263aba4ebd805c2a898e203453b5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9585 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.env_var.parse_bool.doctree b/docs/_build/doctrees/_autosummary/engforge.env_var.parse_bool.doctree deleted file mode 100644 index 492e4d0d557a252c04fead53d458efde7a8d28a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4987 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.locations.doctree b/docs/_build/doctrees/_autosummary/engforge.locations.doctree deleted file mode 100644 index 6636943757503152f1343aa2de45bde9b46877ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4918 zcmc&&Yl|dF74275bydH69;h=t+siU;FSA|cipbJ7gP{1q#uC;CvhI)@l^Io$-I*C_ zM&xug%YY&y(-N!Tgt7?YcmIWdz`vyDMm{RLW_nr$v7u%vZrr#LaUbWNs9(1J_~_Px z`!icA6=5>%vmi)hz?C(tf%Nm3C)&QW@BPX?vj?V|v2!K!%;(lDK*JYd6l6THPpsJ_ zbsa{kU#{;c?(0w{^>Wb?ZP9sR4@B3rbf_cVm@>OOnT%yN;r&SZj20?O+E8BkF`v>Y zUaRxm7H4ax3@6c6?3k`sA6+b)c6s8VS&71g+hIOprpL6-!cneqQ@Yu57$~|$$B&p& z5aN3)VR7+oHOSN1V8r~hjE_ktHyzC;G-bt>xF^=deX%U|%xDlNdf*R!qIjkTKg!d= z54Gl5jC=WN|GSw?M{?Sf4XWD@aC9~BSgxhYGa4^EcykytRTFbVjy z;mg9!;w@ZEybTY&gU>^J-o@uVx+MIRh3;wxW+i1|X3bY(8RQZF)_!%6*>2W+xtKhB z&75ctwPm?@Bo1fyABqR?G9uT`@=+H0jkB5V_wvN$MH$|^O-UI{So(J1$-)x5_Aa#X z^AzS;idXPwtNypN-Eg*@QUCim zAARuQ(QzXk9wYE@uDM$lEJ~x_n6_r8G4kMqt7W#+!=E38NC7WpTJ(BVm9^$|OD`dc zdXmXJZA5Wa$Q`)%KlJV@mYj!y7WSk^4vpc^Q^YJOP^N;3Yhw=FsSSMGG(fO2lEK9* z2Sp|>XY%|NxkDl z%99{WCf*bf(y%N3RDxY63V{?XdUfuuS!|W*oixDR;^8 z1Z&GyE`DD0vQNxbV`ERF6e?O&1J(lAfb@07o5bd(Ub7x1ev}7%97YA%cyvR7HF3qV zW-}k2-d;pZGH?lSqzGH65R&j*|^d4_t1>1K{t|4i<}hrz`mH zO@2FFfWqk_X<^ZlTQujbS%443@r<<{&X^sqNXcxrK{!}NRVWR52*z@OaIU?B^t=hD zO13B7H@9`h5*0Zv>7|*RAjAdRYiX&0uqO+qSLyHo!<_b8G@E{&5tsC8=D1!-3I=Ib z71tUl4w}4E^WJeL6Ag3+&i<4|Iigu*h-u4Qr@6L6u?6Uw@B|32Wkxs_FmO=K;uM3m zVnYwRoMG52hj|uZw1M36hB1lGQw#`py_#yund`xj!xY6o@OM1CJ3hJ<*@WM7V7 z_gF6}q@yqSC^s9;EOc(!0P`-IB3xBS2y807!v9SPRfv-!YvU1~(^ph)&k1Yo?iICe zwX3tVd&NHbMy9Dz-I=#l&Y)2P3VoRq(BTaMmKY&pkQ?a0o$r+Lmx$+c`w_|-FE;=L ne!Wph_b2odP%j|RF7d4(<^6vF2Uu%n diff --git a/docs/_build/doctrees/_autosummary/engforge.logging.Log.doctree b/docs/_build/doctrees/_autosummary/engforge.logging.Log.doctree deleted file mode 100644 index 2a924721d66a42ca5b47cf317a44fd49ad31dfdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50964 zcmdUY36LaLd1lYi-P1Ka-E(P>G#X6_9aE$2=|NmZZAl1Q!WIJ~jKHvF*qZFB?9R-o z%B;!En(h{sk<1}YkRVGcyz=@C6qZA*IW}1{>qR z_U`w;BlG25l|4FecwIXc$w$xNrI$U3nE8)a~UZ$6eOvJI?a5X)n*e-dP?{d_>>*W_^|9 z$cgpd0he#0r$HKjVC)N~nxXi{j$lGaeLC3LF>QTty1%FeHO=>3bFuHEwp6>UX(LZ_!y*!%j*KoP_A!$)?u#9k1W*YVKP2N>$Fh z>!GUGp4#4DG{%B)({AgliblDzjiacVaUHaHJ^sHD{~yEu$EljolxwoeHJ~7991Rj2 zh1Tm0rh&R?*QH3Z+~avoU`(9$2U_3w55|c|2d9l|p=k)W6BgA<$=1M|8G6(7OeoOr zyD^KHhA0iv>+Q#m9cPw631(RW&9)sMnv9uO@Y1*6cD)ZvS*RalH8^(1T>Um#K-24K zEq$RLMyVgW;|}P8S>&N$oTV5DQ$ih1@pcUB5K783Qfd=yt8+s=L{Cu;Z&7p5Vl5GD zTN!9-bCBllqf+~edMu_IDVSRAb{1GYfWDrq!?Z5w14?@j(%vmB*Cvb|4A5cbv< z$QofO_Hx}>N*M%4>9wb}v38zf%4S%Qq+yH)J3=HM;?I$aoO~5Ef?Y6+6D%{35zK@= z>Z(Ev%Q#21??$yZI)DV1WT&@G{rD_Zd9_uJ)u=4E4z~g zFy1;8@E=iiKagMDV4Iz`i1(vj4>Qf~3k!65x~ut)tID_S_Rs)tR}Apyii&g6#r=#Z zZYr2CZAO%ey0#xXCJUj*s8Sy~TF0k7ZdIj-OIz;XWhzC%oW zk=pa4T#$Su$cBF}B0dB%&xH&{46f=z1hYvsYKHBLpRfm3+`EvA0FN{u2*({F=w$wa zsjsx)6$inrd~9lV%ZN2X8Q)I9U-%jvoIePzYIdD=zoUC0u}i?gf3@OmM*l!CpxPlKLSTr$}QW z*tOK}bhx3P4{A-{X^~!iZ(uxcoPXZ{-j{+z1ZvRlH;!=4Lc}}CUYJo&Gox-fwy$|Dr+d2HM#|cSUa|jjj1BVjk^)- zWO4=Ddu!wb)=uzNi8UisZf&D%4jcbggpSa}j4z;bN7mNWOnYF>AZ;*-0Dr9qs}~I) z>_&*b+UuAt6Ubo^Ry5bf;}lv#SdQ^LNyXcRtXQ@CBZaNRjQBg~I&F#rgRZ_=(5Kt%zhaXsdaNfKz z$g*jQN>}`8rQ$25Z`6H5uM+`Kr-7cSL!rC%6~k;9b9LVV4;u8F;+no!lVgcF1a&%f zL%X0;cwN5$Zt&__r{k>XZDi#-{bioLP;dR7rMm6ZSYf7D_j-EETr&0c98W|!xNAJ0 zuqj?B;zq`C>!`+Iy^0&^4#iO6*xml3YpQ+mVDb%U3I}5!!As%qsPKD6Dct%2iY?Fq z-k$?nW*Oh_^|i%*M{}Dkr-NR!u8L9SK6kSC!QL}(d*>|=yz`|G$bX46thdHW4EohO zz{3x{7GCzMh1--d+8r2+VYCw*QaTRG>p`$j`PGCbV&mVpeSF8*SPlPS0N#Z4cG_O8 zb}uY<#f1lf*~7AZrw)!am)01Vs6#FzwhYZ))|&uH6F6&jE_5iX7LuAR4bQKs12sOn zKa@wy>2~`zUQoUc1E=daz62^8Q@C|o_g5VE9A0Za#c=^gz|h8Dudml?ZGEx7T&um6 z#6!3bx&uP%9iXivvxO|gf%<%{rn|1=hS5SmWZu9^+ito2C8oi*sDjeH?dx2`Qh-SwX9 zEMtu3k!JDSqDPFWmvx)E1XQ%=BjtT>zU%dj93cki(neM*l(XlzW!*@ji0k^bn$S;^ zh_h+7L5}7cn%c2ZVQ7f8ZwFc-X~eMYf~hgJL1|qek5pzZx|mj|FOYw)i!2u?KKfKN zUW&prnTsfb>=vUy%-_i5EX#$uOeub9urn$O6@ELkur}v{k@2A0b89-0`P?E#1an=q zwe4$jtu@V_gLClpcc6}5WLex)&`>nm^`R*7M5+;w_pPBZyLbi2uvi|mF2^PZ00B^M zTcZc4(1y{Fwq?%{NxTjwbDEe>fY(4>lOq$F}fLU-E*w$YL z@OoYMcY)EK<>8xTqhN6?Nkf_qH{xBtDb8~!jl;~Gmd+?t3swdE^hM4i85vhsysjZ(!%qrdLU#1eG zZuJf-Bi^ZgMCnvpM@iu4tvda4-nxzwA1zT<*oEFS7f2mr>!%@Wk%FL0)|dV*sv7G{ zTTjv>8yLphCDHA*ev;xHww_=mSpOOSNV^a=ADP>+A^oT9_zWFC>KOf@klHwsWm5^+ zsmhzzH(?F)`$FE5#))fLnMO!VA`>Paqbv_wAH+W(p~vx0yg?epjr7`(6VjcSdNwzt zBc?gxA4sYcN61ic#QtH9Pv60msgWg zQ*e=?fXgm9m{34+7bUtZAbCxRKJ!3w8tK;OP%~$w=EKTv4QSk6q83exiw+5#?R-zlpDZfIk!8zrF z^f)}Hyq}d&%qcewH-99FV%X>r`kxarzfjQs*(y5zE}@^z)a9U`y-TD2D^#5n`ei7g zpCwe#|Fyyf8wLHBkW&@(e+%h00{y(ETLb-HF42ud|1Qi*3-o_UG)$37kxUL9|Av)N zjQ%SH`cu=v67TsDB7|Q_BIfo&x84x^3L)=EdfZTi-x>P%#3Xzk*5gz4Y1Dr&RWXHn z84A?TCJIvUe`jHHj)MQ&kyDY9^SuA-kZyhWzai86C+oa5nBdkDElDOgL+!%*0k5RT z;rjtEVDGsh!? zu>eNPSYqAtY{9~(vfOf(ErZe0C-bqiCF*ENL5cxBE2=3C5GzHqY$tbCN8^D!gGld@+VHw3f6B^?86p`g$)LWg2M$$Pzp&_!}{;YK+akR)2h0p z#Mw(qf4VMdr=qrqx-&`H3Mp(0tSJ1NP(hKWrKS?=Hr(564gjP zzJVHp^YOorW|iMTbSz#Kt|of%!OC}KkBDTSO({F#q?eOobFF;q4Y6(!@)qGq;UwPr z8_G%F7xopCn|^ZnDZV!-%~fxuN~ZdcG8A03H(8XzTW1PebQIqDkI1P=&w0GHgmmlU zts8TAE3UXLvLoUxC2Eo!wn`1dIqXgJIDDV-URFXehh0~?!AvsF5HTZuctl7lyM=|F zwk^3Z6Kam5;&|pD1kIQMlrx$f*if zJd1Se%T#;GvtwTFAcI*V4Dsy~BJlU|4Uu1^A^?2IzXMT}!oQX% zJkHlDqD#Lovi_c#Q9K8=N0{gTzlC%Prb|CD%GwRdswMD>DMSu~zsnFPIFe_9C)gKG zsZVk70is1s#AX%Vy%kI`^0rCSDRfL*z}x->^f)pv6;^7!GX#yu+j`4+&edB^`_lPw z4yicMWGDd*Th|q!y^P}L4xCh=m2EkG33969I&Vih1!fht9ABC3I#JK9;VI`zG$TFb zz0?+*B97DJ@SgG}Rzk6-oQcg2gx{GZgCi6-g$&XGcuG%Z&o+_aLV#pneSL)(7hBZI5APw+6BwEK!d{ z_EXd#9N7=h+FoNWarq$tj z7#Vq}`Vt4LSxYQBKj8?69&z>IcoXXf@gkh6uDvEYLQ^!L8Wc6yUyssYSqI28Q1siB zqDv^&T0~r{g+HXf#PKjsR6ia@LR}u$Hji2O((@6+!zPqd4Hj<6Iy}Z&R;n1>OXpDV zBR+hb@lmT`4BA}k;t&x2$j(}kKlrH?w69LbIVpHZ0FH2Fj>9nhVWf;*tAMB<_rA=(mKCJ(Xl3q5NI8*&*ATW@4J z#T|%B{;5I>t0h-q4siKK2I4It5CyO0KuEmJf??EW9Wsjy5c<>_9E6i17X^bC=v2lKA$U$C9uk5EEB|sp z@WU*pp&-Z$Ev(jhA^3_I1o_!**=MehwXpYDFnoEHY%-wuJJc#1ic?{M3K)M+wA%U| z;&UaJ1lFx3Wk44AWj5jubW;9RH3|a5#QiBpwou z&$99_2OR&ACy$bjILyFv&~@H`a!T}>}9 zi!(fgoQfJd4}Uix-TLsC{r#D!>I=aa?q{ltgO9@0hAFgC<_lj*DLD9MMdG6NPb zto+LXzSpvxh5{ciw6I$1^@TC;(NV>@;KR#O@Retf0X~abg8M%LAM#MZ*AdOMe&=VD z=sgd77m#j)z(-YmA%L&VR2K&yg^dQjM<@jcpC%Fy3BLct%D)`ody?fe6!>_d8w$R= zL(j)omXvv`92}yHtbw_5Q}841)0tDMz}e?&5V_0+svswkNui`|B0ECg3Y=MOiI z*Bh_LVdc0(2&d%Z0<6+Ac;k0rvAYs5#rf_nu|mVlAreQr`oXZinWqUqnS_af`=PA6kf?}$q(X63l6B`0agE=X zcOohJw_Z)6f%DWGQmkVL4s*cbY@Cf7;xKbgT=B!qg9&-n&m$-^n8a}j>_ZsqBK>5yt*O6l z=LElA5SRYgj(nVv!6*31?-zq<@lyWYhZy*DimrF^!br2WBg14o%8AOuMqAucvCMDf zx`TOTx<^DRi7peY%IGhWXS$~NJbQ^sMjvFe`9qt==8<6Ra>W8JKS02d(Hl48?lCV- zT^>r6CX(?#ns_V;o2_X+lQ!2W)S{ryS$OVX$gArz&uLpaDz<4t*kqLX{GUBQoS znk(Sv3GmgN5H5m_aWNwQPPK*M{}k-CpeeHP3MRopxCSx~#tC0AdrOg(V!vo|sw~ zx*N*;kE)fZf3JpS9DM#)XlFjm;L84(Ne?GFXRu$q$g0e#lM3W{CH26Xl zA^)5gtPGc}b- z)A~(%OnTR+5Lnf_3Uj_>U9~&%t~@aEuI#tsU8NK>77((b?~*^umVaowu&MkA5p%p4 z0_Jx))y_#cyb;QRm`6q8B4kK!C96ck8aK!4}X~ z!duCO23GU+uTq=~>pFs?T1KKGII2@ots&wngc<4HS|rhug!wuIRv^q;WK%Q|^?u|c z#v{^n7-g~Gq>DAEz)717O9`-#Dg3HcZ{FLkp zXM6ulBE!O=ggo1uq=36Q6da*Cf9b)W%D&rKnT;)$dxX=yKejG;Gf($U%9h_NkZ$eu zBm^IXJtpKS!jW`q((2&Wcn%fZ+UHOncWeKXo|s!>PnF$TC`x6wc7V>MPC2!LBdoJs z+5?;B(%8A$rBimZL_VylIWu{n)wG5!rY8GgEMwz!DwfgCR)pAJ<2_%BSHc%!O4;>2`a)S}k6sd1D3 z@rwwo;2(EM6D99>5_J~dksBlPjm(8|z=obtiU7~}zet)g&v-eGKCfwZ8?JE4al2xo zuIDyQ} zDEAd2@i5LpHbj_11!r+D%Hz)Bjr7Ev1$(OOEO=!gN@ZtpGIBvyp zZ$ItWdU}sk_6hmIz_VXQHvOD1%WRu2Cdbc&X@f1N@&rL1$k3$lF42_Jq=>|+G+J?p zhvTFu881@fUxlg|Vb@WQ|5TFM(==ugyk2^S4*$5>B*HO^OWL`?Ro^ zw9joA(e~wvw=vWfXlt$9s<2S6bQ?o$p{Kc8H_D~pHU?231I0pJrW8Ll&a^bzdOL<- zYjdvNp2LG~&#md5jM=j%w=vv}yov}f?=!LckWTqbY`EJP7#6HL4rMaV zTi4+qUNh=r;Xo1WzUTe2*JQ|K?Z#=Wu?1I3MYk?cQve2sf_F>95lAe&0A!;~E~3Pw ziR6=%?3#W`P!cNjN>obBbW8=cB~$OTn;p~hmCG{4#|l%yID4IX)4*MuBBiZ$W7llf z-bm2YeccVW534~@9Uc;5nq1y`kWqg4I=KBRt_t zG{;!5R|>0ldxqwjo+>UwayF{}TO#W?suM#Q>*HL^UuI(FM-6cF_>%Z?gMZzzn=W2m z?RCtS=@0OA27a;+H;k{axIXrj>;Ay{Br*;tuGiCB=91YOJQ7Ud?7FVg?sxP7_iCUQ zex=O7IL|?R*a{W5?RbIS%D`~gdaR^oD9?J7D}f9y`7KLQU-$EpTiL9?|_~vJN&&P@1peHs?WKWgHi5!dTnHk%Utv{(@Vg5}Y z*`vT8-MmpCZXYR~^16cc!B9`Ogfds}TUF zDqxl(G!sd=1Hp2@#GWI^dQTM@@8;!}j`!YLoO!m6Mds0XZ`&)R?0AYK*NZbBX{5)? z97XBHag~u?geL21k~lfi+m65rBfUvM5j3!SAF>bwJ4Oj?9LM&gGp-C5uw?n@8jTC( z!I<;6!@Vwc=)1?=WvRNWt<>9^uhsGFIpj;|W_QHx=$hwaiOO_bALCCx zfQV;F+r@{?lH$g*j7;HCQJbN9hwRhUos@!i@`F$nagxk(s#0xmsyv63D=zwUl{?j^ zQ66`yzeG>Wsj{caPBj#z^5pA_*zFN8sg!5U{=`&9-*TUrMuL@Xykj5X$>?H{F$ z5ieO^L_UJ)qUK<9muyZN1<>-46bGF5tWbC%=P5TNiFQ{)qK3aD^2%=bBz4dN_is=N z&N$D9f|N6k6gteI0^^L$O2*knPmFQcQ)R~Cm03?W{#w?o(H%%B;u-D=pzQAbBb(N} zPt>ZstA8E&@kA;dU4r8T^mfjgPU`L_VW_F_$XpMj-PPHGxZM@=)QiHj!B*01g07}j zo$=mA)GbcGY$$zr%seo4%RWl@JJR1vLmgxe7P5Qt^GF1)DeWcSS)6%xFIi+B^^yx$ zMNStNF;ZWdmt5TcCHAG2shgP!;?|~;V`9HoWNOxNk~rx`_93u>8)2tOBrrz(W(U~` zZ<4|eb1G~co=B*CULs{gMGum=WgEgO+_WX2T_I&;ysJXC;eFKsO2K_qKde}OD^hFI z_x4f=@KrpA3cl)5l*fC=KS58-SFxwczA6-@a_{(%xalS3qq2`D5ATJUIPDKKQqBp3 z&Vqq?;4rNRH_bPNa+P(B**7V&&N;hy!yA!=g@(T)yZeYRoou@+b~;aoX}5&J63#}M zX;N0*mCzx!^L{q0VWvyTX8lhi(eU$6pDQjR+iUS6hNJi2VB+KxLxSF;MzwyOL`%~9 zFCef2y|WMNL*u?=eI3~dS`V#~(fJ# z4-d}g@0BgkHB@p3ucR@D7T#XG6z(~Fw}m}0bHPF1)odJT>YI+;lzYPm*y$OJ`;Lzd z;itxenvA2j@v~1>u`QTs^<5Vm6`CTi)4{Y1>6qAGb2`{1&NTA|!9Ls+)%VSgH@}2+ zPaKNY9t0CVtYN!Dw5S+NIDNm@_Xnqq+0(%k-;nM*E^?Z}1fh=2pWPmQ?B)ex71=(A zpEdCl_dMa(9^Yv-7q!+odg~3?MKZzuCCBk?$JdoNr?v%qJiX=H{cdxWw#N?;GJ|DV zv)61n-7cNmhWrlm5WSBOr} zcqX2&iN9>JkC~eWJ^<+8i0NR0L~Z$lV3w;{$z`17G6;?&-XyZHehBs-%>5bWt__HrNFU7+zces9<9L2!V7#oBD^J(vlKF`1?(aB$ud zstJvlZ5XP)WUgZNFqolB;IK=jiyf+nkaAMu0vMY{Wjvhj z$3TWm_lRgsd_0ND0pW+}359sN%Ydlclv^83z8mx7Xe#~_Cc2Nn1L+i5p+?a_Do$U1}w=r;sT7n`HJhl}{#nPIu=`-Cts50R1NozuQ4! zQ@ErLC~Eu0;MA_*2yC+34B;78py~Cdr;H?_M87~cAS&I1==Jx+_h znTd#DKT(C(UrfX^X|EOv(>NM;GD?EYbQkqDAiM?<3>}*gE(TY$5bIo1@8a;BCQjJJ zppY2kkzgO?Ox)|~oh8m`7lR$TePIB{7GRQ+=mhwMDdO-+6X5Whd}{+UoP7`qrsacN zkw+W59KhYUn^z5`O*1SQxh;i1@M-jt*=FIB6v&^gW8~v*z#lJ|qF{D5CGuo1E_%jw za1HFeF>Tyt+|3R`Wv8WDbncx+hvQjv3X(-fC0TT0gGI-gSoA5fMc*r1^wE_?UuIeK zF#!8wz@qJn7VT-YXgSNGH7|?id@Y(7wrJRH(b(Ri9-c+rz<#htwHj89J=h4s{TQmo zLx>z?JgzS_ge;nc!pgdfPA4=(7I-ib7{;E8dYc!lKz+k^y}R!w)!RF%4` zT3ywe8NaZDA=aTnc(loqWn&1$gav~+C+84g*91%P_Sv}0Yjv*50%X@{ju4uf>>a9!{DuGed~ z_3mo;Q>M7)x*mAG;`pZCg1I3Wvz(@}q6nM!gLx%*H1|WU2k`$Y{GZ1EgTyaH*0mUy zGmsQI1AP_Ds2!rsFqvqUqe&tqB?n7;#~eT5_w}Cn&&@-TcutsCpc6pu7N}n%MePiJ znWA6no(0+Zy>3i>E?0@0A=w|Do<7LbhDz>WC3VMfeMmc|l)-gxI=TFqF0E7i4A zYQSM>x}DW|(pV^wv!uC;DHTcB_7%rBvYwx0QfG!EF~=MWwy9k!MHWwtr03>KZzk9Z z)j7nf2f9I(*rTD!%CybXB$#$27_$XK;`Hri^Z`;@a1w6eSdeElku^{%i%w_|j5-|edOZ9FOkji;!& z-zsX(O*i)e(cEM(ZaEBR6>)8vo|cW!W7Nv03R;1j7WH1subFTO$_SaWYdEyAv( z`hYm@VSzMrXDws70XN$ZcF4!N?ljC;CzPS|B;1X!!(;mW;Dz5XV3+;in!#NO!-+qO_~FQ=2=a(d{sYbu#?=pMWMb}u4d367SynL4DeMP3 zC0s~{0TMZkn&ZLN#a^q$HU3OctNU()1nhf#^IPVbxA)=2DM@6Yo_)2skBb;2-b{+a zw0j%V?uP65>HtO^flN}rEp_#dsp|cUe^!T|pV#JrV2q~uQx8Z`d#%-i(Vt>EJ7ew% zCPZFEbDvc;7goKkV>nGf;jjHfQH$AXle zEpof0od0On(tp=>B1gh1hCeQ>Z4YD-`r!d?}};cG<0tQhK}b~X)qrEDk^fd zhTCrU9Q;7_y39(uuIo#SW${s0a}0mk?ViTZx=(q!uuIsZgTG$SsMVUrLT{;7`$ZxT z={}$crmD4Ib}d;gXd!$u=4v&g+jYBPb~H=B=_sg)UobH2>J7h+=><<;LIbrLH}qQV zPGTOv;SYoWP_Zzu=`JENC08MZG51=AgxWFJnFcd4(amZ-4`3OJ7BzUjp*KO8{Q_-w8jkI+KqFL>bj9aUaO%wH!^V0MMh+FG)-6h1E z9!VC@4SIw_TQVFP*ih4+kCJ!XdF*uzB|!#o(?M0sRI}$dC2u59H@e@pj(5CFa%ogN@U z2TDWIhV`(iH5Bn$n7pcEZUpWFeU14MQa&1_AyZN{n97RZIC9c-Uc#6Kr~!8UB^X{u z9m9r`fD@3%{t_-8+akKTg)HhjpTRT-=*HT`m`CN@L4;5Jt? z>E7IRmotADLq~SgWz1;2cN2~K5gyH-QcUqkG9ZdgkIp;vaKS z_9lh(Fcm?Hf~HEa@FW#ulaf4~O9Tt{cKpsmg>i%mpf?`Nk-T`IU_XJJRbqwDQ43M5 zu$kJ3M+%Q9k%E0C5&SJ%qmMK8ekwdOsMNxE;o^HoiURD9f%+nmLAoq(_)}t*1rGM( z^vGh{cuyt9>-I+|-(LGetOfgb@F6utm_wwA(*wFzIXD_Pe>8adx}e(Jm!)M1+KJ^6 z7{9O{`mciUl3t37TbU9`%%_vNJVsUSwLgFl0M!Ta5$~Cq;@-MF#EtYoM=QaPbcr;M z{1cIv!V#GY9NC?&MZuFTo49^v_w>vVc(M^S6^T7}?g8c2h9@sA#*+;G$xvw?VnlG| zCrq~r0fOO*MxDiRHK#zmt&ih#l#kh0zV6#^eOa{#!A;eb%&Cff8_)k@Y{Tv|#n=mXx2$m_0 z5Z@=hQV1ba2_aZP1tES^*oDIBwY6@=J=nc;Os2+s0|A;hyK(vk?V2htG;@mx#Qar9w!_SgbyXqbwz<&!*N35eL*Q6 z#9uF@k>OV2HH8c^709q7(V~J8Cki`w7>qcMnu?^I7r?v`<<^D~hl)oLN#;ikEp921 zn?wtndWw%Hj?v@bFsF#Np#b39T84}Nxwx8c1ai;7? zrow*4c}c}=J|KD^dvr96*}T6*q%%%Um=qRlBmJAw?yh7HmqD z#H+9!Y_WcwmT_S*Jr@5fi#T^CX_Ui)kWOoT6KMs6g&$b{N#Y6g3qIGY_>jlv^8WzqlB+ z8OI}r**i*vB{BOt>K=~S+vss{%${T|6l1m*kB6RCC z=E|@wF2PZIBh@GooW!}eQ&(}EJ4KI!g<_oBU%C=cqS634BMf<;p!9i%A@8js z;&sK4J3BUxqASn^roI)x=N6c^c)`h9}n* z<4L9jMr`c#nG)eiO!;f-E{-X`M~{PJ%BNWi#hCK{F3cib>}93B>TC}imaW%m2`>_S zk3G$wItjx#$+r@noIiOAYkE(fIwcq9ir$*np8I9J3@|Aif9-{lgJNd?Lv)seRr8Z! ztb5r8h+_j6$A-#!Vhx z#xwhWGc}6WpuQi-i-@+2#jLz^?^)K0QpT1rT+C#0Gx%NxLBYN}4LroQzNPkPWBaL1 zUBqTE-Z~1Z7J<8{Q5w~MTc}-;Q$TOZ*$56$h1{)mHsadIBYR7w4%k~t``aT> z`6w$G7?qW+b`{~RtEERPM&+iQGIN*t z(l-At;x0ADmZ`A$t+K3Q_>UI$rRsCbc5u80HB~YE$53u<wgD54sQLAuojA~9~M6D=(7Fj~E_&vqWwZ z55~qrJosDDX+`2jF*$VoI%}aA53XfW8fM?8#El9iBYe4>n93c1s*#%z!>EiYb_>FX z>VkE}muQbydOvO%#H354QRW8XIE6AY6)3YiU5f%VM+S}4St0atk~meVQ$jyJll*7b@oHWz!> z%S=jSOWV=gNuVh^lBuwx3AsByg2{J?PRJgH4P!iylt?wtcpgQ$wHeP<#c{f1dc-W| z;SzaCi}@(^5Vx3z=y7n1d4RQ0XfeT0#bR}S?1vN>=@PW2C`+VBpAocWD^iBPwY#*( zlQZ^vRTvw>DvPuJCK0k%oYjz@HP}MOLiBNVDF#4q;brb)8&Bi&6~X1oX)=g|oF#q; zMRM}hzK7RwHlq$zUg88m+h^JNSzS23i;EA(+SqTv58wgKP11z`9SZjem;;ietE9o99|dK zb~=BAAMN7fY?oRMVQzh~jl*B~BRgY9e&MH;&{9bQ=j+JROqPuW({)eRdtIC}!-l%{ zy-E{YiuQx4q?xLxh^Xh0)Fxzg>1s5p@4K#!o@+8k)f zd{@Y|^q?bZt?Y=5YnT+xJ?3}>b(E&|Q9i~?r+b1*aNjg73Ks8Qkf9d zDdzbw{dz&n^TCqt$TQD(qTJfdvt)cLnI^rVQ$I%8I`3mbj9VwAsa;g4#_XVw4^jzk zovWhofYy1IwSOV3^GR0IK-S3{Eo5u0)_G&hI{8U|C8zI@+OUjS7J76|^<`M;Ur|4C zE1e8mR_yevq93!vhhg04S4ui2&rZLAa%;2GX*m>?=SRnnON-ckK3M9PnHb}iN@>Gc z>i4Jwx70rog$K0Mr&;?K!csSFEuPg={3vg9T`l#7m}TK0!~x9Ib+T+U+8#)nHF!-K z)_FBVB&>6sSEiWe4E=aPTuS2=DnP$meK*96#!7eo>!?;~in%YB!3d}s{ zF)G3Ba-S$Xpk4kHYyU#n<(;gifjlU0w2-Z}deE3%(z)2>c8Of2b~!{%8FslseZ##b z*(EAd?D8Jbacg&(XG?k_&n_QEx%IY7;`#Ytmt7{qxLs1(aCZ4VD#7j26@>@1%NA?@ zLfGZwtfqnNk~g}pc6lQ7m;5D|GJRHNqNxH|)_U6otv|zt|0DGyx8YqWiWGDHQ_kMTrDUQmb{(BLAG|m^5PRmJ7QdAa_j2Jz2i!n6`03E`%jno;BbeQJ>j=Cl;nyjc zH^t>NV;++U!IiI54suuCvCMRhhTDZ42oYyYCoG_zaUjrAO^W7nZ<>r-UR*I|%zMmx zV|NG1`?GLyn*GYK?5K#5-QV_LCk}_8&AG087eb3_3EVo?iCCES&kC+ z6$eNT2$zT{q$TeWv#$rK{3(ABmd+V`tz0 zYTtY&cwr8uGY8q&7gvde0t2l#P|a)^fcc$-?4HwO)B{0B_J~D=T#_HI<%I;fKzdPwIG5@v1nqcEKJR>fMy+(;( z{x)PW)7^Y50gzfZ8gpJabO#r{6Y{(hSN5;dwH3rVT$ z$M&%Uvh$tTK*wumd$2WJjUnIiRa|h!5B=tmW`X;P4+*&-a(tIKI$fxA>LB&I3e~XK zYyCo4b}ic@E|A35!DY2V{)TW_CJGJivhFEvBHLy0CI)j^O-9bZE-UI%yFsL_v&-5Y z8-{V^&xpSws#5;yIH;`PuRci3owt7%A4z{DOoTbB%hL2Io=QpxAbW!9D~q~1VmWom zrHgZOxb?8dt|nyHM|!5)Yc*>NhSoHE9oI58Sdm>=xJ-9F8Y{SJ5qA*c&c!7} zCb+@gkprc{8vf>kk6*BcBR}_~kWBWlILpu7MkRP0_(Ukyd<~XRqno?6Uu2A?tA-|da zFWWhNABBpBrD{C&k1Vf3<~Z+FL4HIiJ3mBpY2qxAU6*j=&F)Y$o5<}b1ShQotw$wR zZak_4tydOTo*lG`%0C%K#G9t4W$pABDdVBy>OU8YiGxeMUWab4t$S_UD0`;o;sRej zK|}}j@Ky&K6mYp0=T+j^Nbl|Ml1eoD@sS!7 za56Fm1?&f9P#`6QF8LY>t87q^e-VYy_xuczA~lN@=_+j1n#TWwce5E|nr!`R(UBli z7ln(gRytY9QdmO;Cwnj2<4*QIdSXtNJymwHoSC&uieAAFe9!l?C2PdQdGXn9_AM7} zLR6Af=4bcD{H%~g-rG2NA%M_N`8CqU_Z4bmv5$REST+~|u_c_We2K<5U;7)lCqiC_ z@UI_3p(0CF{p;@xkXOO^NcQ$eh_rRa`AajDE^D?jA}a;-0m!TX^nXd*owvV+k0j7b zZDvRxpHY<%5x#YkLIQ^VI@MSP^}}AAP&?*2)4t~7hWKUNLuqIf4$dM*Gc@%kfatJ( z(#s()PWW$va5;R6-#Ad=o`h!-6&40=@}2~u0^_kg!9L>on-9J}n`>q0R802}HzoXJ zP4s5ol#rw?f1pKfmAvsgi3lF@enZexWaH8sORWoQsNjvS*e1R4mGs2CF?*`)jX5)G z@y0KrgZ%S-@gTPVWP9TKFPbN2R}+-Z>%JfciA)MP)4Ke22jPN~S3SG}J(>S*q1XXm zAC?U+y0jARS9#&6#EeSn0Iwl`K4dS`=VnKAuS221=XBp(+(dRn%A3eX3e~Ou93v+m zSQD=yqaL+yA=1{_t?x?daF$b#h)Oy2!yvMPQ-7FvJ8uX0NIG?HAIzo42OS(|LWeHJ z1BZSc)mG-vFT~9jHQi~#gD<+>wwTTBbloK!i{)wVqK4-NJz9>oWH?4wZ^@a2i_&&9 z#_tRH$Z)fJ_FFup=GEh#ZU7_AUZUk)N%WBP|khyT4$!)zTc zc9UNU%LXGQ*o4d6gqbNOi7W3%WUwD|KnL(&nGceF_J)?`W%La<+;R?3{o02h)7ogN@( zq~t#qZD%XFstOXQpP~{RsDBs|UJlffNwCgqr~uTvw@aYDl%5z+v!}{H9gNiTW501W@Sc)?i-gT;}&4~p|D)5DQ@*smmt*LiplfA=p`w7zWlW}TlowVD-I zMntBD2nRrPg(1RY#OrzcqxeV;5wgLE4HFKOgJHCNLy8l2aW%D;IaHW2qx~BduOzC? z)7}EPdT3s&bR|)3zN2^bc2rBjl|-UJX0Y>`EGfR~+zU`_`z8dutFv9BIg1CwnO!wn zEq8f#q17{H+d3j&U!QHP>dx%4iFt60V8ujt#Vd)Da!}@#KPBWZhfC{lCDFg5Ccpru zyAxLueIe0!e9)zyb5njL(dSWD5g04O>wxx7$!#$I0p*l^zJpy!#H_>CaNM7H#@>$) z&KZp;ap)AbZt>ydXEJEAUx;JEV+$Rq6s>5Wu3#?(-YOMGfI#6bSnH*75nLx#Bp*QK zi25pUB1G^BdgS&!8Ppanqt&dpEYDYNrxrWiCWA5dbLy8FTy8B&I(j>HuXXL`$ute$ z=!Tml)TD@q9|$s}n#VOQ5f#|qr`&t(@6pFTTW~{t6B4rEHdj-GDuA_Jbe%SXOSt5a zZ$mKEf;nSStBzD0g{ssL4N8QmWDHVvPH|Zd#>5om-fP$J!L(|VHlx@*C9C5`Gdwa< zbjOBZrzF;BcTC;0Je6E#$=Oytov6B4)>m;dU(CqN&#Kxi-`;i!-E_XvX;}@+#}2d! zd}TY=%x|;2K6cI+e&0TbiUZ2)b&Q6!Xf^te1d})wwe2>0Eu+u<9N>lDtJXKqa3fX( zxA936{sfKVB099 zW6m!%V;>>ej%RH%6^ zwJTmFZ9EyYO3E9rGE&psB$-?!PC9j3cXN+W6NqAmC|ndX(NKuqNlLMWHKaxmMMn;#v;sg|#NT=Q3_g+o9cc(d>0DJK;^-Zs6cy+^O0{NA3@Tx^a+#vg zNhKvx%2iQU_K-CTD34GHK8bTSB&0CfVn8X01}nUV3PAZTw8w$+-SotOl08)h%8-=G z?*ylrMn#t+=Hum%mjq@9Q;%Gg;cdn;0rG;Vlrg_4nBT~7QD6^ndWCHr%9-W+n6=?Sx))i0ya;FFZC;wG}4 zEpK8luk;2+&cI$N>QwtKB5j?$Qv5I#X$Bb~SwvUL8yy9m6}-`Vh`sanZ{j2AjY30V zUT9Bj_$qBKTB#xB1dzU&>MRS$imt~LmRgi0GTz@7tz{2%vqH9;s00t$9t%m$*9`(l zn%k0W!JqIND)^JnqCM_UK1WZ?pRlLO{v?N#B;R1byjgX-ak~+-a$-$G?66ioDfh=A z;ZKKzv!_agZY}a_!8V!Fvar(aM6gvHVe0jRUAS?x=UXjrZV_+!aRzD=W6(F~Slko6 zLJ!8>p5N*D{S)Sn6Tu|k?Bcs!)HI2CWdn=D+Z}wlgg1ya6V7RTt%@+tw%+uSGKED5R;S)@+ih^>p}xI5 z#b_BUg)cs9v~(5T%~`k$HmI3;%jXwq^^cDQyNneJBJ*{>=S8XF zz^N0#l)xKW4PoeQv@i+THw@wkZ|SEj2Lh@aPQz`|*|5Q6&tE)r!y(VYGqy~sKi1i? z6m=7ui(0rN1APwO8h$_6!Nsi9GRA6w!Xfb^NgdDVHQoA3 zoAhZX)>F8iQCCYcEou1mvzBLZ{oGM+TAsepB1Qz26VfhVW81)thr@iCk)hJcd?PEo>HRfua?!*8z55I(?)mBGW2CV9<>GY!a6p!-|@| z*+0HD*aw|#*F*CR8K`?5(vWk(PHz<}|5oazwPd#NANsq6u1xL++t?X6b#VyJBRCr; zIuobfavQo3?Y@SI6;TazJhwMUnTZg&Pxm@#VhYsxmJj)J95@H%1iPqa z!d}m4Epkjd7i>11vwe8o0JFseC$L|rBF>t&U>ts(FXUm0vkOE)wS0gp>S$t353oDf z9ZRJpVk{Z8ErwrklEtFcWa$%>$e-=MAg}jj{PBWGN@hnV?{ZSJ&b^QTQacG#99n-=EU zv~bs^SE4q(GPP;$oz2bLGy!4L1cgn5Kbr=Jyk_}fw*tBvZjXSeA6$ZU zu`R9-aGDdZ7U}PW{NL7pJ!bZHXWv6tqSa@{mSCNC<=kf?t4ygb)w>1D<%`7w`*s;yYD+o3=gKL_$KslI`wO zr%s)Fopbt!^FRCbGY$14*W!@7{>iT8IDX);IF(CIU?*edi}b^E``z@Nv@M&F^)L>S z$Y!Z*0K?|4=S0j;@29dw=)(2l-E9A2%xvKXezBd;^98SXX!!Gx8$-VMCA4p0lknOuDDK2GB4Vm6~_SLdEU3i z`f15Y!t$kW*+&r@5KbZ&g*Bw5l&|qkzQUj8SNN7Z?v8!YwY%SpSrm7_o`l`63BjVV zC0si;UWLmP^J8p85tq3qA#_c{DNkKb()9J-5KC2kukgSB8x`I5F+?Wp#)(RO`f95{)` zjGXhFz3o)qs>3qN*XX2t;XtHT!avJ973IDA$(5I%+s!>LJnfM}A(}rlg26dvFJtT( zcnQ=vhq$rNX|au!7Oj}E3*(Cxh_y*RWeb1a1sgQp*}lx+D1sK1^C!vBOV_h*zbuPHSmO(0wmjGl{tspxa> z;~J>2kM@OvaFuAYAX;Fr=AL8LEjmZYxdHV{X|M6+_L4JxYE_LxRycwchDz>@;=mwe zktKqt%HhnN{6svJ$Nga1al!fHzMmb}lnbt}@@z%5bL954PaJL01DS@q~G7 zc?p|5RbG#iFbpDL#z>Rmdr3ga{ETFOUo*odyt=9&e#q|=A_JlYB@Og-h^Shx$7W_X zufSNHz{sVlK}+%eaJhK=p9CwL*{y2r~**UUg9U}YFg6!<=y_|J=EcyN0 z6vDrlAp8*qz>gF$Fah{rjWhZ3PiTF!qmX{ z_Y~qE%Mv*Au`MwjQ9d7#0uCaN!Cp|BLGe9F{iNL-Xj`Q48K4tTDU@&mbmC)5F{eDM=h zR&=S2o}6hkO4;D8La1k;o}iXR*$Cz`2?qcXtEb+B!(MoL z*i&jc>>WP9%He|t%RS|Yby`?7I;g9t9T;I09J>y4=y`H;o0tYpY=|gfhTzPnKa+yevK5A&%i!p$6}u_F z^WU>jc~Ok+k}IlqM@K^?tv%6zp&Hsyjb4Kc)p($jG+Zxaz5~^oCkV=lZ^<=m(tCQe zBiqoFi=K;e&GIU^qXRmen#P-G-O%+FnSS(EjjeiVJExA7v*9V#t*0FwbQ4iZ@%|=} z*&N-&zj}FGEhLJ}GP(s!w9}Ml#+K`+qx%F{1c1D_h;Dfm5OxBC*)DRXLLgtmV-wp%{u_iOUtj%;cGt-yoRVU)6Tpqa0bMy^bR?OKAh^dNN zu6Vv)p@B=bv))83znM2U*;wVKtb$4zKFHYMTNm|!RVODI-Y4wM(N9WI5EmsE{lGar z$K~h_u#1ZG`h)|~1VNN7ZYzs%6RmpS4=bc(t+LLdz6LGD`u)ce>vvkL-{2oPyqq=K zm0UvLYKj}}1CR@p*{C7cbKcoF)QYuo==BQBM%=Q%hJw}*pj(+tK64I%^ z1Wx9S(`s8neWX#}dkm^S(x`cSBC{f7F&&xC_7~JHU0YqUr9JvPkf^NF^PPH8m|qzR zYY~N`Hc(@hHc_QkefI+tDKy-}<>3eUV=D)DXpnb`#g%L^f8PK`R`A6I(wZOSupEyl z(Rncw0@t*z>%XkRfCilBl~RuTI@#E*qsy)iY99i1vQe$7k;$*i9eMS8$sEqg=aaA` zUq%IcMTaBb(UZ>0L#7z}@*Vkvh%7($FnkSs6ZO^*(<(joofm;XVX@zk%Q+6}sQpGl z=gr8LokTQLHj5GRN)FMZWDLr*mM~r4K*g%ZCcwNq3lgPu{Dpme8gr-#-Jg+S$uML7g_?UuJ z7WZf5DoySEWNe$qd8?xE>fn150 zn!G5(ru(yUnOm6BWUupbgPpk0n!s!{E}`?P%Eoc6th%Ob&#W;ZO{m{yBouN^%k`ln zllkZr$pd9G5rfVbJF2&OdUDZJ)wzi>-|<)kjT5VAyX2bIbcM>iqLRw3+DeVY=q`m_ zOVcfR$ag9ZU zU(L|Wf$Kpyg#Ar=!XcOyt5{?{QFCDOtN0EDQ|VW@=!TjwcxaO0h@Lw}t^C#X=VdEo zp-BZaqS96hLpKq^-@!Wthx`;5B8+?8F2M0_cq(|{@8TO&HVf7J3j^OG3lH7t% zj?E%G3js_$KR=V}@u@GY6O+3`?%@~yJLgdyBv;gM)6Axuk1$Lrhn@I_fc8?Wb_*#N z{J`)!-k@crLSP>yA+7`Znx{U|WqIHX-V@l=?v{z+8l{Rj>DTbwF*&b?rd~xOeMUQ? z3C6h39E9*GSl|r9m@|BJ0M?Po&;fZSK0H#Q1%Hp^M)v6t&guafYCg>yIMuHOjjXJGt1=k!>h#e%9AX0hN4m=N< zhE8#fEWVn-KZG9MOW#5`V6cL~f?8uZfIhIuBopAP1z6ees_WZc;*ie_DejjYN_JUZ J(5=tze*i+lOXTLMBOfODV&$fEJb!F_!4iGkdXR_cmRZigainQX9T}dUW!9lJ4B&V^N!K+Q7+8f!_(?gVcbCn_kNj$Nf5=M)f z628c9<8%BhALA=>XQSyk5{i#??cQF^S)WlDC880pig4AYT}q5GhTFBcQ@HArM$Nn}YFjo39p-Sk~O z3Rrm&hY4p~@yn&{tIyo~>@ydh&HpDfUA>r2KK*W=aP7jy+NF{jT*i?@v~oE!QW(T~ zsX37+OK&x#R}?wYKI6LD!+uM9Skbkw z*@A1q9%EV~^bN~2BB3=HOq6LMGfd%!njL9j?0GO&ttR#Yrg`joF?3C{J)zZLn?`$3 zOI1r36lt+%3r#IY!@{zs)q6Lq?WnbOVY6znM%-GvxLLKmroVRIX7#!e(yVJA-K?@O z^ux9LH>+l7i}Tq!OwP<*y_xA;P0Lr&Pd6b8l9pDztTlY!)vDU69}sF8?s?5_YC-5< zvn^)Pb8qKWS~PefO@uMi1ZN)o>D?$b8$saO%*x?xqW^d@wS?J-R_Mn;$!rR|oPs{z zpgK>Z%XQllJlUEh4Q@k&9T3uuz!(Sm<9rKv#fI z$TP6Z3@Jz}Gy-1gC?Bi^do{n|)OH4Ht#+v&lhz0FUEWFMUXgPF^DO9$-T{7>X5!z= z{LGYV1Evl4VB4}hGjQ;v0IoNO0~df+O(~BDdx@M3_Nv%c!pgWz()}Th=MA{0;pZ`l zg~LN6a%H58NZ_W4v2EC1!hbBM@J7a&$T6B&p1?cnKqpOGBrmFFGN)u;&OqcT;tz7R zavIIbMJ9DMg)rc)MI!G$+EFMNeH{++eSy!dV~}q$O1^XmukaQAD>xHkewmK+unsSQ z@jEc8@AethtNHuY*8#p)-Zg}+r5-^k1aw2EgGL-DBK1_;*@hWyr>C}E+ulLT_Rda@ zh6B+0e-M*b`LcZC-8-QYNW4=935t_!PerA9e9b51=?V_4k{(#4R-pr{WDxfKT&3h9 zVWYCd8Zl(;Kg!$r9~Gi4Bd|qGTwv6n%G3Aa%qo8?g(ui}HMQ}90QLJ(_JFuA1t|WL z9tiqd34$il!FxeyzXU@3XZ+{<7j^#2boFGEzzjIT)F^+~zW}*1%mS(k^o)L-{Vgo^ z9a!x0)frgk|4ktePYONhQByY5ALV%YWOg*axdFT!J?e`%qUZY$y8j%%1tx?u!$*?i z6f-4Am7qf$+^l~{d8QOLBl7fGX>4{tXH4|g`+JucBxgEp7g%giW;`8)47uMmraazL z=$oa69HOEOX6;>C<48=BtD*`Ddf7HisWn!H{d87T}7 znG&O%Cf1#YU?wksINdfn77GwhKJ;(=$nlozHxLR;nTCp(@i>e7fg;0%+?`LNGr!HL z;om6vIroFX`51Ab(*vqgztldJu; z^HY+!3Mib{=<#TQzVnJ2et4`ePY<%S{K9K+V*y#e&Q`)#jsjWO#(R)R4HNX+H!QW` zewq#i9^ZL6mF^7~=lx~l?4sFVEA2KPG}ph=W_r!FOInt5Q0;E#lHLAun-}+Ila5Nu6@65Lj=j)HYop`{}I%^;fing7n2XL1? zT2H{pOEGpPAB5S?$1z5)r*|$NAPr4#oCm>+VwF5MI)*0CCqH~BPhn-u*-A&QJ30>V zg{1E6sQ=8Vqd^7N&ZBs$J6}+Lzo^)u`gt_{7}!Uhd5>`VqUl0D#o4X$OGR<5>SpCP zmRFC8wr*v}$SX=@kh92e#!@9#l^E2fMnPIulH+Ugv; z0ynW+6*-&p;0ArG64QLg=DhR5=WHakQ z!hY3oV+68!+9fCbSOl?1>U7$S~xrU^NrDl3?7 zA*-l>1I3*-C^Hbe$!I&cBwnyRNJnR$>C+uLu9#!dtUgeUY&@UsZPZmoM#q(>7equ`OsRlIu>wC*=aA@OnX# z$89LqycM?ty{mi>tRmndj)kZx(SVDJqSTs>zaRw>i!EQrO#---b8_8BVl^X>NYz~`=kiRJl!=UpSo8G-3Sf(dTg8K?(h0LSTEFAd> zOBMC2}r8WnSn{$FS=Ng1SY$r>`h}qNE5iYV9ki8DTv*_|)DYWhFxN-bIyfUwtv5 zK7+_`U?1A!n^fW~fZ-HD1v2kGKD$lI>!K{HtdTx$*rl3HyTL4&@E(@H8EP~8s9b?- zS7)dOxjH`XAc$4VKAC-<0cCZYDWL7kG3H&Pk0j)D3Ma5%s3N{Huwfhmm1U~)@KbrsK={{nYd!~nNCZAP}bgE~3_>54HlRDEsR@MS14Hz{2m_QEoMO?eO&=%+gyzkVN zjQ%Rl^7-U3m^A9W00(?t6G4g73A5lrCO-J!g(uMm@Ig=?eee?F_n%YO?w-ry13Sr7 zSDovBzW;Lm^Z)1a$g@u`9+7`y%I|Q~*{&LmhT}GvABpjXTMygJ38H7Bg~y{yQALzI zW6O6#ug)TI1TE^^v>P6Cq6Z@}NzDV(_N#IKF`v}~({%M2h~=jsa?e zh|h?Uo-U6MiP3mf8)Dct9TshbHA9p^hiBHp0BF$ahs=ggD;=xbhVP>g?<0=UR&V2t zu#n$#u~V}a44s)$eVlYD~Tz=!yp2v*uouu@;S-)Ek`av|)je3;hVHUhKm zYaj63PR-rUm#riSt$=iYMK{90^}}}C@OILw{lKewK9+vt`e0b&N5qKfG}v~I1ByBP z9at(q1(a{X|IPTH$NvH?8_0R4Tx;#M||@+X!vur@Ee^2{VL-W+UR~#3ZZq0&~j|vcpQAKGaW)jAy`VUf-M(|NF-VAM9*~N3BtOssg zhkXwGh(E{AeIbI0rlPn3VSbj+DXc-``-qKF7$&4J)LkdY?^XHDri5XQmS=Q$4tw#o z_Zu+ctJ*4LQPQ;fP_WZs52d<07B|T0-ivwRf!UboFsA_#*0%wBe(>qOqhjY8vrQOz z!_GD4KZpf)nC8#T_M`l4MNO}WVL7E3?Cg-z?kp=<3ydJleh93-kKJrG8_BK-h!LAr7^Nsj~pbdEs0~Wq44_xy=J@h&787|$Jf@@Vy>OvIZK{k zrJb<!3-QIvLs>TGB=G?~Zxm==_4Lt@YM6%w{vLH8j)LYUR5P+lL!T zPVns2K#5{Gl;ZDxmx&Q$F@i;hB-uXynkW(!>kTMY38uV+%`2>VX5O(AW6&+`!tst5 zoqlK1_TR%x+kbM?E@9d!xr0mxMlG}rPp`W++%T3W;GivfShg3_pZ@rxr!PHv+oj}} zHdAY2;K-3|M)CYx?Lk#_y>8gHuCJb6J(D{=tl?My$6Czh9GF}+HuBt;4z!9#x6@_( zwLQ07zL&x2b|C4rZ_N7|Gy}}j;8MCa4u`Izxn6^LRmDv@26l}V!wpdgTAmwra+;^A z==7FB4~Om7K9E_z7#)5`GeEeh|ZRBYm=GBoH?e)ZE5S58bF4 z^4zVSa(Ni0lU1KC*$#6%xf9q9Rv!Y)+L<1=s*kr^Mawni%<%6ei?i;fb(8scskdlW z453fve^?)*#`3VLT*0CfQQ<#T-p44s571V00?D?+_pt7h2p48~B3E+34a#(PryGw4!Rjrofa#$ZZ07L>CE{f$7!=#sDou^mn zBJYhoiSIhKJ86AT&R~5AKZ#((ijWCm<;t{sRvf-VYRs+A#dPzzelnMroMh40QxCQ1 z%W>!Z{N0{K=MFesArESLHw}5xI*Xr!M!i!tRW@bsQN=KsuLxln41bI2b5oz;#fhBJ z)oj;kDP!4vz_(7RG3NS=k;g0EdaaYPxpHG6GYUQmt5mxGgV2oc90!;hm`;5pwY0DWo1L7FE+rgncC(V9kA_-6mg&oioY zB>^b;%;tON{_~BZx@W!^BQ@U@VzhsAaeX_q15>A*0>!qJAmbB~yi0=d3KmyTMC%V! zBEyONa)SLqE@?i(a+oloIJu8qigF$qNaP3z<_tx5OwjtdOwN}X|6kq z^N{8<8&Me_=ay#Z$fQ+#LYWnNH^_wU6Z;BXeh(%<$x-`7%w>@IK-~EN?}C3bx1@9g zY}-W%ti&$4I(QXbaxogm_N)$}J_eUshWD(8=~KqL^WToUtWrb>^f_+wI++w>Gp9q# zu9%1`lkXX{h@-K7+Gxsgld_~8jYRYLEC>(|lM2DtGln z{r!>8zvcc29okf4Y#&$Tx<2|N(NX3+=XS_LU>t4fIuJg)ub@}>e$K|zX6Oe3u?p-?4FuE;uy+5X&$U@>39ko_&D zWR^6Rdo!C15ZTFuS{Rk5V#dHT+1pMY{wNnq&SK%P`0C~7_X!4Nmh>kvEr&n-eVKZw z)8CKNh3tFem6kMFG@wu;T#+TULQG}-o*ozJ@iINO(zk8A?OHqX`G|ZzDxaT`&r9<8 z7(Iy_d5gCPDcw5=wgQ#^N?^()P9^AMQYcQe6}DtW_^X&(5&jyzNy6pZn<9Lomx}CK z#&VMJ#a@DpMVcDH{$#*gjSt*e`!rEl?c07{-9;eW$^clwJou8h zHt-C`w`Dd)?|5zt(Mff|VnHhw?)peMrCsUIRI93lBc8CiUiN7yK-7o+u(FUK|5TzD#;zI~N8V02wjCLp5 z5J%O7P=%M7?Kvs9oQ)5RU)D=-^k!ebrR3v`=ZWWa7vl(}K2 zpCfPqw@pBXYZalNG#U{j4ORD=*&Sboty+w z3WMhI?aML)eM7NQXP)PJIyan#%{;(Oq#`*jrWDM%QAXq_k(leM=^DbC9fGl)RO4ne zB)xAaR&;e1)3gQ%n$H1|jWtE$m~A+%&}cCrPIm(aad%2w<(J3Ddm8?s^kc{s@-a$KQhPaLgLC0TRSwXR1?d%{E;Z$+KY$XyWsHG$TE%ku4 z!JYu@7)SZ?&F_8>@SOCT^{(NmBpd#gWO!(*K_a_}yoSkwrkn%XzrusIjmb&~+d+$D z?qOWaK_=UJs-Ecr;_E-VV%pzv0%Kd}W{cbShx`sx@GlY*KCXHN`okgg+6PeA$Zz$j zBTZ?<(9YF4j+#hcdP?7bvV;)5H<3}?8fRqzmf{}tV1EL^WflMbs%y7r|)FN9@Zjb?tZG}3rSN{iwV6n0Q diff --git a/docs/_build/doctrees/_autosummary/engforge.patterns.Singleton.doctree b/docs/_build/doctrees/_autosummary/engforge.patterns.Singleton.doctree deleted file mode 100644 index 1bde5394e1292035dd6be5ed38565c8f84b2d3d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12777 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.patterns.chunks.doctree b/docs/_build/doctrees/_autosummary/engforge.patterns.chunks.doctree deleted file mode 100644 index 5f44e41c9a71025e5f35bb3611d5ce0ed0ecd36b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4512 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 D2&X0? diff --git a/docs/_build/doctrees/_autosummary/engforge.patterns.flat2gen.doctree b/docs/_build/doctrees/_autosummary/engforge.patterns.flat2gen.doctree deleted file mode 100644 index 30c6658b33bd0b124524500426c438570f8a1d06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4081 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.patterns.inst_vectorize.doctree b/docs/_build/doctrees/_autosummary/engforge.patterns.inst_vectorize.doctree deleted file mode 100644 index 7988a83a6a88ecd550de3a3a6709362abb155bde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10566 zcmd5?U5q4E6`t9d?&+T2orN92-GK&#?OAqugb-uKWlzs;RE3 zt)JZ)U=?C^*$G#DpiF#FA9 T{YTpz?qZqDCb_zuqA=u2EG4gcD&!1f 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 OA2g2(&jq1-8vPezw(x5J diff --git a/docs/_build/doctrees/_autosummary/engforge.problem_context.IllegalArgument.doctree b/docs/_build/doctrees/_autosummary/engforge.problem_context.IllegalArgument.doctree deleted file mode 100644 index b9cd9ebf4bda9f9d15b156365d127d76a2100715..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4487 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 CoM;FD diff --git a/docs/_build/doctrees/_autosummary/engforge.problem_context.Problem.doctree b/docs/_build/doctrees/_autosummary/engforge.problem_context.Problem.doctree deleted file mode 100644 index 74aaa001b79531d94f3c7d46757a2edef13bfbfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239669 zcmeEv3A|iIl{bN`FNB0d0vG}p0_Fvh7uhu=2m&ggfCdy)rs>!3=5=@abw7GZ@?;Pg z2L)+FCcYBZgjvKG!fw@_--+u^?U#3ht4kHR3k z@KQ(w(O!}LdPHuVrddM?CX1!r&2Sgy>2#O0i_`eie0gPg zUHQQB5#$|gCXX@>(rLC8>!e(ph&d%)Ci`(t6Ia6#`O0D4BW@C1;u}@FiDs;0I zn%>%4D0bS7R%d3W*qoC;3AM#lFwty5w~xGV|ITE2zwV++eJb3i>77hcJ_@>7J{r`! z0sem+{C^|-e-m~YwAQS!j*f$}D)nhFTlWNRl3<)^B&gH_(ZqN=HqCbve^ZuSd{KM8 z*eRb--lFt$QTa%)1~hshjK@+>o5$gogYcI^s{%@Hcbbv$bS`h=cx$fJ4rew8yZ08R zDy8<0iyHNCb8vY*+{+(J?R|w^#Y(M!Nlz-)TJZDn$2Vr%txasmVMQxhMa6o((FQ9; z26gwO=WO4A<8)iFk!fS&nVW;{qG5&BY_Sw>3uKmH;c|J^`?-$Y- zk$smvq=GapbQc7Kh_(2nO1Mlfp%}4jcfsEIqHbQ)_)e^~GZ{v5>Y2LB_RZ9`v3>yN zXPY4m+dbht%AOCh=kZbfg6yMOjGe6<`f?1<&TYdH4dGot%ezrCGfFe%8o-ZQwVJgG zxCl4_5MQeRHnrxRkz=gNp-Ll0)}fcbn98SNvtM_G9HenQMKZ1h+%pVmgY4F1Ep->v zdk5JqppF*-wI&WSp|=|$;|*ZJ7m~{Xn;obFm-n(Oe_g_V6;P0WD~rA)R_m;#=}D7Dp3vn zp=x@-QWIEqSFuxT7xoluoiJK!cTKA^JKJcs3oURU?W;QtbaOZ3p#3N{CYcJ7t+Y%M zYLAH);!m;{><`t8ZzlI5!8qRl3hpJ0ZEEydp7V{BvlRaMNZ}4$ zL!DW4y}H+9^(g&7J&#a+G*KF%x)y>!OP`D&sjdbg4^vc+wHI!*hA3PaWD#@Bq9gn- z)q|7lm87u>uRDuj7E{>3jiCnV{>L9LT8@vZ*%#WIZPv|`N%4vU7hs#R`ReXsc!DTozPlw= z;Ee%NwS(H1y`!j3)7JJP2HY^gfVg75JBHCkW3meKruj%v(OpdKo$nqdLZx_^4GpGH zvb?yvbXTWVV=f(9KUQcrN~m@iBGs2*bFO~jJWPTxmFGd~Kc~E&bPugP3%P)~zyp~J zWb-g>9;i>`mZ3qXo5k6(?i|ZcEW$KtTd)lRIM%FfS3N(eEERIy#$ zg+bHAx#H<*m3@`^RUB#%$?+OBaJ@1%@*#{ra5k(@K`dF=2R79kd}8XB65f_|m((f{ z$rWo_Y1KDl%{W zz7hVh1y^ziSN|Mx!ZaQS^h~i*pRc|b6P7?idu|p0#s^V%Ii!U9W^0vF1whI&>@7Cy z@VE?2%10v`PS`xMF=9nW*|9zrXDE3+c4K{aXl4+gQXD)0fwkTJH*1qCmaKcq>Kh=R zj2b44qsTsZt8djxsD2(bK_lm&=up=N&lfQhTS_28i4C6Week>Q(D^Ln%{X-a1*=Ih zbgB=402?#a2jQuFb@k&|f?D`VQj|7Es-Hwjm`+I(X>1x>yFh^4joH`hQg>krGMU^$e|kkNm@E%!=)FW zd-1j)+*fG_G%E~RIhgq3B8gE0ydA=9HkT?IJ8$%3Ng# zZ5psP7c|3Cqd67q4#Qbo!5D9~f;}+0n#Fpn0t;)b2wG$Urg`KmR?1wHLz#;#%Djs! zv(yZ6Ocd)}gF(9ylp3>h3~78E73)($vx7Nswv8huXw-vBdozelMKoWWovqEGLJ_Ae zSdj~ZUCqV}`x6J-41jowm*1e&W@WlkFV^^&6?h)j<|)G*ox?CoB8GvL^RZo(ur@`J zw_0Z4kuxmHv!AsI{zMLvqWO;8Gl7Z21ev>|_Yk7s5tI zI7Lo@twQqJ>2TL>Se4Q(eNYg+;&ovFJW1$m%=~7<T64AtY?)&Fi#T!(kxb5jOW8<6MST4S5R+o z$bgZ6li8MDP-z9lJ+SA3ZgX?c0TI|j!tKLKdoF;r@p5CT6~H`rA~=^;GEssp0dd$x z%^O|V;$Vv=DlNV%W*@t1xVisNqPg*xn7L;jS%s*s#oOXFK;F{#0rE?}D34>~Y>0m5 z_F@zSi!W?HIlyf=7!0s`$te}q5L)1{F{o-aY5-{A?aB2w!v>6IU3YlY>M1i=E%646gwc1=l@zjKNxzoatTmycG zs%LQ|*lz%I;eKj_Oyhh}gnAuDOgulc_MRIP03W>-Yn2vT0=NK!3X*zjbFjD4E;F}{8DY)?U4=iP3(%5E z6Fddf368zQ(2M;3ys+7r2+rRX6gA}H4+3uGu+9qX(Lvvv5?FNDcT) zlo~GoEv!{siXHpoko?~{B-LPxj}9-g{7qW2w3m7jj?i`03q49bpR(dK(YBF_OKhi5 z))PHS-AY--@{m|wip*0k{~o|{1N<-8N%6|gutuldf{SUfYit{CjLZNt&rCL8Cj=4J zl9`b9*bfo1-+25+U<#HA8F$l!C?tRbPH-khl|;`xdV(Jt!2BwAqh6a!&Q2BR`Qgl8 z0k)mC>2W-yvDF&38&%oEV=Cwa>u;plmo_`0s=QU(1E&s}rY@r_^9>R478OAsDhUZ&pNM$)aYBCFk!|8B=i)!q`12XwHEE~8B zK1Slb#5&+t&Ad~gT}1t^39$oiY_bgJ)U*a0=WEhXEWnVx*XLrDKC9$Pzh_+B8@Efcf&{U#Q2PfaC z_co5Z=F5LH2+V)$`d1wPt?TdpUx<5q&;N*hSVj3G_GwM&e-QgBINF{n66YI_e7|W; zd?kKyvoqPO=!crSOP)r{UScL7|5iX4z*DixbkqF5B66xLXt4N}?iEtbz73fTEZeQXTo>QgYe zXJyg~Fa3gx@nX6R8>jgG28e=^CSl8^T%ZjU=s~em=F)sm1<#qln;9isFu-j-wiHO^ z^BiK?5F3SV-Pjb|j@DWt>LY>rRDt3O)*mdR-5`z01YE07Hr-XJ!KxmMJ;%l<{K36Q zi0NS8fwp>~-OwOdv4r(Q1W{+E4u6l0!TGWRD7slJ?B2^-43DKYb%;gnu#Pa>X{*J? z-EgjE8gil_bRKqv3$S21Hr5Q`jRx2PMe9*IE~E;3vMeY9?Vv-xP=qeR)-0gWWPWNb z=7(chWmXw082-Y&6Jgf^1b(mxj|pRAmHMs*{mWLUY6YAfkB#wdacY=Yh!GQK7K+m* z4X*Q4W?I0J_u+ za2pTMh5N-^OGTE3-Q|Z3*kUp^2Q;;rwjp3i7`BXeH9DFcTVI1s3JeC(xHyI}w55Fv ztOGVLN+FxmL8J%;(i)nm7i-`RrDY;e5bj3-8z?Nn6AOcJsYs+^MMb_PL`Mr~EP;HZ zg|jgL3yHBt(5XN^4=V28SKnm>e6sj2*z>LkH+*>m)Q>@JdkJg^TCR zQfw|4lwtL5GK8fyxwFX&q=Ot1y!0m(D*%Q}X0EpxW~i2r1soHc6>wCu@j)%7u@(Ip z%%&+DUrzxp@KQC)TfhSzSPe5j+EY95f$3;FWDFR>O<+(Mki|VAm%>L9;A@54zDOI; zs&ZJ`J==gG&;BOW#S&8?7z;&Iu~y*eeem4?4%QfU6h)#1J3)t2Cd2k#v@Wy^dH`#% zoEi{5Fy*a45^x8bKoh1(9qZz1#R$DW0IjwWzDmo8!WV z7H$RGT_;K>3{q#(A>qhL&FX7WHE_-{diqkN!lv39LrK~Z%r~NZ;*o)I?Fi;#IK2xU ziXP}jo$|B0uVdCpUe>pq-F+vBY6mb6z-po=cW=^8?j{_+JSB@xwG)}c5#O@|p|5tR z61C3fW%r}~_%Tv^WCuc%jld)^A55oMCDnW2pD3Cl1DQiSX$~b@vab4RR$hv#?aSx$ z)XLkbm3Q{Ea@^JO?lTkwd!{x%2<#Cu0`R}Eojm{)sQ|#$?2un%Vx{5lrzqYR{Nbuz z#skp51JT_0JK2rD9*qts{QlFSNjd1(S640s^AY^M&n;=Qfd;>SW0g1u@nK0*aIw0Q zoIx$O9EGh+9AxoxVZB&5Pxz}GDdEBB6hroTSO{w%fXym zR5=>8JlSgXG_L(zD9NULi)(*6h~}o2lYFT~(*r_{zm78$3wO-1pXE@b#w;bY9x=-f zeDrth+gK$|W;ry%ENZ<@5KH3kidR~^VPb39;r#JklJ!HxE3;YjI%r;bisY5ZvZ)8B zMDiQ?WzMK|}3K1vS1Q;e#@s)d;ZfpoV(@CQ<=l zOU2fQhOO^&vzS>l4YvNxp<#=k{wav&#?~e`wz&3&Gw}bGLw_2q7A=yndWhT4#%fHG z#`f1)CH;fdYG_HSss|0L$4OYRy*&?1v3y2AorG%c0hCAuKrLdj8k$Z=iNv{18Z@2a zP^<+_XM<>NG(EJa?2O7+dbSOQh{4m#Siaj{PI<+$i{!y{XqQ%st5oMG8 zdGl>!n%ROP6w>IR*+d2Vbc)Wsv(54ud1D+q*uxtl6@z^ytC7VPt3}h0#qm&*O|cfT zI2}ZDlZ89jr@jwm6!I8{@-&7xA1y`l|b86senxER8JIqI1{jV35j)q{qT3ig?) z`T0-}r>ti;0&5Ryx(8Sy6@z`f2n}D?a1)ssGY!7>IkauT*Nq^W8(;2VKca%6gjw66 zLk(sxN5c`!uEs}ynAKS&E|_&sNO6E#_~%qI%5A@ycfdRdhkg?9hAjFYG}ov}K>TdG z58uR&!y7s06WHw@&Jn3N35eIM@y=(gCQrjV{|F^z^y^;*(cHY_o&@x$VJNxhL5ChS z?)d>4kGSWf_~_3)A7Yg_xo1bNw=V=6bc2_w5SvC};7w@b30#4*N!tH~o>mIm? zRDj!xNSzwkKFY0RCf77z`;bH7mUWHKfM{;8xsS6&bug3;{U01k)S&iFv>ZY0@9@zd zYJbZr=^xbo%cs!Xpt^(MG4*p!43ZU@2r0ljb&snWZtQZ&G=LD{~<&#R!M zjNWZMh~@^Ir+3q|FqDux(4j^Ra$C`M1i5AS=nuKYtdjmgZo5yT3362RpdqKGsoG5o z9&pog8=>}G)N_w#6R9{&)k@G{R^;}{@7Mmsp=yg?+YO?*VdkEu>KYhIh&|h(LJeZq zqTL8$&%#H4h+WDmaY3y6=;X^k#PrmbMNLa@<;^pXu%VxpzBr3^2hAcE$Z2Wx8WtZS ziQL;_56s=XGll!d3P7@~o6_k|GYkvSlbJL0ZK3e>9W8$M-6EP(W zC8NBqznyf2P`8inTa(G*7k#vGGc87h~~zcdrBJB!B9f&w?3nmz0g=a3N1%a z`xTnsA8J2mmAIhR9cTA&d0f6FT)Dr1a_n2J<8SC4`)1yJ+rVe^NK8YTA2ib_$BrXj zU5e&OHA=w9HP65<_i&9!MaLekRU?~cS&f~BY%Yb8Y&y5h6N(_3n{3>UJ*I@AWSdJI zTGSkS3r$CC^E7<)XPXOHB~G?ETE7y`cwwKQ8IPQbUtYi)YxZwL&o9?!(e)$CFL0S0 zzd_NHUzC86U*3dW?%@}aD)>beqVdbytj12mFMkOoW#pIpK=cvf7flI6$uDnkXi?*r z2heoHFZbf3Kfk=1RpR8ABXxf1z1>rgiz}OAmM`;WjwrKyF^iT5%`EEGcyyn5*QzI{ zU{)iW{2II2!zLmX*kq}wN#l_}SWTOTM}7+>W#o}%V}0Ne_p9-;`$NefzjWwNV~};A zFU}x8Dxd+ZLn-N@p zftu|Bmq-P0EkscbQTK9Fm>Dz;qF(LLss&MR1JT@wI?j1Mjdgt}VRVl}cN&b|j|L+c zy&NC?VKmPw=^u5mh~C7^xiqeu+PQ6Tk~k+BXD@!1@o=bq}yaDgbLmq)rWC z4|6N!N7#Ql6mCJ-uRt_6!rVImQ5_5=)V}9Xq6W3)%O%vl%Z+FY8JHxE_iwRETu|$t zneSs2B0$btjEbk%VUI^Qo<58>Kb4gR%}Qr!&Ygc+#GjGcp^=Tw#E$l`kw^tLTE>ys z4mBn^$7F(6U3Am3N zS3b~cO&cNgcPNQqQ{)B#Yw2Bn9%9r8oz>kgG#p!9tZ%?+hvoxTctK9mspibHi8 zgnoneA_#p6AN?Wpc~(jPAhh&Adu+lQO%S502Mr-LEscCQ&I3%5{6<)fLuY$oB~o!( z8Yx2q*cOyb4E56lgU34*ZUNZoAetLs?rCXM2SW+9$2gRzLG66B96@aZKKer~V3oL_ z)_wa(ebG?Nf=8^?YSMiLH=^0q4gC?CXJ#3LgXUay5l;Mbmp-%``$DFXdH)o<-4oD= zRAAm!@tQUAy}@eoH01kyC@JGi{1y<+O}_4naC+1*l>GZVhaNTleH9vy_;)Wp`txs_ zRpR8|&G11=?+>yH`b#II*yruM3nR)tZ_Q$XL9@?xIcee_%k?20`mC;zYd(ve?BN=b z3S6^<*P~I)m#lV8LouI+k}^`vLm--)V#b{lDAD_&WR_1m)Tc4akI`ntET6R}g= z3hZ*AUZX}ao2+I|Lottmk}^`v$sn4WV%*n=MpQ7AJaddghZ@hEhlV4bISL>BdFBXK ziIZo}zAW!2-Ua{kp(Mpim+{VyC@(!Di>(IDOX_pH3?lrKfYKlrn=T@_%uxQJSZt6Q@sd8b2F9ubG!yc3?*OfacENGtGm&B#8)kR^yjNt zR*93ZR?`S<(edNCRy&*#1Z4V2G0Izbb4HX=-jqd~gJu-9t2+xHehv49rA|Bap%Rtb z$RYoTo$cWekqR8LT&qtbkIz|coQ6C;4JBnHkFSAfZt`&N>gpO8O4j&$%dj7$<-vK8ytwIdUnUc{*>TdAJSzuGK|ZbUbLDQ5Q=9$-oPmuv*uKOG5lO zMi(&hOB=h~6aR=*;Fp7K#tdTBPa&-aBt9RH=4!iFraI=1j(ckQH=9O-uw|| zoY!U1{-7D>iE^ikhW%8rUG$1*kZmxtk!c>puJ$mENCl=DQ?+R<^C_!=)3D4Zprni} z^JNgt%`zuAx2!Y;3?;*S%%MSzVZM)MBZm1fKKe7v2U#UfhFMDt(=LYr8=st11e+xN zteE3hyjdg496!&Z)j>0ddQH3;;$ejX-02P>nD;$jp3*Ih2~ zX*3-qrm6=GIrS!4tGFj*?$-lsGOrP4Rn&2hs}`vMvt?3V16YGw#!RSbJax^XWXs{< zIS|baF!!5es{ca?t+GRb8nkXfs}Zz9eDsIbB&);)t?pr{EAr7W13-VxX9U7kCudO3 z`jxzC=CL*O3k$EvqS-++hgw)*s|4k+w0pJzuZa542d+a%0V9X}19rKGLqsYrEJSP7 zh~&doW2YgK4?;;9J@uzRG&hmB7Zzel7)mzzdxsV^HhBn5M{M#weDr6N_p(ZyY_bLv zMmw@<{0Sm4{-!wOVcwt-<&gi(qR&T`Lty3D|5i#I`AWdZA*)xJI7Flh4pD_@9C9d% z_9fbX6qJ;aLyiW~M~Fi-B@88pta4~kZ>j^=1Ov$b z=E-w-Q%00M&dQ?6L9>Utc@oK>U77JY(IK)L86(7Q_Cy^b6%4*qh-+L?wVF0fyfFv?M@P4;ogN z%k}%#46MBs*qfVdWnfpc=!Y?roDp#ELEZNNPNV|h4l%YtL*L(W>zRo)4f^hL7{an_ z@F5V*jlR>I3;bqX3?&rb?NFu$#V?`-35xH)M}H{3jaA};V)s=3?lCU((-58v+k5fU z6f7mc`ZCN}`Q_5Z`V>4iE0EL@(}IlBYU1!6-YN449s0$GZ)UN{pgBrgw#0*Q1-LoJ zXWc>MHFD9CgH2o{Qh|$>wS>IJKL?^zUuFu+prnl6e=UgS<{yt`OWFUSH=gt1wfsXVXPt~BZa+|D;y3ul5(t5Tn4KTlWo022Z0 z;0tt9L`lseETpyMSxj({{I z^lm6ABMJQjh~_3CkJ+117emQGZ+9qD+ijV#r^k!CxlY_39F2b%aL`Q65 z2Eh~1PqQ%-kc(x3(`FVq72EKN-7IeJG=f^ARD>72iuJjmQlIU#VP64Cz$2tnjLP>92YPG?&+xbo`6E60^kmc)~ey{nJC&9yzO-8+_DaQ z6^Q1>oBPy9ObJ5?w~HNG)Zo@c(-GXBijV#w#QCfeR|w$`x9fZwO>m>C2MsrM&nvgN z_azvS{6?_726f#7HjxToTM;Qk!`d6TmCUhBnyCF=hr%sbdk2W-#+v({*QgGL5^Aq< zC{csj2hnl_wR`Z|qFz3MO8{r8RE&h1ITUxZ%H{q>ORzf;D~M2KOC-qW43| z3O{nFPh*8Opf1h|Kjh}KDV|A^7yJ)aiHjBd9dH0GNmX?UNX4_>xnREq`{Dn9tv15{ zH(kkY%)gC#wg>*{OvYtY*6zYmqt=?gaDUWBn`EwLGR5*y*UpcZkA}P(uAJ{4QtY%F zt*cC5wzY0tp9>|{pHOtgf4*EpQF|8uzWRy zywzRsA1w0O@glpg+d5NkZ!K-TtOW}|TX%M5w_Xg3Jk1%{OM^-Nxy{DxWMiM6CSzyy zz<1oli|-S&bK9mGCD@iher)UtoD2zXA%pPDY@?2A-`h^ywq3L6ne(Lbs@Cbt-??PJ z{l?&bQOPlQL$%#$)?pzX-fLE?S+I4DuQgC)r-WK*^A}+IkgaoxszuLn?Q3jIt(R4B z0Jee?0=ZlQhag~h1bfS{6Uh^4^C+maf=ip7keWqJ)GjI!HHpsPPf!)*7Kz>+fpJ=> zz=jzXz>a4ZL<3n$V|K0}lr%Ob4|6CriI+L)j0c!jSF6lVn{s%<14~uOthpkU){&Um zDH~5{f}WU|_IDw?T2Eqn9viFFrz*Gx*$OIpLr|f-S5P@Gg{dFQfB^=(hM+`vJGCqm z!YTH+uhK3w>V;j!O0Cmmtq38Be#AtO!&e|N@2(157gSKI_fZ|OUjz9of6 zY0qIn;*(zuXccsZ+ZWIU}lOomPNcVoK1((sSQY@3Zb_S|XXaylQe&9KyH!r~7bK5PI)j5#*OE)FaK z-%S=vyHTDc;AK_p4}QBEJ+p%m987|`Ds1S>zv=`v^*6Ld7ltv-bSE-k%SpX)_Jfwt zNsLwjaLNjSefn022V2hKF6m~Ge}&@417`;l=&sR$HFnungih4}3`wJj@Jz?)JaHPS6& zl4AL#VysBIUkqB%X_lx`o^3z6Syb2qJt#)g3 z02i2r&Ap&oxEhH3A8yk?EL6d+GsB=mlEa)0CU#%q#+G)Q5boYgh3Nf}dRP@L+5`e= z;oel|I;?qxc3DuVavjn@V`Ka1{qnIfwufDv)x0=`F4ay?(s=cGJ!z4UPY;#4OCe0$ zTbXK?=Pw+?AZHF_%j>FFvp_d%Nzd*r>7_kw8n51INV}&et$Gi{kTP7nP@ZFnMlT*y z$*91YS3Q?0b-elpy?nKR9L=7ge6rbFwbH9E#~7BD9}bF^uT4?!wg$Rsrl@x^D@FtU zi1il(2SBtrU;T4vWp^3-YX%N?%~xL!qPdr^WRyE07>_%LiA#vxCSpp!ar1g;N_qW= z#MT!s0I=N7)LdR$UaV#-n5NHGl4okz=et>-tM{Q0Eq}d)%X`i?Z(&VvO?0~(1jT{g zlR|uPT*fP}>hOcH4kwQ~)!|Vx@<+26#BTL@;@X?Yc3If)>>f7s+36CXYb9`?I=w7& zrl3D4)xdlYqxy*XmdR2z()+P>_@p7dA2M|&4?oMA{ck`tH|e?0DXadECf|LZX*kMv zn3kIFRy<1b-M?{pPrmy$Yl4gKs-M78Y1E~pvjCgsz1l?lJxX-8p7$@6z6VWbJA3I& zt{SCbASskUaO!ef2}LQAu^t2EJqcAzgKu?jJsS5t#X8o~aNoI5lFgzP?t2D^=H@>4 zHMRytj3x=5#Z(<7K}^$0!;Tjo^i81<1${fXyv>9xdZNH#8*74#1RZPKG8$V~ZL{){ zJ!enV_WtD$Z!V7TftW+!iisymb&&)vP@hf2p{WaGs>8qouRyC353GvUp|QX{-1z1l z=QJ#Em&1-07I*`Q=4Ju+2NHYKFq$0jGN$M#2Vh!i4tOsL5eMAH8?jEfmhXw9tidxsqD2G z81_e~ZerL&jJ0Vr`xEQXOGC5&1tr-~YN6TRf@p4Uunv_k`nVtO@;Nf>~CcBMPEPA60GdU;dfb`9_TTPP@b?OIl!7$HsMR zW+>f&{CTt_A%8`rbPe@)ack$FYQ4;1I1B1u3!=GE?>-r`&L55S$3X@oHzoQ|7JUzz=Cu7Yak|eZ&=GkP0vv7sOyo>g zs)5#ifa)V!TZV^r*hvzN(tcYPyYsICVPqXG#SSLcMH*)x=H zK>H3fETR3NX!#oCpMaVAGIu${VLc1v&j-=mkawRGiYZ|BMET83$5E7HT56QP9fb(x zFXZx`D1QNKLjO?yepa3r%Bku>qg=)9@&y?WjLW2t%$crK1G>M7mg8}|ELFqy zx4C8WWBVb8ku2E$A&BP2wmWWD{U1$ae~oE4ifl|vjqE?55Fz_3T;3DeUt&#gAzPjE z#g`SN+M{n$vB3&2Ny~$Aw!CWVcJ-mr4m((3yp(LAGEev@ch~{RgtfF=8#t$E#tYuHY`;+=pwgK&1 zL5&>k2a1u7*KlZHKM}L^Wp87P!)6w+p8=w|!M?>E^lP?YS3Hg08_=7WlA~D1G~I-D zEbyI;r=bvG{V`nL6YCpT6Z(hsD_MD7-kqwp_b>m>#?y>=gbPVh!W|?M5U=j5)=`Um2@GgZ>M+-ShkT>l`MuK>t<{%?*9`&D3!%jHai*hUqzqeoRY^{@0)o zp?@Ej_e6h(HKBj#e0mSw|0$;BDB>|KHR6AaLWKBFaCuL}Kfs#cLVWia z_eFPX%)&;9Pgb=LvheU|cO6_Ya{C|)c>hwF<9~n!*|lySi=8~kW;et6vtYK;4J>#9 zsx!`lSh~i7TdYGW%}&QAD9L6x3k#kOqK_mCG98R23m(U`9A!aFOU;7kqY$y+F(?T zJXJkt#P5*n9BjnE#j$Sh&T}T9Tzz*SLx~1te+Df^$X>!r)G+-yZqNLf{*=Qs7EFH) zL~~=>{e=P1`_V-6$C-YkXvVbEX#ODz5t={7cfu^KegZ@^rA*|0bYO0ta}3+lIkXl~TIS1sdO z7)|uAV|tFFAJcRz+R?%HES`Wug#N?0yv=@E^nM6yLjTZzF)Pmt{ZzHRfBE+;&QQLb zUHa|``fw@%>)W!IXFzrftwnx(F^=hQN&|F8$r`{P;5N<=@DDr8WdZo-Kr}bN-EURt8W>HKe}L&YigHX#jq-1! z5TX3QP9lF* zybcZihhw(B1nh@ENwy(mf&T^&%?*F|b(=kE7)=g1m?=8S0hp$n(T))wv7d@U!~q9! zd7A;XhlO5k0~V79^_MEop*4_$n8O%m&G{t5s-gQ z^8`5u5nm$nU`LTPffdipSEhjl8>l*pf0l~MHTJvOI&#u%HO@duHt<;3?-~%z&3>Dl zvm4p{(PX^}Q*e~^FfBFf-HJlQdb_y1&2Sp)l~@y8tmnVW_$pSOgRN+nk*Xdvrk|zo z2Oq1OhQrAE7X^LrZ4gVq`ZEVpmw^NBM=KKtJWBiIp!`yz#s?qf10w%q=mQShTKM2o zAex&GPIdEv!B!)B?)vYTvZLI9X{ov4ArvBR_**XT$qo0hCb+nvd&>}glvBi9L)9h~ z)%_%9KnG8bTvYdPmH{?s51{70F{bo+eJ(DN!2D|N8y86LVa#9II{XO9_^aY|Xl%a@ zv-M@}dnlA-BMJ-K9|xkj+1@?(?NP&MMuBUXqN7ZYX}THh7~yl@(@}_+eifIu8BmJ? zSFk3ynBG4Md@?J~!EO` z8!b!`;2J|s8YRr|v5-FitT@bSp@h94nwt{bw``a+F`BFpGF?Ym0n<{m!p$f|tT4&t zJz1f^n&4uEKgNHK55;Rx{EL_Y9Sk{g@!#E92H2pvU!7BmvO~)757;>A(tCAIsSh<6 zX8RvTwG!8_jMbnGu8&#=SDJ;t`=KNoM_73NGa#Cq=iTR&;#wF@j(LnU13<$28r7b`Ly(|4@DoE6)q%RJFZ-`R8})*4Rp`P%O18dqSVNmdKkhms7XKW-Qf! z?rF3f`SNA5R1Mn|ZrS{^wa{TC3$|Mznj72hTVqxKM-$marr{{EF)cN+Z$u$N_MdQh zPh>xbHNl1K?y2mS{Z>%f72vsrQUf+h_O*j@u@y{)VLcFU&lKxZLA}uq__0wwP%}!a zb?;Zil;U8Hk(>A2nZ;;>=0tTud-vXAbJ{29p^OP^s7`37F3-S&A3&864=$$iG!neu zI$qLDW!?`Z*`Q=0!B2u{ZW45#(B_>VO$K})Q*V?3F)cL%eglPw0pH8zZD!MAoAnG&iH2;5>z)DPS~N z?O>+jD63(bZb19^7pGBCh*<3)E^jlP#%jx16I`t3zb4Pv@Szc+xwS)#-{GK zxxckxsmR^ z-!h_t(ZqU*DLIODOiPXR7oiYg{VFc+iS;X46Z(hsm$UM`uufGE8tZCxrq-A)utDPk zMv*rG6sSXl`)3S7%iJM-$oiF%3tN zjcKWo{Z$kqWd9YH_eAzPSrht)?C-PkypT;*4;tC(jfuu=yMXT^dH`EwO~AE!V?tz1 zRi**eD~^(=UMkAeK)n)w?n`XG97?hc4GX9b2hrT1cE2$pyFZ$kUcwX{#Wber=ChA^ z9+{tjLWJpsT;66lEizxgn$SN?pTWxW!ZcNF?_WP7^G2sV+i4fr#fm-{)UqdFTSex% z$~IuUfL7#@xn8!0^CCBNe&>Cq!)6wo?*`G_ICn?p5fzLk)~{enj$$3tQe*vE6e6rY zlgoQzeJ5*z3+vsZnqjHYoNBSX6+#OvG~z}}Yp&G}XV`Fsbw+1CwdVNJSVtZFFmgL4 zw`MWKpqWqI#68<+wF{+Utu|RK?e?I)Nd5%wQ#Wx(a;GodzLm7C5h-1xzxP>( zRGLkd`=BHnf-Lm+VGzwtf9{*OqdFK({(Cpma+LotEj9mr35AIN-ofQ<*3)90x3MO; z_|Jb8^1G}&2ba+*Bvn0V#H*DFHe$kkVaXSdm^T6GYGop0sRo2E3napq$x=0RFUQ~e zGKpCNCE3P@1>J{$Xl``7S0+^dM-$lxFbzkMjcL05>?5DgVm6`>A$vbAZ?l|+?BDen z*{8EEc_Evsw)ZdpEJm$N%r?VFyjqmknb;9@0xx6R7f6AKBKYVY2mZYkB(D+toek5e;ULU#CvnTj)wX>jS zPT|EX&=jK|e>xhJ?=0wLYo2^3X6ei1`(lU9EJ(i+L~|qEy|WNe!DwRrLZ;*>)-g>t zp&bi+{@p+!!unIVyeHt!V@>EE)~{pbMLkUUxGU$&8{z+(u4JTqH?6Eu)%O17pMPs> z={!uX)L}C*6(Avh0@}5;^n9fo{QB$Bl7#maYOq6FG{C=+TRVT~ey_uD7Qnv~L~{e) zV=Z0R@Q8Z%S1~O|5szu95r01l5#sOR@}7u)Icq}y5dS$=o)_Y&>OmvE*Sj|+t3GcX z36Np-1ibfp_e^CQ(Ec;DV$8c^*&5h?!3~`s>_2tb%mVfW$Mga0{@$IbU^Kn^!%WFh ztYcbgtgiu;bFBX-m-oc__gNGAhxHB6l2la>8tdv#Jqcbo|A$wkq;T+f7R_?2in>#; zFLfBO|70{UVSiP;4h{e3W469T_vbn6XuhXoetU;>xv@^SO9%k-+kTI znRiZ{K~gBTwC1@ej6xouO8 zQmfsp)Ti;~N+B^3&v*$1krQyFrU3WF&Nk}s%6V(siQBdpJMBiRGc!|c&Yd~WRo%&= zYP&rLFr#S|rYfZrGaAaD5aIO9XtI`W;JMeJI-@fhDqSPFd#yt%&0^)Npd=ecEF||f z5Y0_;-ZL7mgVAKTyP1}w42Nl{8SeckL=1Nqm$z9DwZ#__?qE%DF`WPDpii;#99%|g z7*zG35wD`0X0g%=@e`Mw`tEvTZ`~uxiHjuQUPU=^flPH6(Enq!DvxsFb!Y_eQ*QkH zvz&(=cC-+{??5y+0l1@_9yN?62mF93I?4fg|wacHbl^A z;cTH5wpx`&ojELcHzK8!nhUjKN^ryvBR3biI*XC)BO(7>NS&K*hPw*IcH3*=N9Il7 zLv?Oi=JX;%-U1^Nz7o|(Ot?&zs?p%9tivbGyytEx$%Z5g4ZayfbJL*v+_dWdXma44 zOv6zQ#I)2L_&yXO4tyDxw^>e`^W4Uo;Nn34InT#gc@EAx09w1QN>vXU*?PRQCv3J0 zaQjko&I^Vrdjh`oct>SUUAAG4^Fy?vjCWMo8qgocEPaW0e&Dc~1?ay5(cD1yiFY&= zj3(CqohdnrbxhMuXvYGNca|RuLWK42aCuLxf0H$#e^_4!ElE|iy?^<=xVjs=i70Ou zYQ>h%dZv~;0qN>)Y%Q-p(6JpxZ~g={CgFU!Rr1kv0uci)Yz zYhW}{{&=S2D9SNSx1b#b9OYM{5TX1uF7FAolUWn`hw>R#o|i|bs_p&Dk8<_aM6**b z@a?AU&Yc>SIRWG9RJF?L19901Bf@V->k-1oRJj_!@8IUmzfO6Z!%`N2zY0Wi1Kj=A zgroCG_*QfAR&h^Qm}yM; zT$C#FCZJo*#br(paLc?#Y=0Xq$LHcQrv~lsa?9q2_BS0yvOxP`5X}v3_gq}{e>9Q( z4W{8JvN0_+vKJgDk^RqH-V@nhW=-fHvJZxqq^f$*$X0W4HdH=q@V1tnFZ))gJ^D`yXWE&6^tg2yl z5@C5EwoAkC&D?|Vo~;KFWqL#YT~siAE{I6gQF3sQ5zu11qCQj6{udgWDngnt|Bumkraw?}wi7K03$ z(bT#F-|8)Ry>+cJC$O7ZcTidV_!9SG(PX`^G8IQz57Sb!-tSO|Snr>>yv=l|Eq*%k3#R!7CTJ8jdtK9=FuMfmkJB%1V5md-AzFaF=1Nq6Aqc0Pa ztqyZpK)wS+bA#Nyd!TDzG*Ny6({U8#n5J9MjsiX}xfq2A<>Or56XnOTCS*qWoeTDZ zU<3ZAy`_!O$GU2P73>I94q#cS4fc-apP=kelL`hipEtc|h$X$$xjj#bhRMnc&~)U& zm++c3Xy3>Un}5D?gTpiyXx|2+xuHGop0ALFM)YOvYngtdu*S61u)Y_C2-eTz@}98X z%bJiG);(x`H!IHz%~bWE(R^VXd$2LsX_mZp4rp+3fdm(RLI27(ApJ{dO+xxX9O=9{ z8sNXoO`ad{UvOB@0{Cx&Xl}sE_wN#4tBWaNG~M}Un3|)w$F$VA|0xO)?*Ea?d*c4% ztO@@e2-|MiR1@||C z=p%vqs1imK_bsO8DDE*WHSS-ILWKKSF7Ju^8P)_B?z`s|OC{KVfX#`Gg(w_029;d_ z?8(E%e5>8s95mpoFU`I1vT)E0+nr{;6@)Xhu#ZuLpP560SDpG)n%drYYfNbl-Wj>= zjW=g8>Yy1_J9gEm?FsSj4j-};c@ub4J9Z^+ngl zv+)@y$%Z@&aef0ta}%e>u`8j~5nUVkB-3z|GcheSXFiNV#F-Crd7I_X!|;ubkFq8> zIr9wI%q{KaZ-KJUU~OyxDeelJVI9acXg7kX5bvLXi&u$6TY(szf+=&Aq4;tC@u-6S zf8)nLWHI2N`BB>*Ld-S2w}({j1di0Uhg4o)mZWwVqs&b>Oo%6!(=mD0W{oLNunwd& zOt}$Cvf<6bl&6AdZl?6u9#Xm;QLfy;bR6YMOiRs`Pevi)%7Dw;Y^QPMde#INSNd-P zKZ}*;;4j)0qN)dta&2DOVKH){U2b|FV2cPOU|m~Bj%4?Ndqlv9_-oLbVqO`^u7Unq zZu0!|$~lMiETDf8h~@^p$2xLU38Oi$>@YP)agS-Kaep@o5$>B@-V^r?)`b4y{w=IL zFWghrgU0Jx{1dDy8vG15Wqv$=(qR<~p1%sB zx$(Twy%9{`pB+scKfu%*#WAL(#_fFngTpAbpN# zG=4bKZxqd#rd!WG+W9We4iq9ZujTSKyJ^w*8rFpVq4{a7JTEj;)%O17-{nzg-iMdN zHGQ^qc}^#qGn8mR^VMiE^2|$ki5i+)+@ASebHia83!1M5(MJHyqW7cen|Cw)M$wFE zsnL8J3K5#iT;3DSA!|ba(EJ)!o)?;_>J(_UXT6PP>{qWr50sp>yRg)#wdOC}ABRkv zWa>;N+UV+2Ah8(#`cH!dss;f)Yq?t9jpbJ;`(3zM#QbZu0+Qt;FX~K|CpO(Mf9?Eu zd68q`qPqkx`EFL=PV*}v_qOiQ(c8a+aega!AYS*`G~ad4QKN;-mlt2uo-aa^%Uj^s ztZHxfWy5#hIoxlK`g=lDf8*tIMM8J2`J!~jq~qlaWWH0MvwcH5+}GX~Y!u4dc;@C{ z`&8H}72q^jp*349h1&v|E7*AEnQ$x-sCOK;AmL-f^n#T}zW>JIC&;&asjO{5z$8Hs zp43e0zhV;6VOYK@J_gG>!9rM#ZItr?SUw-}eoIy`q}IG}0hqHc^>k2tZ1T0GShCXK z0mln?UBre)RDRLNf1p9mQS=yV4GE)&3a`Ea=t=Z| zlhN8PbzCX=6nh2QSJJw8MdVatrdX-ZclV#2n^$o_^){%A{m#!?@oKto57n;LY*?!7 zs+8t$?k0wiOEFs#1yygyvM&Q=c9(FLn(xL({EOzRcVM<> zqVa)~&nd5$ZH6)N5C=4T#ui?Eh?%Z>kCxQkAP!Ifc+}T1f=Zp<2c?A#9!h%URRiKm z?*V}ZcF6KkB+Gfg!Z!@*$ zW?_7F@Xw_PZ2j+gV@stz74CzJ}e3AYlZDLT;w}{Gurt~79?>0tMxN;tZ;`Q!-U)?tbefFE4J z!NKw1fIb#8;JD!K7+Tznes4@7>eUh$9jl4s!sPleF1S-x&>cD(#zKN++Bl?WKub}S z^j_Jc^nrlVM)f`{#u5lr*Fpy2FuMsZ|3Pb8s>i_3Nk0E0@SBg%|0in|2_u9G_w)JR zu~(4b^Q%t;vBCL#>OhqG-9ub6suHc<1}*KM&o?j&x%-7DMBKeLc7>;31UZDK7sC%A z`Z8{S|5;CeAT&;2l87;pHViaRe>*mvJpD2*@9F79r@_-xAt^n5bq=boZh%Uw&%>u< z@#z}*^r!H2bM;#G-{-UcUdR4>J^Sws?7x48|224I*`CZEc>^*T%p2kG;0%50&oqB` ze|#lgOtOET9~S?t_uB2I57XUrRFqA>)f8<2v-mS(Bi`+;pA?gbVZ=O($7+1N^)^{S zcUUbNbK0wV$0+&k-XD|;e~#>CdKa!#RDCuUlh=jMSleQC;S~_|apBikt4MI+RJflD zzu8`a#@+g~eZVf9I-vY8&fbz-xY4Lew0a73uzxN*nRUpMzXfX3Chol>Svd5!LPp`x z#b5-7emXaYheO}NFBz8Kv`S%b`0w6wSQm+ODREF~1(!BEp;(5> zS&9PYyLrpS!e)%%w1K1r0jHr51p)7nJ-18p>Ap}D1OZe?rXb)!sFZ?$kK+>y0@zcY zAV9V!a}W?9Gb+29A^`XI7b9gPyZ_sV#r@0vx_$p4y6@NI2JiU4%}1#i=K%~bz@O3Lf+S6ka+_4fyX zsE@x7tW_lVdn(+|-%r>p&}jM*^!L;O<+N@7-e^=MTKy_mx_|yYfoaIuUj(|;oPBHz z3r~MBnw~Gxi(v?!{_7mJ9-iK7;XT_T{WHCXgXXor#=!)=*vaKRr|zQD;I*lcOkR5i zDkZO7$0z2s*;5{`E!&gXYadsfovqCkW*e52IKJnaUF16i`i3h1~vHJ#p@FxV=MsF zJg!Eu*P{?kjNUHWYnS8`BhfveSSlomViyx3%|~`YX>IfYsFDcwL40Ba%bxNOtZYqY zf<2bwzZqKj^(0?@Rplhp>)k^}uX>wZJDKZZI8(9)ay__5xnhtTeo>?QTYPkyN4K3? z|3%7nhg!{fm{s+$`XlUaoLRpDiTz{N!xJseiFLu22(cPWD|pp9cm%DAE&;86jT_U0 zRu7HPYBP+pYU1x|*o{FyQg1o^GdBRVb_tjFj9W$LfK;iF45WHAR7s?I3_dYZWlwoX zRkkKGsUF3SO%>R+@G4lvj}2EQJM9qSRrg!WS`mp%3J1qre6>c5-bi^E;HemJdCzZa zyOA_CM$WK~5j!=VE@itf8WIlx(KHf~3IeJpK_mOe9Y*a_ICcqCq=jP*=no4RXayloy00=Dzco9Vr-b!h^bg3lpWdGwCa6OoH(F1w}tgS8k%8r z_!c_rb`_MRkA!$=Z+Y*c4x;MpMRyTZ#LicS`ykjYRoZx@4USvxEjH`(H&-8kDyujE zst;o2S64rd4L#P!EZRF%i2e%~0P&(NY%7~829_e1fd~zusLu2qAr#{Quo!XW^_+6l zJcenSl)OwbTvW>x0N;lFWrqV^icgHI*;5X#76h2}T>lYM#ddL5vp5qfnx5qc%z>rd zXZ56fB1aF$IWMi9E{`Ek)Mzq*!U3Pvdn+H1f=}F=0Dl#ehz;bc;wQb>8GfwB1{MAA z@|$D@!)L?T2EekYt>ASBEk$|n2V{@ZZ}cl|R6mBrFvqDK+CSp?v&H&Uu{BX@G{Xso zsflv|T~9)EkuUK&!}nEd8?74xUjk8|4S|2RR*|qFK!r!#9Iy|$r)8?6O4&cN*P^Xa zq}ml&XH#?5GyT-LD5>kNzzhp*ASlu5YoXu$i=Yf_MDf!h6Os5y8}A}|S_?Tu^dyEX zc+1ywyLd!Ta+3h=MhqmxFq*;yem_Helfaf&jgIxuxYU!a*J0Di=Rcau+d>x2fs0PV zWQz((nrtPUG94<ycd=9zO;jWJV(SRDPX#ZOvO{sO&ZN>j3skCm)hn^5 z%vWj@c^)M8k0Ku>ruY%-5lhygCT*4(wWU~=N*W%5JVhUXJfFf1=RuxFvF0$QBxDNS zWUuAylb6am^Qj@Xm)9?sdr%GPA2%nehOR;k#WDsW?%cU9d-qT|IRQ|Bv&WXWfux5+O0lzVG& zQ3HjpisunD+WUhV*KgtD(mby1RQg6K+Z|>V=b=;8#p>T+Z{u|O8c6IPoyy~=J(eU& zeGqEXD7DwFf>v$AMo_Eh4^ZptxFJ2L^-;WOY!6i+SPV4tk7}@ej@M%zYT6C+Xfl!ruRYci8)>=baeBc=R!F`Xn%rq7`` zh8SzBi#O##ubAB6SCbCd3d2>qT+6+hv^*ve8{6j9B&^1FHR%r=Hs$rhailb66UM39 zp3sWe@3hbnOI4&2Sk-6uU`jL9qp%oiih9>*;bfyxOR<7??6{HDfQ1@s#%UVUk z3KA7=UO}QhDt%sLuRx1*Q!O4*HCb1Qr~_&q6W=1ySBZ>9Rif2j0UY}0vlEzx&w)Uf zn!}EbVX<1&K-2RhrD7O@SN<)Bt%p}W25u~3$lY%~kS z65b+XJWA?bE7FTd_Si$SRupZn%W2CqD!SM>`=j^t=z)4BF}S0NY8d~ebr{=y#2cjS z@GKZb`%Ydx zjga?mJn~jsut&|_&&I>8${yACV(VD%HF|$FB=(Qq9C!Q@0|;9q>@oX z;CsAPsU~f&MImwl-<7?J1-4owfzE@kdkm*RIe`5hD;xlO%HsfJ zYce~44I#Y8ISF62Di>%2$LIvyD_`+qk{!X&EX(vZ+2ssQ7E8-<(Q(q<=3w{U0^ZiP zIXM3K-Eg{Py4C9>R>g${7J7eB1OCx4X7m|cblBRR#abylJWFD|I*2=r!xL4?^fg{q zUPN3C&$b?w8;K;Z?TSB@QcskMN#RJgfRL{v*~Ic{EnULL2bo+oHJZM*EB{uFJwHoh z&&$);rD6mF9t0>szw&=jl93dHUBlZm@7$3N*jv_I-&~kr>dr5uf`k! zP&LXaCr#Hd0wBZL^F|{81+wZmwk{q4tb)Y;MF4V9wg*QP1>6R;X;DBgvxrDQF3QFW z(xL&;AJEGhu6U2>-wt-%SO097_R+A-0fY*{Y_W--V$`OFz?hvGxSx*hLxXcWIZIJP z<`ulWwcD^N2wx3L*w7BtyjTPN2g=424BZy7p)oRR&Kh~N*DpUjI`E8m-1~gO==u3V(y(cE!VP0 z%GA@;=sgw&K-Sq(AZ3S#GWA{(%azs2+Co$pDMU?)v_utGYl(2VHWO1iJ45z6#boGo z5b~W2o$Qe}8dED%R8PXz#rgfwkT?K-*R@Uj{v4=C=XX6v55H?aYC*K<0Py>I>`T&; z+IaNx>_@l4T3BksD@*m-T!1$`VlBZgkDsQe(e70>RCGT zT|KoYX}r2kOY4qZQpAJrK!h^1*OOE`_oZs*7YaM!-n;et&T6(&#H<$mD0>I)rR#H{D5(PcZF>LY{b(#iy2nK9U8;tM5Z4TNb17cbZy$7oS+H#GdlRN(4XXM&?*)!>$Tk zX;XlE@qzOydthzAbco2k7#%MrIcge)UCD{w=DNZrx&G5DI{4E>e}EyQQ7>-^eBn#eS&CqOn)hRv9e^?xFVwMdn9X^=MxTP%5gf z!(v!4rM5jt5bn7t^*|t4KIjM1`B&XzvGQF0faiZ3gNdZ@@Rx zQU{Wqn0ef5MpdHKp8+oV7a=FJ4u#28P^T6q_l{&9D_3{p0N{s<#9#yz|B|EFW8q_y z_^1pn9y2Hf(rbtpE28TkDI^r&n%)CMh8F9qzrb!#)ZF0mwmA|?a@Q^t0Ir=1>4^!( z#ryl>vtNd*m2QSg$+^E6pO|xJPkEfXY)@wA{+Q{oU4Sp0HH(Gadm}GcunPhLd3l}t z-q}b=$B?ZAq}%91)!`#ALtJ~k9-B&PWcA6-|% zZ#z@;@rD?ExFeIbnH3X4`;FG56DL9e9D3yq8fNo zh5yc8xcPJnFZ^TT@XO_^VF3Km=f-_5SNI>bV}^tpgv(F1u7!L)vKG=^)9TF5HkxqT z^9+0i{_0KxKDj|3YWygW6OBzZ-?JTQiW3>kXho3J1K0!LCxIaLteStUz4_*&R{;pY zgx?9!lkA0?0m=)P0PQYfk)LQk|4a4YEPExX3_x{fG{C_3}eq5-Iz3niK>9=J>Y2ix9lQM zjzr^NT64Jzl%}n@#G+!cIeDmgI;l?li)a@} z*-ksy)ojeLL_M%u+w~VvJ>R|jXV$XhtomAR+TF{CpzP}Vq5U^i{{jA6Mfg=e zfD3;5H^HTDBKwqa)hNP<`)xUn*H!O#bOy8XeM%fkwq*d!%J(VX?ole=rxfUsgS2N& zGGU)m@JO=Yc=adH4%rR0uwv@@9@+@T%*7EFA9*s;4r>^M=Z%BgFZ4~pxD z-now_E3!BhhKNo*Q3kLt{G2FdyThyQ*jd>}ne@m*NOcnI0LVp=qnePbw6$IKtd#gv zsR+~RS;B(KQ$WafLFHVQS1qV?SH?y{PY}E!l0ihlu~gNAsVqIXidyBIp)~D08^dGE=FJDB9qwjMgw34m+Cp#XtqwO3aFj{iTw+J8bu_+R#3mXoraaP(^2*CVO#5ZLtems;l=e@h7E-w9 zhe60^`E9|ewg9SZc5b|I<=htHU=d@1{!k-erM-$&E{Ck8&c%r9t&EFyErYA(Z#9XH5Vs(0xs@L*r}vb=usDUr0(K~ zMTL9AVJvLz%BDua?x0PldZ|@+}2?<1255*jdRdVUUN_sPj+Z89j4hQHPz+HCgHDGsJ2dv$3O-tGCFzPZksaz&i)#I|FzeHRX*@Y(P3)vq^cYh}PpTcE5AB22d z)=TY$n_U(!+|y;f+FnH}mqj)Exvb|g6{K-lYNS=?u+edsRfNR;xvW)sz{qS)&guhD zi{`8poP?WN9T(IblxR1Q{1kS<&q1vO4AV6NVXFlfnF%QOq^nW+ATQk zj_|8e+}T-LwuxHiGE3!26GS*D@>6U4G;pSL{7w#FWbnI26 zidCp)zgVSb*e;Va)}#J~_><5-{hCXINhBX@I}57j8BHFWl1rZ?#vE$^cYz zMguIw%e%Pl)viY3#a$n^x7)0m50Ks!vi9dy;#`>SoLJ+b_o#v*gxD4MG9)-yyu1spjf5=H7v(KRjg?>9$BKDz=qK1= zip+n(yuW9~e6G}S+W%s5KU0ZJ6@ zhe2>0cExW!<`z5&TB(DtfK#EurI5ow*MX_ZHq6(+0n$bwR&n4J(R!-_hpV`giF{yk za{%9rhoh$TJpeW=s?x;$c2)ou+=e?OVKoR|PzmaAuVv z$lFaytHe+rljK_=!iZp6DkRCeeLL4`yP<-xLA;wd`+tN2hdEeGe8BcXYQxV*ebSb+D43dk`wr{G74t z!p(gg@(MR6S`TjSrPz@_y1Bl%UNy=-%e5+i9)oSnS@G?b+fazy+^3{f?2_Eg2_u4= zqe3#dxqpXB$<2KapO~9tPkG#&Y)@u4cSNPduTC(|<&JkdHzA+w(rz6Jm!{h3a%A$m z=u$V2g!|h6al{p3RJ+~RSWF@|n$7MDtMPSTzvn=K@9GVm4P#DgS=3hGsv*7#>o1Gp_Rm<+>u0Mn_k8BVdayLzJ?;4RkS6hjGUKBKg<(iv7OCG4mF8oNgX z|2Qu1xoRgA0|ZZnWFq)yK&3?RJMoDTJbTJR@UlIb3I1?;XVS>-8=dSfUbtL*QG33K zV`>Wwq`TnK0$Nn+zIYg@T{P0g>j#O|I3Y0j>kVgOBiT*rotT6dsbe+1q+XE~44L&} zj4tkHNxZJ*#j+#mCmTu$)tj-HIG2|ov4311A9zIMuZB7_A{YG?EdCn!S+KZhBYz~5qJ*P>cv*4tukW5Z`5-KGpUBV~kq}fv*CoS8P*-1YJ-nLbjd+G;| zQ(q_>DJj`m56$u8SbJR_`$92`ipbGD4B~Fo&2(`O|9q*u8*Fm`pPXpVK_t|Cq;F5X zHii{9hu;{Jh`Nac4##SI-Tj=bV0aEhM{Ek0a>RW8irDXT{2`XA2$?NBU$~hwz|AR9XwQNJr`QM%i5uYBisK6glrTm4#(gP zp?}HpYDc!0iXM`GP_2ypu(qoblmQ;h(%z5cY3~@jv5Nse-r}C0)^_zI)#`uE((140 zX?3>i3xAoVo&U|+=|14Sc$+OsO?ZEr7p~41JFYK$l)aKvCyc3X6~fuxpzayw2SptN z$Eh0a%jEAgs$h9vrKpj!#oizD(cn!W$C`QJ$|BZV3(vP#k;)!aa~gZt z^F~iR8|hgUP;J35?_c~bPdrEc4+Zd5P?{FN$Gj1b;Jfm~bEF9E#Ix`+z`}btusy>1 zx3^~Db6PFf;ciyy)9`7vW`JMNYO$>m@v3`~rQs3i#%vp2DQpG1ARituV@?cqSzr^T z4DyiPfirDF4lh5zJ(yj^N)5l)hUePw(n~nyR)Lo!p$^!2DTS=e%>fh1@M*~AlkfFoAPwfoU|@E%jIqU7$y0-q!BM_e$BJI8dFWVm6gf@%#Q< zb>*Y31@#?$<$O}Sa2*h`>SFah*jqLk(7eqnA+dknM&9n#V@Yy2AA#C5htq3U;d5-m zMyw`@{y;BZ%?+vC&Ydg%azFMz)X^f-wcOcYVM@cU_Aq6l&;pE zVVz`}=S!lp`m4$bSk>j{qS3(TzvQDy@p&SRZ{jr0VtU{O`eZ5bIMh+W512+n_!JV#-cLY{!r=ik zHWCQ@7uXFV@a9*|00%wC#(1L7aT9*K6p~fyGbg*v^bxz!1(7N1Z!o= zxh&KV711B6io5JpnB5Cip@RFQc>yk$Ur)_ZDp-m)704!yYs;*Ow-vm@-bnMZ-dp2( z5T~~iPpkdCy&AJFsG2mou;-1sS_OgXb=bPNtDT0#{<&H`z>|b9PyY7nP?P3wqj(oi zSKi#LQ-rpFC;9;6qRN%+;dx(n+3Xa&&QAOCSn^iROE& zyd|ogfhO*sng}i}SKz303%?Gzt5aiZdmStk7xZumj^BB}-&u7RDBwDbO;h0hF4u9Y zSfYYL6ia+d+Q@4%C`<~m1Qn7YmiR4HNwLK5@QK9|>?uzyAzPCv zhg4`y2UU_Eemy=hKg^!;_+i`sNmB#){d^#r2eRF}zE8?_hg7?Rb*o>L{ZHXmKMO+sZuMLCD$K5gs<68U z;a2~Vnv=_|{@UJ1vs?XnTn|pSx^#yv5KK4+NY$j#g*|W7tttdmKZ#0+yVdtVV*lLg z8Uq<{e>x7j(fnxy?81?%^E?`ts5Nxa0q~&j?u$DAX}3;e%LVEY)sa| znF5^h!aJkP*CToysfiVn97znr-oQk>*Y3Rmb-<#hr|dAzK(9nB#m2k)O@Q4oiCCO` zmGMeMtj70EfP$=GDE1;u7G>d!e#psWIe1ZRRnKTpOmn^LrYT6V2Y5g3mwk^3C(3gw6Zspb$;;zaZNeBQR~CK)1x%SJ55lBo&h6sI9j<{tzl9SN&i3 z#9TFd%HyhKdosIf{+4B~ck=0lPAVeVMGwV0`O&7jX8LlcE-E&7*Sz%1=(Nhsv8!Sd zv5{?d%~*}EYhEZT7>;-Hqb4CQsNC{_(VzM0iAbX2ljCI9(z|1&mg=!sOkQ_3LN69@GkCb+Erg83ck*FJANTO#RU7?7U@4^(;I8o=An1nq zOnW~RA_u-t_AEwo+R)M*xKIQ*a4IB|1AiG*N)G%Ed}0oqJ>_xWvOSp{_;GNMwFw_$ z#Cw_HD!O_p;bYA1J@ejzlAZa`?A)3f?Q-k#L|(7(IDT?3;hUDLd$Ws$eA7>AxWAnb zS982-pYFXy$_~$Nxk(S?_taZ0{r}?SN2Df9UOHi^`GX(?K2bXZxI@@%!4B;V;OFgy zo0rRZ;UANS&aEG5{#Sbysa|QNnw3XNa%Q+m|MyG<$wY~#)T1ltYRpyt4javEt17F$ z9uoWK{^Z8AVOWt9T=0a56EuNMtf$M3>E6P$jcL&<(9WB55_H z$fa0e40@IN2>KhjJ)q@FxV-0bv*;)|K`JE430mIZJQ}Jb7kCUlF&D_5^0+|Rn#?Zn zXz+jV!DjK&m+{EhR_Bg&w2)-ich|6NTE`pga(j;zTUAlPaeS$|P}v1nRkTXQ=G07M zDvVr8qh?hHMJ2_Mk0+}!zTG;;?Vj&(Qnow1DvxbuAC{y`QkB}#wP)170=>piq)@!^ zH>LfZQiCZx=EWf7<1vf&!p$C&7p{3se2ZUnhi-&W?QhttNaZo9X63|e9`iz`f;1je zjn(P}*yy;&JP8u}=P~8^?-(4(TfP+P(x!}Ya0*W;7lEUNXkJqE1boe@*eSoeR*z@p z1!>;GO(UX4$KAY5=BPSh75EesqDkakvQNpD)+Uic1>irakPQCwT~HAL%$dim-5)+6WxKg@JF(( zUSue`24qNuWFW(_vjiC~$0tUH>?sc!%GP8i!y{V7Jz+8zy1xS><&&xK_FZLyz3$s0jpI7$}s_e^albE@Hn4_42=zYPU=Eq?i^w4upKB1sB*0 zH%|+A;o7tSFZ>c6pj9>1{>$xEq?#5`&3@B@Q%D8M2FtZU-)jW+qv*pT`b%}+FS_jlc_6MsQr2c&ojVRA!*MGn!#c(G9nPQc&W{&Tq1}-mIe6fe?T| zA#JJPIbmm&piKSO_NvULrmE6t#GW_0!mAjvdNQ^y9&W9J#Qud_@{$lm{S<9|5vtLm zEzJ>#U`rmamZI7ORWu!9ts}7)eiPKgu&4lIKD<=~LoU8>C~TOVLD}>hyuMWN)_N48 zc`kFWNR|VTZiI~oAIMe$2q5+D4HB) z-82MI)&w=t63cAB&x!8H% zg=A1VP(*(yR@f}NV2Z5lL96P1^#m*?PRWZPv44~t9dN|PXF&}b8&l^v5m(QKAH^J3 zv=4Z9DK^!QcQ=%Z@G(7py+pGCR|>Z0*cB1%W{Bv?60f{U?@!^aNX5oWP>9(0JlTub zs5YM`5uFA$rb3d~*m@we@c-Jo)>yf!Doh`@?R~blrB{#^rkc{*(%u3Viy%?0l7fnt@?GOPYAZk@&;t%}+D25Qj52FSV0*KM1Mk^sv z|KKA;@mu?O&bjC8IWxBg%oAlP{`EnG=5kM5hDooI(UacpHi4;O@X61@g>ESy7X8PQ}-&36fE zjHhNZ7r9fF?VnAv==d3DD{EJgt_+2GfcCvK)+n27Ao1j}Nww1w83SjS52CFA!;E57 z>afYAA{nY22^gv?5SYSfxB;Ew?36uH%BHKNuGnvy#2yo^#FJQpxv)uvIKzBI^)eO1 zl!F4pcCgFe z?Ie@6avLdl>djA|h|qaw^V6pzB_eufy!nZmNo#(ZQw{Wmd&OdGMhsD7QFL>YR5V%h zmIu@T<7By6Ez-cTze3e;6-3`ou#%qo;R4&9*m2rv$|HW+v=XS(0eAbyjeRkmayy2i z*n{bK===#|6A7o>c;yMF+}Id3JfAZ+5a89_opNK%_`@VX8dknitmNB={lUhIost!#L>TjL%{`M%||a=aLXH5>KEa#iDtCE{_vZFydymWy3RQ8$B>p@$iroJzEv`iWGZj zjlEzciTYYq+wprIh}3udo(H?BQ4`i*#Ap&!*#Kb?;)N36QX#%Le?vhd!XzUl#p5Cp zcmOG{BuNP{S~CZ(l4`&ziZL~S#g?K5sQ&b<228rOToW(O)7xasA*I;N)vQ>f=KDKu zH^tSJtQ5SXXXI!?F?DwINX+;t=2<&Eg0|tSyFoi|? z9Q%2~k0$F8T;IzG4lHE^XC}^x=wLeKobU}f^bkwE3^CvJ5VfihcbFnb`a| zHcYGeBg;(QiY1QFB5u=Br{y(To=B%hOcpB+g9^q{4-cehqJCBoWjs-v7rZ}FW&6m5 zSV9ikTSPC|mJ*f>UcqPI2US7wNoxZu>5~L7|D$31s)A1!dcaF4l*Whngt_u~bGxWK zrMdl0a}!;e+j+}oX-JD!GPnPVgFx$IgNpPQBY-|B1h79E0b^I2wBH0pYzT$YAYhZZ z@^}P@%2Og>hq;Na5WrjR5dp&ihO-C-tN2HW1o>B^;VSbm;(dEBPl<*b&6UTaK~$a+ z4Ow#&U7>-u+#?!R5~~;R*ZXma?%VU`e#e8x<8aq3Znf_PMtM6v~ z=DcAIT1zDRd178s4f+Wro;(d&yKF0=!wq%E0GWW+91y%xQ`RoqvS>g%mR$!c{E=Y6 zu|~T|`ym)Kl^OZy%~TiLSc7I%sa5X6qf)RgH2CGK;(99DcPrt2$T}&={NZ_~J>!vh zD9clsE1^0opPA5GRKgJ)dPR%XTd*2dy+Bu9p^-`*3W?m;D>~JxGlwtAu-%t^)1>@; zGbu-Gg2I~kl%O!6>3gC)&=f?;t*-z-8Y@l5@r>A*8k+VN8dipsis{VIbR!2tocQ-) zzF*2OQW41kiH0T%RxyX@bcT*7ZI=U~OB$v#*Hm*Q^dFV*H_ztE7HAT$ra2kVplfAv zb(oj)R)Y~4%+2_kVajYXQ*bP|zRjcc9$r@~S;400k_0rx0606R2SD*F3k5ui>fntw zvc1hY%|Zsx{~Sr9P)iOIZ7e#ZvD;waeVS|jD3MV!Lnu& zPcMNDe9~;2ODO=Fkq1?Y!d zd|tY!4oH&pwP>788gZ83{C$E3%ZS+XE_xDNyYd#^hl3Y~YE_baP# z?8qnScs0N(tigGwHsfTAl`3WmyP=N1pT5{YJdxBNzO|h6Sx=FV8mEYvt=*!^`u&fe zh#h%rDu4?!jW%MA1dEBU+RCz8e3gt${nzk5q+r&CIk|>HX{?!_GFKjND-xBbG@~6c zH_??DjklbvM+bMyD;xwG6XT2K$Rc!%1hYt-gcCJlj+qA*ZwPyg_ez`b65Q&4Xs$dS zF{1JSVoX;EK5K5GE5z`Ydqhl^_RZJK{f-CC%N*`{<|W!UUpH4Dk5*oNH{&orEw8*WvM5dPW zJPRfsm^Y=BM<1f5C0SEW>6E$kTwjmTCOcFm=!G{4Twx?@MfsF^p&U5$LS9LdUTAOv z*p4Q-R=9&=Oej)T)uLD_JM}S|93!!G3o#7Q8oR z66x}j@g4yiV*xH_Lc&)~`Bxh$->mLkq00Jw5Bi9+LqbETvW zmFxVH{b(q^oLZ4oP1HXXL>W)iX5spbD(m+xlp{iQ?G7mB;Bcg

jJR=yEr}GKl2B z8hM9=Bz5#VSj zB4hid-iM1&BVikH`5I)%z48LV?77#7YI{Ped8%4o;-a+JxCv( z?EVdM>n$Vl5TEX||%U1+V0bzQb z^p`gl+Wr7Pe`*CQuorOp*S=kK|KqCrEY?f+%Og^9=wA34DZFD6DAf8l++sdGt3*zqLo?v9TIw750}fFZ?lHukM2^y(#=5QrKTdV*sJKWq_!P zF}3~CYOY>tmzVSrr)@-JeTfJmhPLbZyOd1$x(Sgz$c zS)JrBuYk5j3$0ostLP7aWeM=8w3=`_BTTJjDU7lS{W_`PTCIYUov#r+t+VDEj%#Iu zB^j0EaYaYPt#JBWOV3cz?mO-K@m{W$^8#~hBwGOW(s~arZ>V%sWTRa{3=Xq>f?{aI z#r=}V1Kdz;1)zMmnVVC8L89X{xj;Gf5(tr2kzV_{b=&;0hSdl>rin&IC}k#xzSGR` z&nSCd!=2u}8_DieW5Fvs^(m)W+THdyQcl(Z@|AiKG$0wndSVrBYbKJfQX}H6IypWYaiIiQ z5@@D2V-+xk7tn>WWqD|1V;;F?vsR6sErWT0xGd}TIMqxjcdcrX^R&bM3afr+8xq)G z!`TVuFG!JmG%-26tOvyyx9Ab!jH6Q^EsuEsgUoQ()ZJ}=eJHh#!{aO&wH4K$RWyYP zEPXX4^0-|h*;hc|`h%2A?wgc}eK_ovw?H(o?~ri&%KPo#Zb$y(6x>Hb^nMEVoQGhV zf>$Z{Jq4fKiQqF7yh6e6D7bJJg1r-=K*1vve2apAQSdee5AR0sO$yeX zk6?m=XDE1%f_GnlAVa~M6ud>jLl+`=l!Ej2Ah>{n7btjzg4{(2N)-H!g1=Mnp1lYr zDL6vGQ40P^!G9>oUyPta!7nLzkplMv2o@;#>NJ9{Q}8AQZ&6UX1VN30(R~OuQ1Al^ zo}}P5yvl56DWLb6*(1*EsY;vPv$W|6E}P!zvgs`un;x98>6&wU3k7t$u1#0)+H`@W zO}9+ibdi-!w_UNDFxYh&Hl0(o=`gEJ{`NLG<=f<^WRo+KO?y-}ZDiSG1hmOgXp?$w zlMdhVM}xDIk;`blf;mn!3licf#Drx&PM5(Ho)6TD*$iihs+#aD>*(IydxHof1vYp@Nlnpv5r0&zB5S{{`-j$j<-( diff --git a/docs/_build/doctrees/_autosummary/engforge.problem_context.ProblemExec.doctree b/docs/_build/doctrees/_autosummary/engforge.problem_context.ProblemExec.doctree deleted file mode 100644 index 636c53ac976b28ecf479b3c40bd804105a5c01c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237534 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 TEyal{t2nS&_#Q7F6Bhps?jgfc diff --git a/docs/_build/doctrees/_autosummary/engforge.problem_context.ProblemExit.doctree b/docs/_build/doctrees/_autosummary/engforge.problem_context.ProblemExit.doctree deleted file mode 100644 index c0a499505c05925d874c27631cefe3ce5bdd5fd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6947 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.problem_context.ProblemExitAtLevel.doctree b/docs/_build/doctrees/_autosummary/engforge.problem_context.ProblemExitAtLevel.doctree deleted file mode 100644 index a0c61ef69a2fccd99fb1595ae70985af4efd135e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7773 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 avg2EBViRV%6!%LuCA%yy&Kn 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.properties.cached_sys_prop.doctree b/docs/_build/doctrees/_autosummary/engforge.properties.cached_sys_prop.doctree deleted file mode 100644 index 91e354b9bad1a2ff0717f581f9d2222748ae7a19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4251 zcmbVP>uMy&71l}`jYgM|wCi00UO6&mV=eJ$_J@BY!i0chmLQ@)F8;NqUDI7N)mC>^ zyQ_M4hOkMN;1EF(0On@+{H| z{VXE6BL%p>{X0GSt_}^t|rXx zF=NVfQW@Yu{%@s;CSUt;#SojVC1LL2W8gip3?d z2ceX+Gc|ovkS@R&!*fp>Wa5HIa|a2r^zb7_^gu?yNoV)SRWe z%2-L$EnH3ILE#ucE1Q+95FPf|pRz1vn$WleJl?3w&;R%alh={?+;iw$Jg|dSg@KmOT5Jrx@bzUDB?0!R9R6tDl;AZWaJyu!`01*m!&Er!DN#05{Q$j z=vnqCAl=c@^IDueUE5hxA^u~BLFv+f=IX=MjkTNhm>dAnv;aPtp8*atCTA6!aloCR z)@@?6w)aXNt1^iaPR#?)&V&Vg-0+E`9$QBv?Yl5KE6Q^r?3P+Pbj%S z8#x0DvouFH_|@_Ic3AKtq85Raj6GoJy#>e)+bJ{b4}>v=z8sGs))&RX2qiD@{V{g- zKArRi;ADhB2;nh)MB~Ni(UT8>=dhf{YwAg|RR5z!Ju;OMUvGGMk#aNjZy@`}!sHnq z8yGf03MEFkt6h5vLgrDMo2>&;m=bU8v0g~S=8;HeBEvt(yPYZG{ei}JfQi1WkklGL z-Sg|Pj4~Co8rsuXU<8U0_>gQs*+YoiH&uZyKwonH^QIAys z+PO3*@@9&KRHRR-8wbwh6P_S{7cfC^bl+QhKgOw>h@*LB5k5Mp%6hX;>d!`yHJgT- zc5An|d`_Qab~n@#Brm9lMwTKuOcZ*$C(a3s0<{c^E9!SbA7C$?y}Kf%DbkCfZQ3qq zSfTGb9Pg7b{1)GeZ?qkdz;`%oi*IkWc$dDCzCm;QNPJS+!*0a9ibISgp@%?ikWgYa z=Yp+W39-pb5#fBIvX%s1_|}@RJv~^_IA~t=m+r3UM}aL3RrLGoy6PSDHI$85Ra6w5 z-H%n40bSsTzR~}ail;Z^b@t`>BkxDj}ZCDA)HA NDsXiz2s6{ge*t~*i`M`E diff --git a/docs/_build/doctrees/_autosummary/engforge.properties.cached_system_prop.doctree b/docs/_build/doctrees/_autosummary/engforge.properties.cached_system_prop.doctree deleted file mode 100644 index 7c1c8feb9c8754c41a2ddf875f19cc0cd2390d79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4281 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.properties.class_cache.doctree b/docs/_build/doctrees/_autosummary/engforge.properties.class_cache.doctree deleted file mode 100644 index 14bf04f59e1fabf5e2835325f355546e7b154485..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21832 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.properties.doctree b/docs/_build/doctrees/_autosummary/engforge.properties.doctree deleted file mode 100644 index e496ce6d5b09d763bfba1e2e24deb3a519d2cdec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21540 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.properties.engforge_prop.doctree b/docs/_build/doctrees/_autosummary/engforge.properties.engforge_prop.doctree deleted file mode 100644 index 0ef8f7646c4e3fa5c4242a641af9c0132fc17883..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19303 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 LN?jqG;kEw*Dar%i diff --git a/docs/_build/doctrees/_autosummary/engforge.properties.instance_cached.doctree b/docs/_build/doctrees/_autosummary/engforge.properties.instance_cached.doctree deleted file mode 100644 index 9ef5d329d0871c554492f2c87bfd26ba1c061097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20871 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.properties.solver_cached.doctree b/docs/_build/doctrees/_autosummary/engforge.properties.solver_cached.doctree deleted file mode 100644 index f88c043669d5d339a7348d865e556d3934b20744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20813 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 z 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.properties.system_prop.doctree b/docs/_build/doctrees/_autosummary/engforge.properties.system_prop.doctree deleted file mode 100644 index 170ee51a6364c32af2570acc585bb34c6ed21a53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4209 zcmbVP-D)Jq71l}`jYdBsY1g|1yt3CA$6CD7_#zj!Fd^WWC5R}HA79zDYr1QuI;yT} zcUAAs5H`sY93m)k?C-Uxs0 z$dn>ivkR7GN@v`7x0~s-F1WJ(YybGAf8o#EpkmLBuB()Lw}BI>$YoY>c;hP{?cOOFth8R7xIwaTOKiEF#+z%mEpx^Fbv{O&1M#9zBvT`m`6mflo+LT75%w`@vVUL1+n#esMzw#2E^qe9tH zI{KaAl^Ok}E=RwzmRAL{d1@a09G;H#tScL}$c$jR86~W?+SEnCs`+B;yPyRGE-C}B z-?-YW$6~|va+UE}2lN;Z@g}?!Zvou5@&69~-^Kr9@))31hy%Pi16H}3B4+Nr7?tqA zqqAH+Ds)y${;B{z_U_Hr`tLE(i=AuhSuNfZ=S!4e*&7H3jNS$r)9=`PhMghpBqj&O zwysvlwBIo?@@B&g!toG~me642)4-|+ZskV98<=wygLWOPVJk?Txm~<{9uy*3U`zPP zR}dV`3VCTtMj5kPRva;Z#yvUv3uynOp~TA{PKg%XQ73E4`6V$0p;OaGdh)8kG?^7* zh+LZ!N$!CBOAkL{LyWL4GWlV>s zZZEMqO^}w>crg)A|LT#MBx(*2LLZA$@fq0#q<%(71wI^vFs54BZfR<33+lrFTG_N> zrRcE6eaK|a454uec!E)vU;ObECa)v&Mc~hwc;E&L6@Ez&(rKA$H&;xaQrH|EDY=*x_Ema^=O}T^}nuFOee+UEDq-d{)Xl&8@!;2cEM^;pYJ1 zYbYlsWPA*!zYaPrLkF?mz5PE#Hl*PnKr+;tKr&O0`7#04TqQid>>O5+k*mmdbDu8A zmb&pGD%$D;XE6kWMaNlBu1rUa{^|P2zJQVVSFARRh0^D-umdNh+n>W$d`?At4&)A+ z&31i)6HOkO#i1jmTUmRKG|^**TMK6UTk`CufnL_(ZVKXP(~aoWJ>a<&i7lSQzV`hASaf&s#Jy%Kri?_7)ryMV6s0(J_ny@j$#u2i z_S!Q%!?LFL?zmxES2Q~$i%H?2mBfhwT_ECuk?DkHi!cLCs!*UZ?{+?AvPKJSdyd=D zwJmGwuf-8KJLL+=ZFNNi&KPD6%Zd_<{rF&lS8lM}YnF8-u{xwuNwWs+;^AJ5mAgC9 z+A3{%XY=ZgJET!e)kQMHgjIM*hSVL(B-I5?cm^t8j}k6W(2x+ z2Nf@MWfRGtalp6f_5_oQWzU`PSq{`Jdb4Q{^;|FG<9dqchLp}!C!v?K0+IpXPdPc| z|K^6d0!9f}sita*f>GPa`3L8r89iLxOn6o4DiKU&l2<^SOhun^M-l0cmR``}-RauS znhNo6H;hV`2DDcnu5PT|bjRcXh-L)vk)iJ&N~WeYn{vRNp~h`uV0QN^p6V(~GENNx z&(N54?RJoS6Es}Fk!K((pX4)Yo) zrr0k4$1z2e&G>JK_L;jB5fJsy^k*o#3?Sp&l5^6&_+$cLYWun0>3 z2z*R7pd28??VGwp^{4N%@X^&2fm^Ugr@5Md18r5fOLYQWaP3@P5P79$F%{`k>BfUI z#h7Qv-#JVW99{R;-A{4qCgEsWGQp=LRoP(nN%JuXvdT%UX}4~Rt7r7d<#uB&LGpr% zXka;#!zQtp2jZN-C{W9yxT1b%^nvxlySpn=njC`|+9rzy4Jh>ehU0w_#^2&w@r`i< z5`@l%ZSn1`5pU6#&^KsmABj(Dci4?sP;rQHB=!)fjS@=C_FS~JDQQ9V|~`wMZ1+kUQ6S!cwPDdqZJMg^{^1#woo_z(QMeD44N diff --git a/docs/_build/doctrees/_autosummary/engforge.properties.system_property.doctree b/docs/_build/doctrees/_autosummary/engforge.properties.system_property.doctree deleted file mode 100644 index 97c0e35218d045f4758baf7361a1d20ff05ab11b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26095 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.reporting.CSVReporter.doctree b/docs/_build/doctrees/_autosummary/engforge.reporting.CSVReporter.doctree deleted file mode 100644 index 35d1a8e2dcb3bc11b45ef6c66b2ce94cf53a20d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72489 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 ZZd7XRDrxdOq0wlSF7y*<#e?3d{}0Lx=d}O; diff --git a/docs/_build/doctrees/_autosummary/engforge.reporting.DiskPlotReporter.doctree b/docs/_build/doctrees/_autosummary/engforge.reporting.DiskPlotReporter.doctree deleted file mode 100644 index 22dc8e9d9463135d63f8dc9a94916d5d28a061e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74558 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.reporting.ExcelReporter.doctree b/docs/_build/doctrees/_autosummary/engforge.reporting.ExcelReporter.doctree deleted file mode 100644 index 42a6faddbd90c260193e9554ef3e04aa16ddfd24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72933 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�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 VN-q*DjaBH`IsseMyJ*kP{C}15=63)9 diff --git a/docs/_build/doctrees/_autosummary/engforge.reporting.PlotReporter.doctree b/docs/_build/doctrees/_autosummary/engforge.reporting.PlotReporter.doctree deleted file mode 100644 index 145fd65bc46b6ebb2534b49c5a8f13a70b998ecf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61567 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 NCxHY;@viO6{|9fCkq-a> diff --git a/docs/_build/doctrees/_autosummary/engforge.reporting.Reporter.doctree b/docs/_build/doctrees/_autosummary/engforge.reporting.Reporter.doctree deleted file mode 100644 index 1025492d3d267c5b92724dad46cef8992ce0adef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60089 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 Oh3={m7{$A^)BhhQ%tspl diff --git a/docs/_build/doctrees/_autosummary/engforge.reporting.TableReporter.doctree b/docs/_build/doctrees/_autosummary/engforge.reporting.TableReporter.doctree deleted file mode 100644 index b32434b8ad50a5585ed95b923dbb834f31c618ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60856 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 KU=;7%?)(3w&1@k6 diff --git a/docs/_build/doctrees/_autosummary/engforge.reporting.TemporalReporterMixin.doctree b/docs/_build/doctrees/_autosummary/engforge.reporting.TemporalReporterMixin.doctree deleted file mode 100644 index e5478840f750bfb170523264224bf4a739e892e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67008 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.reporting.path_exist_validator.doctree b/docs/_build/doctrees/_autosummary/engforge.reporting.path_exist_validator.doctree deleted file mode 100644 index db7560f35f23e9b4f1266b4dc3da5b827e822c3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4591 zcmbVPOK&7e5%#NXw;%1XXT}1}c<>7CjxDCUIV=(ytq{_(2V{+rcwLyG$gaxntZ`LV zQJH184=b?}gRqphO%5FRA^Z()+>ziXth5)t$gD?q+Xn5l)KX<+WMn+Qi2Ot6FaO$K zazC@DauLhvfJKqaBCf32jIyvyxzzScd-{d_+@6?j!LC$R79qE02^^t_lc?a*zOkl9 z>^e@=pgO;yc&Ot{HpfLrtc#5|_C$0|N5?whGh61A%gHz^CVWuvJS%i8Cxe`6@jBqs zSn1cnB}?Ln>8!9M1Txls$)}{;y+@b)(WRNA@2t0EJ!jBcTd{AtL1U;`HS3jq=VmR5 zCAa70h?y;>brFwB4Zn~dR^v#K%^P9DlmZdo9m!JvwHcLpyBM+XqTplVDb0pv6WX$3 zPdpJj;;C2_N9JmnN<9pRzf!zV!(Wv7@Ml`{B4s)b)$vb?EFWdlS=zAn)ex$yVZchA zsWMGjaoub!xY4_!^~9i1u>RTEN;wisrW4DEPiMm6BPG5AYsClf_IL6B5dY`+pOWQp zUJ*NcPvA2I3(+(`pnxsjbaHxp63gQ>i^_x_*P6HLom%t!Hr2&`QIr+y=i0JTd{6XS z|DB6xh!U(=L*9nBj5xtgk9GnT!}+=_=JM|OojS)-=@-Wo_7}%Uypo@~tRq=nC(A{# zE)3BzkM0uVGxhME%__>Zsr9? z9$j)vZu%*te^#a0AKyRC>i7(2YV-OfB_FatPL8wj9f7?kgwM{FU9=9IA5n*>2V{GK zBA@D7g(vw$ zaTNvKw*sAoXSFJv(~T zv%|d^Kmq<|El3>Qa)R@~N`4K19GB7$CJW|AS;}H*#lOu4{G+dPwCVqN%xxAj>-$!D zV>V<~fA(r}pW5QJy)ir0X1(4AM`e?0nD%5=(`r7FM3*V9X#(&v!MUrxyu}MYINXnT%@`$Km`A!`QY9E> zG8yDWHbH;#V^l|HnkDvZ$!yg;Ji@Z1`<6{FEDIXaf@UP!sVROmLu>SI!nC?iL!28w z$A!zC$eQ(EQ|DGq^_ump)Oo4xx!5~5-3gbxa04Y4m@K){EY0n?+4dI_l3ZZ9RV~XR z!D^S1n}#~t#l;;TI&(12GA%RBXEx84%`Q#BvP^?1hTGJF(xaZ42Vs`daIGNniKp;{ zJ4$dBV~VOrOWar;sAkP`v*SY@B>a-YeJf^5ute9(j@d`-;Wdp}N43;W#7E@>*Y&Pg zA(33*C^$<&>B9XXC!_42O)r-4QNSgzkW$ceOFi!YuHKEEiy|um!DN*10v;z- z0W48JA>3x~}EvH`iK1YDH3d1yCba#FGh zhsO!qSMXdh4+|bk^!m*AJ1Gx&x5)!!QC@#4v{4FV0yo|B{a~rrG@M)eY9?YI}SrY2tGFCCYc_1r@ zV#P)Y8B%GvQI`hFYzM|DV1}zRuF^SVy+gA^sn_kZI08Zhk%FsD%hbSWk-KjXtw}jTYdN~||tOohD7MUF2 zO*gdWF>yKtz!_+sB0SoSt32<2`2COJ&t5SO7sL~#75`B!9>vNiWiNO!h`AoSI{*Mf zq0k>hCDLsdVuB z5_PTMsE2OtmqC(+ta9y9C@{x{2)wU1c-grSr!UGJ{eWJ_?#Wx>zzwn|3u8G(4%EPK zKv1E|(E?wbQt~Dl^VLYt(hG~6Nk=?F31346!7*;!n8zWwE&`4=mIQdn6VN)f_p7Hk zk~JB7Si3Q+Twc=i)@*t>LH!~X(b8fRhYtJ@;}T~dN+Gp0@D&gq(PQ>=ObK&TYWI!| zY2#)=lMTInT*2HJ{gYmg4!4`iO8k%917t9P6V6V#D2?li00qb%ze- diff --git a/docs/_build/doctrees/_autosummary/engforge.solveable.SolvableLog.doctree b/docs/_build/doctrees/_autosummary/engforge.solveable.SolvableLog.doctree deleted file mode 100644 index 27a359a4a728380d682380864e2a7d91ef843bae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52544 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 Kz#~40UHn(F$@LEa diff --git a/docs/_build/doctrees/_autosummary/engforge.solveable.SolveableMixin.doctree b/docs/_build/doctrees/_autosummary/engforge.solveable.SolveableMixin.doctree deleted file mode 100644 index eac607f06851d150a1950f97c906999ed766c4db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200800 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 U4%qKg|GeRm(=Pm5Ua7SH2XQlI_y7O^ diff --git a/docs/_build/doctrees/_autosummary/engforge.solver.SolverLog.doctree b/docs/_build/doctrees/_autosummary/engforge.solver.SolverLog.doctree deleted file mode 100644 index 295edb124d4876db1d2b58439ea578964b5b98b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51784 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.solver_utils.SolverUtilLog.doctree b/docs/_build/doctrees/_autosummary/engforge.solver_utils.SolverUtilLog.doctree deleted file mode 100644 index d56bc2482f3f90f1265a192a6e68cb917235e4ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53306 zcmdUY4R9RSeIGy)0C5BXl9CwN6vdM%86XXUmOmv}l%-g5B2%VpONyPE?s0Lq!0z&H z_qe-90CH7Jv1O6twG>I`L}`<@V@=hO8^_K#lQfE*v0F_hGil@0>7;4nPF**aL)Wb* zcH%nYB<=72K6c-J+}_>-5RaM>`0nld_`mYRspfwt{ z)6l(cu(RRRJ1yPzyU%owJlcJ@I~Pp4+N$St+`8TkMv$Uzn9YW(+uaX!gK0|cn@w*) z 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.solver_utils.arg_var_compare.doctree b/docs/_build/doctrees/_autosummary/engforge.solver_utils.arg_var_compare.doctree deleted file mode 100644 index e09908f3f7173b3d32d549f08218d8de8d283eb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4382 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.solver_utils.doctree b/docs/_build/doctrees/_autosummary/engforge.solver_utils.doctree deleted file mode 100644 index 5b818942280e2594dede09b0fbb80be46b2ee2f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22543 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 Y8Oty!Bf`vt>V6|4va5K(k6EYx1*%Y6H~;_u diff --git a/docs/_build/doctrees/_autosummary/engforge.solver_utils.f_lin_min.doctree b/docs/_build/doctrees/_autosummary/engforge.solver_utils.f_lin_min.doctree deleted file mode 100644 index f0083a147d9798955f79e227edfa9b474353d756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10452 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.solver_utils.filt_active.doctree b/docs/_build/doctrees/_autosummary/engforge.solver_utils.filt_active.doctree deleted file mode 100644 index c177923d2e75714ac73b999859873b7e4934d1d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5209 zcmbVQOK%-X6}Dqv+t-ilIFm%6iG!nI7#ni$Wh53Tn!rfIAR#Lk!~h!-n!4R}Z?)ZB z)ze+=#{xtaL9tZ3X%;N_1;CyKuxHPLU%)Tm2k@P$e%f(nCYG+%b?Wq~^Z3rA`ggrQ zOl~jOKeL@BB9vz%76eiSJS)svp!_`MQWu{U2hWS&6#J&1veQiEsm}|u01jV-QIK+3 zJS)tA*mW3Xqw@XLjQcuNvVL9k#EMvbR_u$u>FH2MytQTC;c`Ax>70);6`k<(spq84 z!bm^$7(|`$f?mhl%Rl31q}G*}7FsVYR4=_Koc1dTgRZ&|JErf|#)&1fQra{z%TXwK zG0CUQtTV0CaGGoQf^1(3gN*E4^&^&LAmX_vS?r$Hf;?#!Q|2G1d`3LES=DS#TZPyb zZ;MTFPb`UD^XWL2dhCyXp7Asrf08HTA8XCinCZ~Z_I{A6WU9{Ev~lI1F;vgS9?P}L z@;GMcdA(J-uH}T%2ctBD-S-b~^#IW(! zMBGPAp!qV8>0eQNA3Fou@v;!E)_K}N*845_`zI`YxEIPyKimU`Qsy0>KAtGaAMORS zNI(7|i!y#-aYj=6R;rC&l?0+^Hd+E5B=2@p1qyf3-N09z;38v?74yGz1W0!R$bdvK&gfawO&iB;p)dB6s z?f&7S4bd&@GNc+H4?ssDkk|6v*S|;rYX7^a*23C?mLSMEf5B{3!S^nQs^Pk8>~j;E z==#u@MOm7g# z6Q{3K?fILjw$;gk((#RwYt^>X{;p{Vjk16G(#rnPLS?58n@V`fv`X6nUVL1giKphU zzg~ZsSyWfU_Gd(cj_aG1P}=g|LgO-}eszpnG$;M@H75aaGnS+Lov+ z)n10`tUt{a^^gmK#^0SX{0%U)-qfcnQCgKSH{YNdfXG?9Rbh&D@{@-iF|EnYZbKH$nzp%Ss&uG3HBjTY)AoA*(ge7v@ zM)y}RvMkBs8M-YBB9wD;74m3w67o|Y!&PCnt4EJXUvzN)dA+!g!9p|4NxCriJ=buv zdIIQ_aSSM64ue8GF)MgNNiWRk%S{f{YmRmn7Zw`ZTr+F=>H|g-14bnDv%;)XS5wm? zOn*hUnXNc&3v;LHI-LOl>e|@~Gk{r}x1$D)Nvw>-9%ujUlL;GPSYxiwQt zOEi+!=Ha5*qC1w%WA6-Cr?>!RKto&N`6{NXTLzJDI|`4urFf^I7G8CU!HMMy<*jC7 zHdAh!SHw>^+;_vQ3x-BlE_-H&pM~(6#+;os)Ly`+`5ea$PFX4eC~%~l#h~=zexH+3 z#Y-~?C4A&@i9$%QGyPo8hTk39(s8f5>G3pGsVA5WBA&wIq$;Y4*>;|8N$FWBh1tEd zb4kR}ZzWwQfLHIj1iG# zJlbBFcrtwV+uwmd2kFeeB%UaZ_-|C=k*tg$d(6{O$o0&gfdViVI*xEyU$ZH)DA1xf zTr<1CWbD=HSsUQFTib=XnVn0`&O8y$MT8&lyBsNk{-&J|y>dW&iCLkU7rjXNtaR8`lpo3&Fi;hSTU08te0qs5j0wDvVlEr$ z1ITd!%*0b3AcfDNg5a1nF3cStT*n?q4~sl}CZa-%FugQ8<%b@CHJZ7yc43ydJfROM zX3doovr#)sCJOx8;Yx0O^Ax9EFm!;&Xbp zDUJ_mfM~~471e;SthX-_YwmtWV!t}ozI3Z2AN4lXRN(JimR0Vc&7p+&DyITbmO=>K#p;B){0 diff --git a/docs/_build/doctrees/_autosummary/engforge.solver_utils.filter_combos.doctree b/docs/_build/doctrees/_autosummary/engforge.solver_utils.filter_combos.doctree deleted file mode 100644 index b1bea8a8705893005feb6da7278316200379ac03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5255 zcmbVQTW=&s6}H#c@!I3{W_Jb3dT|sjv0?2=BqY!(fk+__$XbI4@IscRrn_dU?e40k ztJ)U{5D{9mmg+6V0}uQH;GGBHop&Di1^j~i0KQYz-7`I2Z<4h%R@bT1r_SX&m+Idw z{qfg#=KP=C)P+dp`2kB3sS>W8T}@P6+x7F{>4wsOox?$Kgj-tG|^=1N}MsRLB#WtWO;a6O{!wD7_#`JtcK&t z)Z4lXf2DGa2-`#1l zBpx6#(0&mZjjt%bi=960L^_4TO;vU<_U+CIyQi#tw3AA09_;{4C5ukZ-aAr~KiUak zi&E*=dmeQpyXR&5NH$3!mh47HY=G#!S!#_ym~t4xA538#fA88=D8BCxKmx)L|HwOW z=$+@;V_h)H!quYWK+h?6SPhoX%{h;l1%TG#^O8iFuqHySWRvq771-Lw9A5}@q* z0NHuz*mN|=?Z5KjpA{VI;G{=O+@_f-3uu8KmH zCeoi6_(xENzXFE(-D-6uQoVM+v1f`hG3vk98+8q^{sZUzwMFeUQTg9X z#QyyXUMVId_MffTmj>dqmk9rNNBHNs9%p`G*T0<6elK;Z9!!S)5XCFkN9qV>R=oEI0 zFkns-C!W}4JfX-t`}UWeEvWw-Z_UrmO{@zIZpvHlGMXtcMxn2$>&D9<8P2IPyXOA=Mgou)Xh$(-re(E z^8>LR0s+O znKq?rXbm4pqVqI22E9L^_`5#yXqLTV;AFhp4+F%$pXB$0?{TCb7DDQaM`577zWKJJy?A8rV9Jv^!+@=1RFrCr=_!o%OGX)%xx+cT*6{EI z%ZkpMxBa*(>EaNz*M#+k60Qpv+=6>>bK0Vdg}(}oN{^q!+2x;6JJ4+#v&*V7MP=NP z*gUemF_(3p!y;j53x?%|JF+*!fmBXTuw1K`RheP6LCB_y2JPbDr4TZEd!&?+Xf9Km zhx2xWZe+5`qjOxeatBJE#<_xKce?0lh?I!ld+n(GcutY4__KSy@Gh93^KtC_T78=46z6Zu_Z( zk0LHn5D9v=SDDfNclLb&x!>K4cv-445=(iw#nvm=bly1zqRbE6b1mRduNKw5?$ubhS=_wxE z6#faR(7Z}igj)r;Zt?R%X^yMU-2GVRD#%RkE%643H4dn#+ z3n-$MrAQ7Fg-ON(XA4RJS_btMB^#DU_rQU(kD+68Mk? zh&GyG)&jz_-kBk`+`W#(UURB{>2^mx>TPMLz~7yfRqvq9p@hV$qBM8*W~{Odo`wx* zBP$=&^iSc3XYR*H2Mkq6EVxwz0O7#4l61&7Te6Sg%~Zx&l@Mmel=o{16}!4Fgjwt0 E|88LPng9R* diff --git a/docs/_build/doctrees/_autosummary/engforge.solver_utils.filter_vals.doctree b/docs/_build/doctrees/_autosummary/engforge.solver_utils.filter_vals.doctree deleted file mode 100644 index 4f6bdcb2b93e7d78b476b2afd8b927852d94351b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4809 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 CFZr4P diff --git a/docs/_build/doctrees/_autosummary/engforge.solver_utils.refmin_solve.doctree b/docs/_build/doctrees/_autosummary/engforge.solver_utils.refmin_solve.doctree deleted file mode 100644 index 374071efb020666609ff3e199a79fd9ea6ec0019..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11667 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 A-~a#s diff --git a/docs/_build/doctrees/_autosummary/engforge.solver_utils.secondary_obj.doctree b/docs/_build/doctrees/_autosummary/engforge.solver_utils.secondary_obj.doctree deleted file mode 100644 index cedf6046a5ddff58664304bb934fac1b9125137f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5949 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.solver_utils.str_list_f.doctree b/docs/_build/doctrees/_autosummary/engforge.solver_utils.str_list_f.doctree deleted file mode 100644 index ea1190e95f93035bad2a3871380bb1a8de9f00e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5504 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 V0maOe^1dGs*p;|I6+9mw{|{bmJR1N2 diff --git a/docs/_build/doctrees/_autosummary/engforge.system.System.doctree b/docs/_build/doctrees/_autosummary/engforge.system.System.doctree deleted file mode 100644 index b67dc1f7f2c8fc249fc921675735f93b38b5cc68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495443 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 R5Z+W86n|OZ5g)uR{C_kTD{cS) diff --git a/docs/_build/doctrees/_autosummary/engforge.system.doctree b/docs/_build/doctrees/_autosummary/engforge.system.doctree deleted file mode 100644 index 68fb75bd80ccd277b61597ce8d47ba2dc76d0a23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19415 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 bb~HVFLjJBzf2j(8I|GU5G)F7WL#zJ_L`r+A diff --git a/docs/_build/doctrees/_autosummary/engforge.system_reference.Ref.doctree b/docs/_build/doctrees/_autosummary/engforge.system_reference.Ref.doctree deleted file mode 100644 index bdfdd2c8a61853d93f0d09bdb22d5154abde4ce0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32499 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 SmGGw0pvchzkN7}#@&5x+`%_Q= diff --git a/docs/_build/doctrees/_autosummary/engforge.system_reference.doctree b/docs/_build/doctrees/_autosummary/engforge.system_reference.doctree deleted file mode 100644 index 61465c798d527e916b7b9f2f1df018322568765c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15678 zcmeHOYm6mD72e%>&(6;5F6;zZ1{;yxL3Zx&P=RG(C97+2Wr%=gL%^nQcir3F)3>|n zuHKo;BjN*Ow2T-U6G;5&Zyyl@k`Uyf;vauVeE;wX7!&=a@t=OD`g!l2`x-Vl7&Z*I zySnOB)v0s7I;ZNK2ge@2>iQk>pO_1M({k4+fRf{=a%Q@&CM}$+?=>8UNon~7`M2? zN}t5}%&phFpw22`Gvussry8&t195alt8QJ-RQI7c8SA*Op)rrmePT+@ zr(%wX@pJ|&V$`u*7OzBAO-yT?2Ua!Wm^saK#4x1(G;Zmk^5MYq ztKNFKY&qk`GKL;5t6IdpFlsckpqYP48CA@^5`>uVg{O8!Rda_Jvs{C%msp%|-+VXb zXI=z`UW~s>@OK!0m(pCpuE3HrToj|eW(BdhsNorr!>&`Z@pN<=3ni(u)V+#1zQSWI zGA}ciN=$iR>rBbIT25r8!~(y0lsJZoxOK&=^%%E#AyytzH3dP@>Vf8)C0>b--Yh4s za8EH<4RWGzlPR~dnj$4a(Og3zakqF=X)tbjMyNo1l{GI|rLNa3ZYmb9B(ghy_UNVZ z4L;tO2-k|7h}LyoiS5VD1@i_-#?FlWnE8hir8dV-|6%8j9hlkSP=U%|x}jBfnL$(6 z1Ez7NXol(O3bbW4RH}@xG3H8kB-{^`LyGP-e9wgdg~W7XRr2kKWE9@5K=C2wEZ~r^ zigLSYg$n+QLRO0$$vN4VTs5Ct4eMU$hUZeFs>2##LWnq=*E5<>G;7mwaXD%%QPF4X zxGKsCnrkBpIc7w|FckDg1J9?TcvTw^7Am@_x%E_@LLz-cRty-b0wB>8-RR7SKoN5y zzIlFAX#y#gsupIvpbvh)&VWmbNf;McA*z!kdFVJm+c097DPAz~C^VOS&sR<>XEX=p zC=R@+ZpyyBGLJI(BT90t=uvVY!kQ>yr0XmUQ$alar)07J_}~-oEcgHOau+yp%kVfc zvMEk1C!$j+G(^{2QXfq@k?H@D+vM)8Kv4}#?*G`bq<&}HIVsW^OH)=^6JTjn2vjS0 zQF3A#dIun^YmTD<0gfmZpf`O<)vpGWbsQQ1BNc&S8j41G!jyo8k;5~c&)Y46fVZZG zj9-6Jb3%40DI0VUmV$wuSvDL*|$=o*CP0?!~lBfYyRO<|5rP0ba%k?9? zr+cC%l@;XaYhs{jWst%bIlizmJskovn2Oiw>CF2WYiC@#dXO$&$Ik4Rq^odrCa~;7 zuKFaJtXT#(<5SbL&`)5YzYbY?GBeoviA{;X9c2RKc2zy2x#>Vh0&i{84`bvObhat% zM{)I0Sluv|j^3S#ka8@u&^!EvN>=BFyA#gt5HmjD7u$lmj+H5o;rZ0@n}C_k0?q0C zHZLYKdU2t&uXI;hcs8;ZvCD79V%%>oVc;<=AA{#F!7=P=RRdC34W33U4h`m< z#qge~MMJaP*nCw?;EgwZc+w*@0tXr5{v&0_cA ziI3z8)`rWy^sKFFrfx50-P-2?_oagUq_b#V%(b;I)XQF=hVo!zGv9O3{CR)nvd;&N zUhK^E%lv&=aqPorH@NPYubHo#Z>*Sq6_<8bg7%5hB5e;{u;=@5DOCsiT3QjQKK42E zIG9q{dnNfEf_JLCJp-WL%(kDMgq&5HIp*6prSmoyHWSKrd2W{|F(mmO7;>_VA=1F!l8K+e$JruRAjdb-*}koiII z!NUN$AnSE%!|bjOZODt}#Y`$GvT;ct&Y@Os(k$N#8e7qa1+?3WJ{;<+56LXIkxf3+ zheer2EYor%`{@)t4yY01l6-fK5LXO+oRw{zTWDFJ?eTODZ>wGM*wBnW>)24(*ZG-Z zFJQPG`0c>_n_TYAfbnST}*Ks;lbT~_>hxJh+P<2gHLrB>C=mFyIdP=m4Xn9Wv=|AT8)!>03DF!l`xlN@A3b#$!aQ;JhV9 z?XR^R07B*UyAM3L0svS`xYCOK3&{7w@rwP+^!Hck z@2}I}-=x34mA_0(Hneqv`M6~H*njX(jMg2mii7hBT|;OEqSjX6b!clvNED>heg%!8 zBR|4VFKM%1Kn43ns)a@`$wqB5=43~%V&X&^VJ4w{zIZRT-hU8_l8>!2Y(EX7cr!=Pp4g;z*+y=$&drkhm+}V|r~NXB zw^}~-PdkdbMtRt;qAt02?;Fq=qWxYh4PKdGg4w@IdRejmi5Zjc^Dp_!>_6j!^lI$C z;AzEvP5%FNSsfysxiN1H!>Belrr=evj*I58B0gy;vAmap%p6CIRhn>8RO$#0i?u8p zg;Z}EuK7q}*2#cMS8#*$BK!uH8hr^%b^^9?kBaZCU4l$k8 zVFq3!>Tjo*)uVv2hSWSqXeKL3a)rbsF1k2k)sP^y4-rpE##1fuT#gtv1eASB#_Hz> z24dWcID!!46>|>y&P$|oZ zz9L-p8L_|SdEE6lD;1yGDfUpxl^ZqGbtFnOVwB8MEVYl=Q%Y3eA&4DJN*IzVs6?ei z6*bFpLSJcv)G1w|+XnKjR0oL*VB9V-ZE8;bIwtn9bqoALzCjdbmBz%F!KzUm-OW-E z8^!j4F4Gz)nF8Z=M$3Q3N1@1YmX5%d8ohS(c6U9PRG zrd2l`{6T(4>1Z<+Ga=IZxOz_ny$->sbL4ySsyZG;B+ER+1zZ4OJXpR&-@s+bLbP5* z6!L~l#gzG#DGqEvdOY27Ymk8q81@rXgi*Dvp4A}Xbv!N6M#_*}jUh9QDl?$MO$@|0Bu8zF!u~)T8ha8PN2UKMPw*iP!5im zbP83Kv)hM3L9{rK6=H+KQUY$Vzoj(Ey+kpn)$$jL$fdMRluuA$@@$Vo$L$gPFBDT$ zOhLC)Nq*P}&5Mu^DZk^0?ilg`$J4mkjx*mpaq^g!ZDrYRg=EVRA-eG+w7s4|UkESz zpQksLv;88mr!13_NqZ1!oNSR`Tv9^NlhsRBqg+DzB1<8|jVjU^TB@GgR+!hGYNczzZ?cxIu6rKadpc#}g;g^2e~c55>1a$&uO# pxIor!2(eB&%<-|Mcz0ebC3AOrQV&h2Q|j-uK@gszU1I)M{tFYbxZVH& diff --git a/docs/_build/doctrees/_autosummary/engforge.system_reference.eval_ref.doctree b/docs/_build/doctrees/_autosummary/engforge.system_reference.eval_ref.doctree deleted file mode 100644 index e6ca74ed34f8dbbd39b7ee3611cedbbad98f1f73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4756 zcmbVQTXP&o71nLFT3uF_92-I`M+t;T#=Dyb9w=9eqAK`-Qdv}Sdr8dDJJY*8(#-TQ z-6O3YQbitYP*p#Xh9AKLzknaY-{6f$zSBK3d$SD0RclY5K7IOJzH@2+q4k&B!xi_( z?5kYF*`&{+D3cLa)@(&GEK{Co`?Wp&%6@52Os8PiN|r^)tyuv_DB>h4cxGQ((%Hj+5w_PiW2v(2Z|uY^@xM71N5dh)-tx??WTrhoRyF`1rf{eT3h~_??o`@LLf(Q%~ToI2$8; z<`aqxNk2I~K8dsAR7PdOk84Gjv^llr!#g)!m`Ruwo9EiHQv5*lrVcw7j}aE=z5#fK zORAq>r%OA5is5Zt7IW}=ztJ>gSsXFVpB_J9#aQ8=Czsc!4p}6l<7BvS)wmZevsEAW z2z)q0sK5n9&wOOPqHNBWCuR$3^_*B_7Swc~e9p(6Nt!%UIivL2$_ox)TyaZo_!*=> zuWN4@r(C1X}Ki(qv%?3m8|7`Hv8O^(Cndms6?h-U$#}c`6OAz`k?5HwayhNEsYMJ|0 zPe!lnU&Z`7L}RvQzy1tZ7K%9}{kJ0CL2=c<1lOp;fiKpo=^aZ|0qqS3;>d~@W)oki z5Z3&^eaF?We@?CQ)p5pKpE7DTXs;-c)@)Oml*0?m4tBmeZhC#KdABZOOYH>;yWWfj zVzx$QlDIMf?Y9FhL-M;uI{Zt#cx^EN5Xl$h?Yg?3oH}(s6GuJ>Q2Qr@8dv9bT@r^f z)3ZZSJ=NTq7!=)q*Mh{+lKsy3wfqJ(e^h3EWLmI1k|~Qbd$GB?vSQlsj=sscy=c?Y zHIvzOCVRfQ-(6dY?olJZvA1To+N{?H;HZpK4by%mYg)}mlIT9gwMMt_@cpsN zEgEi?44iiSo^LxnK*c0rFSR`v`{$-J=2_Jwu%J;zX_n^p-0b)Z zsft`;xm_*GBEf2p@Jw?j?c(B=512U|NvSib`ON0os@bFQJS)>+f~h;TpmeGI=Rqh_ zn)($)zUL`C;f@kq$65sS^otv-1JyWuZgvZv%R&bUzv6J;n%NdCX_hT>z$Y=hrZJtV znhCu!;=^)`>$=yh$N(vD6r81?bm0DwlTr3hrW?U+_>CQ4sN*V?xhD8oAHSCX#T3@(7Q_5wMD?JfR}j zr8ht@C7Cr;Ym7-{ng_0dNL*cp^O74d6WQee}r>;m>X{3Kzr^Wh(yrwRj{eBgkIz zq91cTa(AEr41`V-T-MQSh%Abmm`R5`LJHqN1;H_D+?od=xGn>ZE|vuN z9|kJ4PVIy0{|ErqWaP`*ty$;U6}`aCmMvLdo8@Eb)fakH>N2B{x zJTJ}OZ1kMCy)Xs_NFQ9`DU_r&pVxbq;`xvUh;}-ZNdpMS`pyEe;qJ^y?9{iqLx*$n zQEv-P1^&UJtZD~s4kaX%B^3y3c0!pX@HA{d8)<)5(Z7ZtUfEwD9WX~BvEWt(0Qd`= hN-{^@X~-^yJ8>2!Wki@6Q{Hb!RP3s{;K!`~e*h`UFxdbA diff --git a/docs/_build/doctrees/_autosummary/engforge.system_reference.maybe_attr_inst.doctree b/docs/_build/doctrees/_autosummary/engforge.system_reference.maybe_attr_inst.doctree deleted file mode 100644 index fbe0d5362df6d20b9bed7a7789596a1b69b2b3aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5138 zcmd5=TW{n@70#`bbS|A_c4lC;lcfi=Y$B%9JRm@$T@bL^2Lg@6?P&(9+OF<$V!Mp1 zoauf*0;F9{q~d7{{sH2b@HcovNQfW7cdBf+yF&(P#RH@1$Ub%IoKxSqmVev%OnZqOW8Y?|%r zlq0j1#2L4va?H#g>5s>y20DbsW*jLx`A(QHr9i}UCu6C9+KtM5@iJ!NHO@mkrPhP zz)CGunWn6mH%k?mt7ted92OS^q51CRMmZL1rW0oopS9fLJtn?{^NOc{{44mqhu{17 zozvL?UlF?#p8>Tvo5HK+Th3t%C1>aTvpDOgGAa|^ug$(=+qpI8_b&P%Sje>Lp%1_oX8HU%L5!1T)4rVCe}cP4zKhTSuv$g*dBru01LAC6?k&s`pnl&+KFf~w9|(J@CW0({y$zDutX0yzH2N8?D4 z;cUtAXJ!{>4xAEH2bk?1`BFf1XKC_W<%~+iZeDN%^9{G;r5{52$5pKV-+AeB-MQ(3 zgAr8$*@@gsVkAck&*N1GH28ZjHXGZUHnGVAzh(|=X9ugUT5vr!?s?&o^nRC^^~|z1 z{si2T}dHF!a;=4HdKhXy)%7 z>L(2RII4r5_n(a7qMZM+NEy|`^jel8a`pX+M z!J!jYCOWubNy(SBnzvM$=d#d&LQU4cE+uu2TSETN-Wa}=UvF^Hn;Fg9DNKk1I#tlb zAYKu@PF(sxbFKL#ud#gZfbTPx_IziEaBuC4iU z;A_2V8quAiie8Bgab(5FY~u+9)|zjAz9#1C%U>6V^wp~c+6Rm}7g{z7m^FJ;#^m@4 z^NC%qUfbSmYu>J#!JQ@ryIsFW|1rChGD%z};}Cm+mLb8fl@)&zqfae{3L^P}d9qTA z&(59IABj`%5?KE|3N)7y2QDK*nd$cYRS!^z;V!v(TCiNSQ{}SY=pmWvYr*@#v>)TY z>La%M5~Si)tau+%Z+M~mv3}N~ws-nib|cnf^FNijNUDF`pH%HUpk(nPEg<@b zhiJJmt#0^xjiuj+M%D@i7Y7^p9PMdRW`06l34%zbEY9rJ=K9*2*+HOC!?jmi^y>Ov z`#qBbKQ!H%olMq`y_!6r0cmb;%|W$Tzn_4kah8o zc687zop3Qj4g4T8KqUA+eiWlDE01(EM~3QxGB1g~N(g8Hrjjn#(g@-Z?81$W&h;Wr%cZJ0g5(3z^&jyd78 z7^rE?nQB4pM0{LMp|1Ce6&WH790g}7C|$rGaypcKZF+GAi~`)pWJGajx}}~BzCCai z^~v&Lz>7i_fnZsb@B)aFsVKJQ$Rpj7(s5F(IbB&<5pnf>O1_?#yRf0&{bYGzWwSY^ zGa%NK07QwKO%D^6O-nZAK%5%i25zzDt%8TLh=Pdc92cQ1q?--e6LNBb#sNg)2(gN` zHKX$1qZ?PSAejxcGt78png>k?0$4|gQOk>rB_#03QCx77`xm5K@iLMDW@vC7^I0wx z$2D!S(?v;$aU)hS%}J0IM6qJygbq?!xl^YG((C|-Q79ZP&%l0Iu?3Sj!QqhkkLii- zf@lhqi##J~5nR5H>wfc!5Iu1NMuOIeKuqE^*7nE8@0(uE^TlO}4s$@1F@x=t9OjEc z>s&n_4nbBI`CJQ`UEr!ewB`|UIs?EN;Mx!OXm@qs`QW{;e*<{-ib=R4o+u0PU#-O> zSs8`wH7_n=t|v|h3cyh4G=Z|NW@BVgq=miQHK&NlG-%SZDUyM|z1*5(HP1Ag1tOk` z1V6;@Rw60%58OZ(R1@86%ujfd^XZ|iffCQNyj`w3eRDJ;F!g3&7%-p*8xXU zO9Fh~p+XDSzcwe;7a9a>GVx{Y)@<_ZhQ4>0U0+U+zX(P2wHV2v13%%pz&U|Y2rZ5J zim<^TOy%1=SfbMG%#8p5 diff --git a/docs/_build/doctrees/_autosummary/engforge.system_reference.maybe_ref.doctree b/docs/_build/doctrees/_autosummary/engforge.system_reference.maybe_ref.doctree deleted file mode 100644 index 4091571dbd30006d56208cae3b79cf57bd538bcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6782 zcmd5>OK)UH751xbx1VDtGa}45bclwr9orow7BEVP5YZrIz(~ASGhC|gt?s(*`{GvJ zvAsZoNEyab?Q+AO1+YczS+HaUiiBA47l@PvTlh}ZeRa3p@eC{&O-r|4=hXSmqs}@0 zdFvzj`5E(1Z^}gY(b*C6yeRg#%=NMtyIII1m4BG;{UZNazN_0QJC$*kx;)o2*x?F4 z@KPS-k8{02+m#>4qvHIM3|=}bE$av z$VqvhgSg9&LU!KcW+Ep7IKS`%enuCYI5snW%uM7Tkgn^{W#g=Y6m4ISiFBWng z>xICNcz&Gqm|kH@rG76{z=PzU_dQ9nF1Z1d5|j9DMJ%*m%U+h$gC28FAOY>k^pau& zTFS+yxGmPi9WgIbl(@N}kH@_p_w?U8Q&$GUdCn^KKd^z4)v-*DW#X;_9;N zuuR1=3qzKkS4#za<1o)rWIgPt53+A9?(&p#rNN@dZdKUIWUn<98Rod-&~< z)BrB^jjX%C%Z~=op#HK^4w2v8>+JebCyc!;;GOcS6ZhH6_3KwIT2&LZTr3`|oMqw- zaoE7@moJW4$+T+?tbtH+exCq^bkU#__piQt^LnqsL;&LgoW-3$aThBawBkq~npasm zV(jnLpt&qM=rF0y6aMyb9Pxurm<6i%?Df!)2lBk&Mv*?`$kDy6)JJUQ>NmyiQnwoB}aVK%zkw>Gd&wm zqLM>cV%OG-eq^42h8--BXO?X2pyu?uDV(6tK7&6yPgs!gQLg$WnI%b_Dn}xMtDj~u zy)zet{BP`K_=qE3Petu2d`u{4ftD&M%%GOyPghHEg>wD~v_7h|e}x+UGKK7~Cv;9q zAhN%$$WBH6A5)0`VTAZ+U=5xxgmo34C$Xlb3Trc{vHsVTdtdGdpI!s&;lk|9%oNI( z!%dX02lsG$I{oKD9Bf|%@s;`+oPfM#)=JEaQ3d+&jp?_)6!+mh9J&tlUz<++Qs_(K z*F^tY(^)(Z`UU3~Q9#S&9tHLd@82(RpWUy6@bD+o?|eBdk1Xc(!?Hl>PD$SmYPCkw zSzNAG%i=}kU!bIGLj1Y?N`CsRZ})Wi?Jfu4{c!;13YOxQrq7yuKArsK!dvp!7Jm9h z{R+J!zC$mjQ{^`pB9SsrnS+pCd9a z|5>F;8wG=cm2j2oFFLjYkyS}Fk?^Bx!vWvR#j#$*7n1*6zxll76s5Pr-;)L^32pw| zKWfUq$q|muup+q|F4N(~9qxtiqy>qT#DXWx;x(SyyWhV+Fz1+`&z@&(fV8v0f zOV}%!5C2T}Iewa>yro&2wXar1!0w(&%HI_`RvEbZH|WVgjGNJGCeL!?NHweevTR3Y z)FuTFQkIBj0`?%~sBa?KQG$0&oj2n}kN>LUOFKO1#MqOb`jTUH>`>|8|0{B} zm;8OYmo#cz(&*o4_m22F*{Zlb{J1zgEn%i(f2Dl|n)WyL* zP_e8wZANi9SMDQ9#7}aiP!?Nfe#fL2)WI+SjYwEm^@p~=K7;|-2F{_eKN=$gF4_w9 z_6bXGRN1WTK2TP?0(|Fff+G%WA7ivsZDz<-M@Jm!msQFl8KAEcM^2K)0~DyXqtjBc zVnP0JMz556xQAgz{ATrro2Aq*a;omoS~+98M5v7|K4_S2Q9sFa!1}52Aurd9Kcc)} zR_>w~<4h%)%8$k7v2G7|R1`EAcntZ!VquaW>s8B;!s-czE5$HN1B}+mv#GyCt6S-nn;xF`#qGxXQO95Wl#>PQ?n4ynH_|Ba zG1CV8E+?V#XL`erfRTgVU+j_X>2{|2hhIH3LG;e(qQlcPP94D_FW@Ni2q>P?Gu zgG$R#$@R|I${2~^;T#-p!_uwqP@cXsx-fQF-yj)aYf=EBz%)eG0~QT3HsC;<9=bVn zO!Z4CcjMG^Jf3hg;v$ziYj}>}hkd*iK*aZ8t9Yi)DB^EWug|Hc^c~|rE$@JGubHFLO1J95< z)y)DYh+S4dyWxo@I>ca-gz_3lBLT0_O zeSS#B8^p|dBX!76a@b7R;~rf299Iw=xz~lh>0;N3!|{*>4*r%vfflNNrnic}2EbT@ zz71;^dY(s5sMD^OZ8(Ad!W8kA`EU;9*o@8?&K52O(^8192;pd|Q25r{BeRt2m}yY! zR|CrLsBMq!OEhV}hjZ}p;lJ^+O5LVu^VDIJS-6nmHFUwvI^Mds#Dh$)H??QTt-C&K zfbIhpc7~j^+-L9IoU!}h2GDlci-XD_%+{C3Cac};5sK}St2wkiLLc!qRTSWFj?*eu z@XR5ExN$}SBG;>K90WibGT<3m`erfzA#nI0{~p`{`5qh#uu2$!WmrX$k?GZH+URiA XkK7>h$YuuQ_bVO+yCN>weDml()wL1H diff --git a/docs/_build/doctrees/_autosummary/engforge.system_reference.refset_get.doctree b/docs/_build/doctrees/_autosummary/engforge.system_reference.refset_get.doctree deleted file mode 100644 index bedad29b7f4b59c58ee281b5ba43315c087bb733..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4762 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.system_reference.scale_val.doctree b/docs/_build/doctrees/_autosummary/engforge.system_reference.scale_val.doctree deleted file mode 100644 index 1484e1c81be2f650e992d0418e6bd302c251cdc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6363 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.tabulation.TabulationMixin.doctree b/docs/_build/doctrees/_autosummary/engforge.tabulation.TabulationMixin.doctree deleted file mode 100644 index a00a344e44f830f96c8cb70ac23a7086cacc7f78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234481 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%0D>o(`PTyILldH9>lMNU;@mi7m3rY>sV8 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 GI{g<`_}l~l diff --git a/docs/_build/doctrees/_autosummary/engforge.typing.STR_VALIDATOR.doctree b/docs/_build/doctrees/_autosummary/engforge.typing.STR_VALIDATOR.doctree deleted file mode 100644 index c4d1df49cb39fdc0b3e073313f6d1b04b67aa1df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3889 zcmbVPO>ZQ(5!FgNl13k+mDXz*@M>4P191=`yqP&9Kf!?iPkv5bk=^sP0TM)jfM&5sR=s-l$oa1G_jisq!k;@b zrOec9z|&OeR2c7eQ=Qa>P}cwGFTVHR`g7N<_>IwZl?d-P;E~8IPb;DPOYeH*ZnNAB zn)N$IBsSA(zFcpSv{TE_J5&cL1jV1pde2jU!h+f61TcR$aR@S}Rn-5$5L z%Eq+?0+jJqmKw@#C&{@nFygzTcoDyL)4E&?#yq*I#Dsimw`2K~ro23oZ^{GtSZ>Kv zR}2efhsp3OBPuievMz^TSSzZ6+bl6>pH{jY>)Enx*rGB-=w`@xZMCV3f>*cmsU^S` z`41|CoS$57)?>NhI+;qvYzgjI3Hb};DBl9Gzr_FB_s*|*fi}@xcz3#HqKYn7d$~Qbp4aj{*Ujx%vMo(&9aAI;gyTN~}R4 z)$~kH)=RWrk0+P+0`w;VEVK>i3v%Wen6!l2W`pYr0LzKW-^*_(t3NEVk}p9;?Cu^m zGJ_@_Txa4Yf!26;)P6Fq5~-`D}?YDIgXIe8j1PAQxbPcYDMIJ^mx~&#zKoI|hi1+gdg4f(V1cpex+& zq|WoG9nahzvpQiYhBaRPSw8!Vhm4Uaa_tqy6Y!tN(+D^s{w>iel=UE#HPOm0YkDin zi(J;EfHwSFyOBJ7CH0W^W_b%vPihqve=X@$7d%s5{=@A66_69E_|MoT^MTU+s8M%r zN9p#n*P8pJN4NgY9W;~e_!u5dPG;_Oq;zX*{b(mT%m{1I4*rhv`c3FLlIK_QTBsK- z!-_uosDI7#Eaesq4FxCGFC1GPh9g^cY&4Y)+yjtXvC-xGQJq(XWVw&#H%6?l?*xBWHGYg`1a0=R8m+p@NPB#%a}I~7V)0TB!UjWCuMr60Ndcp$?mR~YU! z!@9~bIwS_ueMz%8xD(6dP9|DgrL9<+yu9ZQ=_#S=g3a(kC_F4ZQnivLx}X<|!Ip1E zi^xT=u$#FcZzD>6$c|IR@+_9KtK+WQkF|AX_by6{| zr#P;6!z%?^z@rkpfTaug6G2J&zq($gfDsc40!MUn-P%t2ANGSjJYJn-qN;SoBv)xJ zDj-gwLOR@0M0#nLPS^#UTbo(iLjKG3;--rL+NF*!(DZlb2Y8` zQ~+*L>rFiP+`~#Fx=L9pN`be9O6ajLa@**;2{aIJWGRRW)t!;1_2}Wk7ACg|HFk$- zU6gFjKcE^686>JwJf{thf+aAUYQHd*M%1ZhxKrWvK+H;Q1Y2GiD3Vxqotca}7JIQY zGkly=B2AP#ZC{|r4v>t2ID{sH`(fk8CRvW;(CV+#7Y@PA9U4(6+AT%B_wh1Do#GJu zJf`LXZPXMj%(Ei1{@H_fU9S`+11JJ5nFPQN$TH@LojSw4A+0UV)8P4(!oMrY7J(s|qKi z6Q&-o`DF!>H`hG2B0cx7JUCN~MT-8tMF>*h0deOZCGfgp0{2zU@KcCXHiUiL{Fnh* z^GVdSJGUj&HT`UGyHQKfyr3fPt_;m#S$viR;v6F=P|HGGq2DR}Nch&flNBpn=)sKL zCi4M3SLing+;_+rzva*JC*!(g2$veB<F3; zHd?4LTfZ3VvL*U~`lxU**7=+S!S%H@z>w7gbxYr;X ziLOZ$yxUK7o&#OvfO})-lg9od5ct7AM+@Mogk}Pi21Snt&edbZygxUGy6tBw$?KGO SGNoSMOG)4wEr^e(!M_2t-s_P7 diff --git a/docs/_build/doctrees/_autosummary/engforge.typing.doctree b/docs/_build/doctrees/_autosummary/engforge.typing.doctree deleted file mode 100644 index cd40de9d30918cf22bb88c6a9fb5866f507b0751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8361 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 Segn;Me2k^9j_zCW@wopZi( zsrPF?+1XyOAH9(#!jDD=%=4ny2(qP5CO|l_}liBNiqBBohx`k{=^1YN!+;9Vy zrXb>XEn;E*tLbIQbkJk&vE+T?$#g@p0ZkdPA#RFQaZ4zL|2FcD|k^ zov$jzWyqB8rn_I3ang%NRa%EfgMKUryn~~s9fxHqPO~s%a@;AEa3E7$@1=W-Sx+qJ znjd+5RMA$hNbxeRBW^=mpTzeSd|$=)HM$zKBYk_JJ-wVTUmCp`#$FciFYJ~wjNZse z`xA<&ca>q8cwOvIZ`c(tL65LVU1mM$yOne3##?sN!f4ymabYU#^2J=8Dhu`NhspRb?hOy$oho(rs075plz8{u z2UfRxz~gGdBad`GLTsq+_L8 z$=K+6GTz7446nupQt>Zgqn{%*o^O;oE{5o2^o=valR+vVhLHJ@5x>z5jMO+mT38~1 zdIe)XN&?^Ym3eBXPne9%DXcI)%%e^4^+1&WNERYMm zDgJaxK^GtYDNgeQr#YRKzIXod^!@}5l@L_{SA{x7*U!rR^_`EiJcrY-%EjVu1%y^A zLMj;gd)02UIM@>(UIIRUy-2CZlsSCFZ>vBVE?!w!xI9+GN8)$l_g(P^eSLz0>TSrr z{~s7UpNGNosyZ+BBfwyI9eOB`@R!RX;m`j$5{93G+>7j1q7JeyzC;0ri-5Q0#VVW?i-J6Nzs8%0w z8%iHyZBfjMZ|Ak%1HDlZ>?mY{vI&?Zba*o8O7dzM|Dt+q)sNgD^Ej%PqB`9@Gr?36 zuhF;9W~pL<&y>8~;SiSozUdB+?SHPDAscx-L6!2Af8e8+2SMCJu4%X|u}w->x6#~8 z%VwBl_>kQ6=J1^tc+K!_Fbuy%Tv&A9E}B#5)Ccy&QKg~bW#wL>v9gLMuV}+IOF6h~ zMT~x6Hd@WtxNLvK9erI%7Nr52kT`M@84qCby#1-ESfSjwx1if45BD(4NZu8_?q-sj zD`(P5t(KI$rP9rmD~0L@J>u4+>FdilQmBehb-c}j48|=TM%Uv^C7Ci^v4P}1;1S9l z6-&zW9z#>6(Dz}mk_&VoKtk8h6o}v{>&^(0H%%<4vW=`P&w-o2ZSHdZqLC7i=6y0H0uS%Z8QaJ&C#G$xF z-4-mE3~PFek9_D$F_onyQ%%=A-pd9Mw@#%GRg2h{vk;UP6z_7n4vM37KZ14~9=S2q zlqjt-)!+a8e(K}*t=UP3OBqW?u*eHIdb&Ct)kU4Ok?Xj!OU>?L^v>MO+!n(R;jel< z-*yRq~fKoC9xG1QxO zb={4lKCTIk_#V6zVPRxMU9VH{ai%1_=)42ObBx5Dw=m0MZ9n|f_X%7HSM{zu@0BaQbd9we? zXWxWA*Ja^512A?*<&sbe6IRd2B6;&Dhwd3g{%Y=*(R{5ci@wuGlA#i z0_fezLr(Q(I*t?@Il>=^0AKj;GUYa-S5v%#DCavFaGgR?*X%eSIzjBRLbW@tKr`pU z@HyU~WvfE0K1OSMYG0%56H^ffPT@VV>qmX~Kp7aWQm9C?-W;DFlJf>J%h5;=Nym6S z;bD(^fbbYc5FEY9slMTY>)7Gwf&vE*XB1-XvA2q+FF0$^&jZ@2UgFUsdXUo1Je&Z( za7DcA_yC7Or%xS^eT>?|q2O8y&uIwWNR|}1_0<__{zL^bcI!_DRCm(r7U&Hk=D&yU zQ-XSoKdEjJnOZesvJo>S7ITXr2k7 zpPWJwrsT_&UZoH$EETRA_VDa9!+L#=IN@&1u(e95cBiW|`y*LMMcL`b{9eTjvNPhJ z8)p>V&`_gN4B#ek2&CP{mkRnb81aeu8nBGV4MYXJVW#ljT;L=O&X89oWb1${ML`CK SAJ9W++oMQb1hu?2KlmrtiH5}h diff --git a/docs/_build/doctrees/_autosummary/examples.spring_mass.doctree b/docs/_build/doctrees/_autosummary/examples.spring_mass.doctree deleted file mode 100644 index 8a9e48865c5ddcb39a98e4776aae58ad44c54d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4988 zcmc&&Z)+RL8Fy?;vSeGflh_<2zEddIbFQ}3lv0Y%gu?Zmi3+{`IU1Y2(e6mI_U_K! z%xo-i1bUP}T;^J6rcg>Lecx}2GFtrL|&TNM5u7#hPcH`S<+!J-LBaznja~`3pT#s$=9PK)wRvv#bW@NE$ur?oqZgpzvoHz-P0Xp$ zZL6-rNOp_$4M}|!@?^T4)mWW1PR$-`>Y55wL@QHzn~q7GMpSlXD#B!R;>AQtV;4Yw z`4@C-FY=n&Laz40Yx`Vs^|B9 zDXEaX&$6`lGo`4Ai3)w$`KjRPfRC%P9!*9=E=IJ6tIM88GR0*U$3#qebLMf+?h1*g zzJI)!4cLONg-Jli6`SVfW*^{b>;cU99eh5-=OcU`+GoO2B6N@2)5|Fdh0*t89%K>y zq;uVQM&HY)53ZeM^}aGBW8Y&3Gb{Aj`>-`!SQptqgns3Iy76gYXXoXe*|=~gcKJze z%X}Ad<6G>Zk7tLneOP71S!Gj^K^76=`8@JuN~;%mlYy3wIwP7;K@<%-gGt9Gj_e>-J1$i^vwgZ{%GTyjEUb-4 zP$R*!v=Rw3U}(TiZ|S8KEV&2+#msTbIwpo=&fxnbN39ZeZj2q^*mQ&6R5!3NHQ>SI zwTmK}mju6fP41A*Ce^h|ny@Pw36iqPLjCz+IyvNnv%@cDHtZZ-mtWnP!s9PaIwyN4 zAD=uu$(@Ejx!3RoZaXTq+&EMhMzXG~%c4i%q1bQ0%;EnKUP|&P$ zOv1#lf9eKCYLcS3E!o5MD#mo2Mxh@n^U_UU5RsTm-Gt9_BsBW&b-qGzgo?`z(|5-x z0$f){e{h|8#kCGw{(|c9f5VjHTQIUg0`2JcZbF5MQ%%*W^hU>6@BNAGvVQ@Y?E!zZ z%f8K%cELAL{5@{+hq+XKRgQJ|Qf zCe!^6N*XZ+1%j^pT1ro=MG zl~hnLqG!~F`YF~Hgo(jaC}^`Q@3Esy2VH|9oF;~ z9fz=&A}W)mQcc$aI><&iu5FRm7BTEgNeoF7hWDv`4zRf$Ca{i26QA2s2V~FG@ZiS> zGQ{`$S0_Cx1Q#A7Nf1#`-nzZ24`|-VZCu%<=5{f9cW!2Gi?dH|EiCAEzVGY~jVK_FduG=?U0_VLhX_t){yGG(APppCZ>Rg3BjkwuQjuIOFFWb94TbNT?ZFg8Li z^`@L8ii|xLj#z{b;&<6Xw9#u44WshD%#ha-hPva%`Ou5FPYToS`V55BhvV~ngO!~L zvHBeB{L;1bu1_y;;1bcp{V*9K21;PKZJ|PDgE_r0w!s^5l4qmsxz7z^CLYiLDLlay z7zG`=)Z0F^&OHhe7J2yf!9uLN_Ez!x0fIFe=74somuT|L_U?KmhZE#4LJ^H`h~!Xc zaxBSmfwP56A+!{JlK^-Jwo`v@^zAFsyqkv@yA7uU%OLF!0gyMWF#mqGg&aR?<3FjJ zR&1G~RdN%Tl0871?dDO=j%>eMFuoGPU++VXNLj_oYK0zNf>)ZCC?jWI<1Fw%`R=`C zNi}CAsK0563XE#@Vo4j*3M=og&D73OS^>Gf(PI@7F!6z7Ez=E@}&a7w-02UUs9 z5+_CE#sf6tS5)uL38&i4D{9U1RJYUZEBm8%2xW`a_WWMO42m`2(C3*2JJ5UZp9oQd z_&^nId|Jp~!KW|G&ym{br~nf9^+zI@^8=@-ctyNA6}xy`4HG}g0vrD$i(#$60(XIN IIScIm7lzJ(EdT%j diff --git a/docs/_build/doctrees/_autosummary/test.doctree b/docs/_build/doctrees/_autosummary/test.doctree deleted file mode 100644 index 71aa24f85c54fb1c3d825fd0ab1d9d287dfc4e9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17454 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 diff --git a/docs/_build/doctrees/_autosummary/test.test_airfilter.doctree b/docs/_build/doctrees/_autosummary/test.test_airfilter.doctree deleted file mode 100644 index f52d22ebd9547029ef8d1bbe4b69c176c45cb6b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6786 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 OCfH69j!q$QqxyeAH*d)R diff --git a/docs/_build/doctrees/_autosummary/test.test_composition.doctree b/docs/_build/doctrees/_autosummary/test.test_composition.doctree deleted file mode 100644 index 6ae03422c6e3508494e924b6e7be899de96dda8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9301 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 diff --git a/docs/_build/doctrees/_autosummary/test.test_costs.doctree b/docs/_build/doctrees/_autosummary/test.test_costs.doctree deleted file mode 100644 index d95d7010703e1ba635a35a3e9bfafbc853fa3598..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10990 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⩔IuB$FXQ`KC>Cw_3g(U{!|= zy9+%7r|)gKta_ALllpsILBwLq*Ku$L)e7?Oe#G?hNM$9a&~Mn0of_w|ZrKr)p0JUO z%h?vyA{5_+{*4&8 zjv%N9R6A|zu5TKdXxB}SlCufLr+9;ul?X9<7X`aJ>S~0#?~wU{JFp(#w7n*5Aa@KW z$W=sfV}Qah^8?!Zw2BppEQU&^FsWbiU{E33rAMsBltJF>PC?ZlX?nL|%Tv|}?@$q;81^r4^ zS;}4by`{+uMjpfRXoVXQ5vo_oZG;i0Hih%ny8HlcB$SKyv0N-$p%Tj?%5G^;gs9RU zayB_#D*tj1Aw>1UYTFIe;rmD*9Ox{lt9@kEd{s5miN5&}H$p*y>g3>D*&76ExI)v9 z$i5K`+^YL>aKII6T7`{ z*uK+*RV7wvq$%=(#25)7g!sIn2`*r38lbA%@muH?#iI2tD zVHmakAsyT0RFqey$}6SvGn22jo)WB08MddJ-gGl;P1lP(^!0kkV`}=@fan%cO7KC3 z6}Y{w@j%*rHT;lB2_b&hu&n&oMv$em#(?;jf)1@trW=ZkY?om>>>k@<_t_dd(7YGL zs^|AUl2pjv2U*(tsZvx#L}8zu_e7Eol5thmqw#2%h!O2!>9XgMOeHdlA|fWesjH@& zFZSLQ68nAQbTu2W6AaA$_;AbW)=`xz5pY6;|&nLo)VVb~JNJpS=OsBd&Fk4FvZqE7grBh1*@|_h;=Q zy0G%&+_kwCvUFE=(#Nw&**oyhhV##^B7-a>!t;|54y4rue3`4(oxa{Z`}wDju0Q?$ zb@|`e>H4$j^soMBfj@rq==h|PCXbN`@UPx4N*lG)t#li`S7~|h#e6}E7XCg&J-$~| z{-pzZBKJRb8l=mHgk9mplN=tyHh36Qk?tMD6W0oo`;f3fK4^PbZL-m zB>%t;*gt^f*6i=?uvbOZ4)`33zs3B&TPW@qWm~`hO+niJH)48L7yqidZFz2&Zu_`! z+dsdC+g=@v=kV>bFAKnLpagVXZb`3O2sfZF2p5AkT{NlhR?e(Wn8c&}s341V?qjsK zIJ&B&o8u@vcKp&-n4lnLPpPYwbBrx`8-uHGhR&9J$WHQFb!6wLWU5C6QKcoPdR0M_ zl5p8=wlLXR9zI7+K;4!Ha7ta-JNk|iB$govWDP_KOl^)RRo5nKFI0 z1B4pU7`UzyVc{wOMF2U7QZzR62|dhmiDs*4W+FsuTP40{iL~tnUs z3+Yn|$F1rXBjL1J(|dHx;V(s0CQGH7t_5_EjWAu?0=hjbVV9B!k|rGQQ@b5New)Ye zjz?oZu_r1Hj7$xWet0A~e&3((^r#St@ED1Mkb-{K?NWV!{Z8)Vij|tPV)Vg6&w`1I zcWUmlzP+TgJYe5Bkx2^fDC=T z<0LMvZTM%RRMIR+JQOvwc5&b)l6uvVE=zpnJ>`<;$+_bNTw2bPFH8dHa8*cSYb`*?H*r%&sPZOKbk9~6G6#6YkpB^=z)yDH z*6oz0p5+IqM|;mjCR)jWVC}Xn^y^HiR37(w5X){l0soG>xE1z{zH2qz0-)(B8X-Ii z;n;xu=*{o_0RC)?p}%0>N@nKYD$S!ziA~u{D!QDip_>Dx-(xBYFNVHSn_igsq;Tzl z&p>&71U|1fc-grSqc6e#Z`^x>dqgO3;0D=~_&gpW2TEYLZJ|PDg9SYv+2joql2@aB z1h_QFnP@-*l<)*gU=#%FM&I?Jb?H%XyU@eah=o|U?7iY~1IZc=b3nV%Yczgp9~1OO z4kxHzq#`ci9L1q^hTNcI3%e%FtK?Zn==3l3RA_{%q)6H*>!P;xIri<)aZ?De z6MK(}){@g&a$3(#e!qH3a2sXVj&6Fh>$4SIFK*q}t5KLx)6a%Pw}?_A9A-Gvy>2B8 zq>Nc?j_M^-1(4MoOw%CIf=7TaJC*b3Xz!(N=Ip5Ob0 zq(b(7mZiNPDMdw0ROrjj4+Kw#d{UM5XfhsgF{V9SUG_YZDK4`(CSux~8OOcaKDsL; z9{TplayDd3x)vq@omA|Zo0`1?x3PC&!>{4@J^a3p--q^*u#*Vg)AsdhNb%J5xXWJ3}9mAmQ2M}>u*dw1vK!jahJ zd$|?!UC52^u!laLAIc73ku_(LZAFGzM1<$_$df6pUf^}cS#|n)d+@7IA3gi@ThGe> z#va$7AE)L2-p5Ce9vvN5Lg6u-4#Vo*B4Lpj-O9AlJC%_KBV0|hpS1AvL*&=@iP-<( z$w9{k?m;I{oP$oc+dX~QYJE%<<3VRk6Do+JL1#Ga*ldv<1Zc1j!zks>+fIr%0 zU*S&$GCLP`D%(QAl%84Zk0MTz%aAt-O+776P8hWGyb?y zN^%~l*CbU6pbNshGh@Ib!4m~A2G;$OL>XAtj6&CWrqWEAKHCC(6a|(GizNXntyCmV zF<8$J^l-{KhOJ_li3p=j#eGmf|J=?>!#>w{N1UsKD_Rks+|iqsf+tz*O;EOD14&zg z^`+oMv1RrWo4u7wXhfaFy9gEYN(PLxiUkE>>+20cQ!bPj(WexKTh=W`qS>&fcjzR9 zy%bTIER|}y7SLff#&K;6v$jZKUrJ&~nlQXi?Q;Oc?J$9LJev62mNLM2rbdU~J(M9n zKe#&SQ6aeS7)gSNg1*-6Red1wR&L|UE;YA{(R&Ls3tOChcxP!zxAT4HcPLjsxH_@0 zSZ~`mAj%|zi6WOCn-NLI85vVpJV3fEqgT@R1ogQHynxz*jbkhg@9VnHlM$W?i-ZB9 zl#arQVRhZMiR;ZpdO1X3Z3bDKdb8kzVVxjE+=+w$3;KG?NnBW4_s>PCq*=f{q%pL% zQ3koBUUj955?^^wLm4U;oLgQHO3Nkjkm8n&GAWQ?8+eRF8n_I@rkjPDHwq)yW9VJ` z35NhITo%&A?iRr1>u4(Bs(gqL-LaX4$N@qz#D9ze{qgqux}DP0vsD}U=sSaf@1%%# z+});yev>Jc%A;NnV%bfnV6aIS?Nra``&QFk0GghnG2EjZdeQXoy>EUS_H2uhzp%ZP z%(wq~xjoX9*pNM^q8m~*a%Uj*drZX<4r>BfkwuQ5uIW9*WQ?Y*NYB{=(302)xzyWo znkX{ySU6@8ei6T`7M_jXkZAps_nQoPEn%p8Zk!Lji2I~4?Vis-G<`Te&o@}vnGmbb z!MZP9Ywr5(0tYS;J=_nI5n`YOhPxIjWHwyT3u7C+5hr;z+V1(>AZFqr4Uoc9T!B%r zpG$q;ht|1A!MGw1-y&Fub=Tf0z6U_CMxz|iF7*mcp4u*4ujO!p{6#3Di4Bn)3T=z! zRIUTx!KDyd3g0aNyaU^FKLaznBF+19h_TyfHn3#Tw)BuUtT6w4wu2l$YvYg9O)Ivv z&?>o!OUd3v%k1V+%8qUSS`fSv!msxi$E2)bWwk;-E^CopFjX$GU{mVl_OD88hBzsr zHXfp}zM}fZf^eqYyrR}DPjx%py|O>*hETRp-Cx|Rm_eZi6#6`~KnETV-V-5W5F4n# zjgJcXOZfA-`6<#G-4Xx--{D9Ea(>_p5wD2XXJQwN>tW(YSzu#-Y`+L<1s1dme9PHi F_dmM9W+MOq diff --git a/docs/_build/doctrees/_autosummary/test.test_modules.doctree b/docs/_build/doctrees/_autosummary/test.test_modules.doctree deleted file mode 100644 index b92dcf23418f083de1dd4ca104be07bbe8ac57d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4906 zcmc&&ZEIY|6_zdSu68A@Bs&%5{q*Bh@e0w-onvm?pF3q9K~1bz=8K+cb2jBVL;_cQjYJPyZZyaT??i?m*g5UipMi z=@vDerJ2q%TimUgG2BF3v2EJk?CN6KG|L+g%}Nv|+z#^*GaaV23`aT6b1z#C14XZB z`4LkJLVRx|EH1vS26;9gjF^8W`IvNa)6#50Q&wz>x5T=*FP6owVS_l)1Ap*y#ibg2 zoM(fdYRzTLbm*(zk7SyS(rH~b;K^j1$_XFf>T2MzT&F6JV-blnKYIH4cb``OTRLtyKhDVi zxq}ZLJvun7g~4NZ9CkH3WuhV_`n73mwre8~Hn^HzA9e8elQ>JI{scL;_i4#4TQPc|)Kgt6h^cFI+v3O2tU^rh-WSVC+=g*VB z1<$;qV^*=`JPfq3M;-D-3}2kW-ARE=6|~$KF2JhU2EVRvKu|PFgNthyMF20$^!%FK zp%-P)S1xG-h1f*0Ow<;dA0K2F2kGea;Ip|0dWYBYsXw26{Mm8uc<;F8rQ?(1hYk?; zkn`&qPl7O+cvApT{iN@`#z_^-wxSRi#iH7N;%{Z5)<#iw;H~bxb{3`(YX2&)0LSUjb4_*$67S)L~V-_Y>{L{2B(ia&j)iRxI)-dMN zEDHTl+vjfjoXNyqnl_wM#5I!Wnp05bFz?EO9lA3#15Rse?qAcbInW`-Ur-AEKS*(O z3x>5wkR8*#n(H<9*}D7qjV>TR{YmVKe*t1?+dtB>m-&nqdv4;JsZ19SVd{v^cilNZ6I@o-Tq?*^nN4Lxd(d{IUy(xHPY$53?(7X&ZC?*!Ku-RLMgh$*-yz@{CuVTD7 zt6WfWw4qs-oCt##@h2RHyKOpxMYCbUZ1ZUddugU~RVg)0BjBTag5$abuvDe6FK00% zZ5ZC?^c+BNH%wq1k0*XgwG05B>+${%_Em`Q_peTRT*_2>f+a!3!B?AfRUaU{S=hL? zOT+DA&F;d?!WO3=+*(>P-D2PQ9jev$uTCs1He2)tM41vWQRI?iBVx%UXA=&K2S}FN z=!?u<$^BFYUcjkh;~3)IL(}xrWQ=FRB4L0i<>PQ_MbmUCZN0h3+zt^~8$ljt-YocF zSSJV(cQRo>f}z=T5*OCw{<$bqJP%S2Nerzm6u?w*ufEbniLbpUp$d!O-1LG_5r4!( z%3HRoq(FkL<1q?p;0Pi%-6++(aY#KI8jKzKhC=`qL?YoE+AV;~*U&)Dh6vGZ$}B_< z@JS&4W0dBPw%#+{jAtIzYviNv3MI!N(=L*&^l8Gg8{^+%Jqz|5mj<(v(rio^ja^xgNVSkop6m;|Pbf z0jtO&$4ghuE@CqFX6ZS50J;#0kV~_rE)vbAo(Lx*!UyrYLf~x8xYXw8y zb>m{_MXAq9)9(5L1k;D(i+qEXoe8n}3~c+-wc)O}E^*)z(UbaNGDZwkz;K74Lgk|c zy)dTWjZ#)*BX!GX7BLf#cz_hXz!d}s@wqhjd}y6{99%2%@QVRKth@Gh+4CbYIIzGIII_&I0L+U%x%1y5L&=S+@`R2^SLJB@=4MuF+2VEr5ubE5`XKHyiaB zbVk_#>vaiBabHLXYAU_L`gKX6hh#>~#v^pnS5)6v5YDvQSJc|osc!!}SN2EMkebTW zy~VxC8I)-Np`YdibKvjbJQ3mrk%9W#`mmJ0fH$AnpCPHyc>x~qi;Y4U7YEMp@QQeC aCU%jyRyMbY{0X5~Cm_f!(XC*9{r>`Exo7eK diff --git a/docs/_build/doctrees/_autosummary/test.test_performance.doctree b/docs/_build/doctrees/_autosummary/test.test_performance.doctree deleted file mode 100644 index 8ba11958369f97f291d39490def596e9312eb4f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9333 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 diff --git a/docs/_build/doctrees/_autosummary/test.test_pipes.doctree b/docs/_build/doctrees/_autosummary/test.test_pipes.doctree deleted file mode 100644 index 129825f7f3fe8dbcd236649ce1e38fc381176a25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4972 zcmc&&|7#q_6_+L5o$e%^Bs*49Vx<>K8kt6Sb;u7z5vJh&CVDMtT1q3ancJPa8EJQR zJ2PvY2!@7Yu)?H;dJ3hK(%<`E^j|3S@9Ae|ckfo`%E18>!Jc;Bym>S8zI@($`}@XU z$ektsXSP(vxR~}y6p1vV%9^z(4fBKwZJ*owU)U#h-?SyUP-!khYRwWjLdN4rQejW6 z={k1JW7RL$w-gOEPsMCGYp^D3o!WiYHVw^nOlwnSTT`X`?&l=Pc!m==Ua+oyLZ|Kw zHIAi{iJP))i@n7**gdww_DnEHgdT*0Unwfp;Foze z__@|pCPed4^?oYTY?Myxv;h^9aVjTtfTOEHKysa`JV}VW9L$tb+_*0lZu$1{az0{9 zrolx-r!^%O`eomPt=KzI-uLmmi|0K&_uUPlB+31~_RVTWxU}XwNgCxb{iwIFl{LG? z%)#OWYYw#~Ir||ym|uIy-iC5vuBOaKl83cZnbxCHvEHJ)^KofENcl;jyg~}O@dj?w zhx1L@`_RRj*TuFbqdX=u2-7%F8Lc1S>(sL9`OWspZ$5wU7DGK)Qos?dUD^Zd>>e_kx>zGF$t!Cr}{2~SKOsCVk_oAEfUvcvA>rA+@77v z&O`X0H-|95#vjWpXP4GAv&#cq+tNBVIqm-g=KC8E`eu7IaXEmbHTPbIk`{@|@g;-{ z%l>6r80pIlNo&RJYt}KQ(=6s8*Y=s8z93TAE7OKW3e>Y^Yrz!AcbN6DVTXPPO#s^3 zn(r=f&W+{~#bq4qY zn1F{jOERktbS>%$n2Uj%E{ZgFYbmA|r(#loJ6R0g5UYd5)paJ*o+k03%808T*D^^_ zA3df%LQb)^ET0%ug_Jix@;*B%LebYD2SsT}tJ3DhC?!?3(tomtI1mZ{J{aG>L_Nt~lZn-$&7G}l?K?T~E&b|zE+m31l|21Q8VNZm<> z!FsV_fL+cp?3BY?#u#ntGz?tr>Sj?{e`Riu(^QL8(;E5smf3VgyU3GZii$L`pmY^V z#tdau;(7rEVQ&=_8dFaRF1ThvRXby^azR=14b6t6St@l9)5jEwTQ(g=;@PlacIcEt zUz+G#RZI=ji0CMvV7sovW|!F@my!gOHWVLHcO9U2mkVeopdw6N{sZ>sdVKKX1I6)v z@A_mwrA%eOh=^i}+PCSB8Un$$3LV#^G`tjR_7-LqM4WweYiY@J3%T<%RIBe@pIBII zw%r}zWr{&Xu@8*Rn21SECKMWv5Gc#&uFM@t!&F8=L|vB0Hm-&rnr4`aF|G-X@CaT? z$9!s8({x?P26K{G=5VadC{MCr=6q1BCvfCL>fkX~yl~E~AmYkZq_{|V%2pK=2(S%YMj;G*ghA+L$rg-x>>Cub>)x;l zV8TZs6;4_Nldq!>=M5 z2bFk)DRC})PGz4{J@$Jb^ao5QF*a)hQV~VIj$Jc*@W~{Yh3D)7=xUsYT$yckDKwb| zj89mM2mZV2fZ3W2g{DylzsnKV3W~bp$Hg#+(~y*^-3u8C(h!C(;tg8%D#Yq@ROeT| znfD!fi33;go;2iQ3?Ha~;kJVcm5&zqc;cKlPDv4suJ1la?@p5ujS#|@I0B=nny$>< z5M1X0MVS@{`0n5!)*pMP{Bi(ijmHI`U6~as9=rbCtQByA_=PK?1Lg=0jpoPIV!n6Z z!J*(<8eby--jVCppICGI8nx)?L58&PY~adE_b~wUmLnGLXFG`Tvo3y=X*;s3B^{HW zxKivL^xJ+ON$kkAz-3`rLHLV($PuX$Se32N%qvu$_8HR1*%#OgMI-;_?WW5M1NT#Y zH$deI13I`96W``x%71LBzO@u(olnB~C^wsR|MLpjM6q0?Lnx`BIGCyU3eDFkE;c+B z{+f)?m0x3hV}Us1ZeL?-SG#&ix39@Z#*o^jsJn}@${D0+fMA&B4&qSuqt=PxEAR^B z-qxd%{v4KkYClFmqe}xc;Jc543l|&Cu<#mreMa_PxXwiw=aKXJiTilei5y&)$W~N* G{r>^3;CzPw diff --git a/docs/_build/doctrees/_autosummary/test.test_problem_deepscoping.doctree b/docs/_build/doctrees/_autosummary/test.test_problem_deepscoping.doctree deleted file mode 100644 index 6e8b5b5b28969dac4ffeb9a4d50c03c5b3ba5dd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12577 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 diff --git a/docs/_build/doctrees/_autosummary/test.test_slider_crank.doctree b/docs/_build/doctrees/_autosummary/test.test_slider_crank.doctree deleted file mode 100644 index a9817fc682ae513d1f387584765735e619cae4b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5128 zcmc&&Z)+pR8TXwn$?_lBzRQ_F&R2zy#7ASPSNftj<|w_sGgTo;LuqU_qur5a?A_Vz z%&upoTaWUzUC=zKzl{KqT8s-TV+P<_8Kex~9zG+Kxq0(H2)S4w|gp9|Lq{5zB z({bvW$EsJ3Zz&pTo{H&k)?iK6I<@<(Z5o>EnAWzXRvb6+Qcig`rkNf1gR&aE4R zAuAuziQ7v}bE(u^Dm9l$m!&!rODWJS+>RAU>oc{TV{J^)K7%& zhy9-`Dpmi(JnR2VYbq0>d8oQSk!dzeCv{n$it#9wW7@~oRX-rPPF0>HL|*o%Mk-HU z9K0tL4*THvc0OcFrolx-CpFs^W@q1l3)!2n;WteUp8evlsv5M(X^hF*7ok+owZA+ zVwN8j7Aab^_JPzWSGZ924NZpDx>uce3g+_yuR5!`Ne0Co_+TH zXVrh}mK)5LGZ+6Ge;+=2ba+$?jmHQ87}xBUiHv0F)w-?OskH(aVm|%yHT->q?EBE? z-V>L3`=2CKvosnYrcWQPtv!*HXxb&B%Z1WJgtVKEx|-3h&lLP3x_iOnxSK2L@BhBpbnsZzN z$DJWIM1gP>MBNx$z`W@MzpPK-AZ?gNm#=IT(Y`Fxi&x|x1zqA@JERQ+BV$Q2RvTzO zKFlr;)8X0Srwg9y9$lY?y#>9;pPqD2_D^blJvlvj=)JHH;U9nV zg)3LLVh;2pacz3`mon$K7Pf0=x&ODDb03)H_iJuvm)111%LACm(mKRBPyH3H{xk6Y zX5Th(YCx_vZ~YgTYf%lIdP2Cc?C++9mcGnT8JFGiW*u!h$zmRIZD08A3nGQRGHp1q z08eXnulE~jE0laz*@0h36BGn(%{$i*Sah^Ur9Ywi{2$Ti_!cZ~kzBi`GY=&-zuLNA z>5aZ|4*Ub#WB&k_yJ>&#hJBec-GDEk_*<<1yM^R_S+&gv-xj3pek)VY(&1lqv)vrh zmDxTi&Gyf)VYV-K#tYc?`BypMH&6n)-aM08aS(1nT;MJSZMrz6xmPP&-8dEFqEwK@ z^bRpPSR7qfGVMtcAF7Nv_PUx$3O@Ff`b0U!*pjX>mw@fF@rDMXul=p5_l7j!5RYkQ108Kw8aSmoUy#h4T zTxYqq1GWWV8dCu**Qs&1crRyjv=t!(BpMr%{2Vc?jv>s6M0VeX95 zREt#8n)vvZ*>qP3kte|fd^oX?bQG9s2L6_~n~B0?Zxj+5Q!fcFxMo4c+_6?Upd^9w_X|rK==!C;wn&@0rN)6M9=rA8+xsC&IS0XVlB?%;L7(S%# zIDq*M7qCu1MVPumiXxHg(ZLT76vyxT^PK^eGL-=%B8n*}chhY(1jcU_Hm=Rm@Uwt) zFZ3)-arXYLr6toT=AG@K8hwAhV_~q_c4t78DFze8K20`bBE~rxQ&>Dg+T6xn&)k(X zOl1^A)X@bjhc&E?>u`7_KUs2+IfYni3bX=T!DM)g!+KQoql15@WG802W!~ zIr6I6Lrf;YG(D#W!1c*R$d%bvmqL?C!1$QO_#l2)986oYp>So@!LM@UwSuAU`gYL_ z;xr_sY4<_~vKzwjMZUqx-h>!^4(5O5pBDUkL5Txbh@Ld$VuTo|fZ>jV3Y8BR^myWe zH%>{BjqcWeZV@xdkVZ)1OKgEr@Tx0wFND^4K*8tY0IwhpV*R#v%6AL|Ydk6d?aC}u z@zlK@nAHMKkiQ5;T)a7wL*sho*qVPi*uka{S{iR70Po1X6+E-%&YZM(PkpY|(VGnM7%->$+JbPZ-JVlxSF8G&?##`P`XRL| zSoap^Dtl0{0f}LnJHW$j0X!&1SP5w#5Q6Vich9uPm(9XPi?B3F*Qrx= zs?O!BbIx~aKmOqQl>O5yG7)|>Y%$M^VvkFs=e*d>LLMpe%-sI2d2BXyBV~s&&Qg~f zJp~R|_<@)5$UHQ9nb?&d$X2nwF1f4xI2tV%H8Csd56z}%=$i6Xz$;UFO>wDO^v|9n zto9U9mn*8L=X6h(&QzOp6Wu zs2xVC?Y6%qc`DlvvZVb@rFa@L<-4-^wKPt;@vus3^Qhm8(>`zG=(6pwOvN$_LzW)3 zM`|gq+)5>``SR}NtShE;&5t}jtmrXUvG^>^C0>F0Ud8Vgey`zoo302grM|t`rk+Wd zpBjBVjJ+)2Uv5syGWs+5)YhpPG22mwW#aQS#7K;*3ANzI&K^|GU3$&e3W8lEWcje`}TXU zKYs6x$L0Tq#C68v^t&(Gy4$b6vAt7qfx9p_)T-Bu5Jfb!D$|II%E*BVP6pQB=JEHy zkNN?>7l+9M8(VK8&Nkl(xe~G0fdfChJwJahOeb0JLGvBItD0tN5Lk=k5UJG)qwEMjGfCo7oym+Z4Zqz1KQMdryQ}xq0 zODgU;My5J^=VQ9g9F`pVo)Ttvp1dW5w+!HrQ4X6W?w#w<0MgM0Z&x=Uob1Nl(U}LG zPUFKfCu$Vpr`I4X8$e0cPgx==3-#OE$gl=zBS2urjacc z{sb@Fr-FgIm!MvQxLViCCsCwgL{l{)Ki3dstsjXE@h7|;wCxXR*+rJ41@D9L`;h;G ziMW1Nj`jUd9z%1_UVkB5kA43yRkfY(zlGX9Mf?BxV;JgU^FM_(pTL^OrS-};;C%DG zH3q9w@7h^7d5Y;ml>BLV5dGEvUQX^dzbv;D|13c8%IO!m5k_@jRHG-#dD`2PT8efSZO^SJBf!lk52vqH68&ZnNBum*Ws`Y`i`CBL>ME0N48vesCX6cixg_PNR1dg~ zm4{ec6tbi(6dvOvZ;G8fsj&6nmbB4^G^i*t&qz2}S$NW==CSp3ZZBK3p@cpEsTo!7 z;*P$mQWnVo^>Z9KNgDTY;Jk9LsaPS~+nv($B@g#7%t+oPz3gTw^#xEn+pa}NFP4(Y<453puDma=g?QeDf<|ZRV*lqZzv$;Nt`Mt;0GLvyR7F03r545 zUgJX_`ch0~vSh01n#a3YAL5oN&!j{i`*Ie7(tzS!PS-&uy6i{Lj>982rgR^9Y^Hi! zU)qvBzHgqKbas7h~yi5wHD6pZi6tJkDu|9{!J%q|-^t$v*DR<-4b39H(4a878rK4xvIO^e= z(1`EBOL@;98ZoPvDQKNBNniHiSW8|OCeFzDpjb=r;dg1ofCC-9Vky?G$^2tdB6;S; z4ni1QtEdBF$(`y->m{yo4t(k7&bi`vzNF3oE>fJbUIqmMY!R1{2m>2o*mS92b9#PY zdqsMkz90lZVWW^ow3`Q$FQ6$1Q{_Xr=o&>9JO}6`;Qt{ily9uQrk4|*I8?SE9$l+2 z)PxEA9cQPo(AR}hiQI0tL6)uL2(5{zg{D~B=xfAj4**U_@et-w7P)w`b?XaXgg%$k zo;$HUQO4VUuG}7B%E)E+dD`;1>RA~G{kBkH0AUS)Dx%1i^K*IwJ{dZr@ElzL?IrS% zW4$VmBE^P|@cSab5B@tt&}{UgL<3Jb?`DW=2}QkR$NA6+VwV-F-EalUauZgDx;ZtUdNx(Z_|e2E826j`cK;4yc!^=W;kf{K6H{jPwy4 z3QZ^~D{UWj4TpkjDfET`-X3*M9~*t;1U2ujf{fjIqXA`$)R+amPQ?6sFhGnC`uIoc z29c>QCMG*^EX6BmecE|EV>{G~ENa{m!cVtjc3Am>m9G{0suESSd5ULb@K?$eHuU~~ z-uI(-!8UTs9xkeISdj28>f0t87;NvmV4wysm8JF}&bpais(PSR$r4Kc{6U18atZ-W z$(QTCN}=emRCsLIMT7JN>(vS3h`Vuutx-y~J6$=kKi-T~(Ia(ja<5_rk2GM=jWYr{ zG%=9x6iq?AzV&+r{TXce#N06O diff --git a/docs/_build/doctrees/_autosummary/test.test_tabulation.doctree b/docs/_build/doctrees/_autosummary/test.test_tabulation.doctree deleted file mode 100644 index 6af3f3f0884de7cab81e455457b7d579fa392387..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8769 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 diff --git a/docs/_build/doctrees/api.doctree b/docs/_build/doctrees/api.doctree deleted file mode 100644 index 782446f9180a537961a4bb7a1f436190a485240c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4866 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 G-G2eQ(oC%Y diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle deleted file mode 100644 index 0336c88476828ce92bef61b8d0ac705ba8696e7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4991909 zcmeEv2fS3p^*;!>fb^mu7VMz1NKw()o-`475*~JO-M4$++r4aK%Y&z4FR)(qscVZ} zWAEMAWA9yKi6$CbEKy@DiBbROd*-&eyR&!U`pYjr{qy;-?@T!}-#dNIoH=tuuhTc~ z*1a448AA%WL^889tYtcq`D`YwWr`JJ(5|IqDn8xiby{WYk(FhYF-DJQE>~$b`o^=d zVqVkY$$Z5aW~NapCR5=^E?P{alC2e^cci75pGU6BX~fule8uRIM(W*T6{FXl1ub77 zpO#XtVhr7*Sk&_AXfYWpjGmUy=328$E5;fwUrJ5Ow6|sR?OMg?NtqMx>XBB!q#zSa zp;D~OC;vh|23(0gV-kH6Yb5$5`X>e?1||k21}BDy7_n@oE!kc%`kTlt_v%wcfc?3> z3R;m6(g$lxi(00T%w`Ieh4eXgxh*Y*qorb&AkcSMg-M>7XfB)5vKiU8BdINkW#jY_ zYr5hhfkG*rj^;b*v(uf0B9&sEN~mIt5YZxL9+6^aPNNDd7Al(2I~C2em!c?=)ilaz zjZ`)kO=%JOcz`rQ!d<9Dje&)1DIe1!T845@X6V!Vl!|TRri?3~82V+XCJPaf6@6?d zm(S{2tXN45Hdd#c6Invif40_<%#5C2DipL-s$vW_BSm7_TxUMno}j87I&rIsleZl0 ziP^`Ak=WV@bx_SyIaZ8r1Tn9rv}l38pvQ#pR@5%2B%_^`#1x|sQ<1iGkpPXL+A8I> zi1opdwq#1nMAIn8L-N^daas5fD{R>zR8`9=#^`p9TGi5GB$`TPmqgl12Or!SDdwY@ zLW&w1>T!j!j>{dP?`h9#g+e5jiqbbCyl*;Mpq3fo+U=Fh#5HP{{mrs0l-k;oOSxC{ z4Cf2zH^g4dmtsZ28b{vrS>ZHVC{^vEcy>vqQZfcJNR-m8 zg>am@PM`3!7V16OyhhbLD4D5ZFjm`qbE?*Uajh*{N);n{YHKK`Xgp3|nu*~9(T1oy zCp3J^a$^v}(%E>4S_p~`-#4U~jYYDpsB3B(#e9-uu3zmNDI};2MS|#h@oYMpq$*sO zc+!zJs)0F^zKQ$Bd#4A;$r^&UOqk)Y^)jjCn|c+D;1X$F5## z7v_giGjoEoIZsSE(`ghgeJj;IGN!tZXt`u6+fKQ#i<**f z4dL>^_(Uxu(w2%+#>=S?sMM&lQ@awyxLS@n{vgo{T>}k$XuotclcO$Ph?MdvO1^g{ zS>O#ccZ`Q zPlGIt#N4by6bD64-`FCk(VL+5MQ@~9nvrY|vsbTTw3TYp=)C}c*{d(cxpA#D1}!4~ zImtqiiX9;(W8HLgX);Zj)990lqPIj+$qfC_7*AlDje&$95g|aW)cL6YqO#aaTTI1H z?TsNe(^zT7!>28GoCS?$mF{86x0otKXuwIfbs`+D7&Xj1jh|FiB^qKQRJb%NQCbD6 zlH%eLwPV!L5SKF&HH)Fg;%W4e!`wk;Z!U0w^|1ya9)DNUqtp_6^DKqg4)aD2s!y81 zcyQ3DBt)BzP-{*^3&{eF3Ms;u$fn}pp#G!fO0D<;9x`X{(wnF4ZZsdkpE@_jz@BhW z%XR!BuD&vmy_0eJ%w$^IF&b2DuQl^pG)};&QxwLrsEAvK_{$P+JsUktIpORhiw*{5T#5sMn#zCo^cEH16>CP`inU$$*AcP9&}s zV)-PGPbfLzNvjI#{;f2*(_-XYV=%{DLf=On0V6S`*O#W&7m^pY}$Yib6LgHrgD|puL6#Sm_B=IH8CrfNjN7!Rv)tG-n0ut<#@e>8)A5Q? z+D}m{SXeREvVyq_Tgzgs`$x{$bIzR6%}sNskKSSW+@@J`c4?Y6ZT|F@mYt|8J6vKX zLTj*Sn%d2rrskP@Hq9iKIdgVNCBw9Fqv&g3#kSNM&Q_W-A*?c~` z1Uor1PagW+t;{S7;cqQ;2chrKj7`16S@?}|JgwQ1CfJg|$^~dM@qUOpBJELv5pfbPi>Bdku*&P7NnWGRTQ(v$@9d%t1=OVkKUPpEUQAETPAzh7A^mdlByM)me^Fo$`+ZWw%PecuKM@XK!y zBGD9CYA2N0MYQCleVyaS4Fcjh@*bl{JECH7>YMCHl3pZpu3cGcG`5JuC4~efv_Y-&17;}eG|43;G zEtR8bEEA`76-{t7pgZ1itpj^p-lO)?GUH0r0!BE&CYQB+GP+NoCA<@Cu7C$QK8tAc z!~1Mk9(gTIdqUHHEhnxJ2UtTFO+rpkI+>xFFrRjIv}-zn%ttFNu{0StzEsGMZ%t;# zCz24L(p2n3#TFWSWHatyJFXQ#VlF2(6()Ay=pQ6kLOD_g;EfKJGF*)E;*=MR?2lp2 zTKdtVburC2ROl=wVnGhAuuMO5d(taIOZN_%>D}J$scSG+A1q13f`(+L)U&8Z($qrr zM?o|@Mba8?@TnKmqRr?RP0=Q}Rik+wtAe$xSRxTyR6s()baE+;&Q1(V3g%j$jk370 z&7@XMJ1!>$+CNyqX)H36X$M(3za|Er%8t&blv9ZN!$Dp2Q@BSiUO+|t~h%KCa zxR+3up_MLApChVMF{K(tFYXMqys)B}vM7=c(0UJjO75`r>@Z6lnIu^g?U_kXL-8;` zRK=j}dWZ|noe~C{Xq@D2yjSE2URxT)c#e;8a;y;#0!c*Lv|eJa z$&W-#QcQx5ox~8ylSXV>-;#7l^39`m$#HqEBiDTCRtF=X0aBsS+U0urMY#%SBWEz4qZ(G_S| z7k!iGaXSvCeN!rjk{ybMX6{i%Cl~urZrheWMjVVIH2LIslj>$7(Hjl;MU>rowfrNH zJ@KZFVyxqiQH7IM4C_h}SSD%-ywMq{e)wob2yh{hk7P3`tjGGZe|uZn@>r8StfF#G zeom&v4hLC7ZK0DyH!NUXi~T7dY*`l->_M24AH_kkcZ60^G*+Mv25~S=I}ss=!}u`9 z=!q>W)m$&$x)MR#rDUoI2~LkTgwRO>GeRIL)`n;p0!ACl;Aw>_R-MTXtwPX6n7JCm z3=-izHjjIvXo|@q4GFYs6bpRuMMqJB#h~sTfH8g$|sFTtnvC~`@&=^nq1ymwcx(N`eKrSdkD0f#5Vm^dC zhnlsM16Z7?e1)-|B8b+7yuPQcI}2XjLg>WhXem)+fKK~bI)~vj^GV9Tw`&bECNY5y zKzq>9I7LoOOia?>rBibvC(|(|_0Mz){@WzB);|#b+a{)1QMOBLZ;`)pe0ONJJjW(B zx5zCLTUz9fiJdHR=M_fCl&&C`T~=5DO^IDi(&&w&Po8~kzr@tUG%IE}G2S9)C3d&S zxd|J@Je&IUaw~Ygol%SJw;-{n6}*=nyths5(`*&MzKQ*;i2ElFu*ijp1FZ-L*-@i5 zdut+Q#f;mYTB6P3X}3{2$dfiUJ+a8*-l{nN@t@^mX3 z^ZWvGQ9k7+%>{hf8TR>4;w*BWnK+C8o}Ks&{#s{37{lr0p1s8R4$X@=!cRFd7WKk*E?~ZA%GdG-)f0wuVO`h_x7O zQ9TQbP#2A`CGN9(#{D++dz-p6ahZkffy9Fr`B36vi+nWkm_4-M{a&*DUQWDX1^rxZUnRb_$bVXy+rs^cwy55U^Diq-;=ASg7h+QQw@rP&!t(pUZq+~P z(8RKOM0e1u;YTp*JwW$#JdA#(7&=3OENWT3b8%8Cprr$yozMs{P=s0ylVxLxUFi_n z)SU_=rdyTDqtv6XPFWQzQ6#2^h~^Ph?+pNb=!gCL62Swil^yyT$ur}$l;#L)*o^&% zTF!p`iP8tq54#2uA>s~#|6t312wX!g*D$z-TdrPk0UxI@0kRVwMPdQ`?5gV+j5*dX+oK#-?~Jtl^l8uKc+_hmF$+5zUrn^Gi(qB>%$q8XUEt>^8(r2^tXGuM+dF-%(P8e@# zNyu*vfunaL$)<(N80AE?M5-iXhNcXiOW2?4k|^7;gf7=YDVoY_h!j#?HHuwVvgg~O~sg&qcp8KM_=r67z0hgtj(Pm zY|c`8-W5+TkV7xx=L7noW>5m%;qq7ldMSR)?$!zVV3)@spbvFUI}CEz9q2@N$VqO;$?j-fZpSHZ z$Ej||X>Lcw?Ks`-ID;HEwlm$1v)qoe-8{b`hdoG~<93|u<~a``Jf5CUlo&`ZKm_)? z5Pnv*T|^H3V*Hr(cnRp=;>WD|ONq8|UIqtJp#v3{oKF&%OSO18Qo4eEIO{9jXlE>N?QZyF6|n+UC8{?YIfCZgxezgJ`?VeuscNU7>e@zT4$-57BnY z_macjOz8KK%TDQj@cbS>CdLPdw#(^3a?F0r3VI099(Kij1oY!Bk0*$>nV)n!o^m^$ zb~~OShmG`EcgS<((4WVTiR}e<)EC)d*6vI0keA6}qj<&b_yalYPk+@N@)|j86tBCZ zz2Oe|qucQ|I|PDKsnzH&v|Cu2jFtwZGB8x~5r@0b1X`UmIiTm>oS0w?FqP%)6-H>D zxz?~W^%H9)Mw0AfdSWIu*kPn?2&G)1)n%P)C8qOD0Y20sap)LhOV+A41=ZuNu{F#R z^;{}jgq~h_9ud2;hWeP=(FObxiLptx6=sR2@vGWVtt=wWNq3lJJT7Mh2iId8=B^l< zN^zlOOly4l^mr$ICtaryir6F{9VbP!kc6p3Nobk2#P?w;*VZ|t$ZSlm9iJG(Z7EVT zf<%+fo}#I6Q!>9d=(*4ZP?V`$NaX5>WYUCcgW9=p6%?{5Xr3CI)Q%&>_*{Mk($=UL z<7>yOfq0Llopkb`1PhLKElX9I?+ni;tqrxpc1r?lEPXCi8{$yF*a61 z$|dQHJ3Noh*(%1iwWCqpkU+dhO8H?@S|*Lzh?$icKsw_)*5;%yAn9p4ot@b#72zg} zjH5YIWkG*m(NIZ&lQcO=LxQd&5Xm=ONSlu?Yj7*a84xtqcTnaYreoqfskoZ0Fx&!B zu(q2PElyubY9$#`tEw35)n=!2ahzXM>j>A5zzqYZSm72l5m4smOsdULw;(HqqGP+u zZoz{2+$$924Hc7YhK4KZN2!$1_$h>^TE4UBd!o<+Ha4pb5QW@E5_&BhZ^KfW+Qfv~ zG0`^Z`(6F75T2IrY{^1%pk8^AW)x``6vA{KM`$9{M5%z~(ZgyrVQ-7B7!zxwapAVU zfZ=kF;Wqy%=hU+a}-D%(!dulBGQNN_)dw4g{63aX#fuB>}n+o-?So*u)qNHwLMJEv1nGio!U z67B0>_=0Fs9~2>H@S}qqTw}6S;F>q7ldEI2~0odFStGyArO9n3pQX zcC`yr&WVp$>ADn3tPr6oo7C@U+^N%K?SYllw_+F?>71675b0`0 zlDy(pew2(4%lL??KZ2RH&U%%UZb*@wm*?|r(yZE*m}d9Ziej2otZ{2Kha{=H)oGcY z$%~iK-g(n*>|()NF{acmOmCf&K5jHu6iYQa3M+0iS=mj!tQnF#lM+aVbOV&Dv?wVU zcG8Wtim`cZJaXl>@FH2+E1W5V)`wcknKBfGC-ovMY50mBskx|1henmEeGct=rY}tv zn~HNVb12vM?m4xI=GPWpoA3msXbJYXI?Y`FnvG2{BYBrw;dHdKRjl2q;xJYzN}*PZ zo6q+x73)l^(!x!4?I{)#u2I<8dzgcq||2S#0)j7oIlq)V~z#Hha%OQ51upJYt&pbVkIwi4KiMzt2?wF0xS*3CZgz^&e^i-OixnX!@1E$(%xIkK^xIani z`W0iN+GCG|MJYk>413CA^u*)U_*B%9xS_8u{aTwssJKUpi)in?OKt4cEhpSY`knaZ zHfnd6#v)V^yq&BwdwHgoS#d3zni*9$C+8!TD@<2IHHR##Nh!y5ico9VRgSgNxK8b` zHH(YGRAg1%z-kWBWZsUV5S)q5j{70B|83#F%C?WvClJ#9TC8&?O{R6OqA!XZFq|k$ z!fD`W=B{0`+{~R#g0sK$t_Yksym+b@8`f?~?(bGExA}uDqZMLTQ!%!#ouD&IFQ5zS zS-PrWP1NQDS6@^&10pHz+KMHNRQu3tr9lI-G#bZfB}oP+Xev}Rc|}8;zEmT-EQ&d< zYThm2hAMJY4lL4$>RtM{>cwpKak4mp8|c(|>m&(#61176OZn7%>a}5ecefzVBe9|w zovv(3@7ycFXg*KZQH_zcYnWPta{fk3vDf$uNc1bDqKbWvz4gNi#@rIKm{zgRv6m)% zYfiK@8Yx+=RkxTXGrL&*qPQS+o^Q5X&wnm=bEPw$~CexX3dP#brj7S zv6QOgwaOECZGrp z1Z@jVqjAFHP6%?nnh z@rg#>PWM()bTgT5GN_i;PVrK2P0*P!WN0*RC#h`EW);n)#yG<3VmiT8jvwZ>vU$(B z)925c>fTx^CcdinHD7Dvsiw|OQJy%I_?^$jfq>Pj%qc^$Ep|qQB;T?Sazn++p+*7O z18s6C3^mp5#GbLl9J9y>jyQl&>{9IkSLi5`e3&ku6{DtIvWl^N?WIapH*l|V+EUpl zOS}}zDSW82-JDBzp=iz5c&pj1Gfu|haD=?d;3iE}w(c6Wz|GV;wpKJGr*&8@Lpdio zdkdUhna5aWJ5nr`0m@$eL1}?3$R$XZ6esVBU6GTEauC2;tqT0N(_t&D zrkH9N%5mB04by1FH3PyN?wg8_uIkG|GDkCp_oJPmoHnG^mbIRA!Wv$cP-$+nPXB4X z0oln=6-V~9OOlt*ydvhyU)~)HRjODMWAKKhDmw6QqO8V8RGK`OHKF12Xvq1%yE1Y~WcE~7jKhi5>^#aV#J zx(ZHhla2!!RHT_oF?dw9Aak`rJ;=KwbP_GlM25W&VJF*pa_@3tp~fR@??{z7Ps#Rn z0V@%lCY$|yc+Fu|IS+E#%5sA6u59c_Aw`rk$7TZJK(YqL;Rf!mcJP52^&MQgm^|79qPNFmqN% zp~)HNXVOhAvftzk_lhNnTot@+q}$lkXcd*<8hXt33m>ImfIq|5$FX%G6p2%_<=rJ+ zk&aE|^9`{&P;`HJC~0P^dCJCMP3qI>8?#VosqB$+q z*<$HsD8%?~WZu;Pr6(3}PCY3_$Wq>x+M8le=FT%r3N29PpdzuQ@O2hoo=u<-C@m=E z$;1(jE^_y@;oJQ|S=bUHvB1W~R9HD?avpcukkB_a&)XGE zSuR~Zk#OX`in#!2s3P4R-FtfFd>(CisBP0NNE|vV+6}h~vFcMSLy={zPHHNODuz9& zwYBh6v?r<0@(`mCwb%Hza1+_5By%RDsHK?ytF{LuEK;@&d)NIOv(49rSr9GNz%D1zvN$;M93Pp@h(u||*eOoe2RhdpaCSwnqT4jL7!@r`&KgH5 zg6HqxQE7b9hQ`r$=C4}|1z#@Pgc_M(60T)aJ-$FoBtTC$jtocLm zo(NvW8nc?0hGxNb1K1P_4ApG5KtwQag70i-7tIr%V0x|L9Hm)OFdx)#$5=w`jK?73dd<{E%+2&( z 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Ð{C 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�ss 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 z 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%0A*9$y7chUF%!1-4#+zqbP|Y&d>N$ zbtcCrM>Atm{^lpcM+l{U(_sURIqC5q}phe_`2dF9A~l?i)p4EcG=zh3=X_wNsLW6uHKu+? z3PpBu%K%X@cnMcjMoo&;wtglEg=mhhK_EtEVUGj&u@6SXgWI6^qfIiGhN71d&7I%D z)C8x+(I(M(xNwyFNrO5Hey<+y-SEZ13uEjQUE!>80!@;m8T%+-e*4m}0TvW*x=ztXeULCP=Gr%c>#lUFGC5CNS2Au>R5EL8gV5DPxPUOnif(V@#jP8wCx zf@vpv3Ap&hXR#n+HlPk=e=cGrki zvMsWn7BOj5xS&g`C2GK!MQO)Mr5zFAO#9;5I>XmvOR@qrlKQCqtn-pV!4tj|Dhs2V z1a1ghA`VR^$HlvnkTh zSIY26&$&E=TtONva+Pgnxm>T+vK5+#y@W!d8pOPVfYiqTaSxZ|fCh+<483aaXnt}C z4V(T(fms286pomp(`>zcr>{3=UXB$a$D+%brCm%Fq-hePu&+cJo1U6DJCl4xBGd@7 z-z6A4iO~98T5?dt;UpMQsCwWA`*3OCMva`LL~J}v8g@GNmL(!Gc?s;A6mbjFCY&Bv z#4@XdSQ=Jr-T8^oIGpqC_a%w5fpxy; zn^q%Nsz$vaiJZtTAA$Xu^q2FpR3Se6q<{ypL4*=xU(z&*bm)A8aSMW_;NnzYK_Gs>N(JTst&J}p1~&ps>zrKS&G{^njm@Si26eTD{^rz z(uxwDZzvu-qXvUnMn^kO%njlI;XP7IXi236i2egWX?A>6wnxqyQIhvZGAko60#sbS zR2Qg_j5|+tpa}vvF}DQnaibu*tvA8+6c&yqKM1TZD-NwTBg6OsW_B#d9$2iiwo?4r z4m?!P{x;C%JJVnwRQpbwC=%g#z}s7~yddq9+Ew4MEpG)xU>(E&-Jj17sy9LMJ8_Oz zy$5gKd-woOD9y%~A= z@LiR{@R&Ou^8w#3+j)dapkyJh z9Z1cH6iSD`-cGP=O#(~q3`mP_tS+9sHcB!qEcli5h2nw=l>yfVK% z7+I$seY*{kK*^{}0b>-yn7EYNasV}V2x1#PoqLeE9(koB5R<|1`?Js}++|GuU@(hq z$hF*0cpj~Q#0#*An@-1~LVjNOa>?C)X*CQ+AmqhU2snjJZK$9tFa;ht0xu9vOB?TO z@Pg5}52AI9E7JUEiXc{;VshaTAsC9e6bdgBngrZ@nT3=wbk9rULKp`A4J(YVAzKNK z+#`H+mo~ff1xPB+dKt-?F(@1cAsiz9I97p#0DWCfz=g+U!G+A(xntf)xLN?3CCCb8 znSOaovF7u?$10))2tcWG}s?@o@OHXUf5YZtt%YG_tASJa94h z5eqLErb68Zk45qiTKO2*o)8o3FCDwkaE{{u-jFap;DR%4gs2CS86m}%vkT$0+k-<3 z;cth$0iysfzk{0ybZE>V1;zJqNeb3fhUT)sYZ$%d5mW(O8{%n%OM7>y6aL28v6MU= z3qLIl7%GA?$W5dgV}Y!x54 zrqJ3kEP4!Lz!icTJ#Ko=Y*EBt(zaa+)M1y4TI8V4*X{bM>RY3uDczb7b2Nsh5$@uK zGX@(YKRMTGp-;9C42%iHU|}rr$5S3jnG-qu;)7|#OY0pHMadYqinoWSS*$my*g--M zm@=q82$4DHwl|vbR#JtMK#?

Y|+Jv2y}q$FxXFg*-v~tSgm86Cn9&QA6~53D{o} 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 diff --git a/docs/_build/doctrees/examples.doctree b/docs/_build/doctrees/examples.doctree deleted file mode 100644 index 8e74301aa5fb7c7a143bd3228a3dafaef451d845..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5131 zcmeHL;cpyA6?bgko$q2hcABJ=*02?{c2ImrP(PrfDni7F;KZrg5EV#R&+X3Lti8Ll z?9AGCic*T&AS?zU)a4t01%Cp6Q&ovi@O!hjcYEhL6bU3gVCj;bw{PCeym`O(es4dj z{dwWqg8egBR3d_S*k-;TOP{OUtoYK)A|C7f)BNUd@@M&uX{PK{$t?AFZWf^7i6Hb- z9_LT+a-H;b5UTdrK*N*K%zRP%;FC)W3wItk2M-=PclPe>J=}91{`l_u&X4Zi+k4%) zs~u0qngy|PwBQa4!`&cCWU5)Lox^t9VVRaHiz1eey4^#^4^r;w;DkG;ffmkT7sD)7 z5a6XubRgqf_Lar@1uaDMRaU8g)4BL(MFW}zQ%YiGc--e+ROkIH={(RBsQ{9voI9yZdU9Bmb%2V# zOb5I}Nb2w*i;|ElisRfYhX72zU(b37#D*dy%XpG(L`~EwNO$nErUM=F$}6+7H#SuS z@@7R)IB*B&xGmlkOJe&#+&sv7OuP)wiB}Nzuj03b-`DYb{YjpQH$(^Ow+eN!BW~`m zU{ecbL$h86?7E%|U6pXJvV~%I7aBFoR^Mzq{^05DXHUQLto+|D_xFU}rFU|Bc5~y4vsP|4E6OfTJL~237XHdhYqiRxQJYsB`=V*;dXUO2Ip-$2M3jT@ z-}K=Mrkn=87WsaQZt0hB+b?i4Zc&fQ5V`mgDh7UDH9#TNlm6)3MzPPORGyxb+b9Gc z(=VLT1X$T1Wr?UvG+*l`qps{7bq`AyI&YUx?;Jk1-rPZyttLG7QDfX8U|Kb>^+E&X zZ8X9F7-V5(ruc(R??6SlUOq*|pDsqlj#;*QFpJ5EQqX7@+t2wtSpJA>`2C9zW$HKy z5RW7?*#O7`$s$zuT>Ql}Fw&z0d1#5&Fqbjr!z2v6K0Up^OJb_F?l;`4F?;ou6G*65kNtq-74ESmyeBHb08{=1OH17Ywb6 zCR>L9)W(>(oqu`6ga8w6P{w;(n5gYnE zK?3~AKk#Rk2chgC^cx=utLaPsL?I^W-MzR$mmBR)Ili0MUD5XH)ZIU}nS&u_ub z(rodZ8Y(B3)po)r#E!WJvK_0?@^CjvICg5t2;j2cm<_GT<>% zs+K9G86PZMX)qTIE*A^BSml_UKOSajh|wD2!zH>!Z&fZnG*|mlYV-iSBHq7b)`;xH zS>z5uj-nirb!syb@C@5ADHwaTknoUG52ak{aNLsaVXg6mG5>=DQcj(c8}btl$1R$c zVBus~Gn;%Ez+al_OqEJCQ}cN*8(_J0%C=O5V3)H9k|uRRoQ{KhydK2xj>}_DQmM*K zGt>Ru@9wGq&#%qCba|S})DuU-f@KJe2d0jm zw2x!LBY}@71(t`osGD^HvO5)-#Q=e|=4VmjPJ$1PwF2AG#SE$Lz+ABs8`gCFQ&FOL z=1UhG9aPDNR&dlyc3ceIPbE=rT8NJcX@NI**}4$3 zkHL}8>=zT;*^KkR8KOseLEJ|Sl!@Ugr3#hx=JbMyf;W_`KqIwM$2npq>Tw?s9$^cD zgBYEe>mIa@T@KO%fA3 zBqjUeOo>Y=}zQN1=NoM<;^ z)SBh0*3#7(`$)B^rrdsg-q!dHY8$eLCo}rm0|pEx6ymbsP86-i56ALP;ezM+dq4u3 t3}6a9zQWxX3r>>AjQH|IY_IR~n1di(21G$x_#h=w-LMeKoh6>_e*)4As73$) diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree deleted file mode 100644 index 2db2335052e3e0d8a5232d8ce8dd43cf0f31f35c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4195664 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

-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'qryeytTP|bGUwM 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 qSgmLIy*OIX27 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 z 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

XjfN?B)bNkOdK0fdsNgYeW_x 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

h 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 diff --git a/docs/_build/doctrees/tests.doctree b/docs/_build/doctrees/tests.doctree deleted file mode 100644 index 0b7aef193cb03f452aa29a1694155ede6ffd2af3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5075 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 SMXJ`INV9D<2GX|n+2lXz&jvRD diff --git a/docs/_build/html/.buildinfo b/docs/_build/html/.buildinfo deleted file mode 100644 index bd52b16..0000000 --- a/docs/_build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 2775d85dfe4893a50d0d0424f6349d2e -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_build/html/_autosummary/engforge.analysis.Analysis.html b/docs/_build/html/_autosummary/engforge.analysis.Analysis.html deleted file mode 100644 index 0b07982..0000000 --- a/docs/_build/html/_autosummary/engforge.analysis.Analysis.html +++ /dev/null @@ -1,1109 +0,0 @@ - - - - - - - engforge.analysis.Analysis — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.analysis.html b/docs/_build/html/_autosummary/engforge.analysis.html deleted file mode 100644 index 4e1fab3..0000000 --- a/docs/_build/html/_autosummary/engforge.analysis.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - engforge.analysis — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.analysis.make_reporter_check.html b/docs/_build/html/_autosummary/engforge.analysis.make_reporter_check.html deleted file mode 100644 index a3a81c8..0000000 --- a/docs/_build/html/_autosummary/engforge.analysis.make_reporter_check.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - engforge.analysis.make_reporter_check — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_dynamics.IntegratorInstance.html b/docs/_build/html/_autosummary/engforge.attr_dynamics.IntegratorInstance.html deleted file mode 100644 index 2d59e1a..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_dynamics.IntegratorInstance.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - engforge.attr_dynamics.IntegratorInstance — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_dynamics.IntegratorInstance

-
-
-class IntegratorInstance(solver, system)[source]
-

Bases: AttributeInstance

-

A decoupled signal instance to perform operations on a system instance

-

Methods

- - - - - - - - - - - - - - - -

as_ref_dict

compile

get_alias

is_active

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

system

solver

var_ref

rate_ref

active

classname

combos

constraint_refs

constraints

current_rate

integrated

normalize

rate

rates

slvtype

var

class_attr

backref

-
-
Parameters:
-
-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_dynamics.TRANSIENT.html b/docs/_build/html/_autosummary/engforge.attr_dynamics.TRANSIENT.html deleted file mode 100644 index 3ef9c20..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_dynamics.TRANSIENT.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - engforge.attr_dynamics.TRANSIENT — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_dynamics.Time.html b/docs/_build/html/_autosummary/engforge.attr_dynamics.Time.html deleted file mode 100644 index a3db3ce..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_dynamics.Time.html +++ /dev/null @@ -1,458 +0,0 @@ - - - - - - - engforge.attr_dynamics.Time — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_dynamics.Time

-
-
-class Time(name, default, validator, repr, cmp, hash, init, inherited, metadata=None, type=None, converter=None, kw_only=False, eq=None, eq_key=None, order=None, order_key=None, on_setattr=None, alias=None)[source]
-

Bases: ATTR_BASE

-

Transient is a base class for integrators over time

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_var_constraint

adds a type constraint to the solver.

class_validate

validates onetime A method to validate the kwargs passed to the define method

collect_attr_inst

collects all the attribute instances for a system

collect_cls

collects all the attributes for a system

configure_for_system

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

configure_instance

validates the instance given attr's init routine

constraint_exists

check constraints on the system, return its index position if found, else None.

create_instance

Create an instance of the instance_class

define

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

define_validate

A method to validate the kwargs passed to the define method

evolve

Copy self and apply changes.

from_counting_attr

handle_instance

handles the instance, override as you wish

integrate

Defines an ODE like integrator that will be integrated over time with the defined integration rule.

make_attribute

makes an attrs.Attribute for the class

make_factory

process_combos

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

unpack_atrs

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

name

default

validator

repr

eq

eq_key

order

order_key

hash

init

metadata

type

converter

kw_only

inherited

on_setattr

alias

allow_constraint_override

attr_prefix

default_options

none_ok

template_class

mode

var

rate

constraints

config_cls

active

combos

-
-
-classmethod add_var_constraint(value, kind='min', **kwargs)[source]
-

adds a type constraint to the solver. If value is numeric it is used as a bound with scipy optimize.

-
-
Parameters:
-

type – str, must be either min or max with var value comparison, or with a function additionally eq,ineq (same as max(0)) can be used

-
-
Value:
-

either a numeric (int,float), or a function, f(system)

-
-
-
- -
-
-classmethod class_validate(instance, **kwargs)[source]
-

validates onetime A method to validate the kwargs passed to the define method

-
- -
-
-classmethod collect_attr_inst(system, handle_inst=True)
-

collects all the attribute instances for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod collect_cls(system)
-

collects all the attributes for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod configure_for_system(name, config_class, cb=None, **kwargs)
-

add the config class, and perform checks with `class_validate) -:returns: [optional] a dictionary of options to be used in the make_attribute method

-
- -
-
-classmethod configure_instance(instance, attribute, value)
-

validates the instance given attr’s init routine

-
- -
-
-classmethod constraint_exists(**kw)[source]
-

check constraints on the system, return its index position if found, else None.

-
- -
-
-classmethod create_instance(instance)
-

Create an instance of the instance_class

-
-
Return type:
-

AttributeInstance

-
-
Parameters:
-

instance (Configuration)

-
-
-
- -
-
-classmethod define(**kwargs)
-

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

-
- -
-
-classmethod define_validate(**kwargs)
-

A method to validate the kwargs passed to the define method

-
- -
-
-evolve(**changes)
-

Copy self and apply changes.

-

This works similarly to attrs.evolve but that function does not work -with Attribute.

-

It is mainly meant to be used for transform-fields.

-
-

Added in version 20.3.0.

-
-
- -
-
-classmethod handle_instance(canidate)
-

handles the instance, override as you wish

-
- -
-
-instance_class
-

alias of IntegratorInstance

-
- -
-
-classmethod integrate(var, rate, mode='euler', active=True, combos='default')[source]
-

Defines an ODE like integrator that will be integrated over time with the defined integration rule.

-

Input should be of strings to look up the particular property or field

-
-
Parameters:
-
-
-
-
- -
-
-classmethod make_attribute(name, comp_class, **kwargs)
-

makes an attrs.Attribute for the class

-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_dynamics.html b/docs/_build/html/_autosummary/engforge.attr_dynamics.html deleted file mode 100644 index 0ea1ae6..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_dynamics.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - engforge.attr_dynamics — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.PLOT.html b/docs/_build/html/_autosummary/engforge.attr_plotting.PLOT.html deleted file mode 100644 index 2484d43..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.PLOT.html +++ /dev/null @@ -1,495 +0,0 @@ - - - - - - - engforge.attr_plotting.Plot — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.Plot

-
-
-class Plot(name, default, validator, repr, cmp, hash, init, inherited, metadata=None, type=None, converter=None, kw_only=False, eq=None, eq_key=None, order=None, order_key=None, on_setattr=None, alias=None)[source]
-

Bases: PlotBase

-

Plot is a conveinence method

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class_validate

validates onetime A method to validate the kwargs passed to the define method

collect_attr_inst

collects all the attribute instances for a system

collect_cls

collects all the attributes for a system

configure_for_system

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

configure_instance

validates the instance given attr's init routine

create_instance

Create an instance of the instance_class

define

Defines a plot that will be rendered in seaborn, with validation happening as much as possible in the define method

define_validate

A method to validate the kwargs passed to the define method

evolve

Copy self and apply changes.

from_counting_attr

handle_instance

no interacion with system, reporing only

make_attribute

makes an attrs.Attribute for the class

make_factory

plot_extra

plot_vars

gathers seaborn plot vars that will scope from system.dataframe

process_combos

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

unpack_atrs

validate_plot_args

Checks system.system_references that cls.plot_vars exists

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

name

default

validator

repr

eq

eq_key

order

order_key

hash

init

metadata

type

converter

kw_only

inherited

on_setattr

alias

attr_prefix

cls_vars

default_options

none_ok

std_fields

template_class

title

type_var_options

types

kind

x

y

hue

col

row

plot_func

plot_args

config_cls

active

combos

-
-
-classmethod class_validate(instance, **kwargs)
-

validates onetime A method to validate the kwargs passed to the define method

-
- -
-
-classmethod collect_attr_inst(system, handle_inst=True)
-

collects all the attribute instances for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod collect_cls(system)
-

collects all the attributes for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod configure_for_system(name, config_class, cb=None, **kwargs)
-

add the config class, and perform checks with `class_validate) -:returns: [optional] a dictionary of options to be used in the make_attribute method

-
- -
-
-classmethod configure_instance(instance, attribute, value)
-

validates the instance given attr’s init routine

-
- -
-
-classmethod create_instance(system)
-

Create an instance of the instance_class

-
-
Return type:
-

PlotInstance

-
-
Parameters:
-

system (System)

-
-
-
- -
-
-classmethod define(x, y, _type='relplot', kind='scatterplot', row=None, col=None, hue=None, **kwargs)[source]
-

Defines a plot that will be rendered in seaborn, with validation happening as much as possible in the define method

-

#Plot Choice -:type _type: -:param _type: the type of seaborn plot (relplot,displot,catplot) -:type kind: -:param kind: specify the kind of type of plot (ie. scatterplot of relplot)

-

# Dependents & Independents: -:type x: -:param x: the x var for each plot -:type y: -:param y: the y var for each plot

-

# Additional Parameters: -:type row: -:param row: create a grid of data with row var -:type col: -:param col: create a grid of data with column var -:type hue: -:param hue: provide an additional dimension of color based on this var -:param title: this title will be applied to the figure.suptitle()

-
- -
-
-classmethod define_validate(**kwargs)
-

A method to validate the kwargs passed to the define method

-
- -
-
-evolve(**changes)
-

Copy self and apply changes.

-

This works similarly to attrs.evolve but that function does not work -with Attribute.

-

It is mainly meant to be used for transform-fields.

-
-

Added in version 20.3.0.

-
-
- -
-
-classmethod handle_instance(canidate)
-

no interacion with system, reporing only

-
- -
-
-instance_class
-

alias of PlotInstance

-
- -
-
-classmethod make_attribute(name, comp_class, **kwargs)
-

makes an attrs.Attribute for the class

-
- -
-
-classmethod plot_vars()[source]
-

gathers seaborn plot vars that will scope from system.dataframe

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod validate_plot_args(system)
-

Checks system.system_references that cls.plot_vars exists

-
-
Parameters:
-

system (System)

-
-
-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.PlotBase.html b/docs/_build/html/_autosummary/engforge.attr_plotting.PlotBase.html deleted file mode 100644 index 0e555aa..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.PlotBase.html +++ /dev/null @@ -1,447 +0,0 @@ - - - - - - - engforge.attr_plotting.PlotBase — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.PlotBase

-
-
-class PlotBase(name, default, validator, repr, cmp, hash, init, inherited, metadata=None, type=None, converter=None, kw_only=False, eq=None, eq_key=None, order=None, order_key=None, on_setattr=None, alias=None)[source]
-

Bases: ATTR_BASE

-

base class for plot attributes

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class_validate

validates onetime A method to validate the kwargs passed to the define method

collect_attr_inst

collects all the attribute instances for a system

collect_cls

collects all the attributes for a system

configure_for_system

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

configure_instance

validates the instance given attr's init routine

create_instance

Create an instance of the instance_class

define

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

define_validate

A method to validate the kwargs passed to the define method

evolve

Copy self and apply changes.

from_counting_attr

handle_instance

no interacion with system, reporing only

make_attribute

makes an attrs.Attribute for the class

make_factory

plot_extra

plot_vars

gathers seaborn plot vars that will scope from system.dataframe

process_combos

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

unpack_atrs

validate_plot_args

Checks system.system_references that cls.plot_vars exists

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

name

default

validator

repr

eq

eq_key

order

order_key

hash

init

metadata

type

converter

kw_only

inherited

on_setattr

alias

attr_prefix

cls_vars

default_options

none_ok

template_class

title

config_cls

kind

active

combos

-
-
-classmethod class_validate(instance, **kwargs)
-

validates onetime A method to validate the kwargs passed to the define method

-
- -
-
-classmethod collect_attr_inst(system, handle_inst=True)
-

collects all the attribute instances for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod collect_cls(system)
-

collects all the attributes for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod configure_for_system(name, config_class, cb=None, **kwargs)
-

add the config class, and perform checks with `class_validate) -:returns: [optional] a dictionary of options to be used in the make_attribute method

-
- -
-
-classmethod configure_instance(instance, attribute, value)
-

validates the instance given attr’s init routine

-
- -
-
-classmethod create_instance(system)[source]
-

Create an instance of the instance_class

-
-
Return type:
-

PlotInstance

-
-
Parameters:
-

system (System)

-
-
-
- -
-
-classmethod define(**kwargs)
-

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

-
- -
-
-classmethod define_validate(**kwargs)
-

A method to validate the kwargs passed to the define method

-
- -
-
-evolve(**changes)
-

Copy self and apply changes.

-

This works similarly to attrs.evolve but that function does not work -with Attribute.

-

It is mainly meant to be used for transform-fields.

-
-

Added in version 20.3.0.

-
-
- -
-
-classmethod handle_instance(canidate)[source]
-

no interacion with system, reporing only

-
- -
-
-instance_class
-

alias of PlotInstance

-
- -
-
-classmethod make_attribute(name, comp_class, **kwargs)
-

makes an attrs.Attribute for the class

-
- -
-
-classmethod plot_vars()[source]
-

gathers seaborn plot vars that will scope from system.dataframe

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod validate_plot_args(system)[source]
-

Checks system.system_references that cls.plot_vars exists

-
-
Parameters:
-

system (System)

-
-
-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.PlotInstance.html b/docs/_build/html/_autosummary/engforge.attr_plotting.PlotInstance.html deleted file mode 100644 index 845c10a..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.PlotInstance.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - engforge.attr_plotting.PlotInstance — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.PlotInstance

-
-
-class PlotInstance(system, plot_cls)[source]
-

Bases: AttributeInstance

-

combine plotclass vars with system info

-

Methods

- - - - - - - - - - - - - - - - - - - - - -

as_ref_dict

compile

get_alias

is_active

plot

applies the system dataframe to the plot

process_fig

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

active

classname

combos

identity

refs

plot_cls

system

class_attr

backref

-
-
Parameters:
-
-
-
-
-
-__call__(**override_kw)[source]
-

method allowing a similar type.kind(**override_kw,**default) (ie. relplot.scatterplot(x=different var)) -#TODO: override strategy

-
- -
-
-plot(**kwargs)[source]
-

applies the system dataframe to the plot

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.PlotLog.html b/docs/_build/html/_autosummary/engforge.attr_plotting.PlotLog.html deleted file mode 100644 index 2474ad4..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.PlotLog.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - - engforge.attr_plotting.PlotLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.PlotLog

-
-
-class PlotLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.PlottingMixin.html b/docs/_build/html/_autosummary/engforge.attr_plotting.PlottingMixin.html deleted file mode 100644 index e9bfb0e..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.PlottingMixin.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - engforge.attr_plotting.PlottingMixin — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.PlottingMixin

-
-
-class PlottingMixin[source]
-

Bases: object

-

Inherited by Systems and Analyses to provide common interface for plotting

-

Methods

- - - - - - -

make_plots

makes plots and traces of all on this instance, and if a system is subsystems.

-

Attributes

- - - - - - -

stored_plots

-
-
-make_plots(analysis=None, store_figures=True, pre=None)[source]
-

makes plots and traces of all on this instance, and if a system is -subsystems. Analysis should call make plots however it can be called on a system as well -:type analysis: Analysis -:param analysis: the analysis that has triggered this plot -:param store_figure: a boolean or dict, if neither a dictionary will be created and returend from this function -:returns: the dictionary from store_figures logic

-
-
Parameters:
-
    -
  • analysis (Analysis)

  • -
  • store_figures (bool)

  • -
-
-
-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.Trace.html b/docs/_build/html/_autosummary/engforge.attr_plotting.Trace.html deleted file mode 100644 index 8bcdc9f..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.Trace.html +++ /dev/null @@ -1,503 +0,0 @@ - - - - - - - engforge.attr_plotting.Trace — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.Trace

-
-
-class Trace(name, default, validator, repr, cmp, hash, init, inherited, metadata=None, type=None, converter=None, kw_only=False, eq=None, eq_key=None, order=None, order_key=None, on_setattr=None, alias=None)[source]
-

Bases: PlotBase

-

trace is a plot for transients, with y and y2 axes which can have multiple vars each

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class_validate

validates onetime A method to validate the kwargs passed to the define method

collect_attr_inst

collects all the attribute instances for a system

collect_cls

collects all the attributes for a system

configure_for_system

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

configure_instance

validates the instance given attr's init routine

create_instance

Create an instance of the instance_class

define

Defines a plot that will be matplotlib, with validation happening as much as possible in the define method

define_validate

A method to validate the kwargs passed to the define method

evolve

Copy self and apply changes.

from_counting_attr

handle_instance

no interacion with system, reporing only

make_attribute

makes an attrs.Attribute for the class

make_factory

plot_extra

plot_vars

gathers seaborn plot vars that will scope from system.dataframe

process_combos

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

unpack_atrs

valid_non_vars

valid_vars_options

validate_plot_args

Checks system.system_references that cls.plot_vars exists

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

name

default

validator

repr

eq

eq_key

order

order_key

hash

init

metadata

type

converter

kw_only

inherited

on_setattr

alias

all_options

always

attr_prefix

cls_vars

default_options

none_ok

template_class

title

type_options

type_var_options

types

y2

y

x

plot_args

extra_args

config_cls

kind

active

combos

-
-
-classmethod class_validate(instance, **kwargs)
-

validates onetime A method to validate the kwargs passed to the define method

-
- -
-
-classmethod collect_attr_inst(system, handle_inst=True)
-

collects all the attribute instances for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod collect_cls(system)
-

collects all the attributes for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod configure_for_system(name, config_class, cb=None, **kwargs)
-

add the config class, and perform checks with `class_validate) -:returns: [optional] a dictionary of options to be used in the make_attribute method

-
- -
-
-classmethod configure_instance(instance, attribute, value)
-

validates the instance given attr’s init routine

-
- -
-
-classmethod create_instance(system)
-

Create an instance of the instance_class

-
-
Return type:
-

PlotInstance

-
-
Parameters:
-

system (System)

-
-
-
- -
-
-classmethod define(x='time', y=None, y2=None, kind='line', **kwargs)[source]
-

Defines a plot that will be matplotlib, with validation happening as much as possible in the define method

-

#Plot Choice -:type kind: -:param kind: specify the kind of type of plot scatter or line, with the default being line

-

# Dependents & Independents: -:type x: -:param x: the x var for each plot, by default ‘time’ -:type y: Union[str, list, None] -:param y: the y var for each plot, required -:type y2: -:param y2: the y2 var for each plot, optional

-

# Additional Parameters: -:param title: this title will be applied to the figure.suptitle() -:param xlabel: the x label, by default the capitalized var -:param ylabel: the x label, by default the capitalized var -:param y2label: the x label, by default the capitalized var

-
-
Parameters:
-

y (str | list | None)

-
-
-
- -
-
-classmethod define_validate(**kwargs)
-

A method to validate the kwargs passed to the define method

-
- -
-
-evolve(**changes)
-

Copy self and apply changes.

-

This works similarly to attrs.evolve but that function does not work -with Attribute.

-

It is mainly meant to be used for transform-fields.

-
-

Added in version 20.3.0.

-
-
- -
-
-classmethod handle_instance(canidate)
-

no interacion with system, reporing only

-
- -
-
-instance_class
-

alias of TraceInstance

-
- -
-
-classmethod make_attribute(name, comp_class, **kwargs)
-

makes an attrs.Attribute for the class

-
- -
-
-classmethod plot_vars()[source]
-

gathers seaborn plot vars that will scope from system.dataframe

-
-
Return type:
-

set

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod validate_plot_args(system)
-

Checks system.system_references that cls.plot_vars exists

-
-
Parameters:
-

system (System)

-
-
-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.TraceInstance.html b/docs/_build/html/_autosummary/engforge.attr_plotting.TraceInstance.html deleted file mode 100644 index 3b08bde..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.TraceInstance.html +++ /dev/null @@ -1,250 +0,0 @@ - - - - - - - engforge.attr_plotting.TraceInstance — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.TraceInstance

-
-
-class TraceInstance(system, plot_cls)[source]
-

Bases: PlotInstance

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - -

as_ref_dict

compile

get_alias

is_active

plot

applies the system dataframe to the plot

plot_extra

process_fig

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

active

classname

combos

identity

refs

plot_cls

system

class_attr

backref

-
-
Parameters:
-
-
-
-
-
-__call__(**override_kw)[source]
-

method allowing a similar type.kind(**override_kw,**default) (ie. relplot.scatterplot(x=different var)) -#TODO: override strategy

-
- -
-
-plot(**kwargs)
-

applies the system dataframe to the plot

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.conv_ctx.html b/docs/_build/html/_autosummary/engforge.attr_plotting.conv_ctx.html deleted file mode 100644 index 19dc77a..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.conv_ctx.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.attr_plotting.conv_ctx — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.conv_ctx

-
-
-conv_ctx(ctx)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.conv_maps.html b/docs/_build/html/_autosummary/engforge.attr_plotting.conv_maps.html deleted file mode 100644 index 46cf75d..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.conv_maps.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.attr_plotting.conv_maps — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.conv_maps

-
-
-conv_maps(map)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.conv_theme.html b/docs/_build/html/_autosummary/engforge.attr_plotting.conv_theme.html deleted file mode 100644 index f7baf10..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.conv_theme.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.attr_plotting.conv_theme — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.conv_theme

-
-
-conv_theme(theme)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.html b/docs/_build/html/_autosummary/engforge.attr_plotting.html deleted file mode 100644 index 91edd24..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - - engforge.attr_plotting — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.attr_plotting

-

This module defines Plot and Trace methods that allow the plotting of Statistical & Transient relationships of data in each system

-

Functions

- - - - - - - - - - - - - - - - - - -

conv_ctx

conv_maps

conv_theme

install_seaborn

save_all_figures_to_pdf

Save all figures to a PDF file.

-

Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

PLOT

alias of Plot

Plot

Plot is a conveinence method

PlotBase

base class for plot attributes

PlotInstance

combine plotclass vars with system info

PlotLog

Initialize a filter.

PlottingMixin

Inherited by Systems and Analyses to provide common interface for plotting

Trace

trace is a plot for transients, with y and y2 axes which can have multiple vars each

TraceInstance

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.install_seaborn.html b/docs/_build/html/_autosummary/engforge.attr_plotting.install_seaborn.html deleted file mode 100644 index 4a33ae3..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.install_seaborn.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.attr_plotting.install_seaborn — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.install_seaborn

-
-
-install_seaborn(rc_override=None, **kwargs)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_plotting.save_all_figures_to_pdf.html b/docs/_build/html/_autosummary/engforge.attr_plotting.save_all_figures_to_pdf.html deleted file mode 100644 index c38d80c..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_plotting.save_all_figures_to_pdf.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - engforge.attr_plotting.save_all_figures_to_pdf — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_plotting.save_all_figures_to_pdf

-
-
-save_all_figures_to_pdf(filename, figs=None, dpi=200, close=True, pdf=None, return_pdf=False)[source]
-

Save all figures to a PDF file.

-
-
Parameters:
-
    -
  • filename – The name of the PDF file to save.

  • -
  • figs – List of figures to save. If None, all open figures will be saved.

  • -
  • dpi – The resolution of the saved figures in dots per inch.

  • -
  • close – Whether to close all figures after saving.

  • -
  • pdf – An existing PdfPages object to append the figures to. If None, a new PdfPages object will be created.

  • -
  • return_pdf – Whether to return the PdfPages object after saving.

  • -
-
-
Returns:
-

The PdfPages object if return_pdf is True, else None.

-
-
Return type:
-

PdfPages or None

-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_signals.Signal.html b/docs/_build/html/_autosummary/engforge.attr_signals.Signal.html deleted file mode 100644 index 606e2ba..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_signals.Signal.html +++ /dev/null @@ -1,414 +0,0 @@ - - - - - - - engforge.attr_signals.Signal — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_signals.Signal

-
-
-class Signal(name, default, validator, repr, cmp, hash, init, inherited, metadata=None, type=None, converter=None, kw_only=False, eq=None, eq_key=None, order=None, order_key=None, on_setattr=None, alias=None)[source]
-

Bases: ATTR_BASE

-

A base class that handles initalization in the attrs meta class scheme by ultimately createing a SignalInstance

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class_validate

validates onetime A method to validate the kwargs passed to the define method

collect_attr_inst

collects all the attribute instances for a system

collect_cls

collects all the attributes for a system

configure_for_system

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

configure_instance

validates the instance given attr's init routine

create_instance

Create an instance of the instance_class

define

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

define_validate

A method to validate the kwargs passed to the define method

evolve

Copy self and apply changes.

from_counting_attr

handle_instance

handles the instance, override as you wish

make_attribute

makes an attrs.Attribute for the class

make_factory

process_combos

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

unpack_atrs

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

name

default

validator

repr

eq

eq_key

order

order_key

hash

init

metadata

type

converter

kw_only

inherited

on_setattr

alias

attr_prefix

default_options

none_ok

template_class

mode

target

source

config_cls

active

combos

-
-
-classmethod class_validate(instance, **kwargs)[source]
-

validates onetime A method to validate the kwargs passed to the define method

-
- -
-
-classmethod collect_attr_inst(system, handle_inst=True)
-

collects all the attribute instances for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod collect_cls(system)
-

collects all the attributes for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod configure_for_system(name, config_class, cb=None, **kwargs)
-

add the config class, and perform checks with `class_validate) -:returns: [optional] a dictionary of options to be used in the make_attribute method

-
- -
-
-classmethod configure_instance(instance, attribute, value)
-

validates the instance given attr’s init routine

-
- -
-
-classmethod create_instance(instance)
-

Create an instance of the instance_class

-
-
Return type:
-

AttributeInstance

-
-
Parameters:
-

instance (Configuration)

-
-
-
- -
-
-classmethod define(target, source, mode='pre', **kw)[source]
-

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

-
-
Parameters:
-
    -
  • target (str)

  • -
  • source (str)

  • -
-
-
-
- -
-
-classmethod define_validate(**kwargs)
-

A method to validate the kwargs passed to the define method

-
- -
-
-evolve(**changes)
-

Copy self and apply changes.

-

This works similarly to attrs.evolve but that function does not work -with Attribute.

-

It is mainly meant to be used for transform-fields.

-
-

Added in version 20.3.0.

-
-
- -
-
-classmethod handle_instance(canidate)
-

handles the instance, override as you wish

-
- -
-
-instance_class
-

alias of SignalInstance

-
- -
-
-classmethod make_attribute(name, comp_class, **kwargs)
-

makes an attrs.Attribute for the class

-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_signals.SignalInstance.html b/docs/_build/html/_autosummary/engforge.attr_signals.SignalInstance.html deleted file mode 100644 index ea1ecac..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_signals.SignalInstance.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - - engforge.attr_signals.SignalInstance — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_signals.SignalInstance

-
-
-class SignalInstance(signal, system)[source]
-

Bases: AttributeInstance

-

A decoupled signal instance to perform operations on a system instance

-

Methods

- - - - - - - - - - - - - - - - - - -

apply

sets target from source

as_ref_dict

compile

get_alias

is_active

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

active

classname

combos

mode

system

signal

target

source

class_attr

backref

-
-
-
-
-apply()[source]
-

sets target from source

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_signals.html b/docs/_build/html/_autosummary/engforge.attr_signals.html deleted file mode 100644 index 0ef2a72..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_signals.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - engforge.attr_signals — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.attr_signals

-

This module defines the slot attrs attribute to define the update behavior of a component or between components in an analysis

-

Classes

- - - - - - - - - -

Signal

A base class that handles initalization in the attrs meta class scheme by ultimately createing a SignalInstance

SignalInstance

A decoupled signal instance to perform operations on a system instance

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_slots.Slot.html b/docs/_build/html/_autosummary/engforge.attr_slots.Slot.html deleted file mode 100644 index c78ec8d..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_slots.Slot.html +++ /dev/null @@ -1,444 +0,0 @@ - - - - - - - engforge.attr_slots.Slot — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_slots.Slot

-
-
-class Slot(name, default, validator, repr, cmp, hash, init, inherited, metadata=None, type=None, converter=None, kw_only=False, eq=None, eq_key=None, order=None, order_key=None, on_setattr=None, alias=None)[source]
-

Bases: ATTR_BASE

-

Slot defines a way to accept different components or systems in a system

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class_validate

validates onetime A method to validate the kwargs passed to the define method

collect_attr_inst

collects all the attribute instances for a system

collect_cls

collects all the attributes for a system

configure_for_system

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

configure_instance

validates the instance given attr's init routine

create_instance

Create an instance of the instance_class

define

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

define_iterator

taking a type of component iterator, defines an interface that can be 'wide' where all items are executed in the same row on System.run().

define_validate

A method to validate the kwargs passed to the define method

evolve

Copy self and apply changes.

from_counting_attr

handle_instance

a passthrough

make_accepted

make_attribute

makes an attrs.Attribute for the class

make_factory

process_combos

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

unpack_atrs

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

name

default

validator

repr

eq

eq_key

order

order_key

hash

init

metadata

type

converter

kw_only

inherited

on_setattr

alias

attr_prefix

default_ok

default_options

dflt_kw

instance_class

none_ok

template_class

accepted

config_cls

is_iter

wide

active

combos

-
-
-classmethod class_validate(instance, **kwargs)
-

validates onetime A method to validate the kwargs passed to the define method

-
- -
-
-classmethod collect_attr_inst(system, handle_inst=True)
-

collects all the attribute instances for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod collect_cls(system)
-

collects all the attributes for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod configure_for_system(name, config_class, cb=None, **kwargs)
-

add the config class, and perform checks with `class_validate) -:returns: [optional] a dictionary of options to be used in the make_attribute method

-
- -
-
-classmethod configure_instance(instance, attribute, value)[source]
-

validates the instance given attr’s init routine

-
- -
-
-classmethod create_instance(instance)
-

Create an instance of the instance_class

-
-
Return type:
-

AttributeInstance

-
-
Parameters:
-

instance (Configuration)

-
-
-
- -
-
-classmethod define(*component_or_systems, none_ok=False, default_ok=True, dflt_kw=None)[source]
-

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

-
-
Parameters:
-
    -
  • none_ok – will allow no component on that item, oterwise will fail

  • -
  • default_ok – will create the slot class with no input if true

  • -
  • dflt_kw (dict) – a dictionary of input in factory for custom inits overrides defaults_ok

  • -
  • component_or_systems (Component | System)

  • -
-
-
-

#TODO: add default_args,default_kwargs

-
- -
-
-classmethod define_iterator(*component_or_systems, none_ok=False, default_ok=True, wide=True, dflt_kw=None)[source]
-

taking a type of component iterator, defines an interface that can be ‘wide’ where all items are executed in the same row on System.run().

-

Conversely if wide is false the system will loop over each item as if it was included in System.run(). Multiple ComponentIterators with wide=False will result in a outer join of the items.

-
-
Parameters:
-
    -
  • none_ok (bool) – will allow no component on that item, otherwise will fail

  • -
  • default_ok (bool) – will create the slot class with no input if true

  • -
  • dflt_kw (dict) – a dictionary of input in factory for custom inits

  • -
  • wide (bool) – default is true, will determine if wide dataframe format, or outerproduct format when System.run() is called

  • -
  • component_or_systems (ComponentIterator)

  • -
-
-
-
- -
-
-classmethod define_validate(**kwargs)
-

A method to validate the kwargs passed to the define method

-
- -
-
-evolve(**changes)
-

Copy self and apply changes.

-

This works similarly to attrs.evolve but that function does not work -with Attribute.

-

It is mainly meant to be used for transform-fields.

-
-

Added in version 20.3.0.

-
-
- -
-
-classmethod handle_instance(canidate)[source]
-

a passthrough

-
- -
-
-classmethod make_attribute(name, comp_class, **kwargs)
-

makes an attrs.Attribute for the class

-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_slots.SlotLog.html b/docs/_build/html/_autosummary/engforge.attr_slots.SlotLog.html deleted file mode 100644 index ecbefc8..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_slots.SlotLog.html +++ /dev/null @@ -1,322 +0,0 @@ - - - - - - - engforge.attr_slots.SlotLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_slots.SlotLog

-
-
-class SlotLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_slots.html b/docs/_build/html/_autosummary/engforge.attr_slots.html deleted file mode 100644 index d15bdf8..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_slots.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - engforge.attr_slots — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.attr_slots

-

This module defines the slot attrs attribute to ensure the type of component added is correct and to define behavior,defaults and argument passing behavio

-

Classes

- - - - - - - - - -

Slot

Slot defines a way to accept different components or systems in a system

SlotLog

Initialize a filter.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_solver.AttrSolverLog.html b/docs/_build/html/_autosummary/engforge.attr_solver.AttrSolverLog.html deleted file mode 100644 index 2e01fbe..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_solver.AttrSolverLog.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - engforge.attr_solver.AttrSolverLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_solver.AttrSolverLog

-
-
-class AttrSolverLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_solver.Solver.html b/docs/_build/html/_autosummary/engforge.attr_solver.Solver.html deleted file mode 100644 index bb91a7e..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_solver.Solver.html +++ /dev/null @@ -1,584 +0,0 @@ - - - - - - - engforge.attr_solver.Solver — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_solver.Solver

-
-
-class Solver(name, default, validator, repr, cmp, hash, init, inherited, metadata=None, type=None, converter=None, kw_only=False, eq=None, eq_key=None, order=None, order_key=None, on_setattr=None, alias=None)[source]
-

Bases: ATTR_BASE

-

solver creates subclasses per solver balance

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_var_constraint

adds a type constraint to the solver.

class_validate

validates onetime A method to validate the kwargs passed to the define method

collect_attr_inst

collects all the attribute instances for a system

collect_cls

collects all the attributes for a system

con_eq

Defines an equality constraint based on a required lhs of equation, and an optional rhs, the difference of which will be driven to zero

con_ineq

Defines an inequality constraint

configure_for_system

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

configure_instance

validates the instance given attr's init routine

constraint_equality

Defines an equality constraint based on a required lhs of equation, and an optional rhs, the difference of which will be driven to zero

constraint_exists

check constraints on the system, return its index position if found, else None.

constraint_inequality

Defines an inequality constraint

create_instance

Create an instance of the instance_class

declare_var

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable :type var: str :param var: The var attribute for the solver variable.

define_validate

A method to validate the kwargs passed to the define method

evolve

Copy self and apply changes.

from_counting_attr

handle_instance

handles the instance, override as you wish

make_attribute

makes an attrs.Attribute for the class

make_factory

obj

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable

objective

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable

process_combos

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

unpack_atrs

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

name

default

validator

repr

eq

eq_key

order

order_key

hash

init

metadata

type

converter

kw_only

inherited

on_setattr

alias

allow_constraint_override

attr_prefix

combos

default_options

define

lhs

none_ok

rhs

template_class

var

slvtype

constraints

normalize

active

config_cls

-
-
-classmethod add_var_constraint(value, kind='min', **kwargs)[source]
-

adds a type constraint to the solver. If value is numeric it is used as a bound with scipy optimize.

-
-
If value is a function it should be of the form value(Xarray) and will establish an inequality constraint that var var must be:
    -
  1. less than for max

  2. -
  3. more than for min

  4. -
-
-
-

During the evaluation of the limit function system.X should be set, and pre_execute() have already run.

-
-
Parameters:
-

type – str, must be either min or max with var value comparison, or with a function additionally eq,ineq (same as max(0)) can be used

-
-
Value:
-

either a numeric (int,float), or a function, f(system)

-
-
-
- -
-
-classmethod class_validate(instance, **kwargs)[source]
-

validates onetime A method to validate the kwargs passed to the define method

-
- -
-
-classmethod collect_attr_inst(system, handle_inst=True)
-

collects all the attribute instances for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod collect_cls(system)
-

collects all the attributes for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod con_eq(lhs, rhs=0, **kwargs)
-

Defines an equality constraint based on a required lhs of equation, and an optional rhs, the difference of which will be driven to zero

-
-
Parameters:
-
-
-
-
- -
-
-classmethod con_ineq(lhs, rhs=0, **kwargs)
-

Defines an inequality constraint

-
-
Parameters:
-
-
-
-
- -
-
-classmethod configure_for_system(name, config_class, cb=None, **kwargs)[source]
-

add the config class, and perform checks with `class_validate) -:returns: [optional] a dictionary of options to be used in the make_attribute method

-
- -
-
-classmethod configure_instance(instance, attribute, value)
-

validates the instance given attr’s init routine

-
- -
-
-classmethod constraint_equality(lhs, rhs=0, **kwargs)[source]
-

Defines an equality constraint based on a required lhs of equation, and an optional rhs, the difference of which will be driven to zero

-
-
Parameters:
-
-
-
-
- -
-
-classmethod constraint_exists(**kw)[source]
-

check constraints on the system, return its index position if found, else None.

-
- -
-
-classmethod constraint_inequality(lhs, rhs=0, **kwargs)[source]
-

Defines an inequality constraint

-
-
Parameters:
-
-
-
-
- -
-
-classmethod create_instance(system)[source]
-

Create an instance of the instance_class

-
-
Return type:
-

SolverInstance

-
-
Parameters:
-

system (System)

-
-
-
- -
-
-classmethod declare_var(var, **kwargs)[source]
-

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable -:type var: str -:param var: The var attribute for the solver variable. -:param combos: The combinations of the solver variable. -:return: The setup class for the solver variable.

-
-
Parameters:
-

var (str)

-
-
-
- -
-
-define = None
-
- -
-
-classmethod define_validate(**kwargs)
-

A method to validate the kwargs passed to the define method

-
- -
-
-evolve(**changes)
-

Copy self and apply changes.

-

This works similarly to attrs.evolve but that function does not work -with Attribute.

-

It is mainly meant to be used for transform-fields.

-
-

Added in version 20.3.0.

-
-
- -
-
-classmethod handle_instance(canidate)
-

handles the instance, override as you wish

-
- -
-
-instance_class
-

alias of SolverInstance

-
- -
-
-classmethod make_attribute(name, comp_class, **kwargs)
-

makes an attrs.Attribute for the class

-
- -
-
-classmethod obj(obj, **kwargs)
-

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable

-
-
Parameters:
-
    -
  • obj (str) – The var attribute for the solver variable.

  • -
  • combos – The combinations of the solver variable.

  • -
-
-
Vara kind:
-

the kind of optimization, either min or max

-
-
Returns:
-

The setup class for the solver variable.

-
-
-
- -
-
-classmethod objective(obj, **kwargs)[source]
-

Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable

-
-
Parameters:
-
    -
  • obj (str) – The var attribute for the solver variable.

  • -
  • combos – The combinations of the solver variable.

  • -
-
-
Vara kind:
-

the kind of optimization, either min or max

-
-
Returns:
-

The setup class for the solver variable.

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_solver.SolverInstance.html b/docs/_build/html/_autosummary/engforge.attr_solver.SolverInstance.html deleted file mode 100644 index 5985649..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_solver.SolverInstance.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - engforge.attr_solver.SolverInstance — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attr_solver.SolverInstance

-
-
-class SolverInstance(solver, system, **kw)[source]
-

Bases: AttributeInstance

-

A decoupled signal instance to perform operations on a system instance

-

kwargs passed to compile

-

Methods

- - - - - - - - - - - - - - - -

as_ref_dict

compile

establishes the references for the solver to use directly

get_alias

is_active

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

active

classname

combos

constraints

normalize

slvtype

system

solver

obj

var

lhs

rhs

const_f

class_attr

backref

-
-
Parameters:
-
-
-
-
-
-compile(**kwargs)[source]
-

establishes the references for the solver to use directly

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attr_solver.html b/docs/_build/html/_autosummary/engforge.attr_solver.html deleted file mode 100644 index c568447..0000000 --- a/docs/_build/html/_autosummary/engforge.attr_solver.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - engforge.attr_solver — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.attr_solver

-

solver defines a SolverMixin for use by System.

-

Additionally the Solver attribute is defined to add complex behavior to a system as well as add constraints and transient integration.

-

Classes

- - - - - - - - - - - - -

AttrSolverLog

Initialize a filter.

Solver

solver creates subclasses per solver balance

SolverInstance

A decoupled signal instance to perform operations on a system instance

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attributes.ATTRLog.html b/docs/_build/html/_autosummary/engforge.attributes.ATTRLog.html deleted file mode 100644 index 9ef11d9..0000000 --- a/docs/_build/html/_autosummary/engforge.attributes.ATTRLog.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - engforge.attributes.ATTRLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attributes.ATTRLog

-
-
-class ATTRLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attributes.ATTR_BASE.html b/docs/_build/html/_autosummary/engforge.attributes.ATTR_BASE.html deleted file mode 100644 index 3d466dd..0000000 --- a/docs/_build/html/_autosummary/engforge.attributes.ATTR_BASE.html +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - engforge.attributes.ATTR_BASE — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attributes.ATTR_BASE

-
-
-class ATTR_BASE(name, default, validator, repr, cmp, hash, init, inherited, metadata=None, type=None, converter=None, kw_only=False, eq=None, eq_key=None, order=None, order_key=None, on_setattr=None, alias=None)[source]
-

Bases: Attribute

-

A base class that handles initalization in the attrs meta class scheme by ultimately createing an Instance

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

class_validate

validates onetime A method to validate the kwargs passed to the define method

collect_attr_inst

collects all the attribute instances for a system

collect_cls

collects all the attributes for a system

configure_for_system

add the config class, and perform checks with `class_validate) :returns: [optional] a dictionary of options to be used in the make_attribute method

configure_instance

validates the instance given attr's init routine

create_instance

Create an instance of the instance_class

define

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

define_validate

A method to validate the kwargs passed to the define method

evolve

Copy self and apply changes.

from_counting_attr

handle_instance

handles the instance, override as you wish

make_attribute

makes an attrs.Attribute for the class

make_factory

process_combos

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

unpack_atrs

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

name

default

validator

repr

eq

eq_key

order

order_key

hash

init

metadata

type

converter

kw_only

inherited

on_setattr

alias

attr_prefix

default_options

none_ok

template_class

config_cls

active

combos

-
-
-classmethod class_validate(instance, **kwargs)[source]
-

validates onetime A method to validate the kwargs passed to the define method

-
- -
-
-classmethod collect_attr_inst(system, handle_inst=True)[source]
-

collects all the attribute instances for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod collect_cls(system)[source]
-

collects all the attributes for a system

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod configure_for_system(name, config_class, cb=None, **kwargs)[source]
-

add the config class, and perform checks with `class_validate) -:returns: [optional] a dictionary of options to be used in the make_attribute method

-
- -
-
-classmethod configure_instance(instance, attribute, value)[source]
-

validates the instance given attr’s init routine

-
- -
-
-classmethod create_instance(instance)[source]
-

Create an instance of the instance_class

-
-
Return type:
-

AttributeInstance

-
-
Parameters:
-

instance (Configuration)

-
-
-
- -
-
-classmethod define(**kwargs)[source]
-

taking a component or system class as possible input valid input is later validated as an instance of that class or subclass

-
- -
-
-classmethod define_validate(**kwargs)[source]
-

A method to validate the kwargs passed to the define method

-
- -
-
-evolve(**changes)
-

Copy self and apply changes.

-

This works similarly to attrs.evolve but that function does not work -with Attribute.

-

It is mainly meant to be used for transform-fields.

-
-

Added in version 20.3.0.

-
-
- -
-
-classmethod handle_instance(canidate)[source]
-

handles the instance, override as you wish

-
- -
-
-classmethod make_attribute(name, comp_class, **kwargs)[source]
-

makes an attrs.Attribute for the class

-
- -
-
-classmethod subclasses(out=None)[source]
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attributes.AttributeInstance.html b/docs/_build/html/_autosummary/engforge.attributes.AttributeInstance.html deleted file mode 100644 index da486ad..0000000 --- a/docs/_build/html/_autosummary/engforge.attributes.AttributeInstance.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - engforge.attributes.AttributeInstance — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.attributes.AttributeInstance

-
-
-class AttributeInstance(class_attr, system, **kwargs)[source]
-

Bases: object

-

Methods

- - - - - - - - - - - - - - - -

as_ref_dict

compile

get_alias

is_active

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

active

classname

combos

class_attr

system

backref

-
-
Parameters:
-
    -
  • class_attr (CLASS_ATTR)

  • -
  • system (System)

  • -
-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.attributes.html b/docs/_build/html/_autosummary/engforge.attributes.html deleted file mode 100644 index 7b65175..0000000 --- a/docs/_build/html/_autosummary/engforge.attributes.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - engforge.attributes — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.attributes

-

Defines a customizeable attrs attribute that is handled in configuration,

-

on init an instance of Instance type for any ATTR_BASE subclass is created

-

Classes

- - - - - - - - - - - - -

ATTRLog

Initialize a filter.

ATTR_BASE

A base class that handles initalization in the attrs meta class scheme by ultimately createing an Instance

AttributeInstance

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.common.ForgeLog.html b/docs/_build/html/_autosummary/engforge.common.ForgeLog.html deleted file mode 100644 index a363da5..0000000 --- a/docs/_build/html/_autosummary/engforge.common.ForgeLog.html +++ /dev/null @@ -1,325 +0,0 @@ - - - - - - - engforge.common.ForgeLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.common.ForgeLog

-
-
-class ForgeLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.common.chunks.html b/docs/_build/html/_autosummary/engforge.common.chunks.html deleted file mode 100644 index 251b3a0..0000000 --- a/docs/_build/html/_autosummary/engforge.common.chunks.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - engforge.common.chunks — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.common.get_size.html b/docs/_build/html/_autosummary/engforge.common.get_size.html deleted file mode 100644 index 6a947dd..0000000 --- a/docs/_build/html/_autosummary/engforge.common.get_size.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - engforge.common.get_size — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.common.html b/docs/_build/html/_autosummary/engforge.common.html deleted file mode 100644 index 19eab54..0000000 --- a/docs/_build/html/_autosummary/engforge.common.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - engforge.common — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.common

-

A set of common values and functions that are globaly available.

-

Functions

- - - - - - - - - - - - -

chunks

Yield successive n-sized chunks from lst.

get_size

Recursively finds size of objects

is_ec2_instance

Check if an instance is running on AWS.

-

Classes

- - - - - - - - - -

ForgeLog

Initialize a filter.

inst_vectorize

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.common.inst_vectorize.html b/docs/_build/html/_autosummary/engforge.common.inst_vectorize.html deleted file mode 100644 index 9acb1cd..0000000 --- a/docs/_build/html/_autosummary/engforge.common.inst_vectorize.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - engforge.common.inst_vectorize — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.common.inst_vectorize

-
-
-class inst_vectorize(pyfunc, otypes=None, doc=None, excluded=None, cache=False, signature=None)[source]
-

Bases: vectorize

-

Methods

- - - -
-
-
-__call__(*args, **kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.common.is_ec2_instance.html b/docs/_build/html/_autosummary/engforge.common.is_ec2_instance.html deleted file mode 100644 index 36fdf02..0000000 --- a/docs/_build/html/_autosummary/engforge.common.is_ec2_instance.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - engforge.common.is_ec2_instance — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.component_collections.ComponentDict.html b/docs/_build/html/_autosummary/engforge.component_collections.ComponentDict.html deleted file mode 100644 index 0d40af3..0000000 --- a/docs/_build/html/_autosummary/engforge.component_collections.ComponentDict.html +++ /dev/null @@ -1,1581 +0,0 @@ - - - - - - - engforge.component_collections.ComponentDict — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.component_collections.ComponentDict

-
-
-class ComponentDict(*, name=NOTHING, parent=None, current_item=NOTHING, component_type)[source]
-

Bases: ComponentIter, UserDict

-

Stores components by name, and allows tabulation of them

-

Method generated by attrs for class ComponentDict.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

clear

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

Returns this components global references

compile_classes

compiles all subclass functionality

copy

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

fromkeys

get

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

lists the this_name.comp_key.<attr/prop key>: Ref format to override data_dict

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

items

keys

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

pop

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem

as a 2-tuple; but raise KeyError if D is empty.

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

reset

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

setdefault

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

values

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

current

returns all data in wide format and the active key in _current_item

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

wide

component_type

data

current_item

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-clear() None.  Remove all items from D.
-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(**kw)
-

Returns this components global references

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property current
-

returns all data in wide format and the active key in _current_item

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get(k[, d]) D[k] if k in D, else d.  d defaults to None.
-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

lists the this_name.comp_key.<attr/prop key>: Ref format to override data_dict

-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-items() a set-like object providing a view on D's items
-
- -
-
-keys() a set-like object providing a view on D's keys
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-pop(k[, d]) v, remove specified key and return the corresponding value.
-

If key is not found, d is returned if given, otherwise KeyError is raised.

-
- -
-
-popitem() (k, v), remove and return some (key, value) pair
-

as a 2-tuple; but raise KeyError if D is empty.

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D
-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-values() an object providing a view on D's values
-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.component_collections.ComponentIter.html b/docs/_build/html/_autosummary/engforge.component_collections.ComponentIter.html deleted file mode 100644 index 35a3622..0000000 --- a/docs/_build/html/_autosummary/engforge.component_collections.ComponentIter.html +++ /dev/null @@ -1,1505 +0,0 @@ - - - - - - - engforge.component_collections.ComponentIter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.component_collections.ComponentIter

-
-
-class ComponentIter(*, name=NOTHING, parent=None, current_item=NOTHING)[source]
-

Bases: Component

-

Iterable components are designed to eval a large selection of components either one-by-one or all at once at the system level depending on if wide property is set.

-

Method generated by attrs for class ComponentIter.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

Returns this components global references

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

lists the this_name.comp_key.<attr/prop key>: Ref format to override data_dict

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

reset

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

current

returns all data in wide format and the active key in _current_item

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

wide

data

current_item

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(**kw)[source]
-

Returns this components global references

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property current
-

returns all data in wide format and the active key in _current_item

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)[source]
-

lists the this_name.comp_key.<attr/prop key>: Ref format to override data_dict

-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.component_collections.ComponentIterator.html b/docs/_build/html/_autosummary/engforge.component_collections.ComponentIterator.html deleted file mode 100644 index d761b46..0000000 --- a/docs/_build/html/_autosummary/engforge.component_collections.ComponentIterator.html +++ /dev/null @@ -1,1597 +0,0 @@ - - - - - - - engforge.component_collections.ComponentIterator — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.component_collections.ComponentIterator

-
-
-class ComponentIterator(*, name=NOTHING, parent=None, current_item=NOTHING, component_type)[source]
-

Bases: ComponentIter, UserList

-

Stores components by name, and allows tabulation of them

-

Method generated by attrs for class ComponentIterator.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

append

S.append(value) -- append value to the end of the sequence

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

clear

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

Returns this components global references

compile_classes

compiles all subclass functionality

copy

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

count

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extend

S.extend(iterable) -- extend sequence by appending elements from the iterable

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

index

Raises ValueError if the value is not present.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

insert

S.insert(index, value) -- insert value before index

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

lists the this_name.comp_key.<attr/prop key>: Ref format to override data_dict

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

pop

Raise IndexError if list is empty or index is out of range.

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

remove

S.remove(value) -- remove first occurrence of value.

reset

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

reverse

S.reverse() -- reverse IN PLACE

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

sort

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

current

returns all data in wide format and the active key in _current_item

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

wide

component_type

data

current_item

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-append(item)
-

S.append(value) – append value to the end of the sequence

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-clear() None -- remove all items from S
-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(**kw)
-

Returns this components global references

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-count(value) integer -- return number of occurrences of value
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property current
-

returns all data in wide format and the active key in _current_item

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-extend(other)
-

S.extend(iterable) – extend sequence by appending elements from the iterable

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-index(value[, start[, stop]]) integer -- return first index of value.
-

Raises ValueError if the value is not present.

-

Supporting start and stop arguments is optional, but -recommended.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-insert(i, item)
-

S.insert(index, value) – insert value before index

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

lists the this_name.comp_key.<attr/prop key>: Ref format to override data_dict

-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-pop([index]) item -- remove and return item at index (default last).
-

Raise IndexError if list is empty or index is out of range.

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-remove(item)
-

S.remove(value) – remove first occurrence of value. -Raise ValueError if the value is not present.

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-reverse()
-

S.reverse() – reverse IN PLACE

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.component_collections.check_comp_type.html b/docs/_build/html/_autosummary/engforge.component_collections.check_comp_type.html deleted file mode 100644 index 54be6db..0000000 --- a/docs/_build/html/_autosummary/engforge.component_collections.check_comp_type.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - engforge.component_collections.check_comp_type — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.component_collections.html b/docs/_build/html/_autosummary/engforge.component_collections.html deleted file mode 100644 index c2ea156..0000000 --- a/docs/_build/html/_autosummary/engforge.component_collections.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - engforge.component_collections — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.component_collections

-

define a collection of components that will propigate to its parents dataframe

-

When wide is set each component’s references are reported to the system’s table, otherwise only one component’s references are reported, however the system will iterate over the components by calling system.iterable_components

-

Define a Iterable Component slot in a system by calling Slot.define_iterable(…,wide=True/False)

-

CostModel isonly supported in wide mode at this time.

-

Types: -1. ComponentList, ordered by index -2. ComponentDict, ordered by key -3. ComponentGraph, ?#TODO:

-

Functions

- - - - - - -

check_comp_type

ensures the input component type is a Component

-

Classes

- - - - - - - - - - - - - - - -

ComponentDict

Stores components by name, and allows tabulation of them

ComponentIter

Iterable components are designed to eval a large selection of components either one-by-one or all at once at the system level depending on if wide property is set.

ComponentIterator

Stores components by name, and allows tabulation of them

iter_tkn

ambigious type to keep track of iterable position form system reference

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.component_collections.iter_tkn.html b/docs/_build/html/_autosummary/engforge.component_collections.iter_tkn.html deleted file mode 100644 index c0c6efa..0000000 --- a/docs/_build/html/_autosummary/engforge.component_collections.iter_tkn.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.component_collections.iter_tkn — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.components.Component.html b/docs/_build/html/_autosummary/engforge.components.Component.html deleted file mode 100644 index 250939b..0000000 --- a/docs/_build/html/_autosummary/engforge.components.Component.html +++ /dev/null @@ -1,1486 +0,0 @@ - - - - - - - engforge.components.Component — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.components.Component

-
-
-class Component(*, name=NOTHING, parent=None)[source]
-

Bases: SolveableInterface, DynamicsMixin

-

Component is an Evaluatable configuration with tabulation, and solvable functionality

-

Method generated by attrs for class Component.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.components.SolveableInterface.html b/docs/_build/html/_autosummary/engforge.components.SolveableInterface.html deleted file mode 100644 index fd96cc7..0000000 --- a/docs/_build/html/_autosummary/engforge.components.SolveableInterface.html +++ /dev/null @@ -1,1036 +0,0 @@ - - - - - - - engforge.components.SolveableInterface — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.components.SolveableInterface

-
-
-class SolveableInterface(*, name=NOTHING, parent=None)[source]
-

Bases: Configuration, TabulationMixin, SolveableMixin

-

common base betwewn solvable and system

-

Method generated by attrs for class SolveableInterface.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

system_id

returns an instance unique id based on id(self)

unique_hash

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.components.html b/docs/_build/html/_autosummary/engforge.components.html deleted file mode 100644 index ff13c6e..0000000 --- a/docs/_build/html/_autosummary/engforge.components.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - engforge.components — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.configuration.ConfigLog.html b/docs/_build/html/_autosummary/engforge.configuration.ConfigLog.html deleted file mode 100644 index 984c6e6..0000000 --- a/docs/_build/html/_autosummary/engforge.configuration.ConfigLog.html +++ /dev/null @@ -1,329 +0,0 @@ - - - - - - - engforge.configuration.ConfigLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.configuration.ConfigLog

-
-
-class ConfigLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.configuration.Configuration.html b/docs/_build/html/_autosummary/engforge.configuration.Configuration.html deleted file mode 100644 index 386a568..0000000 --- a/docs/_build/html/_autosummary/engforge.configuration.Configuration.html +++ /dev/null @@ -1,698 +0,0 @@ - - - - - - - engforge.configuration.Configuration — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.configuration.Configuration

-
-
-class Configuration(*, name=NOTHING)[source]
-

Bases: AttributedBaseMixin

-

Configuration is a pattern for storing attributes that might change frequently, and proivdes the core functionality for a host of different applications.

-

Configuration is able to go through itself and its objects and map all included Configurations, just to a specific level.

-

Common functionality includes an __on_init__ wrapper for attrs post-init method

-

Method generated by attrs for class Configuration.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

numeric_as_dict

numeric_hash

slack_webhook_url

unique_hash

name

-
-
Parameters:
-

name (str)

-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()[source]
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()[source]
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)[source]
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)[source]
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)[source]
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()[source]
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()[source]
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)[source]
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()[source]
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()[source]
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.configuration.comp_transform.html b/docs/_build/html/_autosummary/engforge.configuration.comp_transform.html deleted file mode 100644 index 02cca27..0000000 --- a/docs/_build/html/_autosummary/engforge.configuration.comp_transform.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - engforge.configuration.comp_transform — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.configuration.conv_nms.html b/docs/_build/html/_autosummary/engforge.configuration.conv_nms.html deleted file mode 100644 index 686db8e..0000000 --- a/docs/_build/html/_autosummary/engforge.configuration.conv_nms.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - engforge.configuration.conv_nms — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.configuration.forge.html b/docs/_build/html/_autosummary/engforge.configuration.forge.html deleted file mode 100644 index b4c6496..0000000 --- a/docs/_build/html/_autosummary/engforge.configuration.forge.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - engforge.configuration.forge — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.configuration.forge

-
-
-forge(cls=None, **kwargs)[source]
-

Wrap all Configurations with this decorator with the following behavior -1) we use the callback when any property changes -2) repr is default -3) hash is by object identity

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.configuration.html b/docs/_build/html/_autosummary/engforge.configuration.html deleted file mode 100644 index 61a9be7..0000000 --- a/docs/_build/html/_autosummary/engforge.configuration.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - engforge.configuration — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.configuration

-

Functions

- - - - - - - - - - - - - - - - - - - - - - - - -

comp_transform

conv_nms

forge

Wrap all Configurations with this decorator with the following behavior 1) we use the callback when any property changes 2) repr is default 3) hash is by object identity

meta

a convienience wrapper to add metadata to attr.ib :type title: :param title: a title that gets formatted for column headers :type desc: :param desc: a description of the property

name_generator

a name generator for the instance

property_changed

a callback for when a property changes, this will set the _anything_changed flag to True, and change value when appropriate

signals_slots_handler

creates attributes as per the attrs.define field_transformer use case.

-

Classes

- - - - - - - - - -

ConfigLog

Initialize a filter.

Configuration

Configuration is a pattern for storing attributes that might change frequently, and proivdes the core functionality for a host of different applications.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.configuration.meta.html b/docs/_build/html/_autosummary/engforge.configuration.meta.html deleted file mode 100644 index f422868..0000000 --- a/docs/_build/html/_autosummary/engforge.configuration.meta.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - engforge.configuration.meta — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.configuration.meta

-
-
-meta(title, desc=None, **kwargs)[source]
-

a convienience wrapper to add metadata to attr.ib -:type title: -:param title: a title that gets formatted for column headers -:type desc: -:param desc: a description of the property

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.configuration.name_generator.html b/docs/_build/html/_autosummary/engforge.configuration.name_generator.html deleted file mode 100644 index ca1ed58..0000000 --- a/docs/_build/html/_autosummary/engforge.configuration.name_generator.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - engforge.configuration.name_generator — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.configuration.name_generator

-
-
-name_generator(instance)[source]
-

a name generator for the instance

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.configuration.property_changed.html b/docs/_build/html/_autosummary/engforge.configuration.property_changed.html deleted file mode 100644 index ae2322f..0000000 --- a/docs/_build/html/_autosummary/engforge.configuration.property_changed.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - engforge.configuration.property_changed — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.configuration.property_changed

-
-
-property_changed(instance, variable, value)[source]
-

a callback for when a property changes, this will set the _anything_changed flag to True, and change value when appropriate

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.configuration.signals_slots_handler.html b/docs/_build/html/_autosummary/engforge.configuration.signals_slots_handler.html deleted file mode 100644 index b36f061..0000000 --- a/docs/_build/html/_autosummary/engforge.configuration.signals_slots_handler.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - engforge.configuration.signals_slots_handler — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.configuration.signals_slots_handler

-
-
-signals_slots_handler(cls, fields, slots=True, signals=True, solvers=True, sys=True, plots=True)[source]
-

creates attributes as per the attrs.define field_transformer use case.

-

Customize initalization with slots,signals,solvers and sys flags.

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dataframe.DataFrameLog.html b/docs/_build/html/_autosummary/engforge.dataframe.DataFrameLog.html deleted file mode 100644 index ea8b350..0000000 --- a/docs/_build/html/_autosummary/engforge.dataframe.DataFrameLog.html +++ /dev/null @@ -1,329 +0,0 @@ - - - - - - - engforge.dataframe.DataFrameLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.dataframe.DataFrameLog

-
-
-class DataFrameLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dataframe.DataframeMixin.html b/docs/_build/html/_autosummary/engforge.dataframe.DataframeMixin.html deleted file mode 100644 index c402fb0..0000000 --- a/docs/_build/html/_autosummary/engforge.dataframe.DataframeMixin.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - engforge.dataframe.DataframeMixin — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.dataframe.DataframeMixin

-
-
-class DataframeMixin[source]
-

Bases: object

-

Methods

- - - - - - - - - -

format_columns

smart_split_dataframe

splits dataframe between constant values and variants

-

Attributes

- - - - - - - - - - - - - - - -

dataframe

returns the dataframe

dataframe_constants

dataframe_variants

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

-
-
-property dataframe
-

returns the dataframe

-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)[source]
-

splits dataframe between constant values and variants

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dataframe.dataframe_prop.html b/docs/_build/html/_autosummary/engforge.dataframe.dataframe_prop.html deleted file mode 100644 index 21bf396..0000000 --- a/docs/_build/html/_autosummary/engforge.dataframe.dataframe_prop.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - engforge.dataframe.dataframe_prop — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dataframe.dataframe_property.html b/docs/_build/html/_autosummary/engforge.dataframe.dataframe_property.html deleted file mode 100644 index b4d9439..0000000 --- a/docs/_build/html/_autosummary/engforge.dataframe.dataframe_property.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - - engforge.dataframe.dataframe_property — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.dataframe.dataframe_property

-
-
-class dataframe_property(fget=None, fset=None, fdel=None, *args, **kwargs)[source]
-

Bases: engforge_prop

-

Methods

- - - - - - - - - - - - - - - -

deleter

get_func_return

ensures that the function has a return annotation, and that return annotation is in valid sort types

getter

setter

-

Attributes

- - - - - - -

must_return

-
-
-__call__(fget=None, fset=None, fdel=None, doc=None, *args, **kwargs)
-

this will be called when input is provided before property is set

-
- -
-
-get_func_return(func)
-

ensures that the function has a return annotation, and that return annotation is in valid sort types

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dataframe.determine_split.html b/docs/_build/html/_autosummary/engforge.dataframe.determine_split.html deleted file mode 100644 index 3c3b444..0000000 --- a/docs/_build/html/_autosummary/engforge.dataframe.determine_split.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - engforge.dataframe.determine_split — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dataframe.df_prop.html b/docs/_build/html/_autosummary/engforge.dataframe.df_prop.html deleted file mode 100644 index 98c0cd7..0000000 --- a/docs/_build/html/_autosummary/engforge.dataframe.df_prop.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - engforge.dataframe.df_prop — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dataframe.html b/docs/_build/html/_autosummary/engforge.dataframe.html deleted file mode 100644 index 01778d0..0000000 --- a/docs/_build/html/_autosummary/engforge.dataframe.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - engforge.dataframe — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.dataframe

-

Dataframe Module:

-

Store data in dataframes and provide a simple interface to manipulate it.

-

Functions

- - - - - - - - - - - - - - - -

determine_split

is_uniform

key_func

split_dataframe

split dataframe into a dictionary of invariants and a dataframe of variable values

-

Classes

- - - - - - - - - - - - - - - - - - -

DataFrameLog

Initialize a filter.

DataframeMixin

dataframe_prop

alias of dataframe_property

dataframe_property

df_prop

alias of dataframe_property

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dataframe.is_uniform.html b/docs/_build/html/_autosummary/engforge.dataframe.is_uniform.html deleted file mode 100644 index 229fc85..0000000 --- a/docs/_build/html/_autosummary/engforge.dataframe.is_uniform.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - engforge.dataframe.is_uniform — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dataframe.key_func.html b/docs/_build/html/_autosummary/engforge.dataframe.key_func.html deleted file mode 100644 index b0511f8..0000000 --- a/docs/_build/html/_autosummary/engforge.dataframe.key_func.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - engforge.dataframe.key_func — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dataframe.split_dataframe.html b/docs/_build/html/_autosummary/engforge.dataframe.split_dataframe.html deleted file mode 100644 index 437a448..0000000 --- a/docs/_build/html/_autosummary/engforge.dataframe.split_dataframe.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - engforge.dataframe.split_dataframe — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.dataframe.split_dataframe

-
-
-split_dataframe(df)[source]
-

split dataframe into a dictionary of invariants and a dataframe of variable values

-
-
Returns tuple:
-

constants,dataframe

-
-
Return type:
-

tuple

-
-
Parameters:
-

df (DataFrame)

-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.DBConnection.html b/docs/_build/html/_autosummary/engforge.datastores.data.DBConnection.html deleted file mode 100644 index 8d9c332..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.DBConnection.html +++ /dev/null @@ -1,423 +0,0 @@ - - - - - - - engforge.datastores.data.DBConnection — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data.DBConnection

-
-
-class DBConnection(*args, **kwargs)[source]
-

Bases: LoggingMixin

-

A database singleton that is thread safe and pickleable (serializable) -to get the active instance use DBConnection.instance(**non_default_connection_args)

-

On the Singleton DBconnection.instance(): __init__(*args,**kwargs) will get called, technically you -could do it this way but won’t be thread safe, or a single instance -:type database_name: -:param database_name: the name for the database inside the db server -:type host: -:param host: hostname -:type user: -:param user: username -:type passd: -:param passd: password -:param port: hostname -:param echo: if the engine echos or not

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

cleanup_sessions

configure

A boilerplate configure method

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

ensure_database_exists

Check if database exists, if not create it and tables

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

rebuild_database

Rebuild database on confirmation, create the database if nessicary

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

session_scope

Provide a transactional scope around a series of operations.

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Session

connect_args

connection_string

dbname

echo

engine

host

identity

log_fmt

log_level

log_on

logger

max_overflow

passd

pool_size

port

scopefunc

session_factory

slack_webhook_url

user

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-configure()[source]
-

A boilerplate configure method

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-ensure_database_exists(create_meta=True)[source]
-

Check if database exists, if not create it and tables

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-rebuild_database(confirm=True)[source]
-

Rebuild database on confirmation, create the database if nessicary

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-session_scope()[source]
-

Provide a transactional scope around a series of operations.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.DiskCacheStore.html b/docs/_build/html/_autosummary/engforge.datastores.data.DiskCacheStore.html deleted file mode 100644 index 1ac23ae..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.DiskCacheStore.html +++ /dev/null @@ -1,405 +0,0 @@ - - - - - - - engforge.datastores.data.DiskCacheStore — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data.DiskCacheStore

-
-
-class DiskCacheStore(*args, **kwargs)[source]
-

Bases: LoggingMixin

-

A singleton object with safe methods for file access, -Aims to prevent large number of file pointers open

-

These should be subclassed for each cache location you want

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

expire

wrapper for diskcache expire method that only permits expiration on a certain interval :return: bool, True if expired called

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

get

Helper method to get an item, return None it doesn't exist and warn.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set

Passes default arguments to set the key:data relationship :param expire: time in seconds to expire the data

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

alt_path

cache

cache_init_kwargs

cache_root

current_keys

expire_threshold

identity

last_expire

log_fmt

log_level

log_on

logger

retries

size_limit

slack_webhook_url

sleep_time

timeout

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-cache_class
-

alias of Cache

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-expire()[source]
-

wrapper for diskcache expire method that only permits expiration on a certain interval -:return: bool, True if expired called

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get(key=None, on_missing=None, retry=True, ttl=None)[source]
-

Helper method to get an item, return None it doesn’t exist and warn. -:type on_missing: -:param on_missing: a callback to use if the data is missing, which will set the data at the key, and return it

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set(key=None, data=None, retry=True, ttl=None, **kwargs)[source]
-

Passes default arguments to set the key:data relationship -:param expire: time in seconds to expire the data

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_array.html b/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_array.html deleted file mode 100644 index ab0f4f8..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_array.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.datastores.data.addapt_numpy_array — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data.addapt_numpy_array

-
-
-addapt_numpy_array(numpy_array)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_float32.html b/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_float32.html deleted file mode 100644 index 9a82f93..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_float32.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.datastores.data.addapt_numpy_float32 — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data.addapt_numpy_float32

-
-
-addapt_numpy_float32(numpy_float32)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_float64.html b/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_float64.html deleted file mode 100644 index 53b9b16..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_float64.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.datastores.data.addapt_numpy_float64 — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data.addapt_numpy_float64

-
-
-addapt_numpy_float64(numpy_float64)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_int32.html b/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_int32.html deleted file mode 100644 index 6db2d9b..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_int32.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.datastores.data.addapt_numpy_int32 — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data.addapt_numpy_int32

-
-
-addapt_numpy_int32(numpy_int32)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_int64.html b/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_int64.html deleted file mode 100644 index 05bd6bc..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.addapt_numpy_int64.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.datastores.data.addapt_numpy_int64 — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data.addapt_numpy_int64

-
-
-addapt_numpy_int64(numpy_int64)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_direct.html b/docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_direct.html deleted file mode 100644 index 5526b6d..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_direct.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.datastores.data.autocorrelation_direct — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data.autocorrelation_direct

-
-
-autocorrelation_direct(x)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_fft.html b/docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_fft.html deleted file mode 100644 index bd04bde..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_fft.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.datastores.data.autocorrelation_fft — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data.autocorrelation_fft

-
-
-autocorrelation_fft(x)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_numpy.html b/docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_numpy.html deleted file mode 100644 index 9f97f2c..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.autocorrelation_numpy.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.datastores.data.autocorrelation_numpy — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data.autocorrelation_numpy

-
-
-autocorrelation_numpy(x)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.html b/docs/_build/html/_autosummary/engforge.datastores.data.html deleted file mode 100644 index 47623d1..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - engforge.datastores.data — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data

-

Functions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

addapt_numpy_array

addapt_numpy_float32

addapt_numpy_float64

addapt_numpy_int32

addapt_numpy_int64

autocorrelation_direct

autocorrelation_fft

autocorrelation_numpy

nan_to_null

-

Classes

- - - - - - - - - -

DBConnection

A database singleton that is thread safe and pickleable (serializable) to get the active instance use DBConnection.instance(**non_default_connection_args)

DiskCacheStore

A singleton object with safe methods for file access, Aims to prevent large number of file pointers open

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.data.nan_to_null.html b/docs/_build/html/_autosummary/engforge.datastores.data.nan_to_null.html deleted file mode 100644 index 3948f68..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.data.nan_to_null.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.datastores.data.nan_to_null — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.datastores.data.nan_to_null

-
-
-nan_to_null(f)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.datastores.html b/docs/_build/html/_autosummary/engforge.datastores.html deleted file mode 100644 index aea24c4..0000000 --- a/docs/_build/html/_autosummary/engforge.datastores.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - engforge.datastores — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.datastores

- - - - - - - - - -

data

secrets

Generate cryptographically strong pseudo-random numbers suitable for managing secrets such as account authentication, tokens, and similar.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dynamics.DynamicsMixin.html b/docs/_build/html/_autosummary/engforge.dynamics.DynamicsMixin.html deleted file mode 100644 index f7de189..0000000 --- a/docs/_build/html/_autosummary/engforge.dynamics.DynamicsMixin.html +++ /dev/null @@ -1,1385 +0,0 @@ - - - - - - - engforge.dynamics.DynamicsMixin — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.dynamics.DynamicsMixin

-
-
-class DynamicsMixin(*, name=NOTHING)[source]
-

Bases: Configuration, SolveableMixin

-

dynamic mixin for components and systems that have dynamics, such as state space models, while allowing nonlinear dynamics via matrix modification. This mixin is intended to work alongside the solver module and the Time integrating attributes, and will raise an error if a conflict is detected #TODO.

-

Method generated by attrs for class DynamicsMixin.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

time

unique_hash

update_interval

name

parent

-
-
Parameters:
-

name (str)

-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)[source]
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)[source]
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)[source]
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)[source]
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)[source]
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)[source]
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)[source]
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)[source]
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-linear_output(t, dt, X, U=None)[source]
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)[source]
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)[source]
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)[source]
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)[source]
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)[source]
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)[source]
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)[source]
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)[source]
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)[source]
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)[source]
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)[source]
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)[source]
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)[source]
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)[source]
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)[source]
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dynamics.GlobalDynamics.html b/docs/_build/html/_autosummary/engforge.dynamics.GlobalDynamics.html deleted file mode 100644 index c8e8fce..0000000 --- a/docs/_build/html/_autosummary/engforge.dynamics.GlobalDynamics.html +++ /dev/null @@ -1,1421 +0,0 @@ - - - - - - - engforge.dynamics.GlobalDynamics — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.dynamics.GlobalDynamics

-
-
-class GlobalDynamics(*, name=NOTHING)[source]
-

Bases: DynamicsMixin

-

This object is inherited by configurations that collect other dynamicMixins and orchestrates their simulation, and steady state analysis

-

#TODO: establish bounds in solver

-

Method generated by attrs for class GlobalDynamics.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

setup_global_dynamics

recursively creates numeric matricies for the simulation

signals_attributes

Lists all signals attributes for class

sim_matrix

simulate the system over the course of time.

simulate

runs a simulation over the course of time, and returns a dataframe of the results.

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

time

unique_hash

update_interval

name

parent

-
-
Parameters:
-

name (str)

-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-setup_global_dynamics(**kwargs)[source]
-

recursively creates numeric matricies for the simulation

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-sim_matrix(eval_kw=None, sys_kw=None, **kwargs)[source]
-

simulate the system over the course of time. -return a dictionary of dataframes

-
- -
-
-simulate(dt, endtime, X0=None, cb=None, eval_kw=None, sys_kw=None, min_kw=None, run_solver=False, return_system=False, return_data=False, return_all=False, debug_fail=False, **kwargs)[source]
-

runs a simulation over the course of time, and returns a dataframe of the results.

-

A copy of this system is made, and the simulation is run on the copy, so as to not affect the state of the original system.

-

#TODO:

-
-
Return type:
-

DataFrame

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dynamics.INDEX_MAP.html b/docs/_build/html/_autosummary/engforge.dynamics.INDEX_MAP.html deleted file mode 100644 index e914e49..0000000 --- a/docs/_build/html/_autosummary/engforge.dynamics.INDEX_MAP.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - engforge.dynamics.INDEX_MAP — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.dynamics.INDEX_MAP

-
-
-class INDEX_MAP(datas)[source]
-

Bases: object

-

Methods

- - - - - - - - - - - - -

get

indify

remap_indexes_to

-

Attributes

- - - - - - -

oppo

-
-
Parameters:
-

datas (list)

-
-
-
-
-__call__(key)[source]
-

Call self as a function.

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dynamics.html b/docs/_build/html/_autosummary/engforge.dynamics.html deleted file mode 100644 index 40a729c..0000000 --- a/docs/_build/html/_autosummary/engforge.dynamics.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - engforge.dynamics — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.dynamics

-

Combines the tabulation and component mixins to create a mixin for systems and components that have dynamics, such as state space models, while allowing nonlinear dynamics via matrix modification

-

This module is intended to work alongside the solver module and the Time integrating attributes, and will raise an error if a conflict is detected.

-

The DynamicsMixin works by establishing a state matricies A, B, C, and D, which are used to define the dynamics of the system. The state matrix A is the primary matrix, and is used to define the state dynamics of the system. The input matrix B is used to define the input dynamics of the system. The output matrix C is used to define the output dynamics of the system. The feedthrough matrix D is used to define the feedthrough dynamics of the system.

-

As opposed to the Time attribute, which modifies the state of the system, the DynamicsMixin copies the initial values of the state and input which then are integrated over time. At predefined intervals the control and output will stored in the tabulation.

-

#TODO: The top level system will collect the underlying dynamical systems and combine them to an index and overall state space model. This will allow for the creation of a system of systems, and the ability to create a system of systems with a single state space model.

-

#TODO: integration is done by the solver, where DynamicSystems have individual solver control, solver control is set for a smart default scipy

-

Functions

- - - - - - -

valid_mtx

-

Classes

- - - - - - - - - - - - -

DynamicsMixin

dynamic mixin for components and systems that have dynamics, such as state space models, while allowing nonlinear dynamics via matrix modification.

GlobalDynamics

This object is inherited by configurations that collect other dynamicMixins and orchestrates their simulation, and steady state analysis

INDEX_MAP

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.dynamics.valid_mtx.html b/docs/_build/html/_autosummary/engforge.dynamics.valid_mtx.html deleted file mode 100644 index 1e36e1c..0000000 --- a/docs/_build/html/_autosummary/engforge.dynamics.valid_mtx.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - engforge.dynamics.valid_mtx — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.costs.CostLog.html b/docs/_build/html/_autosummary/engforge.eng.costs.CostLog.html deleted file mode 100644 index bc06604..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.costs.CostLog.html +++ /dev/null @@ -1,334 +0,0 @@ - - - - - - - engforge.eng.costs.CostLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.costs.CostLog

-
-
-class CostLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.costs.CostModel.html b/docs/_build/html/_autosummary/engforge.eng.costs.CostModel.html deleted file mode 100644 index 7126a1b..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.costs.CostModel.html +++ /dev/null @@ -1,1231 +0,0 @@ - - - - - - - engforge.eng.costs.CostModel — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.costs.CostModel

-
-
-class CostModel(*, name=NOTHING, cost_per_item=nan)[source]
-

Bases: Configuration, TabulationMixin

-

CostModel is a mixin for components or systems that reports its costs through the cost system property, which by default sums the item_cost and sub_items_cost.

-

item_cost is determined by calculate_item_cost() which by default uses: cost_per_item field to return the item cost, which defaults to numpy.nan if not set. Nan values are ignored and replaced with 0.

-

sub_items_cost system_property summarizes the costs of any component in a Slot that has a CostModel or for SlotS which CostModel.declare_cost(slot,default=numeric|CostModelInst|dict[str,float])

-

Method generated by attrs for class CostModel.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

all_categories

calculate_item_cost

override this with a parametric model related to this systems attributes and properties

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

class_cost_properties

returns cost_property objects from this class & subclasses

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

cost_categories_at_term

costs_at_term

returns a dictionary of all costs at term i, with zero if the mode function returns False at that term

critical

A routine to communicate to the root of the server network that there is an issue

custom_cost

Takes class costs set, and creates a copy of the class costs, then applies the cost numeric or CostMethod in the same way but only for that instance of

debug

Writes at a low level to the log file.

default_cost

Provide a default cost for Slot items that are not CostModel's.

dict_itemized_costs

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

reset_cls_costs

set_attr

set_default_costs

set default costs if no costs are set

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

sub_costs

gets items from CostModel's defined in a Slot attribute or in a slot default, tolerrant to nan's in cost definitions

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

sum_costs

sums costs of cost_property's in this item that are present at term=0, and by category if define as input

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dflt_costs

updates internal default slot costs if the current component doesn't exist or isn't a cost model, this is really a component method but we will use it never the less.

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

combine_cost([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

cost_categories

returns itemized costs grouped by category

cost_properties

returns the current values of the current properties

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

filename

A nice to have, good to override

future_costs([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

item_cost([fget, fset, fdel, doc])

A thin wrapper over system_property that will be accounted by Economics Components and apply term & categorization

itemized_costs([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

last_context

Returns the last context

log_fmt

log_level

log_on

log_silo

logger

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

sub_items_cost([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

unique_hash

cost_per_item

name

parent

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • cost_per_item (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-calculate_item_cost()[source]
-

override this with a parametric model related to this systems attributes and properties

-
-
Return type:
-

float

-
-
-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-classmethod class_cost_properties()[source]
-

returns cost_property objects from this class & subclasses

-
-
Return type:
-

dict

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-property cost_categories
-

returns itemized costs grouped by category

-
- -
-
-property cost_properties: dict
-

returns the current values of the current properties

-
- -
-
-costs_at_term(term, test_val=True)[source]
-

returns a dictionary of all costs at term i, with zero if the mode -function returns False at that term

-
-
Return type:
-

dict

-
-
Parameters:
-

term (int)

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-custom_cost(slot_name, cost, warn_on_non_costmodel=True)[source]
-

Takes class costs set, and creates a copy of the class costs, then applies the cost numeric or CostMethod in the same way but only for that instance of

-
-
Parameters:
-
    -
  • slot_name (str)

  • -
  • cost (float | CostModel)

  • -
-
-
-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-classmethod default_cost(slot_name, cost, warn_on_non_costmodel=True)[source]
-

Provide a default cost for Slot items that are not CostModel’s. Cost is applied class wide, but can be overriden with custom_cost per instance

-
-
Parameters:
-
    -
  • slot_name (str)

  • -
  • cost (float | CostModel)

  • -
-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

Returns the last context

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_default_costs()[source]
-

set default costs if no costs are set

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-sub_costs(saved=None, categories=None, term=0)[source]
-

gets items from CostModel’s defined in a Slot attribute or in a slot default, tolerrant to nan’s in cost definitions

-
-
Parameters:
-
    -
  • saved (set | None)

  • -
  • categories (tuple | None)

  • -
-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()[source]
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-sum_costs(saved=None, categories=None, term=0)[source]
-

sums costs of cost_property’s in this item that are present at term=0, and by category if define as input

-
-
Parameters:
-
    -
  • saved (set | None)

  • -
  • categories (tuple | None)

  • -
-
-
-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dflt_costs()[source]
-

updates internal default slot costs if the current component doesn’t exist or isn’t a cost model, this is really a component method but we will use it never the less.

-

This should be called from Component.update() if default costs are used

-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.costs.Economics.html b/docs/_build/html/_autosummary/engforge.eng.costs.Economics.html deleted file mode 100644 index 8edaaef..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.costs.Economics.html +++ /dev/null @@ -1,1588 +0,0 @@ - - - - - - - engforge.eng.costs.Economics — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.costs.Economics

-
-
-class Economics(*, name=NOTHING, parent=None, term_length=0, discount_rate=0.0, fixed_output=nan, output_type='generic', terms_per_year=1)[source]
-

Bases: Component

-

Economics is a component that summarizes costs and reports the economics of a system and its components in a recursive format

-

Method generated by attrs for class Economics.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

calculate_costs

recursively accounts for costs in the parent, its children recursively.

calculate_production

must override this function and set economic_output

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_prop

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

standard component references are

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

sum_cost_references

sum_references

sum_term_fgen

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

term_fgen

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

combine_cost([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

cost_references

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

lifecycle_dataframe

simulates the economics lifecycle and stores the results in a term based dataframe

lifecycle_output

return lifecycle calculations for lcoe

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

output([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

term_length

discount_rate

fixed_output

output_type

terms_per_year

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • term_length (int)

  • -
  • discount_rate (float)

  • -
  • fixed_output (float)

  • -
  • output_type (str)

  • -
  • terms_per_year (int)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-calculate_costs(parent)[source]
-

recursively accounts for costs in the parent, its children recursively.

-
-
Return type:
-

float

-
-
-
- -
-
-calculate_production(parent, term)[source]
-

must override this function and set economic_output

-
-
Return type:
-

float

-
-
-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=True, numeric_only=False)[source]
-

standard component references are

-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-property lifecycle_dataframe: DataFrame
-

simulates the economics lifecycle and stores the results in a term based dataframe

-
- -
-
-property lifecycle_output: dict
-

return lifecycle calculations for lcoe

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent)[source]
-

Kwargs comes from eval_kw in solver

-
-
Parameters:
-

parent (Component | System)

-
-
-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.costs.cost_property.html b/docs/_build/html/_autosummary/engforge.eng.costs.cost_property.html deleted file mode 100644 index ba0ce4a..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.costs.cost_property.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - engforge.eng.costs.cost_property — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.costs.cost_property

-
-
-class cost_property(fget=None, fset=None, fdel=None, doc=None, desc=None, label=None, stochastic=False, mode='initial', category=None)[source]
-

Bases: system_property

-

A thin wrapper over system_property that will be accounted by Economics Components and apply term & categorization

-

cost_property should return a float/int always and will raise an error if the return annotation is different, although annotations are not required and will default to float.

-

#Terms: -Terms start counting at 0 and can be evald by the Economic.term_length -cost_properties will return their value as system_properties do without regard for the term state, however a CostModel’s costs at a term can be retrived by costs_at_term. The default mode is for initial cost

-

#Categories: -Categories are a way to report cost categories and multiple can be applied to a cost. Categories are grouped by the Economics system at reported in bulk by term and over the term_length

-

extends system_property interface with mode & category keywords -:type mode: str -:param mode: can be one of initial,`maintenance`,`always` or a function with signature f(inst,term) as an integer and returning a boolean True if it is to be applied durring that term.

-

Methods

- - - - - - - - - - - - - - - - - - -

apply_at_term

deleter

get_func_return

ensures that the function has a return annotation, and that return annotation is in valid sort types

getter

setter

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - -

cost_categories

desc

label

must_return

return_type

stochastic

term_mode

-
-
Parameters:
-
    -
  • mode (str)

  • -
  • category (str | list)

  • -
-
-
-
-
-__call__(fget=None, fset=None, fdel=None, doc=None)
-

this will be called when input is provided before property is set

-
- -
-
-get_func_return(func)[source]
-

ensures that the function has a return annotation, and that return annotation is in valid sort types

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.costs.eval_slot_cost.html b/docs/_build/html/_autosummary/engforge.eng.costs.eval_slot_cost.html deleted file mode 100644 index b8bae33..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.costs.eval_slot_cost.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - engforge.eng.costs.eval_slot_cost — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.costs.eval_slot_cost

-
-
-eval_slot_cost(slot_item, saved=None)[source]
-
-
Parameters:
-
    -
  • slot_item (float | int | CostModel | dict)

  • -
  • saved (set | None)

  • -
-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.costs.gend.html b/docs/_build/html/_autosummary/engforge.eng.costs.gend.html deleted file mode 100644 index 370b36b..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.costs.gend.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - engforge.eng.costs.gend — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.costs.gend

-
-
-gend(deect)[source]
-
-
Parameters:
-

deect (dict)

-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.costs.html b/docs/_build/html/_autosummary/engforge.eng.costs.html deleted file mode 100644 index 9518c55..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.costs.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - - engforge.eng.costs — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.costs

-

Defines a CostModel & Economics Component that define & orchestrate cost accounting respectively.

-

CostModels can have a cost_per_item and additionally calculate a cumulative_cost from internally defined `CostModel`s.

-

CostModel’s can have cost_property’s which detail how and when a cost should be applied & grouped. By default each CostModel has a cost_per_item which is reflected in item_cost cost_property set on the initial term as a unit category. Multiple categories of cost are also able to be set on cost_properties as follows

-

``` -@forge -class Widget(Component,CostModel):

-
-

@cost_property(mode=’initial’,category=’capex,manufacturing’) -def cost_of_XYZ(self):

-
-

return …

-
-
-

```

-

Economics models sum CostModel.cost_properties recursively on the parent they are defined. Economics computes the grouped category costs for each item recursively as well as summary properties like annualized values and levalized cost. Economic output is determined by a fixed_output or overriding calculate_production(self,parent) to dynamically calculate changing economics based on factors in the parent.

-

Default costs can be set on any CostModel.Slot attribute, by using default_cost(<slot_name>,<cost>) on the class, this will provide a default cost for the slot if no cost is set on the instance. Custom costs can be set on the instance with custom_cost(<slot_name>,<cost>). If cost is a CostModel, it will be assigned to the slot if it is not already assigned.

-

The economics term_length applies costs over the term, using the cost_property.mode to determine at which terms a cost should be applied.

-

@forge -class Parent(System,CostModel)

-
-

econ = Slot.define(Economics) #will calculate parent costs as well -cost = Slot.define(Widget) #slots automatically set to none if no input provided

-
-

Parent(econ=Economics(term_length=25,discount_rate=0.05,fixed_output=1000))

-

Functions

- - - - - - - - - -

eval_slot_cost

gend

-

Classes

- - - - - - - - - - - - - - - -

CostLog

Initialize a filter.

CostModel

CostModel is a mixin for components or systems that reports its costs through the cost system property, which by default sums the item_cost and sub_items_cost.

Economics

Economics is a component that summarizes costs and reports the economics of a system and its components in a recursive format

cost_property

A thin wrapper over system_property that will be accounted by Economics Components and apply term & categorization

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.Air.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.Air.html deleted file mode 100644 index 2b433a3..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.Air.html +++ /dev/null @@ -1,1544 +0,0 @@ - - - - - - - engforge.eng.fluid_material.Air — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.Air

-
-
-class Air(*, name=NOTHING, parent=None, P=100000.0, T=288)
-

Bases: CoolPropMaterial

-

Method generated by attrs for class CoolPropMaterial.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Psat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tsat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

material

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

specific_heat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

state

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

thermal_conductivity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-__call__(*args, **kwargs)
-

calls coolprop module with args adding the material

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.AirWaterMix.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.AirWaterMix.html deleted file mode 100644 index baf5503..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.AirWaterMix.html +++ /dev/null @@ -1,1568 +0,0 @@ - - - - - - - engforge.eng.fluid_material.AirWaterMix — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.AirWaterMix

-
-
-class AirWaterMix(*, name=NOTHING, parent=None, P=100000.0, T=288)
-

Bases: CoolPropMixture

-

Method generated by attrs for class CoolPropMixture.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

setup

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_mass_ratios

add masses or massrates and molar ratio will be updated

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Mmass1([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Mmass2([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Psat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tsat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

materail2

material([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

material1

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

specific_heat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

state

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

thermal_conductivity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-__call__(*args, **kwargs)
-

calls coolprop module with args adding the material

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_mass_ratios(m1, m2)
-

add masses or massrates and molar ratio will be updated

-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.CoolPropMaterial.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.CoolPropMaterial.html deleted file mode 100644 index 1f5c1e0..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.CoolPropMaterial.html +++ /dev/null @@ -1,1545 +0,0 @@ - - - - - - - engforge.eng.fluid_material.CoolPropMaterial — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.CoolPropMaterial

-
-
-class CoolPropMaterial(*, name=NOTHING, parent=None, P=100000.0, T=288)[source]
-

Bases: FluidMaterial

-

Uses coolprop equation of state

-

Method generated by attrs for class CoolPropMaterial.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Psat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tsat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

specific_heat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

state

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

thermal_conductivity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

material

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-__call__(*args, **kwargs)[source]
-

calls coolprop module with args adding the material

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.CoolPropMixture.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.CoolPropMixture.html deleted file mode 100644 index 361d9fb..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.CoolPropMixture.html +++ /dev/null @@ -1,1569 +0,0 @@ - - - - - - - engforge.eng.fluid_material.CoolPropMixture — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.CoolPropMixture

-
-
-class CoolPropMixture(*, name=NOTHING, parent=None, P=100000.0, T=288)[source]
-

Bases: CoolPropMaterial

-

coolprop mixture of two elements… can only use T/Q, P/Q, T/P calls to coolprop

-

Method generated by attrs for class CoolPropMixture.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

setup

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_mass_ratios

add masses or massrates and molar ratio will be updated

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Mmass1([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Mmass2([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Psat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tsat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

materail2

material([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

material1

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

specific_heat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

state

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

thermal_conductivity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-__call__(*args, **kwargs)
-

calls coolprop module with args adding the material

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_mass_ratios(m1, m2)[source]
-

add masses or massrates and molar ratio will be updated

-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.FluidMaterial.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.FluidMaterial.html deleted file mode 100644 index 2d85d6f..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.FluidMaterial.html +++ /dev/null @@ -1,1530 +0,0 @@ - - - - - - - engforge.eng.fluid_material.FluidMaterial — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.FluidMaterial

-
-
-class FluidMaterial(*, name=NOTHING, parent=None, P=100000.0, T=288)[source]
-

Bases: Component

-

Placeholder for pressure dependent material, defaults to ideal water

-

Method generated by attrs for class FluidMaterial.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density

default functionality, assumed gas with eq-state= gas constant

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

viscosity

ideal fluid has no viscosity

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-abstract property density
-

default functionality, assumed gas with eq-state= gas constant

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-abstract property viscosity
-

ideal fluid has no viscosity

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.Hydrogen.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.Hydrogen.html deleted file mode 100644 index 3099c22..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.Hydrogen.html +++ /dev/null @@ -1,1544 +0,0 @@ - - - - - - - engforge.eng.fluid_material.Hydrogen — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.Hydrogen

-
-
-class Hydrogen(*, name=NOTHING, parent=None, P=100000.0, T=288)
-

Bases: CoolPropMaterial

-

Method generated by attrs for class CoolPropMaterial.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Psat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tsat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

material

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

specific_heat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

state

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

thermal_conductivity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-__call__(*args, **kwargs)
-

calls coolprop module with args adding the material

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealAir.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealAir.html deleted file mode 100644 index fb1570c..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealAir.html +++ /dev/null @@ -1,1521 +0,0 @@ - - - - - - - engforge.eng.fluid_material.IdealAir — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.IdealAir

-
-
-class IdealAir(*, name=NOTHING, parent=None, P=100000.0, T=288, gas_constant=287.0)
-

Bases: IdealGas

-

Method generated by attrs for class IdealGas.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

gas_constant

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • P (float)

  • -
  • T (float)

  • -
  • gas_constant (float)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealGas.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealGas.html deleted file mode 100644 index 14899ab..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealGas.html +++ /dev/null @@ -1,1519 +0,0 @@ - - - - - - - engforge.eng.fluid_material.IdealGas — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.IdealGas

-
-
-class IdealGas(*, name=NOTHING, parent=None, P=100000.0, T=288, gas_constant=287.0)[source]
-

Bases: FluidMaterial

-

Material Defaults To Gas Properties, so eq_of_state is just Rgas, no viscosity, defaults to air

-

Method generated by attrs for class IdealGas.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • P (float)

  • -
  • T (float)

  • -
  • gas_constant (float)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealH2.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealH2.html deleted file mode 100644 index d375a97..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealH2.html +++ /dev/null @@ -1,1521 +0,0 @@ - - - - - - - engforge.eng.fluid_material.IdealH2 — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.IdealH2

-
-
-class IdealH2(*, name=NOTHING, parent=None, P=100000.0, T=288, gas_constant=287.0)
-

Bases: IdealGas

-

Method generated by attrs for class IdealGas.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

gas_constant

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • P (float)

  • -
  • T (float)

  • -
  • gas_constant (float)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealOxygen.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealOxygen.html deleted file mode 100644 index 33f29dd..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealOxygen.html +++ /dev/null @@ -1,1521 +0,0 @@ - - - - - - - engforge.eng.fluid_material.IdealOxygen — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.IdealOxygen

-
-
-class IdealOxygen(*, name=NOTHING, parent=None, P=100000.0, T=288, gas_constant=287.0)
-

Bases: IdealGas

-

Method generated by attrs for class IdealGas.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

gas_constant

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • P (float)

  • -
  • T (float)

  • -
  • gas_constant (float)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealSteam.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealSteam.html deleted file mode 100644 index c172cb4..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.IdealSteam.html +++ /dev/null @@ -1,1521 +0,0 @@ - - - - - - - engforge.eng.fluid_material.IdealSteam — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.IdealSteam

-
-
-class IdealSteam(*, name=NOTHING, parent=None, P=100000.0, T=288, gas_constant=287.0)
-

Bases: IdealGas

-

Method generated by attrs for class IdealGas.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

gas_constant

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • P (float)

  • -
  • T (float)

  • -
  • gas_constant (float)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.Oxygen.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.Oxygen.html deleted file mode 100644 index 227323f..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.Oxygen.html +++ /dev/null @@ -1,1544 +0,0 @@ - - - - - - - engforge.eng.fluid_material.Oxygen — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.Oxygen

-
-
-class Oxygen(*, name=NOTHING, parent=None, P=100000.0, T=288)
-

Bases: CoolPropMaterial

-

Method generated by attrs for class CoolPropMaterial.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Psat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tsat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

material

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

specific_heat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

state

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

thermal_conductivity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-__call__(*args, **kwargs)
-

calls coolprop module with args adding the material

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.SeaWater.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.SeaWater.html deleted file mode 100644 index 02f3c9b..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.SeaWater.html +++ /dev/null @@ -1,1544 +0,0 @@ - - - - - - - engforge.eng.fluid_material.SeaWater — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.SeaWater

-
-
-class SeaWater(*, name=NOTHING, parent=None, P=100000.0, T=288)
-

Bases: CoolPropMaterial

-

Method generated by attrs for class CoolPropMaterial.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Psat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tsat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

material

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

specific_heat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

state

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

thermal_conductivity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-__call__(*args, **kwargs)
-

calls coolprop module with args adding the material

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.Steam.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.Steam.html deleted file mode 100644 index 788b318..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.Steam.html +++ /dev/null @@ -1,1544 +0,0 @@ - - - - - - - engforge.eng.fluid_material.Steam — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.Steam

-
-
-class Steam(*, name=NOTHING, parent=None, P=100000.0, T=288)
-

Bases: CoolPropMaterial

-

Method generated by attrs for class CoolPropMaterial.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Psat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tsat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

material

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

specific_heat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

state

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

thermal_conductivity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-__call__(*args, **kwargs)
-

calls coolprop module with args adding the material

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.Water.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.Water.html deleted file mode 100644 index f0bea50..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.Water.html +++ /dev/null @@ -1,1544 +0,0 @@ - - - - - - - engforge.eng.fluid_material.Water — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material.Water

-
-
-class Water(*, name=NOTHING, parent=None, P=100000.0, T=288)
-

Bases: CoolPropMaterial

-

Method generated by attrs for class CoolPropMaterial.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Psat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tsat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

material

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

specific_heat([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

state

static_A

static_B

static_C

static_D

static_F

static_K

surface_tension([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

thermal_conductivity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-__call__(*args, **kwargs)
-

calls coolprop module with args adding the material

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.fluid_material.html b/docs/_build/html/_autosummary/engforge.eng.fluid_material.html deleted file mode 100644 index 722e10c..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.fluid_material.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - - engforge.eng.fluid_material — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.fluid_material

-

Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Air

Method generated by attrs for class CoolPropMaterial.

AirWaterMix

Method generated by attrs for class CoolPropMixture.

CoolPropMaterial

Uses coolprop equation of state

CoolPropMixture

coolprop mixture of two elements.

FluidMaterial

Placeholder for pressure dependent material, defaults to ideal water

Hydrogen

Method generated by attrs for class CoolPropMaterial.

IdealAir

Method generated by attrs for class IdealGas.

IdealGas

Material Defaults To Gas Properties, so eq_of_state is just Rgas, no viscosity, defaults to air

IdealH2

Method generated by attrs for class IdealGas.

IdealOxygen

Method generated by attrs for class IdealGas.

IdealSteam

Method generated by attrs for class IdealGas.

Oxygen

Method generated by attrs for class CoolPropMaterial.

SeaWater

Method generated by attrs for class CoolPropMaterial.

Steam

Method generated by attrs for class CoolPropMaterial.

Water

Method generated by attrs for class CoolPropMaterial.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.Circle.html b/docs/_build/html/_autosummary/engforge.eng.geometry.Circle.html deleted file mode 100644 index af467c3..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.Circle.html +++ /dev/null @@ -1,852 +0,0 @@ - - - - - - - engforge.eng.geometry.Circle — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry.Circle

-
-
-class Circle(*, name='rectangular section', d)[source]
-

Bases: Profile2D

-

models a solid circle with diameter d

-

Method generated by attrs for class Circle.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

add_prediction_record

adds a record to the prediction records, and calcultes the average and variance of the data :type record: :param record: a dict of the record :type extra_add: :param extra_add: if true, the record is added to the prediction records even if the data is inbounds :returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

calculate_stress

change_all_log_lvl

check_and_retrain

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

check_out_of_domain

checks if the record is in bounds of the current data

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

display_results

error

Writes to log as a error

estimate_stress

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

observe_and_predict

uses the existing models to predict the row and measure the error

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

plot_mesh

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

prediction_dataframe

prediction_weights

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

score_data

scores a dataframe

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

train_compare

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

training_callback

override to provide a callback when training is complete, such as saving the models

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A

Ao

outside area, over ride for hallow sections

Ixx

Iyy

J

as_dict

returns values as they are in the class instance

attrs_fields

basis

classname

Shorthand for the classname

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

numeric_as_dict

numeric_hash

prediction_goal_error

prediction_records

slack_webhook_url

train_window

trained

unique_hash

x_bounds

y_bounds

d

name

-
-
Parameters:
-
    -
  • name (str)

  • -
  • d (float)

  • -
-
-
-
-
-property Ao
-

outside area, over ride for hallow sections

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-add_prediction_record(record, extra_add=True, mult_sigma=1, target_items=1000)
-

adds a record to the prediction records, and calcultes the average and variance of the data -:type record: -:param record: a dict of the record -:type extra_add: -:param extra_add: if true, the record is added to the prediction records even if the data is inbounds -:returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-check_and_retrain(records, min_rec=None)
-

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

-
- -
-
-check_out_of_domain(record, extra_margin=1, target_items=1000)
-

checks if the record is in bounds of the current data

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-observe_and_predict(row)
-

uses the existing models to predict the row and measure the error

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-score_data(df)
-

scores a dataframe

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-train_compare(df, test_frac=2, train_full=False, min_rec=250)
-

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

-
-
Parameters:
-
    -
  • df – dataframe to train with

  • -
  • test_frac – N/train_frac will be size of the training window

  • -
  • train_full – boolean to use full training data

  • -
-
-
Returns:
-

trained models

-
-
-
- -
-
-training_callback(models)
-

override to provide a callback when training is complete, such as saving the models

-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.GeometryLog.html b/docs/_build/html/_autosummary/engforge.eng.geometry.GeometryLog.html deleted file mode 100644 index ebe9568..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.GeometryLog.html +++ /dev/null @@ -1,339 +0,0 @@ - - - - - - - engforge.eng.geometry.GeometryLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry.GeometryLog

-
-
-class GeometryLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.HollowCircle.html b/docs/_build/html/_autosummary/engforge.eng.geometry.HollowCircle.html deleted file mode 100644 index b880046..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.HollowCircle.html +++ /dev/null @@ -1,859 +0,0 @@ - - - - - - - engforge.eng.geometry.HollowCircle — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry.HollowCircle

-
-
-class HollowCircle(*, name='rectangular section', d, t)[source]
-

Bases: Profile2D

-

models a hollow circle with diameter d and thickness t

-

Method generated by attrs for class HollowCircle.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

add_prediction_record

adds a record to the prediction records, and calcultes the average and variance of the data :type record: :param record: a dict of the record :type extra_add: :param extra_add: if true, the record is added to the prediction records even if the data is inbounds :returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

calculate_stress

change_all_log_lvl

check_and_retrain

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

check_out_of_domain

checks if the record is in bounds of the current data

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

display_results

error

Writes to log as a error

estimate_stress

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

observe_and_predict

uses the existing models to predict the row and measure the error

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

plot_mesh

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

prediction_dataframe

prediction_weights

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

score_data

scores a dataframe

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

train_compare

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

training_callback

override to provide a callback when training is complete, such as saving the models

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A

Ao

outside area, over ride for hallow sections

Ixx

Iyy

J

as_dict

returns values as they are in the class instance

attrs_fields

basis

classname

Shorthand for the classname

di

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

numeric_as_dict

numeric_hash

prediction_goal_error

prediction_records

slack_webhook_url

train_window

trained

unique_hash

x_bounds

y_bounds

d

t

name

-
-
Parameters:
-
    -
  • name (str)

  • -
  • d (float)

  • -
  • t (float)

  • -
-
-
-
-
-property Ao
-

outside area, over ride for hallow sections

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-add_prediction_record(record, extra_add=True, mult_sigma=1, target_items=1000)
-

adds a record to the prediction records, and calcultes the average and variance of the data -:type record: -:param record: a dict of the record -:type extra_add: -:param extra_add: if true, the record is added to the prediction records even if the data is inbounds -:returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-check_and_retrain(records, min_rec=None)
-

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

-
- -
-
-check_out_of_domain(record, extra_margin=1, target_items=1000)
-

checks if the record is in bounds of the current data

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-observe_and_predict(row)
-

uses the existing models to predict the row and measure the error

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-score_data(df)
-

scores a dataframe

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-train_compare(df, test_frac=2, train_full=False, min_rec=250)
-

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

-
-
Parameters:
-
    -
  • df – dataframe to train with

  • -
  • test_frac – N/train_frac will be size of the training window

  • -
  • train_full – boolean to use full training data

  • -
-
-
Returns:
-

trained models

-
-
-
- -
-
-training_callback(models)
-

override to provide a callback when training is complete, such as saving the models

-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.ParametricSpline.html b/docs/_build/html/_autosummary/engforge.eng.geometry.ParametricSpline.html deleted file mode 100644 index 9eb7042..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.ParametricSpline.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - engforge.eng.geometry.ParametricSpline — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry.ParametricSpline

-
-
-class ParametricSpline(P1, P2, P1ds, P2ds)[source]
-

Bases: object

-

a multivariate spline defined by uniform length vector input, with points P1,P2 and their slopes P1ds,P2ds

-

Method generated by attrs for class ParametricSpline.

-

Methods

- - - - - - -

coords

-

Attributes

- - - - - - - - - - - - - - - -

a0

a1

a2

a3

-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.Profile2D.html b/docs/_build/html/_autosummary/engforge.eng.geometry.Profile2D.html deleted file mode 100644 index 0bbb39b..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.Profile2D.html +++ /dev/null @@ -1,845 +0,0 @@ - - - - - - - engforge.eng.geometry.Profile2D — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry.Profile2D

-
-
-class Profile2D(*, name='generic cross section')[source]
-

Bases: Configuration, PredictionMixin

-

Method generated by attrs for class Profile2D.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

add_prediction_record

adds a record to the prediction records, and calcultes the average and variance of the data :type record: :param record: a dict of the record :type extra_add: :param extra_add: if true, the record is added to the prediction records even if the data is inbounds :returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

calculate_stress

change_all_log_lvl

check_and_retrain

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

check_out_of_domain

checks if the record is in bounds of the current data

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

display_results

error

Writes to log as a error

estimate_stress

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

observe_and_predict

uses the existing models to predict the row and measure the error

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

plot_mesh

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

prediction_dataframe

prediction_weights

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

score_data

scores a dataframe

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

train_compare

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

training_callback

override to provide a callback when training is complete, such as saving the models

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A

Ao

outside area, over ride for hallow sections

Ixx

Iyy

J

as_dict

returns values as they are in the class instance

attrs_fields

basis

classname

Shorthand for the classname

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

numeric_as_dict

numeric_hash

prediction_goal_error

prediction_records

slack_webhook_url

train_window

trained

unique_hash

x_bounds

y_bounds

name

-
-
Parameters:
-

name (str)

-
-
-
-
-property Ao
-

outside area, over ride for hallow sections

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-add_prediction_record(record, extra_add=True, mult_sigma=1, target_items=1000)
-

adds a record to the prediction records, and calcultes the average and variance of the data -:type record: -:param record: a dict of the record -:type extra_add: -:param extra_add: if true, the record is added to the prediction records even if the data is inbounds -:returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-check_and_retrain(records, min_rec=None)
-

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

-
- -
-
-check_out_of_domain(record, extra_margin=1, target_items=1000)
-

checks if the record is in bounds of the current data

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-observe_and_predict(row)
-

uses the existing models to predict the row and measure the error

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-score_data(df)
-

scores a dataframe

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-train_compare(df, test_frac=2, train_full=False, min_rec=250)
-

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

-
-
Parameters:
-
    -
  • df – dataframe to train with

  • -
  • test_frac – N/train_frac will be size of the training window

  • -
  • train_full – boolean to use full training data

  • -
-
-
Returns:
-

trained models

-
-
-
- -
-
-training_callback(models)
-

override to provide a callback when training is complete, such as saving the models

-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.Rectangle.html b/docs/_build/html/_autosummary/engforge.eng.geometry.Rectangle.html deleted file mode 100644 index b8f8d0a..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.Rectangle.html +++ /dev/null @@ -1,856 +0,0 @@ - - - - - - - engforge.eng.geometry.Rectangle — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry.Rectangle

-
-
-class Rectangle(*, name='rectangular section', b, h)[source]
-

Bases: Profile2D

-

models rectangle with base b, and height h

-

Method generated by attrs for class Rectangle.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

add_prediction_record

adds a record to the prediction records, and calcultes the average and variance of the data :type record: :param record: a dict of the record :type extra_add: :param extra_add: if true, the record is added to the prediction records even if the data is inbounds :returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

calculate_stress

change_all_log_lvl

check_and_retrain

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

check_out_of_domain

checks if the record is in bounds of the current data

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

display_results

error

Writes to log as a error

estimate_stress

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

observe_and_predict

uses the existing models to predict the row and measure the error

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

plot_mesh

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

prediction_dataframe

prediction_weights

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

score_data

scores a dataframe

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

train_compare

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

training_callback

override to provide a callback when training is complete, such as saving the models

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A

Ao

outside area, over ride for hallow sections

Ixx

Iyy

J

as_dict

returns values as they are in the class instance

attrs_fields

basis

classname

Shorthand for the classname

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

numeric_as_dict

numeric_hash

prediction_goal_error

prediction_records

slack_webhook_url

train_window

trained

unique_hash

x_bounds

y_bounds

b

h

name

-
-
Parameters:
-
    -
  • name (str)

  • -
  • b (float)

  • -
  • h (float)

  • -
-
-
-
-
-property Ao
-

outside area, over ride for hallow sections

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-add_prediction_record(record, extra_add=True, mult_sigma=1, target_items=1000)
-

adds a record to the prediction records, and calcultes the average and variance of the data -:type record: -:param record: a dict of the record -:type extra_add: -:param extra_add: if true, the record is added to the prediction records even if the data is inbounds -:returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-check_and_retrain(records, min_rec=None)
-

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

-
- -
-
-check_out_of_domain(record, extra_margin=1, target_items=1000)
-

checks if the record is in bounds of the current data

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-observe_and_predict(row)
-

uses the existing models to predict the row and measure the error

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-score_data(df)
-

scores a dataframe

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-train_compare(df, test_frac=2, train_full=False, min_rec=250)
-

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

-
-
Parameters:
-
    -
  • df – dataframe to train with

  • -
  • test_frac – N/train_frac will be size of the training window

  • -
  • train_full – boolean to use full training data

  • -
-
-
Returns:
-

trained models

-
-
-
- -
-
-training_callback(models)
-

override to provide a callback when training is complete, such as saving the models

-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.ShapelySection.html b/docs/_build/html/_autosummary/engforge.eng.geometry.ShapelySection.html deleted file mode 100644 index c02ccf6..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.ShapelySection.html +++ /dev/null @@ -1,1047 +0,0 @@ - - - - - - - engforge.eng.geometry.ShapelySection — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry.ShapelySection

-
-
-class ShapelySection(*, name='shapely section', shape, coarse=False, mesh_extent_decimation=100, min_mesh_angle=20, min_mesh_size=1e-05, goal_elements=1000, material=None, failure_mode='von_mises', prediction=False, prediction_goal_error=0.025, max_records=10000)[source]
-

Bases: Profile2D

-

a 2D profile that takes a shapely section to calculate section properties, use a sectionproperties section with hidden variable _geo to bypass shape calculation

-

Method generated by attrs for class ShapelySection.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

add_prediction_record

adds a record to the prediction records, and calcultes the average and variance of the data :type record: :param record: a dict of the record :type extra_add: :param extra_add: if true, the record is added to the prediction records even if the data is inbounds :returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

basis_expand

run combinations of parameters and permutations of weights against the basis values to populate the stress records, by default using estimation logic to speed up the process

calculate_bounds

calculate_mesh_size

calculate_stress

change_all_log_lvl

check_and_retrain

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

check_out_of_domain

checks if the record is in bounds of the current data

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

check_symmetric

checks if the section is symmetric about the x and y axis, by finding the intersection of

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_failure_front

determine_failure_stress

uses the failure mode to compare to allowable stress

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

display_results

error

Writes to log as a error

estimate_failure

uses a support vector machine to estimate stresses and returns a number zero or one to indicate failure, if prediction is set to True, otherwise calculates stress

estimate_stress

uses a support vector machine to estimate stresses and returns the ratio of the allowable stress, also known as the failure fracion if prediction is set to True, otherwise calculates stress

extract_message

fail_frac_criteria

fail_learning

optimizes stress until failure, given base_kw arguments for extra parameters

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

from_cache

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

hash_id

string for saving to persisting

info

Writes to log but with info category, these are important typically and inform about progress of process in general

init_with_material

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

mesh_section

caches section properties and mesh

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

observe_and_predict

uses the existing models to predict the row and measure the error

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

plot_mesh

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

prediction_dataframe

prediction_weights

random_force_input

record_stress

determines if stress record should be added to prediction_records

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

reset_prediction

score_data

scores a dataframe

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solve_fail

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

train_compare

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

train_until_valid

trains the prediction models until the error is below the goal error

training_callback

when training is complete save the model to a pickle with ShapelySection_<hash>.pkl

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A

Ao

outside area, over ride for hallow sections

Ixx

Ixy

Iyy

J

as_dict

returns values as they are in the class instance

attrs_fields

basis

cache_name

cache_path

classname

Shorthand for the classname

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

max_margin

max_rec_parm

mesh_size

meta_name

meta_path

min_mesh_area

near_margin

numeric_as_dict

numeric_hash

prediction_goal_error

prediction_records

save_threshold

section_cache

slack_webhook_url

train_window

trained

unique_hash

x_bounds

y_bounds

name

shape

coarse

min_mesh_angle

min_mesh_size

goal_elements

material

prediction

max_records

-
-
Parameters:
-
    -
  • name (str)

  • -
  • shape (Polygon)

  • -
  • coarse (bool)

  • -
  • min_mesh_angle (float)

  • -
  • min_mesh_size (float)

  • -
  • goal_elements (float)

  • -
  • material (Material)

  • -
  • failure_mode (str)

  • -
  • prediction (bool)

  • -
  • prediction_goal_error (float)

  • -
  • max_records (list)

  • -
-
-
-
-
-property Ao
-

outside area, over ride for hallow sections

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-add_prediction_record(record, extra_add=True, mult_sigma=1, target_items=1000)
-

adds a record to the prediction records, and calcultes the average and variance of the data -:type record: -:param record: a dict of the record -:type extra_add: -:param extra_add: if true, the record is added to the prediction records even if the data is inbounds -:returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-basis_expand(expand_values=[0.9, 0.75, 0.5, 0.1, 0.01], Nparm=4, est=True, normalize=True)[source]
-

run combinations of parameters and permutations of weights against the basis values to populate the stress records, by default using estimation logic to speed up the process

-
- -
-
-check_and_retrain(records, min_rec=None)
-

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

-
- -
-
-check_out_of_domain(record, extra_margin=1, target_items=1000)
-

checks if the record is in bounds of the current data

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-check_symmetric(precision=3, Nincr=180)[source]
-

checks if the section is symmetric about the x and y axis, by finding the intersection of

-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_failure_stress(stress_obj)[source]
-

uses the failure mode to compare to allowable stress

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-estimate_failure(n=0, vx=0, vy=0, mxx=0, myy=0, mzz=0)[source]
-

uses a support vector machine to estimate stresses and returns a number zero or one to indicate failure, if prediction is set to True, otherwise calculates stress

-
-
Return type:
-

float

-
-
-
- -
-
-estimate_stress(n=0, vx=0, vy=0, mxx=0, myy=0, mzz=0, value=False, calc_margin=2, min_est_records=100, calc_every=25, pre_train_margin=2, force_calc=False)[source]
-

uses a support vector machine to estimate stresses and returns the ratio of the allowable stress, also known as the failure fracion if prediction is set to True, otherwise calculates stress

-
-
Return type:
-

float

-
-
-
- -
-
-fail_learning(X, parm, base_kw, mult=1)[source]
-

optimizes stress until failure, given base_kw arguments for extra parameters

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-hash_id()[source]
-

string for saving to persisting

-
-
Return type:
-

str

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-mesh_section()[source]
-

caches section properties and mesh

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-observe_and_predict(row)
-

uses the existing models to predict the row and measure the error

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-record_stress(stress_dict)[source]
-

determines if stress record should be added to prediction_records

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-score_data(df)
-

scores a dataframe

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-train_compare(df, test_frac=2, train_full=False, min_rec=250)
-

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

-
-
Parameters:
-
    -
  • df – dataframe to train with

  • -
  • test_frac – N/train_frac will be size of the training window

  • -
  • train_full – boolean to use full training data

  • -
-
-
Returns:
-

trained models

-
-
-
- -
-
-train_until_valid(print_interval=50, max_iter=1000, est=False)[source]
-

trains the prediction models until the error is below the goal error

-
- -
-
-training_callback(models)[source]
-

when training is complete save the model to a pickle with ShapelySection_<hash>.pkl

-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.Triangle.html b/docs/_build/html/_autosummary/engforge.eng.geometry.Triangle.html deleted file mode 100644 index 2a323fd..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.Triangle.html +++ /dev/null @@ -1,856 +0,0 @@ - - - - - - - engforge.eng.geometry.Triangle — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry.Triangle

-
-
-class Triangle(*, name='rectangular section', b, h)[source]
-

Bases: Profile2D

-

models a triangle with base, b and height h

-

Method generated by attrs for class Triangle.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

add_prediction_record

adds a record to the prediction records, and calcultes the average and variance of the data :type record: :param record: a dict of the record :type extra_add: :param extra_add: if true, the record is added to the prediction records even if the data is inbounds :returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

calculate_stress

change_all_log_lvl

check_and_retrain

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

check_out_of_domain

checks if the record is in bounds of the current data

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

display_results

error

Writes to log as a error

estimate_stress

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

observe_and_predict

uses the existing models to predict the row and measure the error

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

plot_mesh

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

prediction_dataframe

prediction_weights

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

score_data

scores a dataframe

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

train_compare

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

training_callback

override to provide a callback when training is complete, such as saving the models

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A

Ao

outside area, over ride for hallow sections

Ixx

Iyy

J

as_dict

returns values as they are in the class instance

attrs_fields

basis

classname

Shorthand for the classname

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

numeric_as_dict

numeric_hash

prediction_goal_error

prediction_records

slack_webhook_url

train_window

trained

unique_hash

x_bounds

y_bounds

b

h

name

-
-
Parameters:
-
    -
  • name (str)

  • -
  • b (float)

  • -
  • h (float)

  • -
-
-
-
-
-property Ao
-

outside area, over ride for hallow sections

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-add_prediction_record(record, extra_add=True, mult_sigma=1, target_items=1000)
-

adds a record to the prediction records, and calcultes the average and variance of the data -:type record: -:param record: a dict of the record -:type extra_add: -:param extra_add: if true, the record is added to the prediction records even if the data is inbounds -:returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-check_and_retrain(records, min_rec=None)
-

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

-
- -
-
-check_out_of_domain(record, extra_margin=1, target_items=1000)
-

checks if the record is in bounds of the current data

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-observe_and_predict(row)
-

uses the existing models to predict the row and measure the error

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-score_data(df)
-

scores a dataframe

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-train_compare(df, test_frac=2, train_full=False, min_rec=250)
-

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

-
-
Parameters:
-
    -
  • df – dataframe to train with

  • -
  • test_frac – N/train_frac will be size of the training window

  • -
  • train_full – boolean to use full training data

  • -
-
-
Returns:
-

trained models

-
-
-
- -
-
-training_callback(models)
-

override to provide a callback when training is complete, such as saving the models

-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.calculate_stress.html b/docs/_build/html/_autosummary/engforge.eng.geometry.calculate_stress.html deleted file mode 100644 index 351620f..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.calculate_stress.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - engforge.eng.geometry.calculate_stress — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry.calculate_stress

-
-
-calculate_stress(section, n=0, vx=0, vy=0, mxx=0, myy=0, mzz=0, raw=False, row=False, record=True, value=True)[source]
-

returns the maximum vonmises stress in the section and returns the ratio of the allowable stress, also known as the failure fracion -:type raw: -:param raw: if raw is true, the stress object is returned, otherwise the failure fraction is returned

-
-
Return type:
-

float

-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.conver_np.html b/docs/_build/html/_autosummary/engforge.eng.geometry.conver_np.html deleted file mode 100644 index b8a75b5..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.conver_np.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - engforge.eng.geometry.conver_np — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry.conver_np

-
-
-conver_np(inpt)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.get_mesh_size.html b/docs/_build/html/_autosummary/engforge.eng.geometry.get_mesh_size.html deleted file mode 100644 index 538e2c4..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.get_mesh_size.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - engforge.eng.geometry.get_mesh_size — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry.get_mesh_size

-
-
-get_mesh_size(inst)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.geometry.html b/docs/_build/html/_autosummary/engforge.eng.geometry.html deleted file mode 100644 index a41035e..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.geometry.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - engforge.eng.geometry — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.geometry

-

These exist as in interface to sectionproperties from PyNite

-

Functions

- - - - - - - - - - - - -

calculate_stress

returns the maximum vonmises stress in the section and returns the ratio of the allowable stress, also known as the failure fracion :type raw: :param raw: if raw is true, the stress object is returned, otherwise the failure fraction is returned

conver_np

get_mesh_size

-

Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

Circle

models a solid circle with diameter d

GeometryLog

Initialize a filter.

HollowCircle

models a hollow circle with diameter d and thickness t

ParametricSpline

a multivariate spline defined by uniform length vector input, with points P1,P2 and their slopes P1ds,P2ds

Profile2D

Method generated by attrs for class Profile2D.

Rectangle

models rectangle with base b, and height h

ShapelySection

a 2D profile that takes a shapely section to calculate section properties, use a sectionproperties section with hidden variable _geo to bypass shape calculation

Triangle

models a triangle with base, b and height h

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.html b/docs/_build/html/_autosummary/engforge.eng.html deleted file mode 100644 index 09af96a..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - engforge.eng — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

costs

Defines a CostModel & Economics Component that define & orchestrate cost accounting respectively.

fluid_material

geometry

These exist as in interface to sectionproperties from PyNite

pipes

We'll use the QP formulation to develop a fluid analysis system for fluids start with single phase and move to others

prediction

a module that defines PredictionMixin which uses sklearn to make predictions about results

solid_materials

structure_beams

thermodynamics

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.pipes.FlowInput.html b/docs/_build/html/_autosummary/engforge.eng.pipes.FlowInput.html deleted file mode 100644 index 1437815..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.pipes.FlowInput.html +++ /dev/null @@ -1,1534 +0,0 @@ - - - - - - - engforge.eng.pipes.FlowInput — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.pipes.FlowInput

-
-
-class FlowInput(*, name=NOTHING, parent=None, x, y, z, flow_in=0.0)[source]
-

Bases: FlowNode

-

Method generated by attrs for class FlowInput.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

add_segment

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dP_f([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dP_p([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dP_tot([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

segments

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

sum_of_flows([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

flow_in

x

y

z

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • x (float)

  • -
  • y (float)

  • -
  • z (float)

  • -
  • flow_in (float)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.pipes.FlowNode.html b/docs/_build/html/_autosummary/engforge.eng.pipes.FlowNode.html deleted file mode 100644 index 56c8707..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.pipes.FlowNode.html +++ /dev/null @@ -1,1531 +0,0 @@ - - - - - - - engforge.eng.pipes.FlowNode — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.pipes.FlowNode

-
-
-class FlowNode(*, name=NOTHING, parent=None, x, y, z)[source]
-

Bases: PipeNode

-

Base For Boundary Condition Nodes of

-

Method generated by attrs for class PipeNode.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

add_segment

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dP_f([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dP_p([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dP_tot([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

segments

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

sum_of_flows([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

x

y

z

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • x (float)

  • -
  • y (float)

  • -
  • z (float)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.pipes.Pipe.html b/docs/_build/html/_autosummary/engforge.eng.pipes.Pipe.html deleted file mode 100644 index 0e624b3..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.pipes.Pipe.html +++ /dev/null @@ -1,1614 +0,0 @@ - - - - - - - engforge.eng.pipes.Pipe — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.pipes.Pipe

-
-
-class Pipe(*, name=NOTHING, node_s=None, node_e=None, material=NOTHING, parent=None, D, v=0, roughness=0.0, bend_radius=None)[source]
-

Bases: PipeFlow, Component

-

Method generated by attrs for class Pipe.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_flow

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

C([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Fvec

1

Kpipe([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

L([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Lhz([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Lx([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ly([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Lz([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Mf([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

P([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Q([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

T([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dP_f([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dP_p([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dP_tot([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

friction_factor([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

identity

A customizeable property that will be in the log by default

inclination([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

laminar_method

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

reynoldsNumber([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

sign([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

straight_method

system_id

returns an instance unique id based on id(self)

time

turbulent_method

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

roughness

bend_radius

D

v

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • node_s (Slot__a25909281b144bca)

  • -
  • node_e (Slot__7b164a55fd5440bf)

  • -
  • material (Slot__7081d854a38b4a7e)

  • -
  • parent (Component | System)

  • -
  • D (float)

  • -
  • v (float)

  • -
  • roughness (float)

  • -
  • bend_radius (float)

  • -
-
-
-
-
-property Fvec
-

1

-
-
Type:
-

returns the fluidized vector for 1D CFD for continuity

-
-
Type:
-

0, and momentum

-
-
-
- -
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.pipes.PipeFitting.html b/docs/_build/html/_autosummary/engforge.eng.pipes.PipeFitting.html deleted file mode 100644 index b2d046f..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.pipes.PipeFitting.html +++ /dev/null @@ -1,1590 +0,0 @@ - - - - - - - engforge.eng.pipes.PipeFitting — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.pipes.PipeFitting

-
-
-class PipeFitting(*, name=NOTHING, parent=None, x, y, z, material=NOTHING, D, v=0, Kfitting=0.1)[source]
-

Bases: FlowNode, PipeFlow

-

Method generated by attrs for class PipeFitting.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

add_segment

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_flow

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

C([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Fvec

1

Mf([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

P([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Q([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

T([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dP_f([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dP_p([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dP_tot([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

reynoldsNumber([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

segments

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

sum_of_flows([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

x

y

z

D

v

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • x (float)

  • -
  • y (float)

  • -
  • z (float)

  • -
  • material (Slot__7081d854a38b4a7e)

  • -
  • D (float)

  • -
  • v (float)

  • -
  • Kfitting (float)

  • -
-
-
-
-
-property Fvec
-

1

-
-
Type:
-

returns the fluidized vector for 1D CFD for continuity

-
-
Type:
-

0, and momentum

-
-
-
- -
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.pipes.PipeFlow.html b/docs/_build/html/_autosummary/engforge.eng.pipes.PipeFlow.html deleted file mode 100644 index 0fe6751..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.pipes.PipeFlow.html +++ /dev/null @@ -1,1580 +0,0 @@ - - - - - - - engforge.eng.pipes.PipeFlow — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.pipes.PipeFlow

-
-
-class PipeFlow(*, name=NOTHING, material=NOTHING, parent=None, D, v=0)[source]
-

Bases: Component

-

Method generated by attrs for class PipeFlow.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_flow

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

C([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Fvec

1

Mf([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

P([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Q([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

T([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dP_f

The loss of pressure in the pipe due to pressure

dP_p

The loss of pressure in the pipe due to potential

dP_tot

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

density([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

enthalpy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

reynoldsNumber([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

viscosity([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

D

v

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • material (Slot__7081d854a38b4a7e)

  • -
  • parent (Component | System)

  • -
  • D (float)

  • -
  • v (float)

  • -
-
-
-
-
-property Fvec
-

1

-
-
Type:
-

returns the fluidized vector for 1D CFD for continuity

-
-
Type:
-

0, and momentum

-
-
-
- -
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dP_f
-

The loss of pressure in the pipe due to pressure

-
- -
-
-property dP_p
-

The loss of pressure in the pipe due to potential

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.pipes.PipeLog.html b/docs/_build/html/_autosummary/engforge.eng.pipes.PipeLog.html deleted file mode 100644 index 6e71a56..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.pipes.PipeLog.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - - engforge.eng.pipes.PipeLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.pipes.PipeLog

-
-
-class PipeLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.pipes.PipeNode.html b/docs/_build/html/_autosummary/engforge.eng.pipes.PipeNode.html deleted file mode 100644 index de1b6d3..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.pipes.PipeNode.html +++ /dev/null @@ -1,1521 +0,0 @@ - - - - - - - engforge.eng.pipes.PipeNode — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.pipes.PipeNode

-
-
-class PipeNode(*, name=NOTHING, parent=None, x, y, z)[source]
-

Bases: Component

-

Method generated by attrs for class PipeNode.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

add_segment

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

segments

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

sum_of_flows([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

x

y

z

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • x (float)

  • -
  • y (float)

  • -
  • z (float)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.pipes.PipeSystem.html b/docs/_build/html/_autosummary/engforge.eng.pipes.PipeSystem.html deleted file mode 100644 index c49a8f6..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.pipes.PipeSystem.html +++ /dev/null @@ -1,1746 +0,0 @@ - - - - - - - engforge.eng.pipes.PipeSystem — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.pipes.PipeSystem

-
-
-class PipeSystem(*, name=NOTHING, in_node=NOTHING, parent=None, dynamic_input_vars=NOTHING, dynamic_state_vars=NOTHING, dynamic_output_vars=NOTHING)[source]
-

Bases: System

-

Method generated by attrs for class PipeSystem.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

add_to_graph

recursively add node or pipe elements

assemble_solvers

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

clone

returns a clone of this system, often used to iterate the system without affecting the input values at the last convergence step.

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_graph_from_pipe_or_node

Creates a networkx graph from a pipe or node

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

draw

error

Writes to log as a error

eval

Evaluates the system with pre/post execute methodology :type kw: :param kw: kwargs come from sys_kw input in run ect.

execute

Solves the system's system of constraints and integrates transients if any exist

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

make_plots

makes plots and traces of all on this instance, and if a system is subsystems.

mark_all_comps_changed

mark all components as changed, useful for forcing a re-run of the system, or for marking data as saved

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_run_callback

user callback for when run is complete

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

pre_run_callback

user callback for when run is beginning

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

run

the steady state run the solver for the system.

run_internal_systems

runs internal systems with potentially scoped kwargs

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

setup_global_dynamics

recursively creates numeric matricies for the simulation

signals_attributes

Lists all signals attributes for class

sim_matrix

simulate the system over the course of time.

simulate

runs a simulation over the course of time, and returns a dataframe of the results.

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solver

runs the system solver using the current system state and modifying it.

solver_vars

applies the default combo filter, and your keyword arguments to the collect_solver_refs to test the ref / vars creations

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

converged([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dXtdt_ref

a dictionary of state var rates

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nodes

nonlinear

numeric_as_dict

numeric_hash

pipes

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

run_id([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

solved

static_A

static_B

static_C

static_D

static_F

static_K

stored_plots

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

graph

items

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • in_node (Slot__7782db09be534f57)

  • -
  • parent (Component | System)

  • -
  • dynamic_input_vars (list)

  • -
  • dynamic_state_vars (list)

  • -
  • dynamic_output_vars (list)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-add_to_graph(graph, node_or_pipe)[source]
-

recursively add node or pipe elements

-
-
Return type:
-

str

-
-
-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-clone()
-

returns a clone of this system, often used to iterate the system without affecting the input values at the last convergence step.

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_graph_from_pipe_or_node(node_or_pipe)[source]
-

Creates a networkx graph from a pipe or node

-
-
Return type:
-

Graph

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-eval(Xo=None, eval_kw=None, sys_kw=None, cb=None, **kw)
-

Evaluates the system with pre/post execute methodology -:type kw: -:param kw: kwargs come from sys_kw input in run ect. -:type cb: -:param cb: an optional callback taking the system as an argument of the form (self,eval_kw,sys_kw,**kw)

-
-
Parameters:
-
    -
  • eval_kw (dict | None)

  • -
  • sys_kw (dict | None)

  • -
-
-
-
- -
-
-execute(**kw)
-

Solves the system’s system of constraints and integrates transients if any exist

-

Override this function for custom solving functions, and call solver to use default solver functionality.

-
-
Returns:
-

the result of this function is returned from solver()

-
-
-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-make_plots(analysis=None, store_figures=True, pre=None)
-

makes plots and traces of all on this instance, and if a system is -subsystems. Analysis should call make plots however it can be called on a system as well -:type analysis: Analysis -:param analysis: the analysis that has triggered this plot -:param store_figure: a boolean or dict, if neither a dictionary will be created and returend from this function -:returns: the dictionary from store_figures logic

-
-
Parameters:
-
    -
  • analysis (Analysis)

  • -
  • store_figures (bool)

  • -
-
-
-
- -
-
-mark_all_comps_changed(inpt)
-

mark all components as changed, useful for forcing a re-run of the system, or for marking data as saved

-
-
Parameters:
-

inpt (bool)

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_run_callback(**kwargs)
-

user callback for when run is complete

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-pre_run_callback(**kwargs)
-

user callback for when run is beginning

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-run(**kwargs)
-

the steady state run the solver for the system. It will run the system with the input vars and return the system with the results. Dynamics systems will be run so they are in a steady state nearest their initial position.

-
- -
-
-run_internal_systems(sys_kw=None)
-

runs internal systems with potentially scoped kwargs

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-setup_global_dynamics(**kwargs)
-

recursively creates numeric matricies for the simulation

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-sim_matrix(eval_kw=None, sys_kw=None, **kwargs)
-

simulate the system over the course of time. -return a dictionary of dataframes

-
- -
-
-simulate(dt, endtime, X0=None, cb=None, eval_kw=None, sys_kw=None, min_kw=None, run_solver=False, return_system=False, return_data=False, return_all=False, debug_fail=False, **kwargs)
-

runs a simulation over the course of time, and returns a dataframe of the results.

-

A copy of this system is made, and the simulation is run on the copy, so as to not affect the state of the original system.

-

#TODO:

-
-
Return type:
-

DataFrame

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-solver(enter_refresh=True, save_on_exit=True, **kw)
-

runs the system solver using the current system state and modifying it. This is the default solver for the system, and it is recommended to add additional options or methods via the execute method.

-
-
Parameters:
-
    -
  • obj – the objective function to minimize, by default will minimize the sum of the squares of the residuals. Objective function should be a function(system,Xs,Xt) where Xs is the system state and Xt is the system transient state. The objective function will be argmin(X)|(1+custom_objective)*residual_RSS when add_obj is True in kw otherwise argmin(X)|custom_objective with constraints on the system as balances instead of first objective being included.

  • -
  • cons – the constraints to be used in the solver, by default will use the system’s constraints will be enabled when True. If a dictionary is passed the solver will use the dictionary as the constraints in addition to system constraints. These can be individually disabled by key=None in the dictionary.

  • -
  • X0 – the initial guess for the solver, by default will use the current system state. If a dictionary is passed the solver will use the dictionary as the initial guess in addition to the system state.

  • -
  • dXdt – can be 0 to indicate steady-state, or None to not run the transient constraints. Otherwise a partial dictionary of vars for the dynamics rates can be given, those not given will be assumed steady state or 0.

  • -
  • kw – additional options for the solver, such as the solver_option, or the solver method options. Described below

  • -
  • combos – a csv str or list of combos to include, including wildcards. the default means all combos will be run unless ign_combos or only combos alters behavior. The initial selection of combos is made by matching any case with the full name of the combo, or a parial name with a wildcard(s) in the combo name Ignore and only combos will further filter the selection. Wildcards / queries per fnmatch

  • -
  • ign_combos – a list of combo vars to ignore.

  • -
  • only_combos – a list of combo vars to include exclusively.

  • -
  • add_var – a csv str or variables to include, including wildcards. the default means all combos will be run unless ign_combos or only combos alters behavior. The initial selection of combos is made by matching any case with the full name of the combo, or a parial name with a wildcard(s) in the combo name Ignore and only combos will further filter the selection. Wildcards / queries per fnmatch

  • -
  • ign_var – a list of combo vars to ignore.

  • -
  • only_var – a list of combo vars to include exclusively.

  • -
  • add_obj – a flag to add the objective to the system constraints, by default will add the objective to the system constraints. If False the objective will be the only constraint.

  • -
  • only_active – default True, will only look at active variables objectives and constraints

  • -
  • activate – default None, a list of solver vars to activate

  • -
  • deactivate – default None, a list of solver vars to deactivate (if not activated above)

  • -
-
-
-
- -
-
-solver_vars(check_dynamics=True, addable=None, **kwargs)
-

applies the default combo filter, and your keyword arguments to the collect_solver_refs to test the ref / vars creations

-

parses add_vars in kwargs to append to the collected solver vars -:param add_vars: can be a str, a list or a dictionary of variables: solver_instance kwargs. If a str or list the variable will be added with positive only constraints. If a dictionary is chosen, it can have keys as parameters, and itself have a subdictionary with keys: min / max, where each respective value is placed in the constraints list, which may be a callable(sys,prob) or numeric. If nothing is specified the default is min=0,max=None, ie positive only.

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.pipes.Pump.html b/docs/_build/html/_autosummary/engforge.eng.pipes.Pump.html deleted file mode 100644 index d2557b1..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.pipes.Pump.html +++ /dev/null @@ -1,1541 +0,0 @@ - - - - - - - engforge.eng.pipes.Pump — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.pipes.Pump

-
-
-class Pump(*, name=NOTHING, parent=None, max_flow, max_pressure)[source]
-

Bases: Component

-

Simulates a pump with power input, max flow, and max pressure by assuming a flow characteristic

-

Method generated by attrs for class Pump.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

dPressure

The pressure the pump generates

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

power

The power used considering in watts

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

design_flow_curve

a tuple output of flow vector, and pressure vector

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

max_flow

max_pressure

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • max_flow (float)

  • -
  • max_pressure (float)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-dPressure(current_flow)[source]
-

The pressure the pump generates

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-property design_flow_curve
-

a tuple output of flow vector, and pressure vector

-
-
Type:
-

returns

-
-
-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-power(current_flow)[source]
-

The power used considering in watts

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.pipes.html b/docs/_build/html/_autosummary/engforge.eng.pipes.html deleted file mode 100644 index 60d8862..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.pipes.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - engforge.eng.pipes — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.pipes

-

We’ll use the QP formulation to develop a fluid analysis system for fluids -start with single phase and move to others

-
    -
  1. Pumps Power = C x Q x P

  2. -
  3. Compressor = C x (QP) x (PR^C2 - 1)

  4. -
  5. Pipes = dP = C x fXL/D x V^2 / 2g

  6. -
  7. Pipe Fittings / Valves = dP = C x V^2 (fXL/D +K) | K is a constant, for valves it can be interpolated between closed and opened

  8. -
  9. Splitters & Joins: Handle fluid mixing

  10. -
  11. Phase Separation (This one is gonna be hard)

  12. -
  13. Heat Exchanger dP = f(V,T) - phase change issues

  14. -
  15. Filtration dP = k x Vxc x (Afrontal/Asurface) “linear”

  16. -
-

Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

FlowInput

Method generated by attrs for class FlowInput.

FlowNode

Base For Boundary Condition Nodes of

Pipe

Method generated by attrs for class Pipe.

PipeFitting

Method generated by attrs for class PipeFitting.

PipeFlow

Method generated by attrs for class PipeFlow.

PipeLog

Initialize a filter.

PipeNode

Method generated by attrs for class PipeNode.

PipeSystem

Method generated by attrs for class PipeSystem.

Pump

Simulates a pump with power input, max flow, and max pressure by assuming a flow characteristic

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.prediction.PredictionMixin.html b/docs/_build/html/_autosummary/engforge.eng.prediction.PredictionMixin.html deleted file mode 100644 index 862fe2d..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.prediction.PredictionMixin.html +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - engforge.eng.prediction.PredictionMixin — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.prediction.PredictionMixin

-
-
-class PredictionMixin[source]
-

Bases: object

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_prediction_record

adds a record to the prediction records, and calcultes the average and variance of the data :type record: :param record: a dict of the record :type extra_add: :param extra_add: if true, the record is added to the prediction records even if the data is inbounds :returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

check_and_retrain

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

check_out_of_domain

checks if the record is in bounds of the current data

observe_and_predict

uses the existing models to predict the row and measure the error

prediction_dataframe

prediction_weights

score_data

scores a dataframe

train_compare

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

training_callback

override to provide a callback when training is complete, such as saving the models

-

Attributes

- - - - - - - - - - - - - - - - - - -

basis

prediction_goal_error

prediction_records

train_window

trained

-
-
-add_prediction_record(record, extra_add=True, mult_sigma=1, target_items=1000)[source]
-

adds a record to the prediction records, and calcultes the average and variance of the data -:type record: -:param record: a dict of the record -:type extra_add: -:param extra_add: if true, the record is added to the prediction records even if the data is inbounds -:returns: a boolean indicating if the record was out of bounds of current data (therefor should be added)

-
- -
-
-check_and_retrain(records, min_rec=None)[source]
-

Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)

-
- -
-
-check_out_of_domain(record, extra_margin=1, target_items=1000)[source]
-

checks if the record is in bounds of the current data

-
- -
-
-observe_and_predict(row)[source]
-

uses the existing models to predict the row and measure the error

-
- -
-
-score_data(df)[source]
-

scores a dataframe

-
- -
-
-train_compare(df, test_frac=2, train_full=False, min_rec=250)[source]
-

Use the dataframe to train the models, and compare the results to the current models using train_frac to divide total samples into training and testing sets, unless train_full is set.

-
-
Parameters:
-
    -
  • df – dataframe to train with

  • -
  • test_frac – N/train_frac will be size of the training window

  • -
  • train_full – boolean to use full training data

  • -
-
-
Returns:
-

trained models

-
-
-
- -
-
-training_callback(models)[source]
-

override to provide a callback when training is complete, such as saving the models

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.prediction.html b/docs/_build/html/_autosummary/engforge.eng.prediction.html deleted file mode 100644 index 15d456e..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.prediction.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.eng.prediction — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.ANSI_4130.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.ANSI_4130.html deleted file mode 100644 index 9f9a454..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.ANSI_4130.html +++ /dev/null @@ -1,820 +0,0 @@ - - - - - - - engforge.eng.solid_materials.ANSI_4130 — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.ANSI_4130

-
-
-class ANSI_4130(*, name='steel 4130', color=NOTHING, in_shear_modulus=None, hardness=10, izod=100, factor_of_saftey=1.5, density=7872.0, elastic_modulus=205000000000.0, yield_strength=460000000.0, tensile_strength_ultimate=560000000.0, poissons_ratio=0.28, melting_point=1705, maxium_service_temp=1143, thermal_conductivity=42.7, specific_heat=477, thermal_expansion=1.12e-05, electrical_resistitivity=2.23e-07, cost_per_kg=2.92)[source]
-

Bases: SolidMaterial

-

Method generated by attrs for class ANSI_4130.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

von_mises_stress_max

Return arrays with the results of pyfunc broadcast (vectorized) over args and kwargs not in excluded.

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E

G

allowable_stress

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

color

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nu

numeric_as_dict

numeric_hash

rho

shear_modulus

Shear Modulus

slack_webhook_url

ultimate_stress

unique_hash

unique_id

yield_stress

name

density

elastic_modulus

yield_strength

tensile_strength_ultimate

poissons_ratio

melting_point

maxium_service_temp

thermal_conductivity

specific_heat

thermal_expansion

electrical_resistitivity

cost_per_kg

in_shear_modulus

hardness

izod

factor_of_saftey

-
-
Parameters:
-
    -
  • name (str)

  • -
  • color (float)

  • -
  • in_shear_modulus (float)

  • -
  • hardness (float)

  • -
  • izod (float)

  • -
  • factor_of_saftey (float)

  • -
  • density (float)

  • -
  • elastic_modulus (float)

  • -
  • yield_strength (float)

  • -
  • tensile_strength_ultimate (float)

  • -
  • poissons_ratio (float)

  • -
  • melting_point (float)

  • -
  • maxium_service_temp (float)

  • -
  • thermal_conductivity (float)

  • -
  • specific_heat (float)

  • -
  • thermal_expansion (float)

  • -
  • electrical_resistitivity (float)

  • -
  • cost_per_kg (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-property shear_modulus: float
-

Shear Modulus

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-von_mises_stress_max(**kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.ANSI_4340.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.ANSI_4340.html deleted file mode 100644 index ac86c85..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.ANSI_4340.html +++ /dev/null @@ -1,820 +0,0 @@ - - - - - - - engforge.eng.solid_materials.ANSI_4340 — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.ANSI_4340

-
-
-class ANSI_4340(*, name='steel 4340', color=NOTHING, in_shear_modulus=None, hardness=10, izod=100, factor_of_saftey=1.5, density=7872.0, elastic_modulus=192000000000.0, yield_strength=470000000.0, tensile_strength_ultimate=745000000.0, poissons_ratio=0.28, melting_point=1700, maxium_service_temp=1103, thermal_conductivity=44.5, specific_heat=475, thermal_expansion=1.37e-05, electrical_resistitivity=2.48e-07, cost_per_kg=2.23)[source]
-

Bases: SolidMaterial

-

Method generated by attrs for class ANSI_4340.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

von_mises_stress_max

Return arrays with the results of pyfunc broadcast (vectorized) over args and kwargs not in excluded.

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E

G

allowable_stress

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

color

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nu

numeric_as_dict

numeric_hash

rho

shear_modulus

Shear Modulus

slack_webhook_url

ultimate_stress

unique_hash

unique_id

yield_stress

name

density

elastic_modulus

yield_strength

tensile_strength_ultimate

poissons_ratio

melting_point

maxium_service_temp

thermal_conductivity

specific_heat

thermal_expansion

electrical_resistitivity

cost_per_kg

in_shear_modulus

hardness

izod

factor_of_saftey

-
-
Parameters:
-
    -
  • name (str)

  • -
  • color (float)

  • -
  • in_shear_modulus (float)

  • -
  • hardness (float)

  • -
  • izod (float)

  • -
  • factor_of_saftey (float)

  • -
  • density (float)

  • -
  • elastic_modulus (float)

  • -
  • yield_strength (float)

  • -
  • tensile_strength_ultimate (float)

  • -
  • poissons_ratio (float)

  • -
  • melting_point (float)

  • -
  • maxium_service_temp (float)

  • -
  • thermal_conductivity (float)

  • -
  • specific_heat (float)

  • -
  • thermal_expansion (float)

  • -
  • electrical_resistitivity (float)

  • -
  • cost_per_kg (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-property shear_modulus: float
-

Shear Modulus

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-von_mises_stress_max(**kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.Aluminum.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.Aluminum.html deleted file mode 100644 index 381d1c0..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.Aluminum.html +++ /dev/null @@ -1,820 +0,0 @@ - - - - - - - engforge.eng.solid_materials.Aluminum — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.Aluminum

-
-
-class Aluminum(*, name='aluminum generic', color=NOTHING, in_shear_modulus=None, hardness=10, izod=100, factor_of_saftey=1.5, density=2680.0, elastic_modulus=70300000000.0, yield_strength=240000000.0, tensile_strength_ultimate=290000000.0, poissons_ratio=0.33, melting_point=880, maxium_service_temp=616, thermal_conductivity=138, specific_heat=880, thermal_expansion=2.21e-05, electrical_resistitivity=4.99e-07, cost_per_kg=1.9)[source]
-

Bases: SolidMaterial

-

Method generated by attrs for class Aluminum.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

von_mises_stress_max

Return arrays with the results of pyfunc broadcast (vectorized) over args and kwargs not in excluded.

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E

G

allowable_stress

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

color

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nu

numeric_as_dict

numeric_hash

rho

shear_modulus

Shear Modulus

slack_webhook_url

ultimate_stress

unique_hash

unique_id

yield_stress

name

density

elastic_modulus

yield_strength

tensile_strength_ultimate

poissons_ratio

melting_point

maxium_service_temp

thermal_conductivity

specific_heat

thermal_expansion

electrical_resistitivity

cost_per_kg

in_shear_modulus

hardness

izod

factor_of_saftey

-
-
Parameters:
-
    -
  • name (str)

  • -
  • color (float)

  • -
  • in_shear_modulus (float)

  • -
  • hardness (float)

  • -
  • izod (float)

  • -
  • factor_of_saftey (float)

  • -
  • density (float)

  • -
  • elastic_modulus (float)

  • -
  • yield_strength (float)

  • -
  • tensile_strength_ultimate (float)

  • -
  • poissons_ratio (float)

  • -
  • melting_point (float)

  • -
  • maxium_service_temp (float)

  • -
  • thermal_conductivity (float)

  • -
  • specific_heat (float)

  • -
  • thermal_expansion (float)

  • -
  • electrical_resistitivity (float)

  • -
  • cost_per_kg (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-property shear_modulus: float
-

Shear Modulus

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-von_mises_stress_max(**kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.CarbonFiber.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.CarbonFiber.html deleted file mode 100644 index 6bae264..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.CarbonFiber.html +++ /dev/null @@ -1,820 +0,0 @@ - - - - - - - engforge.eng.solid_materials.CarbonFiber — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.CarbonFiber

-
-
-class CarbonFiber(*, name='carbon fiber', color=NOTHING, in_shear_modulus=None, hardness=10, izod=100, factor_of_saftey=1.5, density=1600.0, elastic_modulus=140000000000.0, yield_strength=686000000.0, tensile_strength_ultimate=919000000.0, poissons_ratio=0.33, melting_point=573, maxium_service_temp=423, thermal_conductivity=250, specific_heat=1100, thermal_expansion=1.41e-05, electrical_resistitivity=10000, cost_per_kg=1.9)[source]
-

Bases: SolidMaterial

-

Method generated by attrs for class CarbonFiber.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

von_mises_stress_max

Return arrays with the results of pyfunc broadcast (vectorized) over args and kwargs not in excluded.

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E

G

allowable_stress

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

color

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nu

numeric_as_dict

numeric_hash

rho

shear_modulus

Shear Modulus

slack_webhook_url

ultimate_stress

unique_hash

unique_id

yield_stress

name

density

elastic_modulus

yield_strength

tensile_strength_ultimate

poissons_ratio

melting_point

maxium_service_temp

thermal_conductivity

specific_heat

thermal_expansion

electrical_resistitivity

cost_per_kg

in_shear_modulus

hardness

izod

factor_of_saftey

-
-
Parameters:
-
    -
  • name (str)

  • -
  • color (float)

  • -
  • in_shear_modulus (float)

  • -
  • hardness (float)

  • -
  • izod (float)

  • -
  • factor_of_saftey (float)

  • -
  • density (float)

  • -
  • elastic_modulus (float)

  • -
  • yield_strength (float)

  • -
  • tensile_strength_ultimate (float)

  • -
  • poissons_ratio (float)

  • -
  • melting_point (float)

  • -
  • maxium_service_temp (float)

  • -
  • thermal_conductivity (float)

  • -
  • specific_heat (float)

  • -
  • thermal_expansion (float)

  • -
  • electrical_resistitivity (float)

  • -
  • cost_per_kg (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-property shear_modulus: float
-

Shear Modulus

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-von_mises_stress_max(**kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.Concrete.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.Concrete.html deleted file mode 100644 index 3b4f44e..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.Concrete.html +++ /dev/null @@ -1,820 +0,0 @@ - - - - - - - engforge.eng.solid_materials.Concrete — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.Concrete

-
-
-class Concrete(*, name='concrete', color=NOTHING, in_shear_modulus=None, hardness=10, izod=100, factor_of_saftey=1.5, density=2000.0, elastic_modulus=2920000000.0, yield_strength=57900000.0, tensile_strength_ultimate=910000.0, poissons_ratio=0.26, melting_point=3273, maxium_service_temp=3273, thermal_conductivity=0.5, specific_heat=736, thermal_expansion=1.641e-05, electrical_resistitivity=1000000.0, cost_per_kg=0.09544)[source]
-

Bases: SolidMaterial

-

Method generated by attrs for class Concrete.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

von_mises_stress_max

Return arrays with the results of pyfunc broadcast (vectorized) over args and kwargs not in excluded.

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E

G

allowable_stress

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

color

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nu

numeric_as_dict

numeric_hash

rho

shear_modulus

Shear Modulus

slack_webhook_url

ultimate_stress

unique_hash

unique_id

yield_stress

name

density

elastic_modulus

yield_strength

tensile_strength_ultimate

poissons_ratio

melting_point

maxium_service_temp

thermal_conductivity

specific_heat

thermal_expansion

electrical_resistitivity

cost_per_kg

in_shear_modulus

hardness

izod

factor_of_saftey

-
-
Parameters:
-
    -
  • name (str)

  • -
  • color (float)

  • -
  • in_shear_modulus (float)

  • -
  • hardness (float)

  • -
  • izod (float)

  • -
  • factor_of_saftey (float)

  • -
  • density (float)

  • -
  • elastic_modulus (float)

  • -
  • yield_strength (float)

  • -
  • tensile_strength_ultimate (float)

  • -
  • poissons_ratio (float)

  • -
  • melting_point (float)

  • -
  • maxium_service_temp (float)

  • -
  • thermal_conductivity (float)

  • -
  • specific_heat (float)

  • -
  • thermal_expansion (float)

  • -
  • electrical_resistitivity (float)

  • -
  • cost_per_kg (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-property shear_modulus: float
-

Shear Modulus

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-von_mises_stress_max(**kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.DrySoil.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.DrySoil.html deleted file mode 100644 index 141c805..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.DrySoil.html +++ /dev/null @@ -1,820 +0,0 @@ - - - - - - - engforge.eng.solid_materials.DrySoil — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.DrySoil

-
-
-class DrySoil(*, name='dry soil', color=NOTHING, in_shear_modulus=None, hardness=10, izod=100, factor_of_saftey=1.5, density=1600.0, elastic_modulus=70300000000.0, yield_strength=0.0, tensile_strength_ultimate=0.0, poissons_ratio=0.33, melting_point=1823, maxium_service_temp=1723, thermal_conductivity=0.25, specific_heat=800, thermal_expansion=1.641e-05, electrical_resistitivity=1000000.0, cost_per_kg=0.04478)[source]
-

Bases: SolidMaterial

-

Method generated by attrs for class DrySoil.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

von_mises_stress_max

Return arrays with the results of pyfunc broadcast (vectorized) over args and kwargs not in excluded.

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E

G

allowable_stress

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

color

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nu

numeric_as_dict

numeric_hash

rho

shear_modulus

Shear Modulus

slack_webhook_url

ultimate_stress

unique_hash

unique_id

yield_stress

name

density

elastic_modulus

yield_strength

tensile_strength_ultimate

poissons_ratio

melting_point

maxium_service_temp

thermal_conductivity

specific_heat

thermal_expansion

electrical_resistitivity

cost_per_kg

in_shear_modulus

hardness

izod

factor_of_saftey

-
-
Parameters:
-
    -
  • name (str)

  • -
  • color (float)

  • -
  • in_shear_modulus (float)

  • -
  • hardness (float)

  • -
  • izod (float)

  • -
  • factor_of_saftey (float)

  • -
  • density (float)

  • -
  • elastic_modulus (float)

  • -
  • yield_strength (float)

  • -
  • tensile_strength_ultimate (float)

  • -
  • poissons_ratio (float)

  • -
  • melting_point (float)

  • -
  • maxium_service_temp (float)

  • -
  • thermal_conductivity (float)

  • -
  • specific_heat (float)

  • -
  • thermal_expansion (float)

  • -
  • electrical_resistitivity (float)

  • -
  • cost_per_kg (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-property shear_modulus: float
-

Shear Modulus

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-von_mises_stress_max(**kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.Rock.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.Rock.html deleted file mode 100644 index a634765..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.Rock.html +++ /dev/null @@ -1,820 +0,0 @@ - - - - - - - engforge.eng.solid_materials.Rock — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.Rock

-
-
-class Rock(*, name='wet soil', color=NOTHING, in_shear_modulus=None, hardness=10, izod=100, factor_of_saftey=1.5, density=2600.0, elastic_modulus=67000000000.0, yield_strength=13000000.0, tensile_strength_ultimate=13000000.0, poissons_ratio=0.26, melting_point=3000, maxium_service_temp=3000, thermal_conductivity=1.0, specific_heat=2000, thermal_expansion=1.641e-05, electrical_resistitivity=1000000.0, cost_per_kg=0.05044)[source]
-

Bases: SolidMaterial

-

Method generated by attrs for class Rock.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

von_mises_stress_max

Return arrays with the results of pyfunc broadcast (vectorized) over args and kwargs not in excluded.

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E

G

allowable_stress

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

color

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nu

numeric_as_dict

numeric_hash

rho

shear_modulus

Shear Modulus

slack_webhook_url

ultimate_stress

unique_hash

unique_id

yield_stress

name

density

elastic_modulus

yield_strength

tensile_strength_ultimate

poissons_ratio

melting_point

maxium_service_temp

thermal_conductivity

specific_heat

thermal_expansion

electrical_resistitivity

cost_per_kg

in_shear_modulus

hardness

izod

factor_of_saftey

-
-
Parameters:
-
    -
  • name (str)

  • -
  • color (float)

  • -
  • in_shear_modulus (float)

  • -
  • hardness (float)

  • -
  • izod (float)

  • -
  • factor_of_saftey (float)

  • -
  • density (float)

  • -
  • elastic_modulus (float)

  • -
  • yield_strength (float)

  • -
  • tensile_strength_ultimate (float)

  • -
  • poissons_ratio (float)

  • -
  • melting_point (float)

  • -
  • maxium_service_temp (float)

  • -
  • thermal_conductivity (float)

  • -
  • specific_heat (float)

  • -
  • thermal_expansion (float)

  • -
  • electrical_resistitivity (float)

  • -
  • cost_per_kg (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-property shear_modulus: float
-

Shear Modulus

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-von_mises_stress_max(**kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.Rubber.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.Rubber.html deleted file mode 100644 index 3b07a10..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.Rubber.html +++ /dev/null @@ -1,820 +0,0 @@ - - - - - - - engforge.eng.solid_materials.Rubber — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.Rubber

-
-
-class Rubber(*, name='rubber', color=NOTHING, in_shear_modulus=None, hardness=10, izod=100, factor_of_saftey=1.5, density=1100.0, elastic_modulus=100000000.0, yield_strength=248000.0, tensile_strength_ultimate=500000.0, poissons_ratio=0.33, melting_point=873, maxium_service_temp=573, thermal_conductivity=0.108, specific_heat=2005, thermal_expansion=0.0001, electrical_resistitivity=10000000000000.0, cost_per_kg=0.04)[source]
-

Bases: SolidMaterial

-

Method generated by attrs for class Rubber.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

von_mises_stress_max

Return arrays with the results of pyfunc broadcast (vectorized) over args and kwargs not in excluded.

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E

G

allowable_stress

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

color

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nu

numeric_as_dict

numeric_hash

rho

shear_modulus

Shear Modulus

slack_webhook_url

ultimate_stress

unique_hash

unique_id

yield_stress

name

density

elastic_modulus

yield_strength

tensile_strength_ultimate

poissons_ratio

melting_point

maxium_service_temp

thermal_conductivity

specific_heat

thermal_expansion

electrical_resistitivity

cost_per_kg

in_shear_modulus

hardness

izod

factor_of_saftey

-
-
Parameters:
-
    -
  • name (str)

  • -
  • color (float)

  • -
  • in_shear_modulus (float)

  • -
  • hardness (float)

  • -
  • izod (float)

  • -
  • factor_of_saftey (float)

  • -
  • density (float)

  • -
  • elastic_modulus (float)

  • -
  • yield_strength (float)

  • -
  • tensile_strength_ultimate (float)

  • -
  • poissons_ratio (float)

  • -
  • melting_point (float)

  • -
  • maxium_service_temp (float)

  • -
  • thermal_conductivity (float)

  • -
  • specific_heat (float)

  • -
  • thermal_expansion (float)

  • -
  • electrical_resistitivity (float)

  • -
  • cost_per_kg (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-property shear_modulus: float
-

Shear Modulus

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-von_mises_stress_max(**kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.SS_316.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.SS_316.html deleted file mode 100644 index 2f9f324..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.SS_316.html +++ /dev/null @@ -1,820 +0,0 @@ - - - - - - - engforge.eng.solid_materials.SS_316 — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.SS_316

-
-
-class SS_316(*, name='stainless steel 316', color=NOTHING, in_shear_modulus=None, hardness=10, izod=100, factor_of_saftey=1.5, density=8000.0, elastic_modulus=193000000000.0, yield_strength=240000000.0, tensile_strength_ultimate=550000000.0, poissons_ratio=0.3, melting_point=1643, maxium_service_temp=1143, thermal_conductivity=16.3, specific_heat=500, thermal_expansion=1.6e-05, electrical_resistitivity=7.4e-07, cost_per_kg=3.26)[source]
-

Bases: SolidMaterial

-

Method generated by attrs for class SS_316.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

von_mises_stress_max

Return arrays with the results of pyfunc broadcast (vectorized) over args and kwargs not in excluded.

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E

G

allowable_stress

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

color

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nu

numeric_as_dict

numeric_hash

rho

shear_modulus

Shear Modulus

slack_webhook_url

ultimate_stress

unique_hash

unique_id

yield_stress

name

density

elastic_modulus

yield_strength

tensile_strength_ultimate

poissons_ratio

melting_point

maxium_service_temp

thermal_conductivity

specific_heat

thermal_expansion

electrical_resistitivity

cost_per_kg

in_shear_modulus

hardness

izod

factor_of_saftey

-
-
Parameters:
-
    -
  • name (str)

  • -
  • color (float)

  • -
  • in_shear_modulus (float)

  • -
  • hardness (float)

  • -
  • izod (float)

  • -
  • factor_of_saftey (float)

  • -
  • density (float)

  • -
  • elastic_modulus (float)

  • -
  • yield_strength (float)

  • -
  • tensile_strength_ultimate (float)

  • -
  • poissons_ratio (float)

  • -
  • melting_point (float)

  • -
  • maxium_service_temp (float)

  • -
  • thermal_conductivity (float)

  • -
  • specific_heat (float)

  • -
  • thermal_expansion (float)

  • -
  • electrical_resistitivity (float)

  • -
  • cost_per_kg (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-property shear_modulus: float
-

Shear Modulus

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-von_mises_stress_max(**kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.SolidMaterial.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.SolidMaterial.html deleted file mode 100644 index 0b7609e..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.SolidMaterial.html +++ /dev/null @@ -1,821 +0,0 @@ - - - - - - - engforge.eng.solid_materials.SolidMaterial — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.SolidMaterial

-
-
-class SolidMaterial(*, name='solid material', color=NOTHING, density=1.0, elastic_modulus=100000000.0, in_shear_modulus=None, yield_strength=1000000.0, tensile_strength_ultimate=2000000.0, hardness=10, izod=100, poissons_ratio=0.3, melting_point=1273, maxium_service_temp=773, thermal_conductivity=10, specific_heat=1000, thermal_expansion=1e-05, electrical_resistitivity=1e-08, cost_per_kg=1.0, factor_of_saftey=1.5)[source]
-

Bases: Material, Material, Configuration

-

A class to hold physical properties of solid structural materials and act as both a section property material and a pynite material

-

Method generated by attrs for class SolidMaterial.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

von_mises_stress_max

Return arrays with the results of pyfunc broadcast (vectorized) over args and kwargs not in excluded.

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E

G

allowable_stress

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

color

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nu

numeric_as_dict

numeric_hash

rho

shear_modulus

Shear Modulus

slack_webhook_url

ultimate_stress

unique_hash

unique_id

yield_stress

name

density

elastic_modulus

in_shear_modulus

yield_strength

tensile_strength_ultimate

hardness

izod

poissons_ratio

melting_point

maxium_service_temp

thermal_conductivity

specific_heat

thermal_expansion

electrical_resistitivity

cost_per_kg

factor_of_saftey

-
-
Parameters:
-
    -
  • name (str)

  • -
  • color (float)

  • -
  • density (float)

  • -
  • elastic_modulus (float)

  • -
  • in_shear_modulus (float)

  • -
  • yield_strength (float)

  • -
  • tensile_strength_ultimate (float)

  • -
  • hardness (float)

  • -
  • izod (float)

  • -
  • poissons_ratio (float)

  • -
  • melting_point (float)

  • -
  • maxium_service_temp (float)

  • -
  • thermal_conductivity (float)

  • -
  • specific_heat (float)

  • -
  • thermal_expansion (float)

  • -
  • electrical_resistitivity (float)

  • -
  • cost_per_kg (float)

  • -
  • factor_of_saftey (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()[source]
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-property shear_modulus: float
-

Shear Modulus

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-von_mises_stress_max(**kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.WetSoil.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.WetSoil.html deleted file mode 100644 index 57239ec..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.WetSoil.html +++ /dev/null @@ -1,820 +0,0 @@ - - - - - - - engforge.eng.solid_materials.WetSoil — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.WetSoil

-
-
-class WetSoil(*, name='wet soil', color=NOTHING, in_shear_modulus=None, hardness=10, izod=100, factor_of_saftey=1.5, density=2080.0, elastic_modulus=70300000000.0, yield_strength=0.0, tensile_strength_ultimate=0.0, poissons_ratio=0.33, melting_point=1823, maxium_service_temp=1723, thermal_conductivity=2.75, specific_heat=1632, thermal_expansion=1.641e-05, electrical_resistitivity=940.0, cost_per_kg=0.03444)[source]
-

Bases: SolidMaterial

-

Method generated by attrs for class WetSoil.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

plot_attributes

Lists all plot attributes for class

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

validate_class

A customizeable validator at the end of class creation in forge

von_mises_stress_max

Return arrays with the results of pyfunc broadcast (vectorized) over args and kwargs not in excluded.

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

E

G

allowable_stress

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

color

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

log_silo

logger

nu

numeric_as_dict

numeric_hash

rho

shear_modulus

Shear Modulus

slack_webhook_url

ultimate_stress

unique_hash

unique_id

yield_stress

name

density

elastic_modulus

yield_strength

tensile_strength_ultimate

poissons_ratio

melting_point

maxium_service_temp

thermal_conductivity

specific_heat

thermal_expansion

electrical_resistitivity

cost_per_kg

in_shear_modulus

hardness

izod

factor_of_saftey

-
-
Parameters:
-
    -
  • name (str)

  • -
  • color (float)

  • -
  • in_shear_modulus (float)

  • -
  • hardness (float)

  • -
  • izod (float)

  • -
  • factor_of_saftey (float)

  • -
  • density (float)

  • -
  • elastic_modulus (float)

  • -
  • yield_strength (float)

  • -
  • tensile_strength_ultimate (float)

  • -
  • poissons_ratio (float)

  • -
  • melting_point (float)

  • -
  • maxium_service_temp (float)

  • -
  • thermal_conductivity (float)

  • -
  • specific_heat (float)

  • -
  • thermal_expansion (float)

  • -
  • electrical_resistitivity (float)

  • -
  • cost_per_kg (float)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-property shear_modulus: float
-

Shear Modulus

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-von_mises_stress_max(**kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.html deleted file mode 100644 index c06f77a..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.html +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - - engforge.eng.solid_materials — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials

-

Functions

- - - - - - - - - -

ih

ignore hash

random_color

-

Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ANSI_4130

Method generated by attrs for class ANSI_4130.

ANSI_4340

Method generated by attrs for class ANSI_4340.

Aluminum

Method generated by attrs for class Aluminum.

CarbonFiber

Method generated by attrs for class CarbonFiber.

Concrete

Method generated by attrs for class Concrete.

DrySoil

Method generated by attrs for class DrySoil.

Rock

Method generated by attrs for class Rock.

Rubber

Method generated by attrs for class Rubber.

SS_316

Method generated by attrs for class SS_316.

SolidMaterial

A class to hold physical properties of solid structural materials and act as both a section property material and a pynite material

WetSoil

Method generated by attrs for class WetSoil.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.ih.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.ih.html deleted file mode 100644 index 195360a..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.ih.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - engforge.eng.solid_materials.ih — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.ih

-
-
-ih(val)[source]
-

ignore hash

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.solid_materials.random_color.html b/docs/_build/html/_autosummary/engforge.eng.solid_materials.random_color.html deleted file mode 100644 index fc49670..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.solid_materials.random_color.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - engforge.eng.solid_materials.random_color — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.solid_materials.random_color

-
-
-random_color()[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.structure_beams.Beam.html b/docs/_build/html/_autosummary/engforge.eng.structure_beams.Beam.html deleted file mode 100644 index bdc054a..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.structure_beams.Beam.html +++ /dev/null @@ -1,2072 +0,0 @@ - - - - - - - engforge.eng.structure_beams.Beam — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.structure_beams.Beam

-
-
-class Beam(*, name, parent=None, cost_per_item=nan, structure, material, section, in_Iy=None, in_Ix=None, in_J=None, in_A=None, in_Ixy=0.0, min_mesh_size=0.01, analysis_intervals=3)[source]
-

Bases: Component, CostModel

-

Beam is a wrapper for emergent useful properties of the structure

-

Method generated by attrs for class Beam.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

all_categories

apply_distributed_load

add forces in global vector

apply_gravity_force

apply_gravity_force_distribution

apply_local_distributed_load

add forces in global vector

apply_local_pt_load

add a force in a global orientation

apply_pt_load

add a force in a global orientation

calculate_item_cost

override this with a parametric model related to this systems attributes and properties

calculate_stress

takes force input and runs stress calculation as a fraction of material properties, see ShapelySection.calculate_stress() for more details

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

class_cost_properties

returns cost_property objects from this class & subclasses

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

cost_categories_at_term

costs_at_term

returns a dictionary of all costs at term i, with zero if the mode function returns False at that term

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

custom_cost

Takes class costs set, and creates a copy of the class costs, then applies the cost numeric or CostMethod in the same way but only for that instance of

debug

Writes at a low level to the log file.

default_cost

Provide a default cost for Slot items that are not CostModel's.

determine_nearest_stationary_state

determine the nearest stationary state

dict_itemized_costs

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

estimate_stress

uses the best available method to determine max stress in the beam, for ShapelySections this is done through a learning process, for other sections it is done through a simple calculation aimed at providing a conservative estimate

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_forces_at

outputs pynite results in section_properties.calculate_stress() input

get_stress_at

takes force input and runs stress calculation as a fraction of material properties

get_system_input_refs

Get the references to system input based on the specified criteria.

get_valid_force_choices

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

max_von_mises

The worst of the worst cases, after adjusting the beem orientation for best loading

max_von_mises_by_case

Gathers max vonmises stress info per case

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

reset_cls_costs

section_results

section_stresses

set_attr

set_default_costs

set default costs if no costs are set

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

show_mesh

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

sub_costs

gets items from CostModel's defined in a Slot attribute or in a slot default, tolerrant to nan's in cost definitions

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

sum_costs

sums costs of cost_property's in this item that are present at term=0, and by category if define as input

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dflt_costs

updates internal default slot costs if the current component doesn't exist or isn't a cost model, this is really a component method but we will use it never the less.

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_section

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

A([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ao

outside area, over ride for hallow sections

CG_RELATIVE_INERTIA

the mass inertia tensor in global frame

E([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Fg

force of gravity

G([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

GLOBAL_INERTIA

Returns the rotated inertia matrix with structure relative parallal axis contribution

INERTIA

the mass inertia tensor in global structure frame

ITensor

Imx([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Imxy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Imy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Imz([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ix([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ixy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Iy([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Iz([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Izo([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

J([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Jm([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

L([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

LOCAL_INERTIA

the mass inertia tensor in local frame

L_vec

P1

P2

ReverseRotationMatrix

RotationMatrix

Ut_ref

alias for input values

Vol([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Vol_outside([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

X1([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

X2([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Xcg([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Xt_ref

alias for state values

Y1([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Y2([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ycg([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Yt_ref

alias for output values

Z1([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Z2([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Zcg([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

centroid2d

classname

Shorthand for the classname

cog

combine_cost([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

cost([fget, fset, fdel, doc])

A thin wrapper over system_property that will be accounted by Economics Components and apply term & categorization

cost_categories

returns itemized costs grouped by category

cost_properties

returns the current values of the current properties

current_combo([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

fail_factor_estimate([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

filename

A nice to have, good to override

future_costs([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

item_cost([fget, fset, fdel, doc])

A thin wrapper over system_property that will be accounted by Economics Components and apply term & categorization

itemized_costs([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

last_context

get the last context run, or the parent's

length([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

log_fmt

log_level

log_on

log_silo

logger

mass([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

max_axial([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

max_deflection_x([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

max_deflection_y([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

max_moment_y([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

max_moment_z([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

max_shear_y([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

max_shear_z([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

max_stress_estimate([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

max_torsion([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

member

min_axial([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

min_deflection_x([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

min_deflection_y([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

min_moment_y([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

min_moment_z([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

min_shear_y([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

min_shear_z([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

min_stress_xy

min_torsion([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

n1

n2

n_vec

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

section_mass([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

sub_items_cost([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

structure

name

material

section

in_Iy

in_Ix

in_J

in_A

in_Ixy

min_mesh_size

analysis_intervals

parent

cost_per_item

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • cost_per_item (float)

  • -
  • structure (Structure)

  • -
  • material (SolidMaterial)

  • -
  • section (Profile2D)

  • -
  • in_Iy (float)

  • -
  • in_Ix (float)

  • -
  • in_J (float)

  • -
  • in_A (float)

  • -
  • in_Ixy (float)

  • -
  • min_mesh_size (float)

  • -
  • analysis_intervals (int)

  • -
-
-
-
-
-property Ao
-

outside area, over ride for hallow sections

-
- -
-
-property CG_RELATIVE_INERTIA
-

the mass inertia tensor in global frame

-
- -
-
-property Fg
-

force of gravity

-
- -
-
-property GLOBAL_INERTIA
-

Returns the rotated inertia matrix with structure relative parallal axis contribution

-
- -
-
-property INERTIA
-

the mass inertia tensor in global structure frame

-
- -
-
-property LOCAL_INERTIA
-

the mass inertia tensor in local frame

-
- -
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-apply_distributed_load(start_factor=1, end_factor=1, case=None, **kwargs)[source]
-

add forces in global vector

-
- -
-
-apply_local_distributed_load(start_factor=1, end_factor=1, case=None, **kwargs)[source]
-

add forces in global vector

-
- -
-
-apply_local_pt_load(x, case=None, **kwargs)[source]
-

add a force in a global orientation

-
- -
-
-apply_pt_load(x_frac, case=None, **kwargs)[source]
-

add a force in a global orientation

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-calculate_item_cost()
-

override this with a parametric model related to this systems attributes and properties

-
-
Return type:
-

float

-
-
-
- -
-
-calculate_stress(**forces)[source]
-

takes force input and runs stress calculation as a fraction of material properties, see ShapelySection.calculate_stress() for more details

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-classmethod class_cost_properties()
-

returns cost_property objects from this class & subclasses

-
-
Return type:
-

dict

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-property cost_categories
-

returns itemized costs grouped by category

-
- -
-
-property cost_properties: dict
-

returns the current values of the current properties

-
- -
-
-costs_at_term(term, test_val=True)
-

returns a dictionary of all costs at term i, with zero if the mode -function returns False at that term

-
-
Return type:
-

dict

-
-
Parameters:
-

term (int)

-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-custom_cost(slot_name, cost, warn_on_non_costmodel=True)
-

Takes class costs set, and creates a copy of the class costs, then applies the cost numeric or CostMethod in the same way but only for that instance of

-
-
Parameters:
-
    -
  • slot_name (str)

  • -
  • cost (float | CostModel)

  • -
-
-
-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-classmethod default_cost(slot_name, cost, warn_on_non_costmodel=True)
-

Provide a default cost for Slot items that are not CostModel’s. Cost is applied class wide, but can be overriden with custom_cost per instance

-
-
Parameters:
-
    -
  • slot_name (str)

  • -
  • cost (float | CostModel)

  • -
-
-
-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-estimate_stress(force_calc=True, **forces)[source]
-

uses the best available method to determine max stress in the beam, for ShapelySections this is done through a learning process, for other sections it is done through a simple calculation aimed at providing a conservative estimate

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_forces_at(x, combo=None, lower=True, skip_principle=True)[source]
-

outputs pynite results in section_properties.calculate_stress() input

-
- -
-
-get_stress_at(x, combo=None, **kw)[source]
-

takes force input and runs stress calculation as a fraction of material properties

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-max_von_mises()[source]
-

The worst of the worst cases, after adjusting the beem orientation for best loading

-
-
Return type:
-

float

-
-
-
- -
-
-max_von_mises_by_case(combos=None)[source]
-

Gathers max vonmises stress info per case

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_default_costs()
-

set default costs if no costs are set

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-sub_costs(saved=None, categories=None, term=0)
-

gets items from CostModel’s defined in a Slot attribute or in a slot default, tolerrant to nan’s in cost definitions

-
-
Parameters:
-
    -
  • saved (set | None)

  • -
  • categories (tuple | None)

  • -
-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-sum_costs(saved=None, categories=None, term=0)
-

sums costs of cost_property’s in this item that are present at term=0, and by category if define as input

-
-
Parameters:
-
    -
  • saved (set | None)

  • -
  • categories (tuple | None)

  • -
-
-
-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dflt_costs()
-

updates internal default slot costs if the current component doesn’t exist or isn’t a cost model, this is really a component method but we will use it never the less.

-

This should be called from Component.update() if default costs are used

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.structure_beams.html b/docs/_build/html/_autosummary/engforge.eng.structure_beams.html deleted file mode 100644 index 657b35f..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.structure_beams.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - engforge.eng.structure_beams — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.structure_beams

-

Functions

- - - - - - -

rotation_matrix_from_vectors

Find the rotation matrix that aligns vec1 to vec2 :type vec1: :param vec1: A 3d "source" vector :type vec2: :param vec2: A 3d "destination" vector :return mat: A transform matrix (3x3) which when applied to vec1, aligns it with vec2.

-

Classes

- - - - - - -

Beam

Beam is a wrapper for emergent useful properties of the structure

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.structure_beams.rotation_matrix_from_vectors.html b/docs/_build/html/_autosummary/engforge.eng.structure_beams.rotation_matrix_from_vectors.html deleted file mode 100644 index e3b82af..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.structure_beams.rotation_matrix_from_vectors.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - engforge.eng.structure_beams.rotation_matrix_from_vectors — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.structure_beams.rotation_matrix_from_vectors

-
-
-rotation_matrix_from_vectors(vec1, vec2)[source]
-

Find the rotation matrix that aligns vec1 to vec2 -:type vec1: -:param vec1: A 3d “source” vector -:type vec2: -:param vec2: A 3d “destination” vector -:return mat: A transform matrix (3x3) which when applied to vec1, aligns it with vec2.

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleCompressor.html b/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleCompressor.html deleted file mode 100644 index bc391e3..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleCompressor.html +++ /dev/null @@ -1,1509 +0,0 @@ - - - - - - - engforge.eng.thermodynamics.SimpleCompressor — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.thermodynamics.SimpleCompressor

-
-
-class SimpleCompressor(*, name='Compressor', parent=None, pressure_ratio, Tin, mdot, Cp, gamma=1.4, efficiency=0.75)[source]
-

Bases: Component

-

Method generated by attrs for class SimpleCompressor.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

pressure_out

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Tout([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

power_input([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

system_id

returns an instance unique id based on id(self)

temperature_ratio([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

time

unique_hash

update_interval

parent

name

dataframe

-
-
Parameters:
-

parent (Component | System)

-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleHeatExchanger.html b/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleHeatExchanger.html deleted file mode 100644 index f8e9e59..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleHeatExchanger.html +++ /dev/null @@ -1,1518 +0,0 @@ - - - - - - - engforge.eng.thermodynamics.SimpleHeatExchanger — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.thermodynamics.SimpleHeatExchanger

-
-
-class SimpleHeatExchanger(*, name='HeatExchanger', parent=None, Thi, mdot_h, Cp_h, Tci, mdot_c, Cp_c, efficiency=0.8)[source]
-

Bases: Component

-

Method generated by attrs for class SimpleHeatExchanger.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

CmatC([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

CmatH([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Qdot([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Qdot_ideal([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tc_out([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Th_out([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tout_ideal([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

parent

name

dataframe

-
-
Parameters:
-

parent (Component | System)

-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimplePump.html b/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimplePump.html deleted file mode 100644 index b61d80d..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimplePump.html +++ /dev/null @@ -1,1521 +0,0 @@ - - - - - - - engforge.eng.thermodynamics.SimplePump — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.thermodynamics.SimplePump

-
-
-class SimplePump(*, name='pump', parent=None, MFin, pressure_ratio, Tin=293, Pin=101325.0, efficiency=0.75, fluid=NOTHING)[source]
-

Bases: Component

-

Method generated by attrs for class SimplePump.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

eval

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Pout([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Tout([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

cost([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

power_input([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

pressure_delta([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

system_id

returns an instance unique id based on id(self)

temperature_delta([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

time

unique_hash

update_interval

volumetric_flow([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

parent

name

dataframe

-
-
Parameters:
-

parent (Component | System)

-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleTurbine.html b/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleTurbine.html deleted file mode 100644 index 177c123..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.SimpleTurbine.html +++ /dev/null @@ -1,1506 +0,0 @@ - - - - - - - engforge.eng.thermodynamics.SimpleTurbine — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.thermodynamics.SimpleTurbine

-
-
-class SimpleTurbine(*, name='Turbine', parent=None, Pout, Pin, Tin, mdot, Cp, gamma=1.4, efficiency=0.8)[source]
-

Bases: Component

-

Method generated by attrs for class SimpleTurbine.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Tout([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

dXtdt_ref

a dictionary of state var rates

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

power_output([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

pressure_ratio([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

static_A

static_B

static_C

static_D

static_F

static_K

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

parent

name

dataframe

-
-
Parameters:
-

parent (Component | System)

-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_core.html b/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_core.html deleted file mode 100644 index 5319224..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_core.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - engforge.eng.thermodynamics.dp_he_core — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.thermodynamics.dp_he_core

-
-
-dp_he_core(G, f, L, rho, Dh)[source]
-

Losses due to friction -:type f: -:param f: fanning friction factor -:type G: -:param G: mass flux (massflow / Area) -:type L: -:param L: length of heat exchanger -:type rho: -:param rho: intermediate density -:type Dh: -:param Dh: diameter of heat exchanger

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_entrance.html b/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_entrance.html deleted file mode 100644 index 7e1f4c1..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_entrance.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - engforge.eng.thermodynamics.dp_he_entrance — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.thermodynamics.dp_he_entrance

-
-
-dp_he_entrance(sigma, G, rho)[source]
-

Heat Exchanger Entrance Pressure Loss -:type sigma: -:param sigma: contraction-ratio - ratio of minimum flow area to frontal area -:type G: -:param G: mass flux of fluid -:type rho: -:param rho: density of fluid

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_exit.html b/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_exit.html deleted file mode 100644 index 99c8936..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_exit.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - engforge.eng.thermodynamics.dp_he_exit — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.thermodynamics.dp_he_exit

-
-
-dp_he_exit(sigma, G, rho)[source]
-

Heat Exchanger Exit Pressure Loss -:type sigma: -:param sigma: contraction-ratio - ratio of minimum flow area to frontal area -:type G: -:param G: mass flux of fluid -:type rho: -:param rho: density of fluid

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_gas_losses.html b/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_gas_losses.html deleted file mode 100644 index ccfbd4d..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.dp_he_gas_losses.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - engforge.eng.thermodynamics.dp_he_gas_losses — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.thermodynamics.dp_he_gas_losses

-
-
-dp_he_gas_losses(G, rhoe, rhoi)[source]
-

Measures the pressure loss or gain due to density changes in the HE -:type G: -:param G: mass flux -:type rhoe: -:param rhoe: exit density -:type rhoi: -:param rhoi: entrance density

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.fanning_friction_factor.html b/docs/_build/html/_autosummary/engforge.eng.thermodynamics.fanning_friction_factor.html deleted file mode 100644 index da988c5..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.fanning_friction_factor.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - engforge.eng.thermodynamics.fanning_friction_factor — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.thermodynamics.fanning_friction_factor

-
-
-fanning_friction_factor(Re, method='turbulent')[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.html b/docs/_build/html/_autosummary/engforge.eng.thermodynamics.html deleted file mode 100644 index e2fcebb..0000000 --- a/docs/_build/html/_autosummary/engforge.eng.thermodynamics.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - engforge.eng.thermodynamics — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.eng.thermodynamics

-

Functions

- - - - - - - - - - - - - - - - - - -

dp_he_core

Losses due to friction :type f: :param f: fanning friction factor :type G: :param G: mass flux (massflow / Area) :type L: :param L: length of heat exchanger :type rho: :param rho: intermediate density :type Dh: :param Dh: diameter of heat exchanger

dp_he_entrance

Heat Exchanger Entrance Pressure Loss :type sigma: :param sigma: contraction-ratio - ratio of minimum flow area to frontal area :type G: :param G: mass flux of fluid :type rho: :param rho: density of fluid

dp_he_exit

Heat Exchanger Exit Pressure Loss :type sigma: :param sigma: contraction-ratio - ratio of minimum flow area to frontal area :type G: :param G: mass flux of fluid :type rho: :param rho: density of fluid

dp_he_gas_losses

Measures the pressure loss or gain due to density changes in the HE :type G: :param G: mass flux :type rhoe: :param rhoe: exit density :type rhoi: :param rhoi: entrance density

fanning_friction_factor

-

Classes

- - - - - - - - - - - - - - - -

SimpleCompressor

Method generated by attrs for class SimpleCompressor.

SimpleHeatExchanger

Method generated by attrs for class SimpleHeatExchanger.

SimplePump

Method generated by attrs for class SimplePump.

SimpleTurbine

Method generated by attrs for class SimpleTurbine.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.engforge_attributes.AttributedBaseMixin.html b/docs/_build/html/_autosummary/engforge.engforge_attributes.AttributedBaseMixin.html deleted file mode 100644 index 785930c..0000000 --- a/docs/_build/html/_autosummary/engforge.engforge_attributes.AttributedBaseMixin.html +++ /dev/null @@ -1,533 +0,0 @@ - - - - - - - engforge.engforge_attributes.AttributedBaseMixin — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.engforge_attributes.AttributedBaseMixin

-
-
-class AttributedBaseMixin(name='')[source]
-

Bases: LoggingMixin

-

A mixin that adds the ability to configure all engforge.core attributes of a class

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

collect_all_attributes

collects all the attributes for a system

collect_inst_attributes

collects all the attributes for a system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

plot_attributes

Lists all plot attributes for class

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

as_dict

returns values as they are in the class instance

attrs_fields

identity

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

logger

numeric_as_dict

numeric_hash

slack_webhook_url

unique_hash

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)[source]
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-classmethod collect_all_attributes()[source]
-

collects all the attributes for a system

-
- -
-
-collect_inst_attributes(**kw)[source]
-

collects all the attributes for a system

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)[source]
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)[source]
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod plot_attributes()[source]
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)[source]
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()[source]
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)[source]
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()[source]
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()[source]
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod trace_attributes()[source]
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()[source]
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.engforge_attributes.EngAttr.html b/docs/_build/html/_autosummary/engforge.engforge_attributes.EngAttr.html deleted file mode 100644 index 18324fb..0000000 --- a/docs/_build/html/_autosummary/engforge.engforge_attributes.EngAttr.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - engforge.engforge_attributes.EngAttr — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.engforge_attributes.EngAttr

-
-
-class EngAttr(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.engforge_attributes.get_attributes_of.html b/docs/_build/html/_autosummary/engforge.engforge_attributes.get_attributes_of.html deleted file mode 100644 index 878c573..0000000 --- a/docs/_build/html/_autosummary/engforge.engforge_attributes.get_attributes_of.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - engforge.engforge_attributes.get_attributes_of — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.engforge_attributes.html b/docs/_build/html/_autosummary/engforge.engforge_attributes.html deleted file mode 100644 index b8630cb..0000000 --- a/docs/_build/html/_autosummary/engforge.engforge_attributes.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - engforge.engforge_attributes — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.env_var.EnvVariable.html b/docs/_build/html/_autosummary/engforge.env_var.EnvVariable.html deleted file mode 100644 index af18270..0000000 --- a/docs/_build/html/_autosummary/engforge.env_var.EnvVariable.html +++ /dev/null @@ -1,393 +0,0 @@ - - - - - - - engforge.env_var.EnvVariable — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.env_var.EnvVariable

-
-
-class EnvVariable(secret_var_name, type_conv=None, default=None, obscure=False, fail_on_missing=False, desc=None, dontovrride=False)[source]
-

Bases: LoggingMixin

-

A method to wrap SECRETS and in application with a way to get the value using self.secret -Do not store values from self.secret to ensure security

-

You can override the secret with _override

-

pass arguments to SecretVariable to have it look up information at runtime from envargs, but not store it in memory. -:type secret_var_name: -:param secret_var_name: the enviornmental variable -:type type_conv: -:param type_conv: the data from env vars will be converted with this function -:type default: -:param default: the value to use if the secret_var_name doesn’t exist in enviornmental variables -:type obscure: -:param obscure: default True, will prevent the result being printed by str(self) -:type fail_on_missing: -:param fail_on_missing: if the secret env variable is not found, and default is None -:type desc: Optional[str] -:param desc: a description of the purpose of the variable

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

load_env_vars

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

print_env_vars

prints env vars in memory

remove

removes this secret from the record

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

default

desc

identity

in_env

log_fmt

log_level

log_on

logger

obscure

obscured_name

secret

slack_webhook_url

type_conv

var_name

fail_on_missing

-
-
Parameters:
-
    -
  • type_conv (Any)

  • -
  • default (Any)

  • -
  • obscure (bool)

  • -
  • fail_on_missing (bool)

  • -
  • desc (str)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod print_env_vars()[source]
-

prints env vars in memory

-
- -
-
-remove()[source]
-

removes this secret from the record

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.env_var.html b/docs/_build/html/_autosummary/engforge.env_var.html deleted file mode 100644 index acca0c7..0000000 --- a/docs/_build/html/_autosummary/engforge.env_var.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - engforge.env_var — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.env_var

-

Defines a class called EnvVariable that defines an interface for env variables with an option to obscure and convert variables, as well as provide a default option.

-

A global record of variables is kept for informational purposes in keeping track of progam variables

-

To prevent storage of env vars in program memory, access to the os env variables is provided on access of the secret variable. It is advisable to use the result of this as directly as possible when dealing with actual secrets.

-

For example add: `db_driver(DB_HOST.secret,DB_PASSWORD.secret,…)

-

Functions

- - - - - - -

parse_bool

-

Classes

- - - - - - -

EnvVariable

A method to wrap SECRETS and in application with a way to get the value using self.secret Do not store values from self.secret to ensure security

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.env_var.parse_bool.html b/docs/_build/html/_autosummary/engforge.env_var.parse_bool.html deleted file mode 100644 index c1a8937..0000000 --- a/docs/_build/html/_autosummary/engforge.env_var.parse_bool.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - engforge.env_var.parse_bool — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.html b/docs/_build/html/_autosummary/engforge.html deleted file mode 100644 index d43c426..0000000 --- a/docs/_build/html/_autosummary/engforge.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - - engforge — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - -
  • -
  • -
-
-
-
-
- -
-

engforge

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

analysis

attr_dynamics

attr_plotting

This module defines Plot and Trace methods that allow the plotting of Statistical & Transient relationships of data in each system

attr_signals

This module defines the slot attrs attribute to define the update behavior of a component or between components in an analysis

attr_slots

This module defines the slot attrs attribute to ensure the type of component added is correct and to define behavior,defaults and argument passing behavio

attr_solver

solver defines a SolverMixin for use by System.

attributes

Defines a customizeable attrs attribute that is handled in configuration,

common

A set of common values and functions that are globaly available.

component_collections

define a collection of components that will propigate to its parents dataframe

components

configuration

dataframe

Dataframe Module:

datastores

dynamics

Combines the tabulation and component mixins to create a mixin for systems and components that have dynamics, such as state space models, while allowing nonlinear dynamics via matrix modification

eng

engforge_attributes

env_var

Defines a class called EnvVariable that defines an interface for env variables with an option to obscure and convert variables, as well as provide a default option.

locations

logging

patterns

problem_context

The ProblemExec provides a uniform set of options for managing the state of the system and its solvables, establishing the selection of combos or de/active attributes to Solvables.

properties

Like typical python properties, normal functions are embelished with additional functionality.

reporting

The set of reporters define an interface to report plots or tables

solveable

solver

solver defines a SolverMixin for use by System.

solver_utils

system

A System is a Configuration that orchestrates dataflow between components, as well as solving systems of equations in the presense of limits, as well as formatting results of each Component into reporting ready dataframe.

system_reference

Module to define the Ref class and utility methods for working with it.

tabulation

Tabulation Module:

typing

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.locations.client_path.html b/docs/_build/html/_autosummary/engforge.locations.client_path.html deleted file mode 100644 index 41617a4..0000000 --- a/docs/_build/html/_autosummary/engforge.locations.client_path.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - engforge.locations.client_path — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.locations.html b/docs/_build/html/_autosummary/engforge.locations.html deleted file mode 100644 index 54b92ff..0000000 --- a/docs/_build/html/_autosummary/engforge.locations.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - engforge.locations — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.logging.Log.html b/docs/_build/html/_autosummary/engforge.logging.Log.html deleted file mode 100644 index b8bf34c..0000000 --- a/docs/_build/html/_autosummary/engforge.logging.Log.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - engforge.logging.Log — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.logging.Log

-
-
-class Log(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.logging.LoggingMixin.html b/docs/_build/html/_autosummary/engforge.logging.LoggingMixin.html deleted file mode 100644 index f4d04c4..0000000 --- a/docs/_build/html/_autosummary/engforge.logging.LoggingMixin.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - - - engforge.logging.LoggingMixin — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.logging.LoggingMixin

-
-
-class LoggingMixin(name='')[source]
-

Bases: Filter

-

Class to include easy formatting in subclasses

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)[source]
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)[source]
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)[source]
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')[source]
-

Writes to log as a error

-
- -
-
-filter(record)[source]
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)[source]
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()[source]
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)[source]
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)[source]
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()[source]
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)[source]
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)[source]
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.logging.change_all_log_levels.html b/docs/_build/html/_autosummary/engforge.logging.change_all_log_levels.html deleted file mode 100644 index b316259..0000000 --- a/docs/_build/html/_autosummary/engforge.logging.change_all_log_levels.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - engforge.logging.change_all_log_levels — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.logging.change_all_log_levels

-
-
-change_all_log_levels(inst=None, new_log_level=20, check_function=None)[source]
-

Changes All Log Levels With pyee broadcast before reactor is running -:type new_log_level: int -:param new_log_level: int - changes unit level log level (10-msg,20-debug,30-info,40-warning,50-error,60-crit) -:type check_function: -:param check_function: callable -> bool - (optional) if provided if check_function(unit) is true then the new_log_level is applied

-
-
Parameters:
-

new_log_level (int)

-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.logging.html b/docs/_build/html/_autosummary/engforge.logging.html deleted file mode 100644 index 515eb80..0000000 --- a/docs/_build/html/_autosummary/engforge.logging.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - engforge.logging — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.logging

-

Functions

- - - - - - -

change_all_log_levels

Changes All Log Levels With pyee broadcast before reactor is running :type new_log_level: int :param new_log_level: int - changes unit level log level (10-msg,20-debug,30-info,40-warning,50-error,60-crit) :type check_function: :param check_function: callable -> bool - (optional) if provided if check_function(unit) is true then the new_log_level is applied

-

Classes

- - - - - - - - - -

Log

Initialize a filter.

LoggingMixin

Class to include easy formatting in subclasses

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.patterns.InputSingletonMeta.html b/docs/_build/html/_autosummary/engforge.patterns.InputSingletonMeta.html deleted file mode 100644 index 25768a2..0000000 --- a/docs/_build/html/_autosummary/engforge.patterns.InputSingletonMeta.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - engforge.patterns.InputSingletonMeta — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.patterns.InputSingletonMeta

-
-
-class InputSingletonMeta[source]
-

Bases: type

-

Metaclass for singletons. Any instantiation of a Singleton class yields -the exact same object, for the same given input, e.g.:

-
>>> class MyClass(metaclass=Singleton):
-        pass
->>> a = MyClass(input='same')
->>> b = MyClass(input='diff')
->>> a is b
-False
-
-
-

Methods

- - - - - - -

mro

Return a type's method resolution order.

-
-
-__call__(*args, **kwargs)[source]
-

Call self as a function.

-
- -
-
-mro()
-

Return a type’s method resolution order.

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.patterns.Singleton.html b/docs/_build/html/_autosummary/engforge.patterns.Singleton.html deleted file mode 100644 index b5e7f92..0000000 --- a/docs/_build/html/_autosummary/engforge.patterns.Singleton.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - engforge.patterns.Singleton — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.patterns.Singleton

-
-
-class Singleton(decorated)[source]
-

Bases: object

-

A non-thread-safe helper class to ease implementing singletons. -This should be used as a decorator – not a metaclass – to the -class that should be a singleton.

-

The decorated class can define one __init__ function that -takes only the self argument. Also, the decorated class cannot be -inherited from. Other than that, there are no restrictions that apply -to the decorated class.

-

To get the singleton instance, use the instance method. Trying -to use __call__ will result in a TypeError being raised.

-

Methods

- - - - - - -

instance

Returns the singleton instance.

-
-
-__call__()[source]
-

Call self as a function.

-
- -
-
-instance(*args, **kwargs)[source]
-

Returns the singleton instance. Upon its first call, it creates a -new instance of the decorated class and calls its __init__ method. -On all subsequent calls, the already created instance is returned.

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.patterns.SingletonMeta.html b/docs/_build/html/_autosummary/engforge.patterns.SingletonMeta.html deleted file mode 100644 index 5e9daa5..0000000 --- a/docs/_build/html/_autosummary/engforge.patterns.SingletonMeta.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - engforge.patterns.SingletonMeta — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.patterns.SingletonMeta

-
-
-class SingletonMeta[source]
-

Bases: type

-

Metaclass for singletons. Any instantiation of a Singleton class yields -the exact same object, e.g.:

-
>>> class MyClass(metaclass=Singleton):
-        pass
->>> a = MyClass()
->>> b = MyClass()
->>> a is b
-True
-
-
-

Methods

- - - - - - -

mro

Return a type's method resolution order.

-
-
-__call__(*args, **kwargs)[source]
-

Call self as a function.

-
- -
-
-mro()
-

Return a type’s method resolution order.

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.patterns.chunks.html b/docs/_build/html/_autosummary/engforge.patterns.chunks.html deleted file mode 100644 index c14eee8..0000000 --- a/docs/_build/html/_autosummary/engforge.patterns.chunks.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - engforge.patterns.chunks — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.patterns.flat2gen.html b/docs/_build/html/_autosummary/engforge.patterns.flat2gen.html deleted file mode 100644 index 6b5ce0d..0000000 --- a/docs/_build/html/_autosummary/engforge.patterns.flat2gen.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - engforge.patterns.flat2gen — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.patterns.flatten.html b/docs/_build/html/_autosummary/engforge.patterns.flatten.html deleted file mode 100644 index ccd8869..0000000 --- a/docs/_build/html/_autosummary/engforge.patterns.flatten.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - engforge.patterns.flatten — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.patterns.html b/docs/_build/html/_autosummary/engforge.patterns.html deleted file mode 100644 index d042c0c..0000000 --- a/docs/_build/html/_autosummary/engforge.patterns.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - engforge.patterns — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.patterns

-

Functions

- - - - - - - - - - - - - - - -

chunks

Yield successive n-sized chunks from lst.

flat2gen

flatten

singleton_meta_object

Class decorator that transforms (and replaces) a class definition (which must have a Singleton metaclass) with the actual singleton object.

-

Classes

- - - - - - - - - - - - - - - -

InputSingletonMeta

Metaclass for singletons.

Singleton

A non-thread-safe helper class to ease implementing singletons.

SingletonMeta

Metaclass for singletons.

inst_vectorize

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.patterns.inst_vectorize.html b/docs/_build/html/_autosummary/engforge.patterns.inst_vectorize.html deleted file mode 100644 index 411924b..0000000 --- a/docs/_build/html/_autosummary/engforge.patterns.inst_vectorize.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - engforge.patterns.inst_vectorize — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.patterns.inst_vectorize

-
-
-class inst_vectorize(pyfunc, otypes=None, doc=None, excluded=None, cache=False, signature=None)[source]
-

Bases: vectorize

-

Methods

- - - -
-
-
-__call__(*args, **kwargs)
-

Return arrays with the results of pyfunc broadcast (vectorized) over -args and kwargs not in excluded.

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.patterns.singleton_meta_object.html b/docs/_build/html/_autosummary/engforge.patterns.singleton_meta_object.html deleted file mode 100644 index 0c9f341..0000000 --- a/docs/_build/html/_autosummary/engforge.patterns.singleton_meta_object.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - engforge.patterns.singleton_meta_object — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.patterns.singleton_meta_object

-
-
-singleton_meta_object(cls)[source]
-

Class decorator that transforms (and replaces) a class definition (which -must have a Singleton metaclass) with the actual singleton object. Ensures -that the resulting object can still be “instantiated” (i.e., called), -returning the same object. Also ensures the object can be pickled, is -hashable, and has the correct string representation (the name of the -singleton)

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.problem_context.IllegalArgument.html b/docs/_build/html/_autosummary/engforge.problem_context.IllegalArgument.html deleted file mode 100644 index 427d59f..0000000 --- a/docs/_build/html/_autosummary/engforge.problem_context.IllegalArgument.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - engforge.problem_context.IllegalArgument — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.problem_context.ProbLog.html b/docs/_build/html/_autosummary/engforge.problem_context.ProbLog.html deleted file mode 100644 index 178209c..0000000 --- a/docs/_build/html/_autosummary/engforge.problem_context.ProbLog.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - - engforge.problem_context.ProbLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.problem_context.ProbLog

-
-
-class ProbLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.problem_context.Problem.html b/docs/_build/html/_autosummary/engforge.problem_context.Problem.html deleted file mode 100644 index 22c9934..0000000 --- a/docs/_build/html/_autosummary/engforge.problem_context.Problem.html +++ /dev/null @@ -1,866 +0,0 @@ - - - - - - - engforge.problem_context.Problem — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.problem_context.Problem

-
-
-class Problem(system, kw_dict=None, Xnew=None, ctx_fail_new=False, **opts)[source]
-

Bases: ProblemExec, DataframeMixin

-

Initializes the ProblemExec.

-

#TODO: exit system should abide by update / signals options

-

#TODO: provide data storage options for dataframe / table storage history/ record keeping (ss vs transient data)

-

#TODO: create an option to copy the system and run operations on it, and options for applying the state from the optimized copy to the original system

-
-
Parameters:
-
    -
  • system – The system to be executed.

  • -
  • Xnew – The new state of the system to set wrt. reversion, optional

  • -
  • ctx_fail_new – Whether to raise an error if no execution context is available, use in utility methods ect. Default is False.

  • -
  • kw_dict – A keyword argument dictionary to be parsed for solver options, and removed from the outer context. Changes are made to this dictionary, so they are removed automatically from the outer context, and thus no longer passed to interior vars.

  • -
  • dxdt – The dynamics integration method. Default is None meaning that dynamic vars are not considered for minimization unless otherwise specified. Steady State can be specified by dxdt=0 all dynamic vars are considered as solver variables, with the constraint that their rate of change is zero. If a dictionary is passed then the dynamic vars are considered as solver variables, with the constraint that their rate of change is equal to the value in the dictionary, and all other unspecified rates are zero (steady).

  • -
-
-
-

#### Solver Selection Options -:param combos: The selection of combos. Default is ‘*’ (select all). -:param ign_combos: The combos to be ignored. -:param only_combos: The combos to be selected. -:param add_obj: Whether to add an objective to the solver. Default is True. -:param slv_vars: The selection of solvables. Default is ‘*’ (select all). -:param add_vars: The solvables to be added to the solver. -:param ign_vars: The solvables to be ignored. -:param only_vars: The solvables to be selected. -:param only_active: Whether to select only active items. Default is True. -:param activate: The solvables to be activated. -:param deactivate: The solvables to be deactivated. -:param fail_revert: Whether to raise an error if no solvables are selected. Default is True. -:param revert_last: Whether to revert the last change. Default is True. -:param revert_every: Whether to revert every change. Default is True. -:param exit_on_failure: Whether to exit on failure, or continue on. Default is True.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

activate_temp_state

apply_post_signals

applies all post signals

apply_pre_signals

applies all pre signals

clean_context

critical

debug

debug_levels

debug the levels of the context

discard_contexts

discard all contexts

error

error_action

handles the error action wrt to the problem

establish_system

caches the system references, and parses the system arguments

exit_action

handles the exit action wrt system

exit_and_revert

exit_to_level

exit_with_state

filter_vars

selects only settable refs

format_columns

get_extra_kws

extracts the combo input from the kwargs

get_parent_key

returns the parent key of the key

get_ref_values

returns the values of the refs

get_sesh

get the session

handle_solution

info

integral_rate

provides the dynamic rate of the system at time t, and state x

integrate

min_refresh

msg

parse_default

splits strings or lists and returns a list of options for the key, if nothing found returns None if fail set to True raises an exception, otherwise returns the default value

persist_contexts

convert all contexts to a new storage format

pos_obj

converts an objective to a positive value

post_execute

Updates the post/both signals after the solver has been executed.

post_update_system

updates the system

pre_execute

Updates the pre/both signals after the solver has been executed.

refresh_references

refresh the system references

reset_contexts

reset all contexts to a new storage format

reset_data

reset the data storage

revert_to_start

save_data

save data to the context

set_checkpoint

sets the checkpoint

set_ref_values

returns the values of the refs

set_time

smart_split_dataframe

splits dataframe between constant values and variants

solve_min

Solve the minimization problem using the given vars and constraints.

sys_solver_constraints

formatted as arguments for the solver

sys_solver_objectives

gathers variables from solver vars, and attempts to locate any input_vars to add as well.

update_dynamics

update_methods

update_system

updates the system

warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

all_components

returns all variables in the system

all_comps

returns all variables in the system

all_comps_and_vars

all_problem_vars

solver variables + dynamics states when dynamic_solve is True

all_system_references

all_variable_refs

all_variables

returns all variables in the system

attr_inst

check_dynamics

copy_system

dataframe

returns the dataframe of the system

dataframe_constants

dataframe_variants

dynamic_comps

dynamic_rate

dynamic_rate_eq

dynamic_solve

indicates if the system is dynamic

dynamic_state

enter_refresh

entered

exit_on_failure

exited

fail_revert

final_objectives

returns the final objective of the system

identity

integrator_rate_refs

combine the dynamic state and the integrator rates to get the transient state of the system, but convert their keys to the target var names

integrator_rates

integrator_var_refs

combine the dynamic state and the integrator rates to get the transient state of the system, but convert their keys to the target var names

integrator_vars

integrators

is_active

checks if the context has been entered and not exited

kwargs

copy of slv_kw args

level_name

level_number

log_level

opt_fail

output_state

records the state of the system

post_callback

post_exec

pre_exec

problem_eq

problem_id

problem_ineq

problem_input

problem_objs

problem_opt_vars

solver variables

problems_dict

raise_on_unknown

record_state

records the state of the system using session

ref_attrs

revert_every

revert_last

run_solver

save_mode

save_on_exit

sesh

caches the property for the session

session_id

signal_inst

signals

signals_source

signals_target

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

solveable

checks the system's references to determine if its solveabl

solver_inst

success_thresh

system

session

x_start

-
-
-property all_components: dict
-

returns all variables in the system

-
- -
-
-property all_comps: dict
-

returns all variables in the system

-
- -
-
-property all_problem_vars: dict
-

solver variables + dynamics states when dynamic_solve is True

-
- -
-
-property all_variables: dict
-

returns all variables in the system

-
- -
-
-apply_post_signals()
-

applies all post signals

-
- -
-
-apply_pre_signals()
-

applies all pre signals

-
- -
-
-class_cache
-

alias of ProblemExec

-
- -
-
-property dataframe: DataFrame
-

returns the dataframe of the system

-
- -
-
-debug_levels()
-

debug the levels of the context

-
- -
-
-discard_contexts()
-

discard all contexts

-
- -
-
-property dynamic_solve: bool
-

indicates if the system is dynamic

-
- -
-
-error_action(error)
-

handles the error action wrt to the problem

-
- -
-
-establish_system(system, kw_dict, **kwargs)
-

caches the system references, and parses the system arguments

-
- -
-
-exit_action()
-

handles the exit action wrt system

-
- -
-
-filter_vars(refs)
-

selects only settable refs

-
-
Parameters:
-

refs (list)

-
-
-
- -
-
-property final_objectives: dict
-

returns the final objective of the system

-
- -
-
-classmethod get_extra_kws(kwargs, _check_keys={'activate': None, 'add_obj': True, 'add_vars': None, 'both_match': True, 'combos': 'default', 'deactivate': None, 'dxdt': None, 'ign_combos': None, 'ign_vars': None, 'obj': None, 'only_active': True, 'only_combos': None, 'only_vars': None, 'slv_vars': '*', 'weights': None}, rmv=False, use_defaults=True)
-

extracts the combo input from the kwargs

-
-
Parameters:
-

_check_keys (dict)

-
-
-
- -
-
-get_parent_key(key, look_back_num=1)
-

returns the parent key of the key

-
- -
-
-get_ref_values(refs=None)
-

returns the values of the refs

-
- -
-
-get_sesh(sesh=None)
-

get the session

-
- -
-
-integral_rate(t, x, dt, Xss=None, Yobj=None, **kw)
-

provides the dynamic rate of the system at time t, and state x

-
- -
-
-property integrator_rate_refs
-

combine the dynamic state and the integrator rates to get the transient state of the system, but convert their keys to the target var names

-
- -
-
-property integrator_var_refs
-

combine the dynamic state and the integrator rates to get the transient state of the system, but convert their keys to the target var names

-
- -
-
-property is_active
-

checks if the context has been entered and not exited

-
- -
-
-property kwargs
-

copy of slv_kw args

-
- -
-
-property output_state: dict
-

records the state of the system

-
- -
-
-classmethod parse_default(key, defaults, input_dict, rmv=False, empty_str=True)
-

splits strings or lists and returns a list of options for the key, if nothing found returns None if fail set to True raises an exception, otherwise returns the default value

-
- -
-
-persist_contexts()
-

convert all contexts to a new storage format

-
- -
-
-pos_obj(ref)
-

converts an objective to a positive value

-
- -
-
-post_execute(*args, **kwargs)
-

Updates the post/both signals after the solver has been executed. This is useful for updating the system state after the solver has been executed.

-
- -
-
-post_update_system(*args, **kwargs)
-

updates the system

-
- -
-
-pre_execute(*args, **kwargs)
-

Updates the pre/both signals after the solver has been executed. This is useful for updating the system state after the solver has been executed.

-
- -
-
-property problem_opt_vars: dict
-

solver variables

-
- -
-
-property record_state: dict
-

records the state of the system using session

-
- -
-
-refresh_references(sesh=None)
-

refresh the system references

-
- -
-
-reset_contexts(fail_if_discardmode=True)
-

reset all contexts to a new storage format

-
- -
-
-reset_data()
-

reset the data storage

-
- -
-
-save_data(index=None, force=False, **add_data)
-

save data to the context

-
- -
-
-property sesh
-

caches the property for the session

-
- -
-
-set_checkpoint()
-

sets the checkpoint

-
- -
-
-set_ref_values(values, refs=None)
-

returns the values of the refs

-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-solve_min(Xref=None, Yref=None, output=None, **kw)
-

Solve the minimization problem using the given vars and constraints. And sets the system state to the solution depending on input of the following:

-

Solve the root problem using the given vars. -:type Xref: -:param Xref: The reference input values. -:type Yref: -:param Yref: The reference objective values to minimize. -:type output: -:param output: The output dictionary to store the results. (default: None) -:param fail: Flag indicating whether to raise an exception if the solver doesn’t converge. (default: True) -:type kw: -:param kw: Additional keyword arguments. -:return: The output dictionary containing the results.

-
- -
-
-property solveable
-

checks the system’s references to determine if its solveabl

-
- -
-
-sys_solver_constraints(add_con=None, combo_filter=True, **kw)
-

formatted as arguments for the solver

-
- -
-
-sys_solver_objectives(**kw)
-

gathers variables from solver vars, and attempts to locate any input_vars to add as well. use exclude_vars to eliminate a variable from the solver

-
- -
-
-update_system(*args, **kwargs)
-

updates the system

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.problem_context.ProblemExec.html b/docs/_build/html/_autosummary/engforge.problem_context.ProblemExec.html deleted file mode 100644 index 11d171d..0000000 --- a/docs/_build/html/_autosummary/engforge.problem_context.ProblemExec.html +++ /dev/null @@ -1,842 +0,0 @@ - - - - - - - engforge.problem_context.ProblemExec — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.problem_context.ProblemExec

-
-
-class ProblemExec(system, kw_dict=None, Xnew=None, ctx_fail_new=False, **opts)[source]
-

Bases: object

-

Represents the execution context for a problem in the system. The ProblemExec class provides a uniform set of options for managing the state of the system and its solvables, establishing the selection of combos or de/active attributes to Solvables. Once once created any further entracnces to ProblemExec will return the same instance until finally the last exit is called.

-

## params: -- _problem_id: uuid for subproblems, or True for top level, None means uninitialized

-

Initializes the ProblemExec.

-

#TODO: exit system should abide by update / signals options

-

#TODO: provide data storage options for dataframe / table storage history/ record keeping (ss vs transient data)

-

#TODO: create an option to copy the system and run operations on it, and options for applying the state from the optimized copy to the original system

-
-
Parameters:
-
    -
  • system – The system to be executed.

  • -
  • Xnew – The new state of the system to set wrt. reversion, optional

  • -
  • ctx_fail_new – Whether to raise an error if no execution context is available, use in utility methods ect. Default is False.

  • -
  • kw_dict – A keyword argument dictionary to be parsed for solver options, and removed from the outer context. Changes are made to this dictionary, so they are removed automatically from the outer context, and thus no longer passed to interior vars.

  • -
  • dxdt – The dynamics integration method. Default is None meaning that dynamic vars are not considered for minimization unless otherwise specified. Steady State can be specified by dxdt=0 all dynamic vars are considered as solver variables, with the constraint that their rate of change is zero. If a dictionary is passed then the dynamic vars are considered as solver variables, with the constraint that their rate of change is equal to the value in the dictionary, and all other unspecified rates are zero (steady).

  • -
-
-
-

#### Solver Selection Options -:param combos: The selection of combos. Default is ‘*’ (select all). -:param ign_combos: The combos to be ignored. -:param only_combos: The combos to be selected. -:param add_obj: Whether to add an objective to the solver. Default is True. -:param slv_vars: The selection of solvables. Default is ‘*’ (select all). -:param add_vars: The solvables to be added to the solver. -:param ign_vars: The solvables to be ignored. -:param only_vars: The solvables to be selected. -:param only_active: Whether to select only active items. Default is True. -:param activate: The solvables to be activated. -:param deactivate: The solvables to be deactivated. -:param fail_revert: Whether to raise an error if no solvables are selected. Default is True. -:param revert_last: Whether to revert the last change. Default is True. -:param revert_every: Whether to revert every change. Default is True. -:param exit_on_failure: Whether to exit on failure, or continue on. Default is True.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

activate_temp_state

apply_post_signals

applies all post signals

apply_pre_signals

applies all pre signals

clean_context

critical

debug

debug_levels

debug the levels of the context

discard_contexts

discard all contexts

error

error_action

handles the error action wrt to the problem

establish_system

caches the system references, and parses the system arguments

exit_action

handles the exit action wrt system

exit_and_revert

exit_to_level

exit_with_state

filter_vars

selects only settable refs

get_extra_kws

extracts the combo input from the kwargs

get_parent_key

returns the parent key of the key

get_ref_values

returns the values of the refs

get_sesh

get the session

handle_solution

info

integral_rate

provides the dynamic rate of the system at time t, and state x

integrate

min_refresh

msg

parse_default

splits strings or lists and returns a list of options for the key, if nothing found returns None if fail set to True raises an exception, otherwise returns the default value

persist_contexts

convert all contexts to a new storage format

pos_obj

converts an objective to a positive value

post_execute

Updates the post/both signals after the solver has been executed.

post_update_system

updates the system

pre_execute

Updates the pre/both signals after the solver has been executed.

refresh_references

refresh the system references

reset_contexts

reset all contexts to a new storage format

reset_data

reset the data storage

revert_to_start

save_data

save data to the context

set_checkpoint

sets the checkpoint

set_ref_values

returns the values of the refs

set_time

solve_min

Solve the minimization problem using the given vars and constraints.

sys_solver_constraints

formatted as arguments for the solver

sys_solver_objectives

gathers variables from solver vars, and attempts to locate any input_vars to add as well.

update_dynamics

update_methods

update_system

updates the system

warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

all_components

returns all variables in the system

all_comps

returns all variables in the system

all_comps_and_vars

all_problem_vars

solver variables + dynamics states when dynamic_solve is True

all_system_references

all_variable_refs

all_variables

returns all variables in the system

attr_inst

check_dynamics

copy_system

dataframe

returns the dataframe of the system

dynamic_comps

dynamic_rate

dynamic_rate_eq

dynamic_solve

indicates if the system is dynamic

dynamic_state

enter_refresh

entered

exit_on_failure

exited

fail_revert

final_objectives

returns the final objective of the system

identity

integrator_rate_refs

combine the dynamic state and the integrator rates to get the transient state of the system, but convert their keys to the target var names

integrator_rates

integrator_var_refs

combine the dynamic state and the integrator rates to get the transient state of the system, but convert their keys to the target var names

integrator_vars

integrators

is_active

checks if the context has been entered and not exited

kwargs

copy of slv_kw args

level_name

level_number

log_level

opt_fail

output_state

records the state of the system

post_callback

post_exec

pre_exec

problem_eq

problem_id

problem_ineq

problem_input

problem_objs

problem_opt_vars

solver variables

problems_dict

raise_on_unknown

record_state

records the state of the system using session

ref_attrs

revert_every

revert_last

run_solver

save_mode

save_on_exit

sesh

caches the property for the session

session_id

signal_inst

signals

signals_source

signals_target

solveable

checks the system's references to determine if its solveabl

solver_inst

success_thresh

system

session

x_start

-
-
-property all_components: dict
-

returns all variables in the system

-
- -
-
-property all_comps: dict
-

returns all variables in the system

-
- -
-
-property all_problem_vars: dict
-

solver variables + dynamics states when dynamic_solve is True

-
- -
-
-property all_variables: dict
-

returns all variables in the system

-
- -
-
-apply_post_signals()[source]
-

applies all post signals

-
- -
-
-apply_pre_signals()[source]
-

applies all pre signals

-
- -
-
-class_cache
-

alias of ProblemExec

-
- -
-
-property dataframe: DataFrame
-

returns the dataframe of the system

-
- -
-
-debug_levels()[source]
-

debug the levels of the context

-
- -
-
-discard_contexts()[source]
-

discard all contexts

-
- -
-
-property dynamic_solve: bool
-

indicates if the system is dynamic

-
- -
-
-error_action(error)[source]
-

handles the error action wrt to the problem

-
- -
-
-establish_system(system, kw_dict, **kwargs)[source]
-

caches the system references, and parses the system arguments

-
- -
-
-exit_action()[source]
-

handles the exit action wrt system

-
- -
-
-filter_vars(refs)[source]
-

selects only settable refs

-
-
Parameters:
-

refs (list)

-
-
-
- -
-
-property final_objectives: dict
-

returns the final objective of the system

-
- -
-
-classmethod get_extra_kws(kwargs, _check_keys={'activate': None, 'add_obj': True, 'add_vars': None, 'both_match': True, 'combos': 'default', 'deactivate': None, 'dxdt': None, 'ign_combos': None, 'ign_vars': None, 'obj': None, 'only_active': True, 'only_combos': None, 'only_vars': None, 'slv_vars': '*', 'weights': None}, rmv=False, use_defaults=True)[source]
-

extracts the combo input from the kwargs

-
-
Parameters:
-

_check_keys (dict)

-
-
-
- -
-
-get_parent_key(key, look_back_num=1)[source]
-

returns the parent key of the key

-
- -
-
-get_ref_values(refs=None)[source]
-

returns the values of the refs

-
- -
-
-get_sesh(sesh=None)[source]
-

get the session

-
- -
-
-integral_rate(t, x, dt, Xss=None, Yobj=None, **kw)[source]
-

provides the dynamic rate of the system at time t, and state x

-
- -
-
-property integrator_rate_refs
-

combine the dynamic state and the integrator rates to get the transient state of the system, but convert their keys to the target var names

-
- -
-
-property integrator_var_refs
-

combine the dynamic state and the integrator rates to get the transient state of the system, but convert their keys to the target var names

-
- -
-
-property is_active
-

checks if the context has been entered and not exited

-
- -
-
-property kwargs
-

copy of slv_kw args

-
- -
-
-property output_state: dict
-

records the state of the system

-
- -
-
-classmethod parse_default(key, defaults, input_dict, rmv=False, empty_str=True)[source]
-

splits strings or lists and returns a list of options for the key, if nothing found returns None if fail set to True raises an exception, otherwise returns the default value

-
- -
-
-persist_contexts()[source]
-

convert all contexts to a new storage format

-
- -
-
-pos_obj(ref)[source]
-

converts an objective to a positive value

-
- -
-
-post_execute(*args, **kwargs)[source]
-

Updates the post/both signals after the solver has been executed. This is useful for updating the system state after the solver has been executed.

-
- -
-
-post_update_system(*args, **kwargs)[source]
-

updates the system

-
- -
-
-pre_execute(*args, **kwargs)[source]
-

Updates the pre/both signals after the solver has been executed. This is useful for updating the system state after the solver has been executed.

-
- -
-
-property problem_opt_vars: dict
-

solver variables

-
- -
-
-property record_state: dict
-

records the state of the system using session

-
- -
-
-refresh_references(sesh=None)[source]
-

refresh the system references

-
- -
-
-reset_contexts(fail_if_discardmode=True)[source]
-

reset all contexts to a new storage format

-
- -
-
-reset_data()[source]
-

reset the data storage

-
- -
-
-save_data(index=None, force=False, **add_data)[source]
-

save data to the context

-
- -
-
-property sesh
-

caches the property for the session

-
- -
-
-set_checkpoint()[source]
-

sets the checkpoint

-
- -
-
-set_ref_values(values, refs=None)[source]
-

returns the values of the refs

-
- -
-
-solve_min(Xref=None, Yref=None, output=None, **kw)[source]
-

Solve the minimization problem using the given vars and constraints. And sets the system state to the solution depending on input of the following:

-

Solve the root problem using the given vars. -:type Xref: -:param Xref: The reference input values. -:type Yref: -:param Yref: The reference objective values to minimize. -:type output: -:param output: The output dictionary to store the results. (default: None) -:param fail: Flag indicating whether to raise an exception if the solver doesn’t converge. (default: True) -:type kw: -:param kw: Additional keyword arguments. -:return: The output dictionary containing the results.

-
- -
-
-property solveable
-

checks the system’s references to determine if its solveabl

-
- -
-
-sys_solver_constraints(add_con=None, combo_filter=True, **kw)[source]
-

formatted as arguments for the solver

-
- -
-
-sys_solver_objectives(**kw)[source]
-

gathers variables from solver vars, and attempts to locate any input_vars to add as well. use exclude_vars to eliminate a variable from the solver

-
- -
-
-update_system(*args, **kwargs)[source]
-

updates the system

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.problem_context.ProblemExit.html b/docs/_build/html/_autosummary/engforge.problem_context.ProblemExit.html deleted file mode 100644 index 63d71af..0000000 --- a/docs/_build/html/_autosummary/engforge.problem_context.ProblemExit.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - engforge.problem_context.ProblemExit — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.problem_context.ProblemExit

-
-
-exception ProblemExit(prob, revert=None)[source]
-

an exception to exit the problem context, without error

-
-
Parameters:
-
-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.problem_context.ProblemExitAtLevel.html b/docs/_build/html/_autosummary/engforge.problem_context.ProblemExitAtLevel.html deleted file mode 100644 index 3080d7b..0000000 --- a/docs/_build/html/_autosummary/engforge.problem_context.ProblemExitAtLevel.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - engforge.problem_context.ProblemExitAtLevel — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.problem_context.ProblemExitAtLevel

-
-
-exception ProblemExitAtLevel(prob, level, revert=None)[source]
-

an exception to exit the problem context, without error

-
-
Parameters:
-
-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.problem_context.html b/docs/_build/html/_autosummary/engforge.problem_context.html deleted file mode 100644 index c7b45a5..0000000 --- a/docs/_build/html/_autosummary/engforge.problem_context.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - engforge.problem_context — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.problem_context

-

The ProblemExec provides a uniform set of options for managing the state of the system and its solvables, establishing the selection of combos or de/active attributes to Solvables. Once once created any further entracnces to ProblemExec will return the same instance until finally the last exit is called.

-

The ProblemExec class allows entrance to a its context to the same instance until finally the last exit is called. The first entrance to the context will create the instance, each subsequent entrance will return the same instance. The ProblemExec arguments are set the first time and remove keyword arguments from the input dictionary (passed as a dict ie stateful) to subsequent methods. -This isn’t technically a singleton pattern, but it does provide a similar interface. Instead mutliple problem instances will be clones of the first instance, with the optional difference of input/output/event criteria. The first instance will be returned by each context entry, so for that reason it may always appear to have same instance, however each instance is unique in a recusive setting so it may record its own state and be reverted to its own state as per the options defined.

-

#TODO: allow update of kwargs on re-entrance

-

## Example: -.. code-block:: python

-
-

#Application code (arguments passed in kw) -with ProblemExec(sys,combos=’default’,slv_vars’*’,**kw) as pe:

-
-

pe._sys_refs #get the references and compiled problem -for i in range(10):

-
-

pe.solve_min(pe.Xref,pe.Yref,**other_args) -pe.set_checkpoint() #save the state of the system -self.save_data()

-
-
-

#Solver Module (can use without knowledge of the runtime system) -with ProblemExec(sys,{},Xnew=Xnext,ctx_fail_new=True) as pe:

-
-

#do revertable math on the state of the system without concern for the state of the system

-
-
-

-

# Combos Selection -By default no arguments run will select all active items with combo=”default”. The combos argument can be used to select a specific set of combos, a outer select. From this set, the ign_combos and only_combos arguments can be used to ignore or select specific combos based on exclusion or inclusion respectively.

-

# Parameter Name Selection -The slv_vars argument can be used to select a specific set of solvables. From this set, the ign_vars and only_vars arguments can be used to ignore or select specific solvables based on exclusion or inclusion respectively. The add_vars argument can be used to add a specific set of solvables to the solver.

-

# Active Mode Handiling -The only_active argument can be used to select only active items. The activate and deactivate arguments can be used to activate or deactivate specific solvables.

-

add_obj can be used to add an objective to the solver.

-

# Exit Mode Handling

-

The ProblemExec supports the following exit mode handling vars:

-
    -
  • fail_revert: Whether to raise an error if no solvables are selected. Default is True.

  • -
  • revert_last: Whether to revert the last change. Default is True.

  • -
  • revert_every: Whether to revert every change. Default is True.

  • -
  • exit_on_failure: Whether to exit on first failure. Default is True.

  • -
-

These vars control the behavior of the ProblemExec when an error occurs or when no solvables are selected.

-

Classes

- - - - - - - - - - - - -

ProbLog

Initialize a filter.

Problem

Initializes the ProblemExec.

ProblemExec

Represents the execution context for a problem in the system.

-

Exceptions

- - - - - - - - - - - - -

IllegalArgument

an exception to exit the problem context as specified

ProblemExit(prob[, revert])

an exception to exit the problem context, without error

ProblemExitAtLevel(prob, level[, revert])

an exception to exit the problem context, without error

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.PropertyLog.html b/docs/_build/html/_autosummary/engforge.properties.PropertyLog.html deleted file mode 100644 index 7e4073c..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.PropertyLog.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - - engforge.properties.PropertyLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.PropertyLog

-
-
-class PropertyLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.cache_prop.html b/docs/_build/html/_autosummary/engforge.properties.cache_prop.html deleted file mode 100644 index bfb29fb..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.cache_prop.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - engforge.properties.cache_prop — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.cache_prop

-
-
-class cache_prop(*args, **kwargs)[source]
-

Bases: engforge_prop

-

Methods

- - - - - - - - - - - - - - - - - - -

deleter

get_func_return

ensures that the function has a return annotation, and that return annotation is in valid sort types

getter

set_cache

setter

-

Attributes

- - - - - - - - - -

allow_set

must_return

-
-
-__call__(fget=None, fset=None, fdel=None, doc=None, *args, **kwargs)
-

this will be called when input is provided before property is set

-
- -
-
-get_func_return(func)
-

ensures that the function has a return annotation, and that return annotation is in valid sort types

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.cached_sys_prop.html b/docs/_build/html/_autosummary/engforge.properties.cached_sys_prop.html deleted file mode 100644 index abc16a4..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.cached_sys_prop.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - engforge.properties.cached_sys_prop — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.cached_sys_prop

-
-
-cached_sys_prop
-

alias of system_property

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.cached_system_prop.html b/docs/_build/html/_autosummary/engforge.properties.cached_system_prop.html deleted file mode 100644 index e386109..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.cached_system_prop.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - engforge.properties.cached_system_prop — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.cached_system_prop

-
-
-cached_system_prop
-

alias of system_property

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.cached_system_property.html b/docs/_build/html/_autosummary/engforge.properties.cached_system_property.html deleted file mode 100644 index d3f44d5..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.cached_system_property.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - engforge.properties.cached_system_property — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.cached_system_property

-
-
-class cached_system_property(fget=None, fset=None, fdel=None, doc=None, desc=None, label=None, stochastic=False)[source]
-

Bases: system_property

-

A system property that caches the result when nothing changes. Use for expensive functions since the checking adds some overhead

-

You can initalize just the functions, or precreate the object but with meta -@system_property -def function(…): < this uses __init__ to assign function

-

@system_property(desc=’really nice’,label=’funky function’) -def function(…): < this uses __call__ to assign function

-

Methods

- - - - - - - - - - - - - - - - - - -

deleter

get_func_return

ensures that the function has a return annotation, and that return annotation is in valid sort types

getter

set_cache

setter

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - -

desc

label

must_return

private_var

return_type

stochastic

gname

-
-
-__call__(fget=None, fset=None, fdel=None, doc=None)
-

this will be called when input is provided before property is set

-
- -
-
-get_func_return(func)[source]
-

ensures that the function has a return annotation, and that return annotation is in valid sort types

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.class_cache.html b/docs/_build/html/_autosummary/engforge.properties.class_cache.html deleted file mode 100644 index 56a3a65..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.class_cache.html +++ /dev/null @@ -1,221 +0,0 @@ - - - - - - - engforge.properties.class_cache — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.class_cache

-
-
-class class_cache(*args, **kwargs)[source]
-

Bases: cache_prop

-

a property that caches a value on the class at runtime, and then maintains that value for the duration of the program. A flag with the class name ensures the class is correct. Intended for instance methods

-

Methods

- - - - - - - - - - - - - - - - - - -

deleter

get_func_return

ensures that the function has a return annotation, and that return annotation is in valid sort types

getter

set_cache

setter

-

Attributes

- - - - - - - - - - - - - - - -

allow_set

id_var

must_return

private_var

-
-
-__call__(fget=None, fset=None, fdel=None, doc=None, *args, **kwargs)
-

this will be called when input is provided before property is set

-
- -
-
-get_func_return(func)
-

ensures that the function has a return annotation, and that return annotation is in valid sort types

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.engforge_prop.html b/docs/_build/html/_autosummary/engforge.properties.engforge_prop.html deleted file mode 100644 index e895b1f..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.engforge_prop.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - engforge.properties.engforge_prop — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.engforge_prop

-
-
-class engforge_prop(fget=None, fset=None, fdel=None, *args, **kwargs)[source]
-

Bases: object

-

an interface for extension and identification and class return support

-

Methods

- - - - - - - - - - - - - - - -

deleter

get_func_return

ensures that the function has a return annotation, and that return annotation is in valid sort types

getter

setter

-

Attributes

- - - - - - -

must_return

-
-
-__call__(fget=None, fset=None, fdel=None, doc=None, *args, **kwargs)[source]
-

this will be called when input is provided before property is set

-
- -
-
-get_func_return(func)[source]
-

ensures that the function has a return annotation, and that return annotation is in valid sort types

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.html b/docs/_build/html/_autosummary/engforge.properties.html deleted file mode 100644 index 54dc269..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - engforge.properties — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.properties

-

Like typical python properties, normal functions are embelished with additional functionality.

-

system_properties is a core function that adds meta information to a normal python property to include its output in the results. It is the “y” in y=f(x).

-

class_cache a subclassing safe property that stores the result at runtime

-

solver_cache a property that is recalculated any time there is an update to any attrs variable.

-

Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

PropertyLog

Initialize a filter.

cache_prop

cached_sys_prop

alias of system_property

cached_system_prop

alias of system_property

cached_system_property

A system property that caches the result when nothing changes.

class_cache

a property that caches a value on the class at runtime, and then maintains that value for the duration of the program.

engforge_prop

an interface for extension and identification and class return support

instance_cached

A property that caches a result to an instance the first call then returns that each successive call

solver_cached

A property that updates a first time and then anytime time the input data changed, as signaled by attrs.on_setattr callback

sys_prop

alias of system_property

system_prop

alias of system_property

system_property

this property notifies the system this is a property to be tabulated in the dataframe output.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.instance_cached.html b/docs/_build/html/_autosummary/engforge.properties.instance_cached.html deleted file mode 100644 index 465445f..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.instance_cached.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - - engforge.properties.instance_cached — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.instance_cached

-
-
-class instance_cached(*args, **kwargs)[source]
-

Bases: cache_prop

-

A property that caches a result to an instance the first call then returns that each successive call

-

Methods

- - - - - - - - - - - - - - - - - - -

deleter

get_func_return

ensures that the function has a return annotation, and that return annotation is in valid sort types

getter

set_cache

setter

-

Attributes

- - - - - - - - - - - - -

allow_set

must_return

private_var

-
-
-__call__(fget=None, fset=None, fdel=None, doc=None, *args, **kwargs)
-

this will be called when input is provided before property is set

-
- -
-
-get_func_return(func)
-

ensures that the function has a return annotation, and that return annotation is in valid sort types

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.solver_cached.html b/docs/_build/html/_autosummary/engforge.properties.solver_cached.html deleted file mode 100644 index 5dd1396..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.solver_cached.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - - engforge.properties.solver_cached — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.solver_cached

-
-
-class solver_cached(*args, **kwargs)[source]
-

Bases: cache_prop

-

A property that updates a first time and then anytime time the input data changed, as signaled by attrs.on_setattr callback

-

Methods

- - - - - - - - - - - - - - - - - - -

deleter

get_func_return

ensures that the function has a return annotation, and that return annotation is in valid sort types

getter

set_cache

setter

-

Attributes

- - - - - - - - - - - - -

allow_set

must_return

private_var

-
-
-__call__(fget=None, fset=None, fdel=None, doc=None, *args, **kwargs)
-

this will be called when input is provided before property is set

-
- -
-
-get_func_return(func)
-

ensures that the function has a return annotation, and that return annotation is in valid sort types

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.sys_prop.html b/docs/_build/html/_autosummary/engforge.properties.sys_prop.html deleted file mode 100644 index f076627..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.sys_prop.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - engforge.properties.sys_prop — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.sys_prop

-
-
-sys_prop
-

alias of system_property

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.system_prop.html b/docs/_build/html/_autosummary/engforge.properties.system_prop.html deleted file mode 100644 index 5dc0b28..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.system_prop.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - engforge.properties.system_prop — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.system_prop

-
-
-system_prop
-

alias of system_property

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.properties.system_property.html b/docs/_build/html/_autosummary/engforge.properties.system_property.html deleted file mode 100644 index b5c42a2..0000000 --- a/docs/_build/html/_autosummary/engforge.properties.system_property.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - engforge.properties.system_property — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.properties.system_property

-
-
-class system_property(fget=None, fset=None, fdel=None, doc=None, desc=None, label=None, stochastic=False)[source]
-

Bases: engforge_prop

-

this property notifies the system this is a property to be tabulated in the dataframe output.

-

@system_property -def function(…): < this uses __init__ to assign function

-

@system_property(desc=’really nice’,label=’funky function’) -def function(…): < this uses __call__ to assign function

-

When the underlying data has some random element, set stochastic=True and this will flag the component to always save data.

-

Functions wrapped with table type must have an return annotion of (int,float,str)… ex def func() -> int:

-

You can initalize just the functions, or precreate the object but with meta -@system_property -def function(…): < this uses __init__ to assign function

-

@system_property(desc=’really nice’,label=’funky function’) -def function(…): < this uses __call__ to assign function

-

Methods

- - - - - - - - - - - - - - - -

deleter

get_func_return

ensures that the function has a return annotation, and that return annotation is in valid sort types

getter

setter

-

Attributes

- - - - - - - - - - - - - - - - - - -

desc

label

must_return

return_type

stochastic

-
-
-__call__(fget=None, fset=None, fdel=None, doc=None)[source]
-

this will be called when input is provided before property is set

-
- -
-
-get_func_return(func)[source]
-

ensures that the function has a return annotation, and that return annotation is in valid sort types

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.CSVReporter.html b/docs/_build/html/_autosummary/engforge.reporting.CSVReporter.html deleted file mode 100644 index 8115d64..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.CSVReporter.html +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - engforge.reporting.CSVReporter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.reporting.CSVReporter

-
-
-class CSVReporter(path=None, report_mode='single', name='CSV')[source]
-

Bases: TableReporter, DiskReporterMixin

-

Method generated by attrs for class CSVReporter.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_config

a test to see if the reporter should be used

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

ensure_exists

ensure_path

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

subclasses

get all reporters of this type

upload

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

date_key

identity

log_fmt

log_level

log_on

logger

month_key

name

path

report_mode

report_root

define your keys!

slack_webhook_url

-
-
Parameters:
-
    -
  • path (str)

  • -
  • report_mode (str)

  • -
  • name (str)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-check_config()
-

a test to see if the reporter should be used

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-property report_root
-

define your keys!

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-classmethod subclasses(out=None)
-

get all reporters of this type

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.DiskPlotReporter.html b/docs/_build/html/_autosummary/engforge.reporting.DiskPlotReporter.html deleted file mode 100644 index bfbe26c..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.DiskPlotReporter.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - - - - engforge.reporting.DiskPlotReporter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.reporting.DiskPlotReporter

-
-
-class DiskPlotReporter(path=None, report_mode='single', name='DrivePlots')[source]
-

Bases: PlotReporter, DiskReporterMixin

-

Method generated by attrs for class DiskPlotReporter.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_config

a test to see if the reporter should be used

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

ensure_exists

ensure_path

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

subclasses

get all reporters of this type

upload

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

date_key

ext

identity

log_fmt

log_level

log_on

logger

month_key

name

path

report_mode

report_root

define your keys!

slack_webhook_url

-
-
Parameters:
-
    -
  • path (str)

  • -
  • report_mode (str)

  • -
  • name (str)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-check_config()
-

a test to see if the reporter should be used

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-property report_root
-

define your keys!

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-classmethod subclasses(out=None)
-

get all reporters of this type

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.DiskReporterMixin.html b/docs/_build/html/_autosummary/engforge.reporting.DiskReporterMixin.html deleted file mode 100644 index f69d00f..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.DiskReporterMixin.html +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - engforge.reporting.DiskReporterMixin — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.reporting.DiskReporterMixin

-
-
-class DiskReporterMixin(name='reporter', path=None, report_mode='single')[source]
-

Bases: TemporalReporterMixin

-

Method generated by attrs for class DiskReporterMixin.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_config

a test to see if the reporter should be used

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

ensure_exists

ensure_path

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

subclasses

get all reporters of this type

upload

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

path

report_mode

date_key

identity

log_fmt

log_level

log_on

logger

month_key

name

report_root

define your keys!

slack_webhook_url

-
-
Parameters:
-
    -
  • name (str)

  • -
  • path (str)

  • -
  • report_mode (str)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-check_config()
-

a test to see if the reporter should be used

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-property report_root
-

define your keys!

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-classmethod subclasses(out=None)
-

get all reporters of this type

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.ExcelReporter.html b/docs/_build/html/_autosummary/engforge.reporting.ExcelReporter.html deleted file mode 100644 index 4b3bc64..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.ExcelReporter.html +++ /dev/null @@ -1,388 +0,0 @@ - - - - - - - engforge.reporting.ExcelReporter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.reporting.ExcelReporter

-
-
-class ExcelReporter(path=None, report_mode='single', name='EXCEL')[source]
-

Bases: TableReporter, DiskReporterMixin

-

Method generated by attrs for class ExcelReporter.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_config

a test to see if the reporter should be used

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

ensure_exists

ensure_path

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

subclasses

get all reporters of this type

upload

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

date_key

identity

log_fmt

log_level

log_on

logger

month_key

name

path

report_mode

report_root

define your keys!

slack_webhook_url

-
-
Parameters:
-
    -
  • path (str)

  • -
  • report_mode (str)

  • -
  • name (str)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-check_config()
-

a test to see if the reporter should be used

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-property report_root
-

define your keys!

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-classmethod subclasses(out=None)
-

get all reporters of this type

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.GdriveReporter.html b/docs/_build/html/_autosummary/engforge.reporting.GdriveReporter.html deleted file mode 100644 index edee287..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.GdriveReporter.html +++ /dev/null @@ -1,381 +0,0 @@ - - - - - - - engforge.reporting.GdriveReporter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.reporting.GdriveReporter

-
-
-class GdriveReporter(name='Gdrive', share_drive=None)[source]
-

Bases: PlotReporter, TemporalReporterMixin

-

Method generated by attrs for class GdriveReporter.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_config

a test to see if the reporter should be used

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

subclasses

get all reporters of this type

upload

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

share_drive

date_key

ext

identity

log_fmt

log_level

log_on

logger

month_key

name

report_root

define your keys!

slack_webhook_url

-
-
Parameters:
-
    -
  • name (str)

  • -
  • share_drive (str)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-check_config()
-

a test to see if the reporter should be used

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-property report_root
-

define your keys!

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-classmethod subclasses(out=None)
-

get all reporters of this type

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.GsheetsReporter.html b/docs/_build/html/_autosummary/engforge.reporting.GsheetsReporter.html deleted file mode 100644 index c7f5e6e..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.GsheetsReporter.html +++ /dev/null @@ -1,372 +0,0 @@ - - - - - - - engforge.reporting.GsheetsReporter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.reporting.GsheetsReporter

-
-
-class GsheetsReporter(name='GSHEETS')[source]
-

Bases: TableReporter, TemporalReporterMixin

-

Method generated by attrs for class GsheetsReporter.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_config

a test to see if the reporter should be used

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

subclasses

get all reporters of this type

upload

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

date_key

identity

log_fmt

log_level

log_on

logger

month_key

name

report_root

define your keys!

slack_webhook_url

-
-
Parameters:
-

name (str)

-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-check_config()
-

a test to see if the reporter should be used

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-property report_root
-

define your keys!

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-classmethod subclasses(out=None)
-

get all reporters of this type

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.PlotReporter.html b/docs/_build/html/_autosummary/engforge.reporting.PlotReporter.html deleted file mode 100644 index bfe787d..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.PlotReporter.html +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - engforge.reporting.PlotReporter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.reporting.PlotReporter

-
-
-class PlotReporter(name='plot_reporter')[source]
-

Bases: Reporter

-

A reporter to upload plots to a file store

-

Method generated by attrs for class PlotReporter.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_config

a test to see if the reporter should be used

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

subclasses

get all reporters of this type

upload

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

ext

identity

log_fmt

log_level

log_on

logger

name

slack_webhook_url

-
-
Parameters:
-

name (str)

-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-check_config()
-

a test to see if the reporter should be used

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-classmethod subclasses(out=None)
-

get all reporters of this type

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.Reporter.html b/docs/_build/html/_autosummary/engforge.reporting.Reporter.html deleted file mode 100644 index 006efc0..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.Reporter.html +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - engforge.reporting.Reporter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.reporting.Reporter

-
-
-class Reporter(name='reporter')[source]
-

Bases: LoggingMixin

-

A mixin intended

-

Method generated by attrs for class Reporter.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_config

a test to see if the reporter should be used

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

subclasses

get all reporters of this type

upload

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - -

name

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
Parameters:
-

name (str)

-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-check_config()[source]
-

a test to see if the reporter should be used

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-classmethod subclasses(out=None)[source]
-

get all reporters of this type

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.TableReporter.html b/docs/_build/html/_autosummary/engforge.reporting.TableReporter.html deleted file mode 100644 index 4f7a763..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.TableReporter.html +++ /dev/null @@ -1,358 +0,0 @@ - - - - - - - engforge.reporting.TableReporter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.reporting.TableReporter

-
-
-class TableReporter(name='table_reporter')[source]
-

Bases: Reporter

-

A reporter to upload dataframes to a table store

-

Method generated by attrs for class TableReporter.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_config

a test to see if the reporter should be used

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

subclasses

get all reporters of this type

upload

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

name

slack_webhook_url

-
-
Parameters:
-

name (str)

-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-check_config()
-

a test to see if the reporter should be used

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-classmethod subclasses(out=None)
-

get all reporters of this type

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.TemporalReporterMixin.html b/docs/_build/html/_autosummary/engforge.reporting.TemporalReporterMixin.html deleted file mode 100644 index f25c0a0..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.TemporalReporterMixin.html +++ /dev/null @@ -1,373 +0,0 @@ - - - - - - - engforge.reporting.TemporalReporterMixin — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.reporting.TemporalReporterMixin

-
-
-class TemporalReporterMixin(name='reporter')[source]
-

Bases: Reporter

-

Provide single or periodic keys

-

Method generated by attrs for class TemporalReporterMixin.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_config

a test to see if the reporter should be used

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

subclasses

get all reporters of this type

upload

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

date_key

identity

log_fmt

log_level

log_on

logger

month_key

name

report_root

define your keys!

slack_webhook_url

-
-
Parameters:
-

name (str)

-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-check_config()
-

a test to see if the reporter should be used

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-property report_root
-

define your keys!

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-classmethod subclasses(out=None)
-

get all reporters of this type

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.html b/docs/_build/html/_autosummary/engforge.reporting.html deleted file mode 100644 index 787f9e9..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - engforge.reporting — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.reporting

-

The set of reporters define an interface to report plots or tables

-

Functions

- - - - - - -

path_exist_validator

-

Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

CSVReporter

Method generated by attrs for class CSVReporter.

DiskPlotReporter

Method generated by attrs for class DiskPlotReporter.

DiskReporterMixin

Method generated by attrs for class DiskReporterMixin.

ExcelReporter

Method generated by attrs for class ExcelReporter.

GdriveReporter

Method generated by attrs for class GdriveReporter.

GsheetsReporter

Method generated by attrs for class GsheetsReporter.

PlotReporter

A reporter to upload plots to a file store

Reporter

A mixin intended

TableReporter

A reporter to upload dataframes to a table store

TemporalReporterMixin

Provide single or periodic keys

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.reporting.path_exist_validator.html b/docs/_build/html/_autosummary/engforge.reporting.path_exist_validator.html deleted file mode 100644 index d27e76e..0000000 --- a/docs/_build/html/_autosummary/engforge.reporting.path_exist_validator.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - engforge.reporting.path_exist_validator — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.reporting.path_exist_validator

-
-
-path_exist_validator(inst, attr, value)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solveable.SolvableLog.html b/docs/_build/html/_autosummary/engforge.solveable.SolvableLog.html deleted file mode 100644 index 2e37ef8..0000000 --- a/docs/_build/html/_autosummary/engforge.solveable.SolvableLog.html +++ /dev/null @@ -1,322 +0,0 @@ - - - - - - - engforge.solveable.SolvableLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solveable.SolvableLog

-
-
-class SolvableLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solveable.SolveableMixin.html b/docs/_build/html/_autosummary/engforge.solveable.SolveableMixin.html deleted file mode 100644 index ee4c325..0000000 --- a/docs/_build/html/_autosummary/engforge.solveable.SolveableMixin.html +++ /dev/null @@ -1,778 +0,0 @@ - - - - - - - engforge.solveable.SolveableMixin — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solveable.SolveableMixin

-
-
-class SolveableMixin(name='')[source]
-

Bases: AttributedBaseMixin

-

commonality for components,systems that identifies subsystems and states for solving.

-

This class defines the update structure of components and systems, and the storage of internal references to the system and its components. It also provides a method to iterate over the internal components and their references.

-

Importantly it defines the references to the system and its components, and the ability to set the system state from a dictionary of values across multiple objects. It also provides a method to iterate over the internal components and their references. There are several helper functions to these ends.

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

get_system_input_refs

Get the references to system input based on the specified criteria.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solvers_attributes

Lists all signals attributes for class

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

as_dict

returns values as they are in the class instance

attrs_fields

identity

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

logger

numeric_as_dict

numeric_hash

slack_webhook_url

unique_hash

parent

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)[source]
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)[source]
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)[source]
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)[source]
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)[source]
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)[source]
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)[source]
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)[source]
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)[source]
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)[source]
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)[source]
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod locate(key, fail=True)[source]
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)[source]
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-parse_run_kwargs(**kwargs)[source]
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)[source]
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-post_update(parent, *args, **kwargs)[source]
-

Kwargs comes from eval_kw in solver

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-system_references(recache=False, numeric_only=False, **kw)[source]
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)[source]
-

Kwargs comes from eval_kw in solver

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solveable.html b/docs/_build/html/_autosummary/engforge.solveable.html deleted file mode 100644 index 6ef0d1b..0000000 --- a/docs/_build/html/_autosummary/engforge.solveable.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - engforge.solveable — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver.SolverLog.html b/docs/_build/html/_autosummary/engforge.solver.SolverLog.html deleted file mode 100644 index 13a5cc2..0000000 --- a/docs/_build/html/_autosummary/engforge.solver.SolverLog.html +++ /dev/null @@ -1,322 +0,0 @@ - - - - - - - engforge.solver.SolverLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver.SolverLog

-
-
-class SolverLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver.SolverMixin.html b/docs/_build/html/_autosummary/engforge.solver.SolverMixin.html deleted file mode 100644 index f5216fa..0000000 --- a/docs/_build/html/_autosummary/engforge.solver.SolverMixin.html +++ /dev/null @@ -1,892 +0,0 @@ - - - - - - - engforge.solver.SolverMixin — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver.SolverMixin

-
-
-class SolverMixin(name='')[source]
-

Bases: SolveableMixin

-

A base class inherited by solveable items providing the ability to solve itself

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

eval

Evaluates the system with pre/post execute methodology :type kw: :param kw: kwargs come from sys_kw input in run ect.

execute

Solves the system's system of constraints and integrates transients if any exist

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

get_system_input_refs

Get the references to system input based on the specified criteria.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_run_callback

user callback for when run is complete

post_update

Kwargs comes from eval_kw in solver

pre_run_callback

user callback for when run is beginning

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

run

the steady state run the solver for the system.

run_internal_systems

runs internal systems with potentially scoped kwargs

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

solver

runs the system solver using the current system state and modifying it.

solver_vars

applies the default combo filter, and your keyword arguments to the collect_solver_refs to test the ref / vars creations

solvers_attributes

Lists all signals attributes for class

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

as_dict

returns values as they are in the class instance

attrs_fields

identity

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

log_fmt

log_level

log_on

logger

numeric_as_dict

numeric_hash

slack_webhook_url

solved

unique_hash

parent

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-eval(Xo=None, eval_kw=None, sys_kw=None, cb=None, **kw)[source]
-

Evaluates the system with pre/post execute methodology -:type kw: -:param kw: kwargs come from sys_kw input in run ect. -:type cb: -:param cb: an optional callback taking the system as an argument of the form (self,eval_kw,sys_kw,**kw)

-
-
Parameters:
-
    -
  • eval_kw (dict | None)

  • -
  • sys_kw (dict | None)

  • -
-
-
-
- -
-
-execute(**kw)[source]
-

Solves the system’s system of constraints and integrates transients if any exist

-

Override this function for custom solving functions, and call solver to use default solver functionality.

-
-
Returns:
-

the result of this function is returned from solver()

-
-
-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-post_run_callback(**kwargs)[source]
-

user callback for when run is complete

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-pre_run_callback(**kwargs)[source]
-

user callback for when run is beginning

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-run(**kwargs)[source]
-

the steady state run the solver for the system. It will run the system with the input vars and return the system with the results. Dynamics systems will be run so they are in a steady state nearest their initial position.

-
- -
-
-run_internal_systems(sys_kw=None)[source]
-

runs internal systems with potentially scoped kwargs

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-solver(enter_refresh=True, save_on_exit=True, **kw)[source]
-

runs the system solver using the current system state and modifying it. This is the default solver for the system, and it is recommended to add additional options or methods via the execute method.

-
-
Parameters:
-
    -
  • obj – the objective function to minimize, by default will minimize the sum of the squares of the residuals. Objective function should be a function(system,Xs,Xt) where Xs is the system state and Xt is the system transient state. The objective function will be argmin(X)|(1+custom_objective)*residual_RSS when add_obj is True in kw otherwise argmin(X)|custom_objective with constraints on the system as balances instead of first objective being included.

  • -
  • cons – the constraints to be used in the solver, by default will use the system’s constraints will be enabled when True. If a dictionary is passed the solver will use the dictionary as the constraints in addition to system constraints. These can be individually disabled by key=None in the dictionary.

  • -
  • X0 – the initial guess for the solver, by default will use the current system state. If a dictionary is passed the solver will use the dictionary as the initial guess in addition to the system state.

  • -
  • dXdt – can be 0 to indicate steady-state, or None to not run the transient constraints. Otherwise a partial dictionary of vars for the dynamics rates can be given, those not given will be assumed steady state or 0.

  • -
  • kw – additional options for the solver, such as the solver_option, or the solver method options. Described below

  • -
  • combos – a csv str or list of combos to include, including wildcards. the default means all combos will be run unless ign_combos or only combos alters behavior. The initial selection of combos is made by matching any case with the full name of the combo, or a parial name with a wildcard(s) in the combo name Ignore and only combos will further filter the selection. Wildcards / queries per fnmatch

  • -
  • ign_combos – a list of combo vars to ignore.

  • -
  • only_combos – a list of combo vars to include exclusively.

  • -
  • add_var – a csv str or variables to include, including wildcards. the default means all combos will be run unless ign_combos or only combos alters behavior. The initial selection of combos is made by matching any case with the full name of the combo, or a parial name with a wildcard(s) in the combo name Ignore and only combos will further filter the selection. Wildcards / queries per fnmatch

  • -
  • ign_var – a list of combo vars to ignore.

  • -
  • only_var – a list of combo vars to include exclusively.

  • -
  • add_obj – a flag to add the objective to the system constraints, by default will add the objective to the system constraints. If False the objective will be the only constraint.

  • -
  • only_active – default True, will only look at active variables objectives and constraints

  • -
  • activate – default None, a list of solver vars to activate

  • -
  • deactivate – default None, a list of solver vars to deactivate (if not activated above)

  • -
-
-
-
- -
-
-solver_vars(check_dynamics=True, addable=None, **kwargs)[source]
-

applies the default combo filter, and your keyword arguments to the collect_solver_refs to test the ref / vars creations

-

parses add_vars in kwargs to append to the collected solver vars -:param add_vars: can be a str, a list or a dictionary of variables: solver_instance kwargs. If a str or list the variable will be added with positive only constraints. If a dictionary is chosen, it can have keys as parameters, and itself have a subdictionary with keys: min / max, where each respective value is placed in the constraints list, which may be a callable(sys,prob) or numeric. If nothing is specified the default is min=0,max=None, ie positive only.

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver.html b/docs/_build/html/_autosummary/engforge.solver.html deleted file mode 100644 index 69349f9..0000000 --- a/docs/_build/html/_autosummary/engforge.solver.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - engforge.solver — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver

-

solver defines a SolverMixin for use by System.

-

Additionally the Solver attribute is defined to add complex behavior to a system as well as add constraints and transient integration.

-

### A general Solver Run Will Look Like: -0. run pre execute (signals=pre,both) -1. add execution context with **kwargument for the signals. -2. parse signals here (through a new Signals.parse_rtkwargs(**kw)) which will non destructively parse the signals and return all the signal candiates which are put into an ProblemExec object that resets the signals after the run depending on the revert behavior -3. the execute method will recieve this ProblemExec object where it can update the solver references / signals so that it can handle them per the signals api -4. with self.execution_context(**kwargs) as ctx_exe:

-
-

1. pre-update / signals -<FLEXIBLE_Exec>#self.execute(ctx_exe,**kwargs) -2. post-update / signals -> signals will be reset after the execute per the api

-
-
    -
  1. run post update

  2. -
  3. exit condition check via problem context input

  4. -
-

Classes

- - - - - - - - - -

SolverLog

Initialize a filter.

SolverMixin

A base class inherited by solveable items providing the ability to solve itself

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.SolverUtilLog.html b/docs/_build/html/_autosummary/engforge.solver_utils.SolverUtilLog.html deleted file mode 100644 index 1e0a987..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.SolverUtilLog.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - - - engforge.solver_utils.SolverUtilLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.SolverUtilLog

-
-
-class SolverUtilLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.arg_var_compare.html b/docs/_build/html/_autosummary/engforge.solver_utils.arg_var_compare.html deleted file mode 100644 index 93e00ea..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.arg_var_compare.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - engforge.solver_utils.arg_var_compare — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.arg_var_compare

-
-
-arg_var_compare(var, seq)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.combo_filter.html b/docs/_build/html/_autosummary/engforge.solver_utils.combo_filter.html deleted file mode 100644 index 92b9963..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.combo_filter.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - engforge.solver_utils.combo_filter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.combo_filter

-
-
-combo_filter(attr_name, var_name, solver_inst, extra_kw, combos=None)[source]
-
-
Return type:
-

bool

-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.create_constraint.html b/docs/_build/html/_autosummary/engforge.solver_utils.create_constraint.html deleted file mode 100644 index f62f4e0..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.create_constraint.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - engforge.solver_utils.create_constraint — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.create_constraint

-
-
-create_constraint(system, Xref, contype, ref, con_args=None, *args, **kwargs)[source]
-

creates a constraint with bounded solver input from a constraint definition in dictionary with type and value. If value is a function it will be evaluated with the extra arguments provided. If var is None, then the constraint is assumed to be not in reference to the system x vars, otherwise lookups are made to that var.

-

Creates F(x_solver:array) such that the current vars of system are reverted to after the function has returned, which is used directly by SciPy’s optimize.minimize

-
-
Parameters:
-

contype (str)

-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.ext_str_list.html b/docs/_build/html/_autosummary/engforge.solver_utils.ext_str_list.html deleted file mode 100644 index 7f6dd73..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.ext_str_list.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - engforge.solver_utils.ext_str_list — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.ext_str_list

-
-
-ext_str_list(extra_kw, key, default=None)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.f_lin_min.html b/docs/_build/html/_autosummary/engforge.solver_utils.f_lin_min.html deleted file mode 100644 index ab4267a..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.f_lin_min.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - engforge.solver_utils.f_lin_min — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.f_lin_min

-
-
-f_lin_min(system, prob, Xref, Yref, weights=None, *args, **kw)[source]
-

Creates an anonymous function with stored references to system, Yref, weights, that returns a scipy optimize friendly function of (x, Xref, *a, **kw) x which corresponds to the order of Xref dicts, and the other inputs are up to application.

-
-
Parameters:
-
    -
  • system – the system object

  • -
  • Xref – a dictionary of reference values for X

  • -
  • Yref – a dictionary of reference values for Y

  • -
  • weights – optional weights for Yref

  • -
  • args – additional positional arguments

  • -
  • kw – additional keyword arguments

  • -
-
-
Returns:
-

the anonymous function

-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.filt_active.html b/docs/_build/html/_autosummary/engforge.solver_utils.filt_active.html deleted file mode 100644 index 0f5d759..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.filt_active.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - engforge.solver_utils.filt_active — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.filt_active

-
-
-filt_active(var, inst, extra_kw=None, dflt=False)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.filter_combos.html b/docs/_build/html/_autosummary/engforge.solver_utils.filter_combos.html deleted file mode 100644 index e4766cb..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.filter_combos.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - engforge.solver_utils.filter_combos — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.filter_combos

-
-
-filter_combos(var, inst, extra_kw=None, combos_in=None)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.filter_vals.html b/docs/_build/html/_autosummary/engforge.solver_utils.filter_vals.html deleted file mode 100644 index 4c4b0d0..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.filter_vals.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - engforge.solver_utils.filter_vals — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.filter_vals

-
-
-filter_vals(var, inst, extra_kw=None)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.handle_normalize.html b/docs/_build/html/_autosummary/engforge.solver_utils.handle_normalize.html deleted file mode 100644 index 0127768..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.handle_normalize.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - engforge.solver_utils.handle_normalize — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.handle_normalize

-
-
-handle_normalize(norm, Xref, Yref)[source]
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.html b/docs/_build/html/_autosummary/engforge.solver_utils.html deleted file mode 100644 index 6422934..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - engforge.solver_utils — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.solver_utils

-

Functions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

arg_var_compare

combo_filter

create_constraint

creates a constraint with bounded solver input from a constraint definition in dictionary with type and value.

ext_str_list

f_lin_min

Creates an anonymous function with stored references to system, Yref, weights, that returns a scipy optimize friendly function of (x, Xref, *a, **kw) x which corresponds to the order of Xref dicts, and the other inputs are up to application.

filt_active

filter_combos

filter_vals

handle_normalize

objectify

converts a function f(system,slv_info:dict) into a function that safely changes states to the desired values and then runs the function.

ref_to_val_constraint

takes a var reference and a value and returns a function that can be used as a constraint for min/max cases.

refmin_solve

minimize the difference between two dictionaries of refernces, x references are changed in place, y will be solved to zero, options ensue for cases where the solution is not ideal

secondary_obj

modifies an objective function with a secondary function that is only considered when the primary function is minimized.

str_list_f

-

Classes

- - - - - - -

SolverUtilLog

Initialize a filter.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.objectify.html b/docs/_build/html/_autosummary/engforge.solver_utils.objectify.html deleted file mode 100644 index 1003087..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.objectify.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - engforge.solver_utils.objectify — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.objectify

-
-
-objectify(function, system, Xrefs, prob=None, *args, **kwargs)[source]
-

converts a function f(system,slv_info:dict) into a function that safely changes states to the desired values and then runs the function. A function is returend as f(x,*args,**kw)

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.ref_to_val_constraint.html b/docs/_build/html/_autosummary/engforge.solver_utils.ref_to_val_constraint.html deleted file mode 100644 index c5c314f..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.ref_to_val_constraint.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - engforge.solver_utils.ref_to_val_constraint — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.ref_to_val_constraint

-
-
-ref_to_val_constraint(system, ctx, Xrefs, var_ref, kind, val, contype='ineq', return_ref=False, *args, **kwargs)[source]
-

takes a var reference and a value and returns a function that can be used as a constraint for min/max cases. The function will be a function of the system and the info dictionary. The function will return the difference between the var value and the value.

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.refmin_solve.html b/docs/_build/html/_autosummary/engforge.solver_utils.refmin_solve.html deleted file mode 100644 index 79fa606..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.refmin_solve.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - engforge.solver_utils.refmin_solve — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.refmin_solve

-
-
-refmin_solve(system, prob, Xref, Yref, Xo=None, weights=None, ffunc=<function f_lin_min>, **kw)[source]
-

minimize the difference between two dictionaries of refernces, x references are changed in place, y will be solved to zero, options ensue for cases where the solution is not ideal

-
-
Parameters:
-
    -
  • Xref (dict) – dictionary of references to the x values, or independents

  • -
  • Yref (dict) – dictionary of references to the value of objectives to be minimized

  • -
  • Xo – initial guess for the x values as a list against Xref order, or a dictionary

  • -
  • weights (Optional[array]) – a dictionary of values to weights the x values by, list also ok as long as same length and order as Xref

  • -
  • reset – if the solution fails, reset the x values to their original state, if true will reset the x values to their original state on failure overiding doset.

  • -
  • doset – if the solution is successful, set the x values to the solution by default, otherwise follows reset, if not successful reset is checked first, then doset

  • -
-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.secondary_obj.html b/docs/_build/html/_autosummary/engforge.solver_utils.secondary_obj.html deleted file mode 100644 index b6318a1..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.secondary_obj.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - engforge.solver_utils.secondary_obj — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.secondary_obj

-
-
-secondary_obj(obj_f, system, Xrefs, normalize=None, base_func=<function f_lin_min>, *args, **kwargs)[source]
-

modifies an objective function with a secondary function that is only considered when the primary function is minimized.

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.solver_utils.str_list_f.html b/docs/_build/html/_autosummary/engforge.solver_utils.str_list_f.html deleted file mode 100644 index 0d82e8b..0000000 --- a/docs/_build/html/_autosummary/engforge.solver_utils.str_list_f.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - engforge.solver_utils.str_list_f — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.solver_utils.str_list_f

-
-
-str_list_f(out, sep=',')[source]
-
-
Parameters:
-

out (list)

-
-
-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system.System.html b/docs/_build/html/_autosummary/engforge.system.System.html deleted file mode 100644 index cc7576a..0000000 --- a/docs/_build/html/_autosummary/engforge.system.System.html +++ /dev/null @@ -1,1688 +0,0 @@ - - - - - - - engforge.system.System — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.system.System

-
-
-class System(*, name=NOTHING, parent=None, dynamic_input_vars=NOTHING, dynamic_state_vars=NOTHING, dynamic_output_vars=NOTHING)[source]
-

Bases: SolverMixin, SolveableInterface, PlottingMixin, GlobalDynamics

-

A system defines SlotS for Components, and data flow between them using SignalS

-

The system records all attribues to its subcomponents via system_references with scoped keys to references to set or get attributes, as well as observe system properties. These are cached upon first access in an instance.

-

The table is made up of these system references, allowing low overhead recording of systems with many variables.

-

When solving by default the run(revert=True) call will revert the system state to what it was before the system began.

-

Method generated by attrs for class System.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

clone

returns a clone of this system, often used to iterate the system without affecting the input values at the last convergence step.

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

create_dynamic_matricies

creates a dynamics object for the system

create_feedthrough_matrix

creates the input matrix for the system, called D

create_input_matrix

creates the input matrix for the system, called B

create_output_constants

creates the input matrix for the system, called O

create_output_matrix

creates the input matrix for the system, called C

create_state_constants

creates the input matrix for the system, called F

create_state_matrix

creates the state matrix for the system

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

determine_nearest_stationary_state

determine the nearest stationary state

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

eval

Evaluates the system with pre/post execute methodology :type kw: :param kw: kwargs come from sys_kw input in run ect.

execute

Solves the system's system of constraints and integrates transients if any exist

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

linear_output

simulate the system over the course of time.

linear_step

Optimal nonlinear steps

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

make_plots

makes plots and traces of all on this instance, and if a system is subsystems.

mark_all_comps_changed

mark all components as changed, useful for forcing a re-run of the system, or for marking data as saved

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

nonlinear_output

simulate the system over the course of time.

nonlinear_step

Optimal nonlinear steps

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_run_callback

user callback for when run is complete

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

pre_run_callback

user callback for when run is beginning

print_info

rate

simulate the system over the course of time.

rate_linear

simulate the system over the course of time.

rate_nonlinear

simulate the system over the course of time.

ref_dXdt

returns the reference to the time differential of the state

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

run

the steady state run the solver for the system.

run_internal_systems

runs internal systems with potentially scoped kwargs

set_attr

set_time

sets the time of the system and context

setattrs

sets attributes from a dictionary

setup_global_dynamics

recursively creates numeric matricies for the simulation

signals_attributes

Lists all signals attributes for class

sim_matrix

simulate the system over the course of time.

simulate

runs a simulation over the course of time, and returns a dataframe of the results.

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solver

runs the system solver using the current system state and modifying it.

solver_vars

applies the default combo filter, and your keyword arguments to the collect_solver_refs to test the ref / vars creations

solvers_attributes

Lists all signals attributes for class

step

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

update_dynamics

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

update_feedthrough

override

update_input

override

update_output_constants

override

update_output_matrix

override

update_state

override

update_state_constants

override

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Ut_ref

alias for input values

Xt_ref

alias for state values

Yt_ref

alias for output values

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

converged([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

dXtdt_ref

a dictionary of state var rates

dataframe_constants

dataframe_variants

displayname

dynamic_A

dynamic_B

dynamic_C

dynamic_D

dynamic_F

dynamic_K

dynamic_input

dynamic_input_vars

dynamic_output

dynamic_output_vars

dynamic_state

dynamic_state_vars

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

get the last context run, or the parent's

log_fmt

log_level

log_on

log_silo

logger

nonlinear

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

run_id([fget, fset, fdel, doc])

this property notifies the system this is a property to be tabulated in the dataframe output.

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

solved

static_A

static_B

static_C

static_D

static_F

static_K

stored_plots

system_id

returns an instance unique id based on id(self)

time

unique_hash

update_interval

parent

name

dataframe

-
-
Parameters:
-
    -
  • name (str)

  • -
  • parent (Component | System)

  • -
  • dynamic_input_vars (list)

  • -
  • dynamic_state_vars (list)

  • -
  • dynamic_output_vars (list)

  • -
-
-
-
-
-property Ut_ref
-

alias for input values

-
- -
-
-property Xt_ref
-

alias for state values

-
- -
-
-property Yt_ref
-

alias for output values

-
- -
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-clone()[source]
-

returns a clone of this system, often used to iterate the system without affecting the input values at the last convergence step.

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-create_dynamic_matricies(**kw)
-

creates a dynamics object for the system

-
- -
-
-create_feedthrough_matrix(**kwargs)
-

creates the input matrix for the system, called D

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_input_matrix(**kwargs)
-

creates the input matrix for the system, called B

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_constants(**kwargs)
-

creates the input matrix for the system, called O

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_output_matrix(**kwargs)
-

creates the input matrix for the system, called C

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_constants(**kwargs)
-

creates the input matrix for the system, called F

-
-
Return type:
-

ndarray

-
-
-
- -
-
-create_state_matrix(**kwargs)
-

creates the state matrix for the system

-
-
Return type:
-

ndarray

-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property dXtdt_ref
-

a dictionary of state var rates

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-determine_nearest_stationary_state(t=0, X=None, U=None)
-

determine the nearest stationary state

-
-
Return type:
-

ndarray

-
-
-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-eval(Xo=None, eval_kw=None, sys_kw=None, cb=None, **kw)
-

Evaluates the system with pre/post execute methodology -:type kw: -:param kw: kwargs come from sys_kw input in run ect. -:type cb: -:param cb: an optional callback taking the system as an argument of the form (self,eval_kw,sys_kw,**kw)

-
-
Parameters:
-
    -
  • eval_kw (dict | None)

  • -
  • sys_kw (dict | None)

  • -
-
-
-
- -
-
-execute(**kw)
-

Solves the system’s system of constraints and integrates transients if any exist

-

Override this function for custom solving functions, and call solver to use default solver functionality.

-
-
Returns:
-

the result of this function is returned from solver()

-
-
-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

get the last context run, or the parent’s

-
- -
-
-linear_output(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-linear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-make_plots(analysis=None, store_figures=True, pre=None)
-

makes plots and traces of all on this instance, and if a system is -subsystems. Analysis should call make plots however it can be called on a system as well -:type analysis: Analysis -:param analysis: the analysis that has triggered this plot -:param store_figure: a boolean or dict, if neither a dictionary will be created and returend from this function -:returns: the dictionary from store_figures logic

-
-
Parameters:
-
    -
  • analysis (Analysis)

  • -
  • store_figures (bool)

  • -
-
-
-
- -
-
-mark_all_comps_changed(inpt)[source]
-

mark all components as changed, useful for forcing a re-run of the system, or for marking data as saved

-
-
Parameters:
-

inpt (bool)

-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-nonlinear_output(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-nonlinear_step(t, dt, X, U=None, set_Y=False)
-

Optimal nonlinear steps

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_run_callback(**kwargs)
-

user callback for when run is complete

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-pre_run_callback(**kwargs)
-

user callback for when run is beginning

-
- -
-
-rate(t, dt, X, U, *args, **kwargs)
-

simulate the system over the course of time.

-
-
Parameters:
-
    -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
  • subsystems (bool, optional) – simulate subsystems. Defaults to True.

  • -
-
-
Returns:
-

tabulated data

-
-
Return type:
-

dataframe

-
-
-
- -
-
-rate_linear(t, dt, X, U=None)
-

simulate the system over the course of time. Return time differential of the state.

-
- -
-
-rate_nonlinear(t, dt, X, U=None, update=True)
-

simulate the system over the course of time. Return time differential of the state.

-
-
Parameters:
-
    -
  • t (float) – time

  • -
  • dt (float) – interval to integrate over in time

  • -
  • X (np.ndarray) – state input

  • -
  • U (np.ndarray) – control input

  • -
-
-
Returns:
-

time differential of the state

-
-
Return type:
-

np.array

-
-
-
- -
-
-ref_dXdt(name)
-

returns the reference to the time differential of the state

-
-
Parameters:
-

name (str)

-
-
-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-run(**kwargs)
-

the steady state run the solver for the system. It will run the system with the input vars and return the system with the results. Dynamics systems will be run so they are in a steady state nearest their initial position.

-
- -
-
-run_internal_systems(sys_kw=None)
-

runs internal systems with potentially scoped kwargs

-
- -
-
-set_time(t, system=True, subcomponents=True)
-

sets the time of the system and context

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-setup_global_dynamics(**kwargs)
-

recursively creates numeric matricies for the simulation

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-sim_matrix(eval_kw=None, sys_kw=None, **kwargs)
-

simulate the system over the course of time. -return a dictionary of dataframes

-
- -
-
-simulate(dt, endtime, X0=None, cb=None, eval_kw=None, sys_kw=None, min_kw=None, run_solver=False, return_system=False, return_data=False, return_all=False, debug_fail=False, **kwargs)
-

runs a simulation over the course of time, and returns a dataframe of the results.

-

A copy of this system is made, and the simulation is run on the copy, so as to not affect the state of the original system.

-

#TODO:

-
-
Return type:
-

DataFrame

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-solver(enter_refresh=True, save_on_exit=True, **kw)
-

runs the system solver using the current system state and modifying it. This is the default solver for the system, and it is recommended to add additional options or methods via the execute method.

-
-
Parameters:
-
    -
  • obj – the objective function to minimize, by default will minimize the sum of the squares of the residuals. Objective function should be a function(system,Xs,Xt) where Xs is the system state and Xt is the system transient state. The objective function will be argmin(X)|(1+custom_objective)*residual_RSS when add_obj is True in kw otherwise argmin(X)|custom_objective with constraints on the system as balances instead of first objective being included.

  • -
  • cons – the constraints to be used in the solver, by default will use the system’s constraints will be enabled when True. If a dictionary is passed the solver will use the dictionary as the constraints in addition to system constraints. These can be individually disabled by key=None in the dictionary.

  • -
  • X0 – the initial guess for the solver, by default will use the current system state. If a dictionary is passed the solver will use the dictionary as the initial guess in addition to the system state.

  • -
  • dXdt – can be 0 to indicate steady-state, or None to not run the transient constraints. Otherwise a partial dictionary of vars for the dynamics rates can be given, those not given will be assumed steady state or 0.

  • -
  • kw – additional options for the solver, such as the solver_option, or the solver method options. Described below

  • -
  • combos – a csv str or list of combos to include, including wildcards. the default means all combos will be run unless ign_combos or only combos alters behavior. The initial selection of combos is made by matching any case with the full name of the combo, or a parial name with a wildcard(s) in the combo name Ignore and only combos will further filter the selection. Wildcards / queries per fnmatch

  • -
  • ign_combos – a list of combo vars to ignore.

  • -
  • only_combos – a list of combo vars to include exclusively.

  • -
  • add_var – a csv str or variables to include, including wildcards. the default means all combos will be run unless ign_combos or only combos alters behavior. The initial selection of combos is made by matching any case with the full name of the combo, or a parial name with a wildcard(s) in the combo name Ignore and only combos will further filter the selection. Wildcards / queries per fnmatch

  • -
  • ign_var – a list of combo vars to ignore.

  • -
  • only_var – a list of combo vars to include exclusively.

  • -
  • add_obj – a flag to add the objective to the system constraints, by default will add the objective to the system constraints. If False the objective will be the only constraint.

  • -
  • only_active – default True, will only look at active variables objectives and constraints

  • -
  • activate – default None, a list of solver vars to activate

  • -
  • deactivate – default None, a list of solver vars to deactivate (if not activated above)

  • -
-
-
-
- -
-
-solver_vars(check_dynamics=True, addable=None, **kwargs)
-

applies the default combo filter, and your keyword arguments to the collect_solver_refs to test the ref / vars creations

-

parses add_vars in kwargs to append to the collected solver vars -:param add_vars: can be a str, a list or a dictionary of variables: solver_instance kwargs. If a str or list the variable will be added with positive only constraints. If a dictionary is chosen, it can have keys as parameters, and itself have a subdictionary with keys: min / max, where each respective value is placed in the constraints list, which may be a callable(sys,prob) or numeric. If nothing is specified the default is min=0,max=None, ie positive only.

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)[source]
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-update_dynamics(t, X, U)
-

Updates dynamics when nonlinear is enabled, otherwise it will do nothing

-
- -
-
-update_feedthrough(t, D, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_input(t, B, X, U)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_constants(t, O, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_output_matrix(t, C, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state(t, A, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-update_state_constants(t, F, X)
-

override

-
-
Return type:
-

ndarray

-
-
-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system.SystemsLog.html b/docs/_build/html/_autosummary/engforge.system.SystemsLog.html deleted file mode 100644 index db49813..0000000 --- a/docs/_build/html/_autosummary/engforge.system.SystemsLog.html +++ /dev/null @@ -1,322 +0,0 @@ - - - - - - - engforge.system.SystemsLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.system.SystemsLog

-
-
-class SystemsLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system.html b/docs/_build/html/_autosummary/engforge.system.html deleted file mode 100644 index bab63ca..0000000 --- a/docs/_build/html/_autosummary/engforge.system.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - engforge.system — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.system

-

A System is a Configuration that orchestrates dataflow between components, as well as solving systems of equations in the presense of limits, as well as formatting results of each Component into reporting ready dataframe. System’s solver behavior is inspired by NASA’s numerical propulsion simulation system (NPSS) to solve systems of inequalities in complex systems.

-
-
Component or other subsystems are added to a System class with Slots:

``` -class CustomSystem(System):

-
-

slot_name = Slot.define(Component,ComponentSubclass,System)

-
-

```

-
-
Component’s data flow is established via SignalS that are defined:

``` -class CustomSystem(System):

-
-

signal_name = Signal.define(source_attr_or_property, target_attr) -control_signal = Signal.define(source_attr_or_property, target_attr,control_with=’system.attr or slot.attr`)

-
-

``` -- source_attr: can reference a locally defined slot attribute (a la attr’s fields) or any locally defined slot system property -- target_attr: must be a locally defined slot attribute or system attribute.

-
-
-

update description to include solver

-

A system calculates its state upon calling System.run(). This executes pre_execute() first which will directly update any attributes based on their Signal definition between Slot components. Once convergence is reached target_attr’s are updated in post_execute() for cyclic SignalS.

-

If the system encounters a subsystem in its solver routine, the subsystem is evald() and its results used as static in that iteration,ie it isn’t included in the system level dependents if cyclic references are found.

-

The solver uses the root or cobla scipy optimizer results on quick references to internal component references. Upon solving the system

-

SignalS can be limited with constrains via min or max values on NumericProperty which can be numeric values (int or float) or functions taking one argument of the component it is defined on. Additionally signals may take arguments of min or max which are numeric values or callbacks which take the system instance as an argument.

-

Classes

- - - - - - - - - -

System

A system defines SlotS for Components, and data flow between them using SignalS

SystemsLog

Initialize a filter.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system_reference.Ref.html b/docs/_build/html/_autosummary/engforge.system_reference.Ref.html deleted file mode 100644 index a30406b..0000000 --- a/docs/_build/html/_autosummary/engforge.system_reference.Ref.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - engforge.system_reference.Ref — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.system_reference.Ref

-
-
-class Ref(comp, key, use_call=True, allow_set=True, eval_f=None)[source]
-

Bases: object

-

A way to create portable references to system’s and their component’s properties, ref can also take a key to a zero argument function which will be evald. This is useful for creating an adhoc optimization problems dynamically between variables. However use must be carefully controlled to avoid circular references, and understanding the safe use of the refset_input and refset_get methods (changing state on actual system).

-

A dictionary can be used as a component, and the key will be used to access the value in the dictionary.

-

The key can be a callable of (*args,**kw) only in which case Ref.value(*args,**kw) will take input, and the ref will be evaluated as the result of the callable (allow_set=False), this renders the component unused, and disables the ability to set the value of the reference.

-

The ability to set this ref with another on key input allows for creating a reference that is identical to another reference except for the component provided if it is not None.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - -

copy

copy the reference, and make changes to the copy

refset_get

refset_input

change a set of refs with a dictionary of values.

set

set_value

setup_calls

caches anonymous functions for value and logging speedup

value

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

comp

key

use_call

use_dict

allow_set

eval_f

key_override

hxd

-
-
-copy(**changes)[source]
-

copy the reference, and make changes to the copy

-
- -
-
-refset_input(delta_dict, chk=True, fail=True, warn=True)
-

change a set of refs with a dictionary of values. If chk is True k will be checked for membership in refs

-
- -
-
-setup_calls()[source]
-

caches anonymous functions for value and logging speedup

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system_reference.RefLog.html b/docs/_build/html/_autosummary/engforge.system_reference.RefLog.html deleted file mode 100644 index b7cfae1..0000000 --- a/docs/_build/html/_autosummary/engforge.system_reference.RefLog.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - - - engforge.system_reference.RefLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.system_reference.RefLog

-
-
-class RefLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system_reference.eval_ref.html b/docs/_build/html/_autosummary/engforge.system_reference.eval_ref.html deleted file mode 100644 index a759d10..0000000 --- a/docs/_build/html/_autosummary/engforge.system_reference.eval_ref.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - engforge.system_reference.eval_ref — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system_reference.html b/docs/_build/html/_autosummary/engforge.system_reference.html deleted file mode 100644 index bad54b0..0000000 --- a/docs/_build/html/_autosummary/engforge.system_reference.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - engforge.system_reference — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.system_reference

-

Module to define the Ref class and utility methods for working with it.

-

Ref’s are designed to create adhoc links between the systems & components of the system, and their properties. This is useful for creating optimization problems, and for creating dynamic links between the state and properties of the system. Care must be used on the component objects changing of state, the recommened procedure is to copy your base system to prevent hysterisis and other issues, then push/pop X values through the optimization methods and change state upon success

-

Ref.component can be a Component,System or dictionary for referencing via keyword. Ref.key can be a string or a callable, if callable the ref will be evaluated as the result of the callable (allow_set=False), this renders the component unused, and disables the ability to set the value of the reference.

-

Functions

- - - - - - - - - - - - - - - - - - - - - -

eval_ref

maybe_attr_inst

returns the ref if is one otherwise convert it, otherwise returns the value

maybe_ref

returns the value of a ref if it is a ref, otherwise returns the value

refset_get

refset_input

change a set of refs with a dictionary of values.

scale_val

-

Classes

- - - - - - - - - -

Ref

A way to create portable references to system's and their component's properties, ref can also take a key to a zero argument function which will be evald.

RefLog

Initialize a filter.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system_reference.maybe_attr_inst.html b/docs/_build/html/_autosummary/engforge.system_reference.maybe_attr_inst.html deleted file mode 100644 index e346b8e..0000000 --- a/docs/_build/html/_autosummary/engforge.system_reference.maybe_attr_inst.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - engforge.system_reference.maybe_attr_inst — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.system_reference.maybe_attr_inst

-
-
-maybe_attr_inst(can, astype=None)[source]
-

returns the ref if is one otherwise convert it, otherwise returns the value

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system_reference.maybe_ref.html b/docs/_build/html/_autosummary/engforge.system_reference.maybe_ref.html deleted file mode 100644 index 5de576b..0000000 --- a/docs/_build/html/_autosummary/engforge.system_reference.maybe_ref.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - engforge.system_reference.maybe_ref — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.system_reference.maybe_ref

-
-
-maybe_ref(can, astype=None, mult=None, bias=None, power=None, *args, **kw)[source]
-

returns the value of a ref if it is a ref, otherwise returns the value

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system_reference.refset_get.html b/docs/_build/html/_autosummary/engforge.system_reference.refset_get.html deleted file mode 100644 index 15c9061..0000000 --- a/docs/_build/html/_autosummary/engforge.system_reference.refset_get.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - engforge.system_reference.refset_get — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system_reference.refset_input.html b/docs/_build/html/_autosummary/engforge.system_reference.refset_input.html deleted file mode 100644 index 448830e..0000000 --- a/docs/_build/html/_autosummary/engforge.system_reference.refset_input.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - engforge.system_reference.refset_input — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.system_reference.refset_input

-
-
-refset_input(refs, delta_dict, chk=True, fail=True, warn=True)[source]
-

change a set of refs with a dictionary of values. If chk is True k will be checked for membership in refs

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.system_reference.scale_val.html b/docs/_build/html/_autosummary/engforge.system_reference.scale_val.html deleted file mode 100644 index 64ec858..0000000 --- a/docs/_build/html/_autosummary/engforge.system_reference.scale_val.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - engforge.system_reference.scale_val — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.tabulation.TableLog.html b/docs/_build/html/_autosummary/engforge.tabulation.TableLog.html deleted file mode 100644 index c83914a..0000000 --- a/docs/_build/html/_autosummary/engforge.tabulation.TableLog.html +++ /dev/null @@ -1,322 +0,0 @@ - - - - - - - engforge.tabulation.TableLog — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.tabulation.TableLog

-
-
-class TableLog(name='')[source]
-

Bases: LoggingMixin

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

installSTDLogger

We only want std logging to start

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

slack_notification

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - -

identity

log_fmt

log_level

log_on

logger

slack_webhook_url

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.tabulation.TabulationMixin.html b/docs/_build/html/_autosummary/engforge.tabulation.TabulationMixin.html deleted file mode 100644 index 533d479..0000000 --- a/docs/_build/html/_autosummary/engforge.tabulation.TabulationMixin.html +++ /dev/null @@ -1,879 +0,0 @@ - - - - - - - engforge.tabulation.TabulationMixin — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.tabulation.TabulationMixin

-
-
-class TabulationMixin(name='')[source]
-

Bases: SolveableMixin, DataframeMixin

-

In which we define a class that can enable tabulation

-

Initialize a filter.

-

Initialize with the name of the logger which, together with its -children, will have its events allowed through the filter. If no -name is specified, allow every event.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_update

Kwargs comes from eval_kw in solver

pre_compile

print_info

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

set_attr

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe([fget, fset, fdel, doc])

A property that updates a first time and then anytime time the input data changed, as signaled by attrs.on_setattr callback

dataframe_constants

dataframe_variants

identity

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

Returns the last context

log_fmt

log_level

log_on

logger

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

system_id

returns an instance unique id based on id(self)

unique_hash

parent

-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

Returns the last context

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)[source]
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.tabulation.html b/docs/_build/html/_autosummary/engforge.tabulation.html deleted file mode 100644 index 4d24e2f..0000000 --- a/docs/_build/html/_autosummary/engforge.tabulation.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - engforge.tabulation — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

engforge.tabulation

-

Tabulation Module:

-

Incrementally records attrs input values and system_properties per save_data() call.

-

save_data() is called after item.eval() is called.

-

Classes

- - - - - - - - - -

TableLog

Initialize a filter.

TabulationMixin

In which we define a class that can enable tabulation

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.typing.NUMERIC_NAN_VALIDATOR.html b/docs/_build/html/_autosummary/engforge.typing.NUMERIC_NAN_VALIDATOR.html deleted file mode 100644 index f839d2a..0000000 --- a/docs/_build/html/_autosummary/engforge.typing.NUMERIC_NAN_VALIDATOR.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - engforge.typing.NUMERIC_NAN_VALIDATOR — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.typing.NUMERIC_VALIDATOR.html b/docs/_build/html/_autosummary/engforge.typing.NUMERIC_VALIDATOR.html deleted file mode 100644 index 2ab6f81..0000000 --- a/docs/_build/html/_autosummary/engforge.typing.NUMERIC_VALIDATOR.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - engforge.typing.NUMERIC_VALIDATOR — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.typing.Options.html b/docs/_build/html/_autosummary/engforge.typing.Options.html deleted file mode 100644 index 127def1..0000000 --- a/docs/_build/html/_autosummary/engforge.typing.Options.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - engforge.typing.Options — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.typing.Options

-
-
-Options(*choices, **kwargs)[source]
-

creates an attrs field with validated choices on init and setattr -:type choices: -:param choices: a list of choices that are validated on input, the first becoming the default unless it is passed in kwargs -:type kwargs: -:param kwargs: keyword args passed to attrs field

-
- -
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.typing.STR_VALIDATOR.html b/docs/_build/html/_autosummary/engforge.typing.STR_VALIDATOR.html deleted file mode 100644 index 8976855..0000000 --- a/docs/_build/html/_autosummary/engforge.typing.STR_VALIDATOR.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - engforge.typing.STR_VALIDATOR — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/engforge.typing.html b/docs/_build/html/_autosummary/engforge.typing.html deleted file mode 100644 index ed6040b..0000000 --- a/docs/_build/html/_autosummary/engforge.typing.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - engforge.typing — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

engforge.typing

-

Functions

- - - - - - - - - - - - - - - -

NUMERIC_NAN_VALIDATOR

NUMERIC_VALIDATOR

Options

creates an attrs field with validated choices on init and setattr :type choices: :param choices: a list of choices that are validated on input, the first becoming the default unless it is passed in kwargs :type kwargs: :param kwargs: keyword args passed to attrs field

STR_VALIDATOR

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/examples.air_filter.html b/docs/_build/html/_autosummary/examples.air_filter.html deleted file mode 100644 index 03ebee3..0000000 --- a/docs/_build/html/_autosummary/examples.air_filter.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - examples.air_filter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

examples.air_filter

-

Classes

- - - - - - - - - - - - - - - -

Airfilter(*[, name, fan, filt, parent, ...])

Method generated by attrs for class Airfilter.

AirfilterAnalysis(*[, name, ...])

Does post processing on a system

Fan(*[, name, parent, n_frac, dp_design, ...])

Method generated by attrs for class Fan.

Filter(*[, name, parent, w, k_loss])

Method generated by attrs for class Filter.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/examples.html b/docs/_build/html/_autosummary/examples.html deleted file mode 100644 index 6ac444e..0000000 --- a/docs/_build/html/_autosummary/examples.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - examples — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - -
  • -
  • -
-
-
-
-
- -
-

examples

-

Modules

- - - - - - - - - -

air_filter

spring_mass

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/examples.spring_mass.html b/docs/_build/html/_autosummary/examples.spring_mass.html deleted file mode 100644 index 97231cb..0000000 --- a/docs/_build/html/_autosummary/examples.spring_mass.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - examples.spring_mass — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

examples.spring_mass

-

Classes

- - - - - - -

SpringMass(*[, name, parent, ...])

Method generated by attrs for class SpringMass.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.html b/docs/_build/html/_autosummary/test.html deleted file mode 100644 index 89730fc..0000000 --- a/docs/_build/html/_autosummary/test.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - test — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - -
  • -
  • -
-
-
-
-
- -
-

test

-

Modules

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

test_airfilter

tests airfilter system operation by solving for airflow between filter and and fan

test_comp_iter

test_composition

test_costs

Testing of costs reporting module - emphasis on recursive testing w/o double accounting on instance basis (id!) - emphasis on default / subclass adjustments

test_dynamics

test transient cases and match against real world results

test_dynamics_spaces

test_four_bar

test_modules

test_performance

test_pipes

test_problem_deepscoping

test_slider_crank

test_solver

test_tabulation

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_airfilter.html b/docs/_build/html/_autosummary/test.test_airfilter.html deleted file mode 100644 index 1fa73b3..0000000 --- a/docs/_build/html/_autosummary/test.test_airfilter.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - test.test_airfilter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_airfilter

-

tests airfilter system operation by solving for airflow between filter and and fan

-

Classes

- - - - - - - - - -

TestAnalysis([methodName])

Create an instance of the class that will use the named test method when executed.

TestFilterSystem([methodName])

Create an instance of the class that will use the named test method when executed.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_comp_iter.html b/docs/_build/html/_autosummary/test.test_comp_iter.html deleted file mode 100644 index b6d3b9f..0000000 --- a/docs/_build/html/_autosummary/test.test_comp_iter.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - test.test_comp_iter — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_comp_iter

-

Classes

- - - - - - - - - - - - - - - - - - - - - - - - -

DictComp(*[, name, parent, current_item, ...])

Method generated by attrs for class DictComp.

ListComp(*[, name, parent, current_item, ...])

Method generated by attrs for class ListComp.

NarrowSystem(*[, name, cdict, citer, ...])

Method generated by attrs for class NarrowSystem.

TestConfig(*[, name, parent, attrs_prop, ...])

Method generated by attrs for class TestConfig.

TestNarrow([methodName])

Create an instance of the class that will use the named test method when executed.

TestWide([methodName])

Create an instance of the class that will use the named test method when executed.

WideSystem(*[, name, cdict, citer, parent, ...])

Method generated by attrs for class WideSystem.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_composition.html b/docs/_build/html/_autosummary/test.test_composition.html deleted file mode 100644 index edfd560..0000000 --- a/docs/_build/html/_autosummary/test.test_composition.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - test.test_composition — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_composition

-

Functions

- - - - - - -

limit_max(system, prb)

-

Classes

- - - - - - - - - - - - -

MockComponent(*[, name, comp, parent, ...])

Method generated by attrs for class MockComponent.

MockSystem(*[, name, comp, parent, ...])

Method generated by attrs for class MockSystem.

TestComposition([methodName])

Create an instance of the class that will use the named test method when executed.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_costs.html b/docs/_build/html/_autosummary/test.test_costs.html deleted file mode 100644 index 3fa3dec..0000000 --- a/docs/_build/html/_autosummary/test.test_costs.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - test.test_costs — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_costs

-

Testing of costs reporting module -- emphasis on recursive testing w/o double accounting on instance basis (id!) -- emphasis on default / subclass adjustments

-

Classes

- - - - - - - - - - - - - - - - - - -

TestCategoriesAndTerms([methodName])

Create an instance of the class that will use the named test method when executed.

TestCostModel([methodName])

Create an instance of the class that will use the named test method when executed.

TestEconDefaults([methodName])

Create an instance of the class that will use the named test method when executed.

TestEconomicsAccounting([methodName])

Create an instance of the class that will use the named test method when executed.

TestFanSystemDataFrame([methodName])

Create an instance of the class that will use the named test method when executed.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_dynamics.html b/docs/_build/html/_autosummary/test.test_dynamics.html deleted file mode 100644 index 6d46211..0000000 --- a/docs/_build/html/_autosummary/test.test_dynamics.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - test.test_dynamics — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_dynamics

-

test transient cases and match against real world results

-

Functions

- - - - - - - - - - - - - - - -

f(x, t, y)

fit(t, a, b, w)

jac(t, a, b, w)

ls(x, t, y)

-

Classes

- - - - - - -

TestDynamics([methodName])

Create an instance of the class that will use the named test method when executed.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_dynamics_spaces.html b/docs/_build/html/_autosummary/test.test_dynamics_spaces.html deleted file mode 100644 index 426b969..0000000 --- a/docs/_build/html/_autosummary/test.test_dynamics_spaces.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - test.test_dynamics_spaces — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_dynamics_spaces

-

Classes

- - - - - - -

TestDynamics([methodName])

Create an instance of the class that will use the named test method when executed.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_four_bar.html b/docs/_build/html/_autosummary/test.test_four_bar.html deleted file mode 100644 index 2922601..0000000 --- a/docs/_build/html/_autosummary/test.test_four_bar.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - test.test_four_bar — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_four_bar

-

Classes

- - - - - - -

FourBar(*[, name, parent, ...])

Method generated by attrs for class FourBar.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_modules.html b/docs/_build/html/_autosummary/test.test_modules.html deleted file mode 100644 index 4ef7fff..0000000 --- a/docs/_build/html/_autosummary/test.test_modules.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - test.test_modules — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_modules

-

Classes

- - - - - - -

ImportTest([methodName])

We test the compilation of all included modules

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_performance.html b/docs/_build/html/_autosummary/test.test_performance.html deleted file mode 100644 index 569e04d..0000000 --- a/docs/_build/html/_autosummary/test.test_performance.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - test.test_performance — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_performance

-

Functions

- - - - - - - - - -

eval_steady_state([dxdt])

test that the ss answer is equal to the result with damping

eval_transient([endtime, dt, run_solver])

test that the ss answer is equal to the result with damping

-

Classes

- - - - - - - - - -

PerfTest([name])

Initialize a filter.

TestPerformance([methodName])

Create an instance of the class that will use the named test method when executed.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_pipes.html b/docs/_build/html/_autosummary/test.test_pipes.html deleted file mode 100644 index bd392a0..0000000 --- a/docs/_build/html/_autosummary/test.test_pipes.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - test.test_pipes — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_pipes

-

Classes

- - - - - - -

TestPipes([methodName])

Create an instance of the class that will use the named test method when executed.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_problem_deepscoping.html b/docs/_build/html/_autosummary/test.test_problem_deepscoping.html deleted file mode 100644 index 899347c..0000000 --- a/docs/_build/html/_autosummary/test.test_problem_deepscoping.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - test.test_problem_deepscoping — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_problem_deepscoping

-

Functions

- - - - - - - - - - - - -

test_con(sys, prob)

test_obj(sys, prob)

test_zero(sys, prob)

-

Classes

- - - - - - - - - - - - - - - -

DeepComp(*[, name, comp, parent, val, comp_val])

Method generated by attrs for class DeepComp.

DeepSys(*[, name, comp, parent, ...])

Method generated by attrs for class DeepSys.

TestComp(*[, name, parent, val, comp_val])

Method generated by attrs for class TestComp.

TestDeep([methodName])

Create an instance of the class that will use the named test method when executed.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_slider_crank.html b/docs/_build/html/_autosummary/test.test_slider_crank.html deleted file mode 100644 index 365d0e8..0000000 --- a/docs/_build/html/_autosummary/test.test_slider_crank.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - test.test_slider_crank — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_slider_crank

-

Classes

- - - - - - -

TestSliderCrank([methodName])

Create an instance of the class that will use the named test method when executed.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_solver.html b/docs/_build/html/_autosummary/test.test_solver.html deleted file mode 100644 index abc3bbc..0000000 --- a/docs/_build/html/_autosummary/test.test_solver.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - test.test_solver — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_solver

-

Classes

- - - - - - - - - -

SingleCompSolverTest([methodName])

Create an instance of the class that will use the named test method when executed.

SolverRefSelection([methodName])

Create an instance of the class that will use the named test method when executed.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_autosummary/test.test_tabulation.html b/docs/_build/html/_autosummary/test.test_tabulation.html deleted file mode 100644 index 2808fcf..0000000 --- a/docs/_build/html/_autosummary/test.test_tabulation.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - test.test_tabulation — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -
-

test.test_tabulation

-

Classes

- - - - - - - - - - - - - - - -

Static(*[, name, parent, ...])

Method generated by attrs for class Static.

Test([methodName])

Create an instance of the class that will use the named test method when executed.

TestConfig(*[, name, parent, ...])

Method generated by attrs for class TestConfig.

TestStatic([methodName])

Create an instance of the class that will use the named test method when executed.

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_config.yml b/docs/_build/html/_config.yml deleted file mode 100644 index 72f81eb..0000000 --- a/docs/_build/html/_config.yml +++ /dev/null @@ -1,3 +0,0 @@ -theme: jekyll-theme-slate -title: Engforge -description: The Engineers Framework \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/analysis.html b/docs/_build/html/_modules/engforge/analysis.html deleted file mode 100644 index 0aa5633..0000000 --- a/docs/_build/html/_modules/engforge/analysis.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - - engforge.analysis — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.analysis

-import attr
-from engforge.configuration import forge, Configuration
-from engforge.components import Component
-from engforge.tabulation import TabulationMixin, DataframeMixin
-from engforge.system import System
-from engforge.typing import *
-from engforge.reporting import *
-from engforge.attr_plotting import PlottingMixin
-
-
-# import datetime
-import os
-from uuid import uuid4
-
-import random
-import attrs
-
-from contextlib import contextmanager
-import inspect
-
-import matplotlib.pylab as pylab
-
-list_check = attrs.validators.instance_of(list)
-
-
-
-[docs] -def make_reporter_check(type_to_check): - def reporter_type_check(inst, attr, value): - if not isinstance(value, list): - raise ValueError("must be a list!") - - if not all([isinstance(v, type_to_check) for v in value]): - raise ValueError("must be a list of type {value.__name__}!") - - return reporter_type_check
- - - -
-[docs] -@forge -class Analysis(Configuration, TabulationMixin, PlottingMixin, DataframeMixin): - """Analysis takes a system and many reporters, runs the system, adds its own system properties to the dataframe and post processes the results - - make_plots() makes plots from the analysis, and stores figure - post_process() but can be overriden - report_results() writes to reporters - """ - - # TODO: generate pdf with tables ect. - - system: System = attrs.field() - table_reporters: list = attrs.field( - factory=list, validator=make_reporter_check(TableReporter) - ) - plot_reporters: list = attrs.field( - factory=list, validator=make_reporter_check(PlotReporter) - ) - - _stored_plots: dict = attrs.field(factory=dict) - _uploaded = False - - show_plots: bool = attrs.field(default=True) - - @property - def uploaded(self): - return self._uploaded - - -
-[docs] - def run(self, *args, **kwargs): - """Analysis.run() passes inputs to the assigned system and saves data via the system.run(cb=callback), once complete `Analysis.post_process()` is run also being passed input arguments, then plots & reports are made""" - self.info( - f"running analysis {self.identity} with input {args} {kwargs}" - ) - cb = lambda *args, **kw: self.system.last_context.save_data(force=True) - out = self.system.run(*args, **kwargs, cb=cb) - self.post_process(*args, **kwargs) - - self._stored_plots = {} - self.make_plots(analysis=self, store_figures=self._stored_plots) - self.report_results()
- - -
-[docs] - def post_process(self, *args, **kwargs): - """A user customizeable function""" - pass
- - - def report_results(self): - self.info(f"report results") - - for tbl_reporter in self.table_reporters: - try: - tbl_reporter.upload(self) - except Exception as e: - self.error(e, "issue in {tbl_reporter}") - - for plt_reporter in self.plot_reporters: - try: - plt_reporter.upload(self) - except Exception as e: - self.error(e, "issue in {plt_reporter}") - - if self.show_plots: - self.info(f"showing plots {len(self.stored_plots)}") - for figkey, fig in self.stored_plots.items(): - self.info(f"showing {figkey}") - try: - fig.show() - except Exception as e: - self.error(e, f"issue showing {figkey}") - - self._uploaded = True - - @property - def dataframe(self): - # TODO: join with analysis dataframe - return self.system.dataframe
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Plotting & Report Methods: - - -# @property -# def _report_path(self): -# """Add some name options that work into ClientInfoMixin""" -# -# if ( -# self.namepath_mode == "both" -# and self.mode == "iterator" -# and isinstance(self.component_iterator, Component) -# ): -# return os.path.join( -# self.namepath_root, -# f"{self.name}", -# f"{self.component_iterator.name}", -# ) -# elif ( -# self.namepath_mode == "iterator" -# and self.mode == "iterator" -# and isinstance(self.component_iterator, Component) -# ): -# return os.path.join( -# self.namepath_root, f"{self.component_iterator.name}" -# ) -# else: -# if self.name != "default": -# return os.path.join( -# self.namepath_root, f"{self.classname.lower()}_{self.name}" -# ) -# return os.path.join(self.namepath_root, f"{self.classname.lower()}") - -# @property -# def component_iterator(self) -> ComponentIterator: -# """Override me!""" -# return self.iterator - -# def post_process(self): -# """override me!""" -# pass -# -# def reset_analysis(self): -# self.reset_data() -# self._solved = False -# self.run_id = None - -# def gsync_results(self, filename="Analysis", meta_tags=None): -# """Syncs All Variable Tables To The Cloud""" -# with self.drive.context( -# filepath_root=self.local_sync_path, sync_root=self.cloud_sync_path -# ) as gdrive: -# with self.drive.rate_limit_manager( -# self.gsync_results, 6, filename=filename, meta_tags=meta_tags -# ): -# old_sleep = gdrive._sleep_time -# gdrive.reset_sleep_time(max(old_sleep, 1.0)) -# -# gpath = gdrive.sync_path(self.local_sync_path) -# -# self.debug(f"saving as gsheets {gpath}") -# parent_id = gdrive.get_gpath_id(gpath) -# # TODO: delete old file if exists -# -# gdrive.sleep(12 * random.random()) -# -# gdrive.cache_directory(parent_id) -# gdrive.sleep() -# -# # Remove items with same name in parent dir -# parent = gdrive.item_nodes[parent_id] -# parent.remove_contents_with_title(filename) -# -# df = self.joined_dataframe -# -# # Make the new sheet -# sht = gdrive.gsheets.create(filename, folder=parent_id) -# gdrive.sleep(2 * (1 + gdrive.time_fuzz * random.random())) -# -# wk = sht.add_worksheet(filename) -# gdrive.sleep(2 * (1 + gdrive.time_fuzz * random.random())) -# -# wk.rows = df.shape[0] -# gdrive.sleep(2 * (1 + gdrive.time_fuzz * random.random())) -# -# wk.set_dataframe(df, start="A1", fit=True) -# gdrive.sleep(2 * (1 + gdrive.time_fuzz * random.random())) -# -# for df_result in self.variable_tables: -# df = df_result["df"] -# conf = df_result["conf"] -# -# if meta_tags is not None and type(meta_tags) is dict: -# for tag, value in meta_tags.items(): -# df[tag] = value -# -# gdrive.sleep(2 * (1 + gdrive.time_fuzz * random.random())) -# wk = sht.add_worksheet(conf.displayname) -# gdrive.sleep(2 * (1 + gdrive.time_fuzz * random.random())) -# -# wk.rows = df.shape[0] -# gdrive.sleep(2 * (1 + gdrive.time_fuzz * random.random())) -# -# wk.set_dataframe(df, start="A1", fit=True) -# gdrive.sleep(2 * (1 + gdrive.time_fuzz * random.random())) -# -# sht.del_worksheet(sht.sheet1) -# gdrive.sleep(2 * (1 + gdrive.time_fuzz * random.random())) -# -# # TODO: add in dataframe dict with schema sheename: {dataframe,**other_args} -# self.info( -# "gsheet saved -> {}".format(os.path.join(gpath, filename)) -# ) -# -# gdrive.reset_sleep_time(old_sleep) - -# @property -# def columns(self): -# if self.solved: -# return list(self.joined_dataframe) -# else: -# return [] -# -# def plot(self, x, y, kind="line", **kwargs): -# """ -# A wrapper for pandas dataframe.plot -# :param grid: set True if input is not False -# """ -# -# # TODO: Add a default x iterator for what is iterated in analysis! -# -# if "grid" not in kwargs: -# kwargs["grid"] = True -# -# if isinstance(y, (list, tuple)): -# old_y = set(y) -# y = list([yval for yval in y if yval in self.dataframe.columns]) -# rmv_y = set.difference(old_y, set(y)) -# if rmv_y: -# self.warning(f"vars not found: {rmv_y}") -# -# if self.solved and y: -# df = self.dataframe -# return df.plot(x=x, y=y, kind=kind, **kwargs) -# elif y: -# self.warning("not solved yet!") -# elif self.solved: -# self.warning("bad input!") -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/attr_dynamics.html b/docs/_build/html/_modules/engforge/attr_dynamics.html deleted file mode 100644 index 1299e7a..0000000 --- a/docs/_build/html/_modules/engforge/attr_dynamics.html +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - engforge.attr_dynamics — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.attr_dynamics

-from engforge.attributes import ATTR_BASE, AttributeInstance
-
-import attrs, attr, uuid
-
-
-# Instance & Attribute definition for integration vars
-# Solver minimizes residual by changing independents
-
-[docs] -class IntegratorInstance(AttributeInstance): - """A decoupled signal instance to perform operations on a system instance""" - - system: "System" - - # compiled info - var_ref: "Ref" - rate_ref: "Ref" - - __slots__ = ["system", "solver", "var_ref", "rate_ref"] - - def __init__(self, solver: "Time", system: "System") -> None: - self.class_attr = self.solver = solver - self.system = system - self.compile() - - def compile(self): - self.var_ref = self.system.locate_ref(self.solver.var) - self.rate_ref = self.system.locate_ref(self.solver.rate) - self.system.debug(f"integrating {self.var_ref} with {self.rate_ref}") - - def as_ref_dict(self): - return {'rate':self.rate_ref,'var':self.var_ref} - - @property - def rates(self): - return {self.name: self.class_attr.rate} - - @property - def integrated(self): - return {self.name: self.class_attr.var} - - @property - def var(self): - return self.class_attr.var - - @property - def rate(self): - return self.class_attr.rate - - @property - def current_rate(self): - return self.rate_ref.value(self.system, self.system.last_context) - - @property - def constraint_refs(self): - if self.solver.slvtype in ["eq","ineq"]: - return self.const_f - return None - - @property - def constraints(self): - if hasattr(self,'_constraints'): - return self._constraints - - return self.solver.constraints - - # return [{'type':self.slvtype,'var':self.solver.lhs,'value':self.const_f}] - # if self.solver.slvtype in ['var','obj']: - # return self.solver.constraints - #else: - #just me - - - - @property - def slvtype(self): - return self.solver.slvtype - - @property - def combos(self): - return self.solver.combos - - @property - def normalize(self): - return self.solver.normalize - - @property - def active(self): - if hasattr(self,'_active'): - return self._active
- - - -#TODO: depriciate modes and update for dynamicmixin strategies -#TODO: add Time.add_profile(parm, time:parameter_values, combos,active) to add a transient profile to be run on the system that is selectable by the user - -
-[docs] -class Time(ATTR_BASE): - """Transient is a base class for integrators over time""" - - mode: str - var: str - rate: str - constraints:list - allow_constraint_override: bool = True - instance_class = IntegratorInstance - -
-[docs] - @classmethod - def integrate( - cls, - var: str, - rate: "system_property", - mode: str = "euler", - active=True, - combos='default' - ): - """Defines an ODE like integrator that will be integrated over time with the defined integration rule. - - Input should be of strings to look up the particular property or field - """ - # Create A New Signals Class - new_name = f"TRANSIENT_{mode}_{var}_{rate}".replace( - ".", "_" - ) - #new_name = new_name - new_dict = dict( - mode=mode, - name=new_name, - var=var, - rate=rate, - active=active, - constraints=[], #TODO: parse kwargs for limits - combos=cls.process_combos(combos,add_combos=f'time,{var}') - ) - return cls._setup_cls(new_name, new_dict)
- - - # make define the same as integrate - # @classmethod - # def subcls_compile(cls,**kwargs): - # cls.define = cls.integrate - -
-[docs] - @classmethod - def class_validate(cls, instance, **kwargs): - from engforge.properties import system_property - from engforge.solver import SolveableMixin - - system = cls.config_cls - assert issubclass(system, SolveableMixin), f"must be a solveable system" - - var_type = instance.locate(cls.var) - if var_type is None: - raise Exception(f"var not found: {cls.var}") - assert isinstance( - var_type, attrs.Attribute - ), f"bad var {cls.var} not attribute: {var_type}" - assert var_type.type in ( - int, - float, - ), f"bad var {cls.var} not numeric" - - driv_type = instance.locate(cls.rate) - if driv_type is None: - raise Exception(f"rate not found: {cls.rate}") - assert isinstance( - driv_type, (system_property, attrs.Attribute) - ), f"bad rate {cls.rate} type: {driv_type}" - if isinstance(driv_type, system_property): - assert driv_type.return_type in ( - int, - float, - ), f"bad var {cls.rate} not numeric"
- - - # else: attributes are not checked, youre in command - -
-[docs] - @classmethod - def add_var_constraint(cls, value, kind="min",**kwargs): - """adds a `type` constraint to the solver. If value is numeric it is used as a bound with `scipy` optimize. - - :param type: str, must be either min or max with var value comparison, or with a function additionally eq,ineq (same as max(0)) can be used - :value: either a numeric (int,float), or a function, f(system) - """ - assert cls is not Time, f"must set constraint on Time Attribute" - # assert not cls.constraint_exists(type=kind,var=var), f"constraint already exists!" - assert isinstance(value, (int, float)) or callable( - value - ), f"only int,float or callables allow. Callables must take system as argument" - - var = cls.var - assert var is not None, "must provide var on non-var solvers" - assert kind in ("min", "max") - combo_dflt = "default,lim" - cmbs = kwargs.get("combos",'') - combos = cls.process_combos(cmbs,combo_dflt,combo_dflt) - if isinstance(combos,str): - combos = combos.split(',') - active = kwargs.get("active", True) - const = {"type": kind, "value": value, "var": var, "active": active, "combos": combos, 'combo_var':cls.name} - #print(const,cls.__dict__) - - cinx = cls.constraint_exists(type=kind, var=var) - inix = cinx is not None - if cls.allow_constraint_override and inix: - #print(f'replacing constraint {cinx} with {kind} {value} {var}') - constraint = cls.constraints[cinx] - constraint.update(const) - elif not cls.allow_constraint_override and inix: - cnx = cls.constraints[cinx] - raise Exception(f"constraint already exists! {cnx}") - else: - cls.constraints.append(const)
- - -
-[docs] - @classmethod - def constraint_exists(cls, **kw): - """check constraints on the system, return its index position if found, else None.""" - for i, c in enumerate(cls.constraints): - if all([c[k] == v for k, v in kw.items()]): - return i - return None
-
- - - - -# Support Previous API -TRANSIENT = Time -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/attr_plotting.html b/docs/_build/html/_modules/engforge/attr_plotting.html deleted file mode 100644 index 0833e74..0000000 --- a/docs/_build/html/_modules/engforge/attr_plotting.html +++ /dev/null @@ -1,1009 +0,0 @@ - - - - - - engforge.attr_plotting — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.attr_plotting

-"""This module defines Plot and Trace methods that allow the plotting of Statistical & Transient relationships of data in each system
-"""
-
-
-import attrs
-import uuid
-import numpy as np
-import seaborn as sns
-import matplotlib.pylab as pylab
-from matplotlib.font_manager import get_font_names
-import inspect
-
-import typing
-
-# from engforge.configuration import forge
-from engforge.properties import *
-from engforge.logging import LoggingMixin
-from engforge.env_var import EnvVariable
-from engforge.attributes import ATTR_BASE, AttributeInstance
-from matplotlib.backends.backend_pdf import PdfPages
-
-
-
-[docs] -class PlotLog(LoggingMixin): - pass
- - - -log = PlotLog() - -# Seaborn Config Options -SEABORN_CONTEXTS = ["paper", "talk", "poster", "notebook"] -SEABORN_THEMES = ["darkgrid", "whitegrid", "dark", "white", "ticks"] - - -
-[docs] -def conv_ctx(ctx): - if ctx.lower() not in SEABORN_CONTEXTS: - raise ValueError(f"theme must be one of {SEABORN_CONTEXTS}") - return ctx.lower()
- - - -
-[docs] -def conv_theme(theme): - if theme.lower() not in SEABORN_THEMES: - raise ValueError(f"theme must be one of {SEABORN_THEMES}") - return theme.lower()
- - - -# Color Maps -SEABORN_COLORMAPS = ["deep", "musted", "bright", "pastel", "dark", "colorblind"] -SEABORN_COLORMAPS += list(pylab.colormaps.keys()) -SEABORN_COLORMAPS += ["husl", "hls"] -# TODO: handle other seaboorn options - - -
-[docs] -def conv_maps(map): - if map.lower() not in SEABORN_COLORMAPS: - raise ValueError(f"theme must be one of {SEABORN_COLORMAPS}") - return str(map.lower())
- - - -# SEABORN_FONTS = get_font_names() -# FONT_INX_LC = {k.lower():k for k in SEABORN_FONTS} -# def conv_font(fnt): -# if fnt.lower() not in FONT_INX_LC: -# raise ValueError(f'theme must be one of {SEABORN_FONTS}') -# act = FONT_INX_LC[str(fnt).lower()] -# return act - - -# Seaborn Config Via Env Var -_def_opts = {"obscure": False, "dontovrride": True} -SEABORN_CONTEXT = EnvVariable( - "SEABORN_CONTEXT", - default="paper", - type_conv=conv_ctx, - desc=f"choose one of: {SEABORN_CONTEXTS}", - **_def_opts, -) -SEABORN_THEME = EnvVariable( - "SEABORN_THEME", - default="darkgrid", - type_conv=conv_theme, - desc=f"choose one of: {SEABORN_THEMES}", - **_def_opts, -) -SEABORN_PALETTE = EnvVariable( - "SEABORN_PALETTE", - default="deep", - type_conv=conv_maps, - desc=f"choose one of: {SEABORN_COLORMAPS}", - **_def_opts, -) - -# Figure Saving Config -# FIGURE_SAVE = EnvVariable( -# "" -# ) - -# TODO: fonts are platform dependent :( -# SEABORN_FONT = EnvVariable('SEABORN_FONT',default='sans-serif',**_def_opts) - -# Staistical View Through Seaborn: -# takes a dataframe and displays it via several types of statisical views, the default is `relplot.scatterplot` to show first order trends. -PLOT_KINDS = { - "displot": ("histplot", "kdeplot", "ecdfplot", "rugplot"), - "relplot": ("scatterplot", "lineplot"), - "catplot": ( - "stripplot", - "swarmplot", - "boxplot", - "violinplot", - "pointplot", - "barplot", - ), -} - - -# Install Seaborn Themes -
-[docs] -def install_seaborn(rc_override=None, **kwargs): - default = dict( - context=SEABORN_CONTEXT.secret, - style=SEABORN_THEME.secret, - palette=SEABORN_PALETTE.secret, - ) - default.update(**kwargs) - - if rc_override: - sns.set_theme(**default, rc=rc_override) - else: - sns.set_theme(**default)
- - - -install_seaborn() - - -
-[docs] -def save_all_figures_to_pdf( - filename, figs=None, dpi=200, close=True, pdf=None, return_pdf=False -): - """ - Save all figures to a PDF file. - - :param filename: The name of the PDF file to save. - :param figs: List of figures to save. If None, all open figures will be saved. - :param dpi: The resolution of the saved figures in dots per inch. - :param close: Whether to close all figures after saving. - :param pdf: An existing PdfPages object to append the figures to. If None, a new PdfPages object will be created. - :param return_pdf: Whether to return the PdfPages object after saving. - :return: The PdfPages object if return_pdf is True, else None. - :rtype: PdfPages or None - """ - if pdf is None: - pp = PdfPages(filename) - else: - pp = pdf - - if figs is None: - figs = [pylab.figure(n) for n in pylab.get_fignums()] - - for fig in figs: - fig.savefig(pp, format="pdf", dpi=dpi) - - if close: - pylab.close("all") - if return_pdf: - return pp - else: - pp.close() # Don't keep the PDF file open
- - - -
-[docs] -class PlottingMixin: - """Inherited by Systems and Analyses to provide common interface for plotting""" - - _stored_plots: dict - - @instance_cached - def plots(self): - return {k: getattr(self, k) for k in self.plot_attributes()} - - @property - def stored_plots(self): - if not hasattr(self, "_stored_plots"): - self._stored_plots = {} - return self._stored_plots - - @instance_cached - def traces(self): - if not self.transients_attributes(): - return {} # not a transient system - return {k: getattr(self, k) for k in self.trace_attributes()} - -
-[docs] - def make_plots( - self, analysis: "Analysis" = None, store_figures: bool = True, pre=None - ): - """makes plots and traces of all on this instance, and if a system is - subsystems. Analysis should call make plots however it can be called on a system as well - :param analysis: the analysis that has triggered this plot - :param store_figure: a boolean or dict, if neither a dictionary will be created and returend from this function - :returns: the dictionary from store_figures logic - """ - if not pre: - pre = f"{self.classname}" - else: - pre = f"{pre}.{self.classname}" - - if analysis and store_figures is True: - imgstore = analysis._stored_plots - elif store_figures == True: - imgstore = {} # gotta store somewhere - elif isinstance(store_figures, dict): - imgstore = store_figures - else: - imgstore = None - - # Announce - log.info(f"Plotting {pre}") - - # Traces - for plotnm, plot in self.plots.items(): - try: - log.info(f"{self.identity} plotting {pre}.{plotnm} | {plot}") - fig, ax = plot() - if isinstance(fig, pylab.Figure): - pylab.close(fig) - if imgstore is not None: - imgstore[f"{pre}.{plotnm}"] = fig - except Exception as e: - log.error(e, f"issue in plot {plot}") - - # Traces - for plotnm, plot in self.traces.items(): - try: - log.info(f"{self.identity} tracing {pre}.{plotnm} | {plot}") - fig, ax = plot() - if isinstance(fig, pylab.Figure): - pylab.close(fig) - if imgstore is not None: - imgstore[f"{pre}.{plotnm}"] = fig - except Exception as e: - log.error(e, f"issue in trace {plot}") - - # Sub Systems - for confnm, conf in self.internal_configurations().items(): - if isinstance(conf, PlottingMixin): - log.info(f"{self.identity} system plotting {confnm} | {conf}") - conf.make_plots(analysis, store_figures=store_figures, pre=pre) - - return imgstore
-
- - - -
-[docs] -class PlotInstance(AttributeInstance): - """combine plotclass vars with system info""" - - plot_cls: "Plot" - system: "System" - - refs = None - - def __init__(self, system: "System", plot_cls: "Plot"): - self.plot_cls = plot_cls - self.system = system - - - _sys_refs = self.system.system_references() - sys_refs = {k:v for atr,grp in _sys_refs.items() for k,v in grp.items()} - - diff = set() - varss = set() - for k, vers in self.plot_cls.plot_vars().items(): - if isinstance(vers, list): - for v in vers: - if v not in sys_refs: - diff.add(v) - else: - varss.add(v) - elif vers not in sys_refs: - diff.add(vers) - else: - varss.add(vers) - - if self.system.log_level < 10: - log.debug(f"system references: {sys_refs}") - if diff: - log.warning(f"has diff {diff}| found: {varss}| possible: {sys_refs}") - - if diff: - #raise KeyError(f"has system diff: {diff} found: {vars}| from: {sys_ref}") - log.warning(f"has system diff: {diff} found: {vars}| from: {sys_refs}") - - self.refs = {k: sys_refs[k] for k in varss} - -
-[docs] - def plot(self, **kwargs): - """applies the system dataframe to the plot""" - return self(**kwargs)
- - - -
-[docs] - def __call__(self, **override_kw): - """ - method allowing a similar type.kind(**override_kw,**default) (ie. relplot.scatterplot(x=different var)) - #TODO: override strategy - """ - if not self.system.solved: - raise ValueError(f"not solved yet!") - - PC = self.plot_cls - f = self.plot_cls.plot_func - - # Defaults - args = PC.plot_vars() - if hasattr(PC, "kind"): - args["kind"] = kind = PC.kind.replace("plot", "") - - # these go in plot - extra = PC.plot_extra() - - # Parse title - title = self.plot_cls.title - if "title" in override_kw: - title = override_kw.pop("title") - - # Announce Override - if override_kw: - log.debug(f"overriding vars {override_kw}") - args.update(**override_kw) - - log.info( - f"plotting {self.system.identity}| {self.identity} with {args}" - ) - fig = ax = f(data=self.system.dataframe, **args, **extra) - - return self.process_fig(fig, title)
- - - def process_fig(self, fig, title): - if isinstance(fig, pylab.Axes): - ax = fig - fig = fig.fig - elif isinstance(fig, sns.FacetGrid): - ax = fig - fig = fig.fig - else: - ax = fig - - # Polish Fig Args - if title: - fig.subplots_adjust(top=0.9) - fig.suptitle(title) - - return fig, ax - - @property - def identity(self) -> str: - return f"{self.plot_cls.type}.{self.plot_cls.kind}"
- - - -
-[docs] -class PlotBase(ATTR_BASE): - """base class for plot attributes""" - - name: str - config_cls: "System" - title: str = None - kind: str - cls_vars = {"x", "y"} - instance_class = PlotInstance - -
-[docs] - @classmethod - def plot_vars(cls) -> dict: - """gathers seaborn plot vars that will scope from system.dataframe""" - p = {} - p["x"] = cls.x - p["y"] = cls.y - if cls.hue: - p["hue"] = cls.hue - if cls.col: - p["col"] = cls.col - if cls.row: - p["row"] = cls.row - - # Add the options - var_opts = cls.type_var_options[cls.type] - for k, arg in cls.plot_args.items(): - if k in var_opts: - p[k] = arg - return p
- - - @classmethod - def plot_extra(cls): - plot_vars = cls.plot_vars() - out = {} - for k, arg in cls.plot_args.items(): - if k not in plot_vars: - out[k] = arg - return out - -
-[docs] - @classmethod - def validate_plot_args(cls, system: "System"): - """Checks system.system_references that cls.plot_vars exists""" - log.info(f"validating: {system}") - sys_ref = system.system_references() - attr_keys = set(sys_ref["attributes"].keys()) - prop_keys = set(sys_ref["properties"].keys()) - valid = attr_keys.union(prop_keys) - - diff = set() - for k, vers in cls.plot_vars().items(): - if isinstance(vers, list): - for v in vers: - if v not in valid: - diff.add(v) - elif vers not in valid: - diff.add(vers) - - if log.log_level <= 10: - log.debug( - f"{cls.__name__} has vars: {attr_keys} and bad input: {diff}" - ) - - if diff: - log.warning(f"bad plot vars: {diff} do not exist in system: {valid}")
- - #TODO: fix time being defined on components - # raise KeyError( - # f"bad plot vars: {diff} do not exist in system: {valid}" - # ) - - -
-[docs] - @classmethod - def handle_instance(cls,canidate): - """no interacion with system, reporing only""" - return None
- - -
-[docs] - @classmethod - def create_instance(cls, system: "System") -> PlotInstance: - cls.validate_plot_args(system) - return PlotInstance(system, cls)
-
- - - -trace_type = typing.Union[str, list] - - -
-[docs] -class TraceInstance(PlotInstance): - @classmethod - def plot_extra(cls) -> dict: - return cls.plot_cls.extra_args - -
-[docs] - def __call__(self, **override_kw): - """ - method allowing a similar type.kind(**override_kw,**default) (ie. relplot.scatterplot(x=different var)) - #TODO: override strategy - """ - if not self.system.solved: - raise ValueError(f"not solved yet!") - - PC = self.plot_cls - - type = PC.type - types = self.plot_cls.types - if "type" in override_kw and override_kw["type"] in types: - type = override_kw.pop("type") - elif "type" in override_kw: - raise KeyError(f"invalid trace type, must be in {types}") - - if type == "scatter": - f = lambda ax, *args, **kwargs: ax.scatter(*args, **kwargs) - elif type == "line": - f = lambda ax, *args, **kwargs: ax.plot(*args, **kwargs) - - # Defaults - args = PC.plot_args.copy() - - # these go in plot - extra = PC.plot_extra() - - # Parse title - title = PC.title - if "title" in override_kw: - title = override_kw.pop("title") - - # Announce Override - if override_kw: - log.debug(f"overriding vars {override_kw}") - args.update(**override_kw) - - log.info( - f"plotting {self.system.identity}| {self.identity} with {args}" - ) - - # PLOTTING - # Make the axes and plot - # Get The MVPS - x = args.pop("x") - if "x" in override_kw: - x = override_kw["x"] - y = args.pop("y") - if "y" in override_kw: - y = override_kw["y"] - if not isinstance(y, list): - y = list(y) - - # secondary plot - if "y2" in args and args["y2"]: - y2 = args.pop("y2") - if "y2" in override_kw: - y2 = override_kw["y2"] - if y2 is None: - y2 = [] - elif not isinstance(y2, list): - y2 = list(y2) - else: - y2 = [] - - # TODO: insert marker, color ect per group, ensure no overlap - fig, axes = pylab.subplots(2 if y2 else 1, 1) - if y2: - ax, ax2 = axes[0], axes[1] - else: - ax = axes - ax2 = None - - # Loop over y1 - yleg = [] - for y in y: - f(ax, x, y, data=self.system.dataframe, label=y, **args, **extra) - else: - # The only specificity of the code is when plotting the legend - h, l = np.hstack( - [ - l.get_legend_handles_labels() - for l in ax.figure.axes - if l.bbox.bounds == ax.bbox.bounds - ] - ).tolist() - ax.legend(handles=h, labels=l, loc="upper right") - - # Loop over y2 - for y in y2: - f(ax2, x, y, data=self.system.dataframe, label=y, **args, **extra) - else: - # The only specificity of the code is when plotting the legend - h, l = np.hstack( - [ - l.get_legend_handles_labels() - for l in ax2.figure.axes - if l.bbox.bounds == ax2.bbox.bounds - ] - ).tolist() - ax2.legend(handles=h, labels=l, loc="upper right") - - return self.process_fig(fig, title)
-
- - - -
-[docs] -class Trace(PlotBase): - """trace is a plot for transients, with y and y2 axes which can have multiple vars each""" - - types = ["scatter", "line"] - type = "scatter" - instance_class = TraceInstance - - # mainem - y2: trace_type - y: trace_type - x: str - - plot_args: dict - extra_args: dict - - # Extended vars per option - type_var_options = { - "scatter": ("size", "color"), - "line": ("color", "marker", "linestyle"), - } - - type_options = { - "scatter": ("vmax", "vmin", "marker", "alpha", "cmap"), - "line": ("linewidth",), - } - all_options = ( - "xlabel", - "ylabel", - "y2label", - "title", - "xticks", - "yticks", - "alpha", - ) - - always = ("x", "y", "y2") - -
-[docs] - @classmethod - def define( - cls, x="time", y: trace_type = None, y2=None, kind="line", **kwargs - ): - """Defines a plot that will be matplotlib, with validation happening as much as possible in the define method - - #Plot Choice - :param kind: specify the kind of type of plot scatter or line, with the default being line - - # Dependents & Independents: - :param x: the x var for each plot, by default 'time' - :param y: the y var for each plot, required - :param y2: the y2 var for each plot, optional - - # Additional Parameters: - :param title: this title will be applied to the figure.suptitle() - :param xlabel: the x label, by default the capitalized var - :param ylabel: the x label, by default the capitalized var - :param y2label: the x label, by default the capitalized var - """ - - if x is None or y is None: - raise ValueError(f"x and y must both be input") - - if not isinstance(x, str): - raise ValueError(f"x must be string") - - if not isinstance(y, (list, str)): - raise ValueError(f"y must be string or list") - - if not any([y2 is None, isinstance(y2, (list, str))]): - raise ValueError(f"y2 must be string or list") - - # Validate Plot - assert kind in cls.types, f"invalid kind not in {cls.types}" - if kind == "line": - pfunc = pylab.plot - elif kind == "scatter": - pfunc = pylab.scatter - else: - raise KeyError(f"bad plot kind: {kind}") - - # Remove special args - title = None - if "title" in kwargs: - title = kwargs.pop("title") - - # Remove special args - non_var_args = cls.valid_non_vars(kind) - var_args = cls.valid_vars_options(kind) - extra = {} - - for k in list(kwargs.keys()): - if k in non_var_args: - extra[k] = kwargs.pop(k) - - # Validate Args - assert set(kwargs).issubset(var_args), f"invalid plot args {kwargs}" - plot_args = kwargs - plot_args["x"] = x - plot_args["y"] = y - - if "y2": - plot_args["y2"] = y2 - - log.info(f"adding Trace|{kind} {x},{y},{y2},{kwargs}") - - # Create A New Signals Class - new_name = f"Trace_x_{x}_y_{y}".replace( - ".", "_" - ).replace("-", "") - new_dict = dict( - name=new_name, - x=x, - y=y, - y2=y2, - plot_func=pfunc, - plot_args=plot_args, - extra_args=extra, - title=title, - kind=kind, - ) - new_plot = cls._setup_cls(new_name, new_dict) - return new_plot
- - - @classmethod - def valid_non_vars(cls, type) -> set: - s = set(cls.all_options) - s = s.union(set(cls.type_options[type])) - return s - - @classmethod - def valid_vars_options(cls, type) -> set: - s = set(cls.always) - s = s.union(set(cls.type_var_options[type])) - return s - -
-[docs] - @classmethod - def plot_vars(cls) -> set: - pa = cls.plot_args.copy() - - y1 = pa.pop("y") - c = set() - if isinstance(y1, list): - for y in y1: - c.add(y) - else: - c.add(y1) - pa["y"] = list(c) - - if "y2" in c: - c = set() - y2 = pa.pop("y2") - if isinstance(y2, list): - for y in y2: - c.add(y) - else: - c.add(y2) - - pa["y2"] = list(c) - return pa
-
- - - -
-[docs] -class Plot(PlotBase): - """Plot is a conveinence method""" - - types: tuple = ("displot", "relplot", "catplot") - std_fields: tuple = ("x", "y", "col", "hue", "row") - - # These options must be filled out - type: str - kind: str - x: str - y: str - - # optional, must be var - hue: str - col: str - row: str - - # Extended vars per option - type_var_options = { - "displot": (), - "relplot": ("style", "shape"), - "catplot": (), - } - - # These capture the function and extra keywords - plot_func: None - plot_args: dict - -
-[docs] - @classmethod - def define( - cls, - x, - y, - _type="relplot", - kind="scatterplot", - row=None, - col=None, - hue=None, - **kwargs, - ): - """Defines a plot that will be rendered in seaborn, with validation happening as much as possible in the define method - - #Plot Choice - :param _type: the type of seaborn plot (relplot,displot,catplot) - :param kind: specify the kind of type of plot (ie. scatterplot of relplot) - - # Dependents & Independents: - :param x: the x var for each plot - :param y: the y var for each plot - - # Additional Parameters: - :param row: create a grid of data with row var - :param col: create a grid of data with column var - :param hue: provide an additional dimension of color based on this var - :param title: this title will be applied to the figure.suptitle() - """ - - # Validate Plot - assert ( - _type in PLOT_KINDS - ), f"type {_type} must be in {PLOT_KINDS.keys()}" - kinds = PLOT_KINDS[_type] - assert kind in kinds, f"plot kind {kind} not in {kinds}" - - # Remove special args - title = None - if "title" in kwargs: - title = kwargs.pop("title") - - # Validate Args - pfunc = getattr(sns, _type) - kfunc = getattr(sns, kind) - args = set(inspect.signature(kfunc).parameters.keys()) - assert set(kwargs).issubset(args), f"only {args} allowed for kw" - plot_args = kwargs - - log.info( - f"adding PLOT|{_type}.{kind}({x},{y},hue={hue},c:[{col}],r:[{row}],{kwargs}" - ) - - # Create A New Signals Class - new_name = f"PLOT_x_{x}_y_{y}".replace( - ".", "_" - ).replace("-", "") - new_dict = dict( - name=new_name, - x=x, - y=y, - hue=hue, - row=row, - col=col, - type=_type, - kind=kind, - plot_func=pfunc, - plot_args=plot_args, - title=title, - ) - new_plot = cls._setup_cls(new_name, new_dict) - return new_plot
- - -
-[docs] - @classmethod - def plot_vars(cls) -> dict: - """gathers seaborn plot vars that will scope from system.dataframe""" - p = {} - p["x"] = cls.x - p["y"] = cls.y - if cls.hue: - p["hue"] = cls.hue - if cls.col: - p["col"] = cls.col - if cls.row: - p["row"] = cls.row - - # Add the options - var_opts = cls.type_var_options[cls.type] - for k, arg in cls.plot_args.items(): - if k in var_opts: - p[k] = arg - return p
-
- - - -### Support Previous API -PLOT = Plot -Trace = Trace -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/attr_signals.html b/docs/_build/html/_modules/engforge/attr_signals.html deleted file mode 100644 index 7d5ffed..0000000 --- a/docs/_build/html/_modules/engforge/attr_signals.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - engforge.attr_signals — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.attr_signals

-"""This module defines the slot attrs attribute to define the update behavior of a component or between components in an analysis"""
-"""Signals define data flow in the solver system. These updates can happen before or after a solver execution as defined in SolverMixin
-
-"""
-
-
-import attrs, uuid
-from engforge.attributes import ATTR_BASE, AttributeInstance, DEFAULT_COMBO
-from engforge.attr_slots import SLOT_TYPES
-
-VALID_MODES = ["pre", "post", "both"]
-
-
-
-[docs] -class SignalInstance(AttributeInstance): - """A decoupled signal instance to perform operations on a system instance""" - - system: "System" - signal: "Signal" - - # compiled info - target: "Ref" - source: "Ref" - class_attr: "Signal" - - def __init__(self, signal, system) -> None: - self.class_attr = self.signal = signal - self.system = system - self.compile() - - def compile(self, **kwargs): - self.source = self.system.locate_ref(self.signal.source) - self.target = self.system.locate_ref(self.signal.target) - self.system.debug(f"SIGNAL| setting {self.target} with {self.source}") - -
-[docs] - def apply(self): - """sets `target` from `source`""" - val = self.source.value() - if self.system.log_level < 10: - self.system.msg( - f"Signal| applying {self.source}|{val} to {self.target}" - ) - self.target.set_value(val)
- - - @property - def mode(self) -> str: - return self.signal.mode - - def as_ref_dict(self)->dict: - return dict( - target=self.target, - source=self.source, - signal=self, - ) - - def get_alias(self,path): - return path.split('.')[-1]
- - - -
-[docs] -class Signal(ATTR_BASE): - """A base class that handles initalization in the attrs meta class scheme by ultimately createing a SignalInstance""" - - name: str - mode: str - target: str - source: str - config_cls: "System" - attr_prefix = "SIGNAL" - instance_class = SignalInstance - -
-[docs] - @classmethod - def define(cls, target: str, source: str, mode="pre",**kw): - """taking a component or system class as possible input valid input is later validated as an instance of that class or subclass""" - assert mode in VALID_MODES, f"invalid mode: {mode}" - - active = kw.get("active", True) - combo_dflt = 'default,signals' - combos = kw.get("combos",None) - - # Create A New Signals Class - new_name = f"Signal_{mode}_{source}_to_{target}".replace(".", "_") - new_name = new_name + "_" + str(uuid.uuid4()).replace("-", "")[0:16] - new_dict = dict( - name=new_name, - mode=mode, - target=target, - source=source, - active=active, - combos=cls.process_combos(combos,combo_dflt,combo_dflt), - default_options=cls.default_options.copy(), - ) - new_slot = type(new_name, (Signal,), new_dict) - new_slot.default_options["default"] = new_slot.make_factory() - new_slot.default_options["validator"] = new_slot.configure_instance - new_sig = cls._setup_cls(new_name, new_dict) - return new_sig
- - - # FIXME: move to -
-[docs] - @classmethod - def class_validate(cls, instance, **kwargs): - from engforge.properties import system_property - - system = cls.config_cls - - var_type = system.locate(cls.target) - if var_type is None: - raise Exception(f"target not found: {cls.target}") - assert isinstance( - var_type, attrs.Attribute - ), f"bad var {cls.target} not attribute: {var_type}" - - driv_type = system.locate(cls.source) - if driv_type is None: - raise Exception(f"source not found: {cls.source}")
-
- - - -# Support Previous API -Signal = Signal -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/attr_slots.html b/docs/_build/html/_modules/engforge/attr_slots.html deleted file mode 100644 index 45d9624..0000000 --- a/docs/_build/html/_modules/engforge/attr_slots.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - - engforge.attr_slots — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.attr_slots

-"""This module defines the slot attrs attribute to ensure the type of component added is correct and to define behavior,defaults and argument passing behavio"""
-
-import attrs
-import uuid
-from engforge.attributes import ATTR_BASE, AttributeInstance
-import typing as typ
-from engforge.logging import LoggingMixin
-
-SLOT_TYPES = typ.Union["Component", "System"]
-ITERATOR = typ.Union["ComponentIterator"]
-
-
-[docs] -class SlotLog(LoggingMixin):pass
- -log = SlotLog() - - - - -
-[docs] -class Slot(ATTR_BASE): - """Slot defines a way to accept different components or systems in a system""" - - # These are added on System signals_slots_handler aka attrs field_transformer - name: str - accepted: SLOT_TYPES - config_cls: "System" - attr_prefix = "Slot" - none_ok: bool - instance_class = None #add the component or system on define - - dflt_kw: dict = None # a dictionary of input in factory for custom inits - default_ok = True # otherwise accept class with defaults - - is_iter: bool - wide: bool # only for component iterator - # default_options = ATTR_BASE.default_options.copy() - default_options = dict( - repr=True, - validator=None, - cmp=None, - hash=None, - init=True, - metadata=None, - converter=None, - kw_only=True, - eq=None, - order=None, - on_setattr=None, - inherited=False, - ) - -
-[docs] - @classmethod - def define( - cls, - *component_or_systems: SLOT_TYPES, - none_ok=False, - default_ok=True, - dflt_kw: dict = None, - ): - """taking a component or system class as possible input valid input is later validated as an instance of that class or subclass - - :param none_ok: will allow no component on that item, oterwise will fail - :param default_ok: will create the slot class with no input if true - :param dflt_kw: a dictionary of input in factory for custom inits overrides defaults_ok - #TODO: add default_args,default_kwargs - """ - from engforge.components import Component - from engforge.component_collections import ComponentIter - from engforge.system import System - from engforge.eng.costs import CostModel - - # Format THe Accepted Component Types - assert ( - len(component_or_systems) == 1 - ), "only one slot allowed, try making a subclass" - assert not any( - [issubclass(c, ComponentIter) for c in component_or_systems] - ), f"`ComponentIter` slot should be defined with `define_iterator` " - assert all( - [ - issubclass(c, Component) or issubclass(c, System) - for c in component_or_systems - ] - ), "Not System Or Component Input" - - ### Cost models should always default to None - #FIXME: is this nessicary? - if any([issubclass(c, CostModel) for c in component_or_systems]): - default_ok = False - none_ok = True - - new_dict = dict( - accepted=component_or_systems, - none_ok=none_ok, - default_ok=default_ok, - dflt_kw=dflt_kw, - instance_class = component_or_systems[0], - default_options=cls.default_options.copy(), - ) - - #slot - new_name = cls.attr_prefix+'_' - new_sig = cls._setup_cls(new_name, new_dict) - return new_sig
- - -
-[docs] - @classmethod - def define_iterator( - cls, - *component_or_systems: ITERATOR, - none_ok: bool = False, - default_ok: bool = True, - wide: bool = True, - dflt_kw: dict = None, - ): - """taking a type of component iterator, defines an interface that can be 'wide' where all items are executed in the same row on `System.run()`. - - Conversely if `wide` is false the system will loop over each item as if it was included in System.run(). Multiple ComponentIterators with wide=False will result in a `outer join` of the items. - - :param none_ok: will allow no component on that item, otherwise will fail - :param default_ok: will create the slot class with no input if true - :param dflt_kw: a dictionary of input in factory for custom inits - :param wide: default is true, will determine if wide dataframe format, or outerproduct format when `System.run()` is called - """ - from engforge.components import Component - from engforge.component_collections import ComponentIter - from engforge.system import System - - # Format THe Accepted Component Types - assert ( - len(component_or_systems) == 1 - ), "only one slot allowed, try making a subclass" - assert all( - [issubclass(c, ComponentIter) for c in component_or_systems] - ), "Not System Or Component Input" - - # FIXME: come up with a better name :) - new_name = f"SlotITER_{str(uuid.uuid4()).replace('-','')[0:16]}" - new_slot = type( - new_name, - (Slot,), - dict( - # default=cls.make_factory(), - name=new_name, - accepted=component_or_systems, - none_ok=none_ok, - default_ok=default_ok, - dflt_kw=dflt_kw, - is_iter=True, - wide=wide, - instance_class = component_or_systems[0], - default_options=cls.default_options.copy(), - ), - ) - new_slot.default_options['validator'] = new_slot.configure_instance - new_slot.default_options['default'] = new_slot.make_factory() - return new_slot
- - - # Create a validator function -
-[docs] - @classmethod - def configure_instance(cls, instance, attribute, value): - from engforge.component_collections import ComponentIter - - comp_cls = cls.config_cls - - # apply wide behavior to componentiter instance - if isinstance(value, ComponentIter) and attribute.type.wide == False: - # print(f'validate {instance} {attribute} {value}') - value.wide = False - - if value in cls.accepted or all([value is None, cls.none_ok]): - return True - - if any([isinstance(value, a) for a in cls.accepted]): - return True - - if cls.default_ok and value is None: - return True - - raise ValueError( - f"{instance} value {value} is not an accepted type for slot: {comp_cls.__name__}.{cls.name}" - )
- - - @classmethod - def make_factory(cls, **kwargs): - accepted = cls.accepted - log.debug(f'slot instance factory: {cls} {accepted}, {kwargs}') - - if isinstance(accepted, (tuple, list)) and len(accepted) > 0: - accepted = accepted[0] - - log.debug(f'slot factory: {accepted},{cls.dflt_kw},{cls.default_ok}') - if cls.dflt_kw: - return attrs.Factory(cls.make_accepted(accepted,**cls.dflt_kw), False) - elif cls.default_ok: - return attrs.Factory(accepted, False) - else: - return None - - @classmethod - def make_accepted(cls,accepted,**kw): - log.debug(f'making accepted: {cls.instance_class} {kw}') - return lambda: accepted(**kw) - - -
-[docs] - @classmethod - def handle_instance(cls,canidate): - """a passthrough""" - return canidate
-
- - - -# Support Previous SnakeCase -Slot = Slot -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/attr_solver.html b/docs/_build/html/_modules/engforge/attr_solver.html deleted file mode 100644 index a3119b9..0000000 --- a/docs/_build/html/_modules/engforge/attr_solver.html +++ /dev/null @@ -1,561 +0,0 @@ - - - - - - engforge.attr_solver — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.attr_solver

-"""solver defines a SolverMixin for use by System.
-
-Additionally the Solver attribute is defined to add complex behavior to a system as well as add constraints and transient integration.
-"""
-
-import attrs
-import uuid
-import numpy
-import scipy.optimize as scopt
-from contextlib import contextmanager
-import copy
-import datetime
-import typing
-
-from engforge.attributes import ATTR_BASE, AttributeInstance
-from engforge.system_reference import Ref,maybe_attr_inst,maybe_ref
-from engforge.properties import *
-
-import itertools
-
-INTEGRATION_MODES = ["euler", "trapezoid", "implicit"]
-SOLVER_OPTIONS = ["root", "minimize"]
-
-
-
-[docs] -class AttrSolverLog(LoggingMixin): - pass
- - - -log = AttrSolverLog() - - -indep_type = typing.Union[str] -dep_type = typing.Union[system_property,callable] -ref_type = typing.Union[str, system_property, callable, float, int] - - -# Solver minimizes residual by changing vars -
-[docs] -class SolverInstance(AttributeInstance): - """A decoupled signal instance to perform operations on a system instance""" - - system: "System" - solver: "Solver" - - # compiled info - obj: "Ref" - var: "Ref" - lhs: "Ref" - rhs: "Ref" - const_f: "Ref" - - _active: bool - _constraints: list - - - def __init__(self, solver: "Solver", system: "System",**kw) -> None: - """kwargs passed to compile""" - self.class_attr = self.solver = solver - self.system = system - self.compile(**kw) - -
-[docs] - def compile(self, **kwargs): - """establishes the references for the solver to use directly""" - from engforge.solver import objectify,secondary_obj - if self.solver.slvtype == "var": - self.var = self.system.locate_ref(self.solver.var) - self.system.debug(f"solving with indpendent: {self.var}") - - elif self.solver.slvtype in ["ineq", "eq"]: - self.lhs = self.system.locate_ref(self.solver.lhs) - - if hasattr(self.solver, "rhs") and (isinstance(self.solver.rhs, str)or callable(self.solver.rhs)): - self.rhs = self.system.locate_ref(self.solver.rhs) - elif hasattr(self.solver, "rhs") and self.solver.rhs is not None: - #raise Exception(f"bad rhs: {self.solver.rhs}") - self.rhs = self.solver.rhs - - m = " = " if self.solver.slvtype == "eq" else " >= " - self.system.debug(f"solving {self.lhs}{m}{self.rhs}") - - if hasattr(self,'rhs') and self.rhs is not None: - mult=1 - bias=None - power=None - #careful with kw vs positional args here - fun = lambda sys,prob: maybe_ref(self.lhs,SolverInstance,sys=sys,prob=prob,mult=mult,bias=bias,power=power) - maybe_ref(self.rhs,SolverInstance,sys=sys,prob=prob,mult=mult,bias=bias,power=power) - fun.__name__ = f"{self.lhs}_{self.rhs}_{self.solver.slvtype}" - objfunc = Ref(self.system,fun) - else: - objfunc = self.lhs - - if log.log_level <= 6: - self.system.debug(f"const defined: {objfunc}|{self.solver}") - - self.const_f = objfunc - - elif self.solver.slvtype == 'obj': - self.obj_ref = self.system.locate_ref(self.solver.obj) - if self.solver.kind == 'max': - mult=None - bias=None - power=None - else: - mult=None - bias=None - power=None - - fun = lambda sys,prob: maybe_ref(self.obj_ref,SolverInstance,sys=sys,prob=prob,mult=mult,bias=bias,power=power) - fun.__name__ = f"obj_{self.solver.obj}_{self.solver.kind}" - self.obj = Ref(self.system,fun) - #self.obj = self.system.locate_ref(fun) - self.system.debug(f"solving with obj: {self.obj}")
- - - @property - def constraints(self): - if hasattr(self,'_constraints'): - return self._constraints - if self.solver.slvtype in ['var','obj']: - return self.solver.constraints - else: - #just me - return [{'type':self.slvtype,'var':self.solver.lhs,'value':self.const_f}] - - - @property - def slvtype(self): - return self.solver.slvtype - - @property - def combos(self): - return self.solver.combos - - @property - def normalize(self): - return self.solver.normalize - - @property - def active(self): - if hasattr(self,'_active'): - return self._active - return self.solver.active - - def get_alias(self,pre): - if self.solver.slvtype == 'var': - return self.var.key #direct ref - return super().get_alias(pre) #default - - def as_ref_dict(self): - out = {'var':None,'eq':None,'ineq':None,'obj':None} - - if self.solver.slvtype == "var": - out['var'] = self.var - elif self.solver.slvtype == "obj": - out['obj'] = self.obj - elif self.solver.slvtype == "eq": - out['eq'] = self.const_f - elif self.solver.slvtype == "ineq": - out['ineq'] = self.const_f - - return out
- - - - - -
-[docs] -class Solver(ATTR_BASE): - """solver creates subclasses per solver balance""" - - obj: dep_type = None - var: indep_type = None - rhs: ref_type = None - lhs: ref_type = None - slvtype: str - constraints: dict - combos: list = None - - normalize: ref_type - allow_constraint_override: bool = True - - attr_prefix = "Solver" - active: bool - instance_class = SolverInstance - - define = None - - -
-[docs] - @classmethod - def configure_for_system(cls, name, config_class, cb=None, **kwargs): - """add the config class, and perform checks with `class_validate) - :returns: [optional] a dictionary of options to be used in the make_attribute method - """ - pre_name = cls.name #random attr name - super(Solver,cls).configure_for_system(name,config_class,cb,**kwargs) - - #change name of constraint var if - if cls.slvtype == "var": - #provide defaults ot constraints, and update combo_var with attribut name - for const in cls.constraints: - if 'combo_var' in const and const['combo_var'] == pre_name: - const['combo_var'] = name #update me - elif 'combo_var' not in const: - const['combo_var'] = name #update me - - if 'combos' not in const: - const['combos'] = 'default'
- - - - # TODO: add normalize attribute to tune optimizations -
-[docs] - @classmethod - def declare_var(cls, var: str, **kwargs): - """ - Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable - :param var: The var attribute for the solver variable. - :param combos: The combinations of the solver variable. - :return: The setup class for the solver variable. - """ - assert ',' not in var, f"var cannot have commas: {var}" - - # Create A New Signals Class - active = kwargs.get("active", True) - combos = kwargs.get("combos", f'default,{var}') #default + var_name - - new_name = f"Solver_var_{var}".replace(".", "_") - bkw = {"var": var, "value": None} - constraints = [{"type": "min", **bkw}, {"type": "max", **bkw}] - new_dict = dict( - name=new_name, #until configured for system, it gets the assigned name - active=active, - var=var, - slvtype="var", - constraints=constraints, - combos=cls.process_combos(combos), - default_options=cls.default_options.copy(), - ) - return cls._setup_cls(new_name, new_dict)
- - - -
-[docs] - @classmethod - def objective(cls, obj: str, **kwargs): - """ - Defines a solver variable for optimization in the class, constraints defined on this solver will correspond to the limits of that variable - - :param obj: The var attribute for the solver variable. - :param combos: The combinations of the solver variable. - :vara kind: the kind of optimization, either min or max - :return: The setup class for the solver variable. - """ - # Create A New Signals Class - active = kwargs.get("active", True) - combos = kwargs.get("combos", "default") - kind = kwargs.get("kind", "min") - assert kind in ("min", "max") - - new_name = f"Solver_obj_{obj}_{kind}".replace(".", "_") - bkw = {"var": obj, "value": None} - new_dict = dict( - name=new_name, - active=active, - obj=obj, - slvtype="obj", - kind=kind, - constraints=[], - combos=cls.process_combos(combos), - default_options=cls.default_options.copy(), - ) - return cls._setup_cls(new_name, new_dict)
- - - obj = objective - -
-[docs] - @classmethod - def constraint_equality( - cls, lhs: "system_property", rhs: "system_property" = 0, **kwargs - ): - """Defines an equality constraint based on a required lhs of equation, and an optional rhs, the difference of which will be driven to zero""" - combos = kwargs.get("combos", "default") - active = kwargs.get("active", True) - - # Create A New Signals Class - new_name = f"Solver_coneq_{lhs}_{rhs}".replace(".", "_") - new_dict = dict( - name=new_name, - active=active, - lhs=lhs, - rhs=rhs, - slvtype="eq", - constraints=[], - combos=cls.process_combos(combos), - default_options=cls.default_options.copy(), - ) - return cls._setup_cls(new_name, new_dict)
- - - con_eq = constraint_equality - -
-[docs] - @classmethod - def constraint_inequality(cls, lhs: ref_type, rhs: ref_type = 0, **kwargs): - """Defines an inequality constraint""" - combos = kwargs.get("combos", "default") - active = kwargs.get("active", True) - - # Create A New Signals Class - new_name = f"Solver_conineq_{lhs}_{rhs}".replace(".", "_") - new_dict = dict( - name=new_name, - active=active, - lhs=lhs, - rhs=rhs, - slvtype="ineq", - constraints=[], - combos=cls.process_combos(combos), - default_options=cls.default_options.copy(), - ) - return cls._setup_cls(new_name, new_dict)
- - - con_ineq = constraint_inequality - - # TODO: add minimize / maximize / objective options - -
-[docs] - @classmethod - def class_validate(cls, instance, **kwargs): - from engforge.properties import system_property - - system = cls.config_cls - - # TODO: normalize references to ref or constant here - # TODO: add a check for the solver to be a valid solver type - - if cls.slvtype == "var": - var_type = system.locate(cls.var) - if var_type is None: - raise Exception(f"var not found: {cls.var}") - assert isinstance( - var_type, attrs.Attribute - ), f"bad var {cls.var} not attribute: {var_type}" - assert var_type.type in ( - int, - float, - ), f"bad var {cls.var} not numeric" - - elif cls.slvtype in ["ineq", "eq"]: - driv_type = system.locate(cls.lhs) - if driv_type is None: - raise Exception(f"LHS not found: {cls.lhs}") - assert isinstance( - driv_type, system_property - ), f"bad LHS {cls.lhs} type: {driv_type}" - if cls.rhs is not None: - driv_type = system.locate(cls.rhs) - if driv_type is None: - raise Exception(f"RHS not found: {cls.rhs}") - assert isinstance( - driv_type, system_property - ), f"bad RHS {cls.rhs} type: {driv_type}" - - else: - raise Exception(f"bad slvtype: {cls.slvtype}")
- - -
-[docs] - @classmethod - def create_instance(cls, system: "System") -> SolverInstance: - return SolverInstance(cls, system)
- - -
-[docs] - @classmethod - def add_var_constraint(cls, value, kind="min",**kwargs): - """adds a `type` constraint to the solver. If value is numeric it is used as a bound with `scipy` optimize. - - If value is a function it should be of the form value(Xarray) and will establish an inequality constraint that var var must be: - 1. less than for max - 2. more than for min - - During the evaluation of the limit function system.X should be set, and pre_execute() have already run. - - :param type: str, must be either min or max with var value comparison, or with a function additionally eq,ineq (same as max(0)) can be used - :value: either a numeric (int,float), or a function, f(system) - """ - assert cls is not Solver, f"must set constraint on Solver subclass" - # assert not cls.constraint_exists(type=kind,var=var), f"constraint already exists!" - assert isinstance(value, (int, float)) or callable( - value - ), f"only int,float or callables allow. Callables must take system as argument" - - var = cls.var - assert var is not None, "must provide var on non-var solvers" - assert cls.slvtype == "var", "only Solver.declare_var can have constraints" - assert kind in ("min", "max") - - combo_dflt = "default,lim" - cmbs = kwargs.get("combos",'') - combos = cls.process_combos(cmbs,combo_dflt,combo_dflt) - if isinstance(combos,str): - combos = combos.split(',') - active = kwargs.get("active", True) - const = {"type": kind, "value": value, "var": var, "active": active, "combos": combos, 'combo_var':cls.name} - #print(const,cls.__dict__) - - cinx = cls.constraint_exists(type=kind, var=var) - inix = cinx is not None - if cls.allow_constraint_override and inix: - log.debug(f'replacing constraint {cinx} with {kind} {value} {var}') - constraint = cls.constraints[cinx] - constraint.update(const) - elif not cls.allow_constraint_override and inix: - cnx = cls.constraints[cinx] - raise Exception(f"constraint already exists! {cnx}") - else: - cls.constraints.append(const)
- - - -
-[docs] - @classmethod - def constraint_exists(cls, **kw): - """check constraints on the system, return its index position if found, else None.""" - for i, c in enumerate(cls.constraints): - if all([c[k] == v for k, v in kw.items()]): - return i - return None
-
- - - -# Support Previous SnakeCase -Solver = Solver -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/attributes.html b/docs/_build/html/_modules/engforge/attributes.html deleted file mode 100644 index 966855a..0000000 --- a/docs/_build/html/_modules/engforge/attributes.html +++ /dev/null @@ -1,461 +0,0 @@ - - - - - - engforge.attributes — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.attributes

-"""Defines a customizeable attrs attribute that is handled in configuration,
-
-on init an instance of `Instance` type for any ATTR_BASE subclass is created """
-
-import attrs, attr, uuid
-from engforge.logging import LoggingMixin, log
-
-
-
-[docs] -class ATTRLog(LoggingMixin): - pass
- -log = ATTRLog() - - -DEFAULT_COMBO = 'default' - -
-[docs] -class AttributeInstance: - class_attr: "ATTR_BASE" - system: "System" - classname: str = "attribute" #for ref compatability - backref: "ATTR_BASE" - - # TODO: universal slots method - # __slots__ = ["system", "class_attr"] - - def __init__( - self, class_attr: "CLASS_ATTR", system: "System", **kwargs - ) -> None: - self.class_attr = class_attr - self.system = system - self.compile(**kwargs) - - def compile(self, **kwargs): - # raise NotImplementedError("Override Me!") - pass - - def as_ref_dict(self)->dict: - log.info(f'pass - as ref {self}') - return None - - def get_alias(self,path): - return path.split('.')[-1] - - def is_active(self,value=False) -> bool: - mthd = 'dflt' - if hasattr(self,'_active'): - mthd = 'instance' - value = self._active - - elif hasattr(self.class_attr,'active'): - mthd = 'class' - value = self.class_attr.active - - #print(f'{self}| {mthd} is_active: {value}') - #the default - return value - - @property - def combos(self): - return self.class_attr.combos - - @property - def active(self): - return self.class_attr.active
- - -#TODO: add a concept of queries of ATTR_BASE subclasses, where multiple types may be selected or filtered, with individual arguments. -
-[docs] -class ATTR_BASE(attrs.Attribute): - """A base class that handles initalization in the attrs meta class scheme by ultimately createing an Instance""" - - name: str - config_cls: "System" - attr_prefix = "ATTR" - instance_class: AttributeInstance = AttributeInstance # Define me - default_options: dict - template_class = True - - #TODO: add generic selection & activation of attributes - active: bool - combos: list - - none_ok = False - - #Activation & Combo Selection Functionality - @classmethod - def process_combos(cls, combos,default=None,add_combos=None): - if isinstance(combos, str): - if '*' in combos: - raise KeyError("wildcard (*) not allowed in combos!") - out = combos.split(",") - elif isinstance(combos, list): - if any(['*' in c for c in combos]): - raise KeyError("wildcard (*) not allowed in combos!") - out = combos - else: - out = [] - - if add_combos is not None: - out += cls.process_combos(add_combos,default=default) - - - if out: - return out - if default: - return default - return ['default'] - - #Initialization -
-[docs] - @classmethod - def configure_for_system(cls, name, config_class, cb=None, **kwargs): - """add the config class, and perform checks with `class_validate) - :returns: [optional] a dictionary of options to be used in the make_attribute method - """ - log.debug(f"{cls.__name__} is being configured for {cls.attr_prefix}") - cls.name = name - cls.config_cls = config_class - - if isinstance(cls.instance_class,ATTR_BASE) and not hasattr(cls.instance_class, "backref"): - #get parent class - refs = [cls,ATTR_BASE] - mro_group = cls.mro() - mro_group = mro_group[:mro_group.index(ATTR_BASE)] - cans = [v for v in mro_group if v not in refs] - last = cans[-1] - # if not hasattr(cls,'instance_class') or not cls.instance_class: - # log.info(f'no instance class! {cls}') - cls.instance_class.backref = last - else: - pass - #print(f'backref exists {cls.instance_class.backref} {cls}') - - if cb is not None: - cb(cls, config_class, **kwargs) - - return {} # OVERWRITE ME "custom_options":False
- - -
-[docs] - @classmethod - def create_instance(cls, instance: "Configuration") -> AttributeInstance: - """Create an instance of the instance_class""" - if cls.instance_class is None: - raise Exception( - f"Instance Class Hasnt Been Defined For `{cls}.instance_class`" - ) - if not hasattr(cls, "config_cls"): - raise Exception(f"`config_cls` hasnt been defined for `{cls}`") - - cls.class_validate(instance=instance) - return cls.instance_class(cls, instance)
- - - #Override Me: -
-[docs] - @classmethod - def configure_instance(cls, instance, attribute, value): - """validates the instance given attr's init routine""" - pass
- - -
-[docs] - @classmethod - def class_validate(cls, instance, **kwargs): - """validates onetime A method to validate the kwargs passed to the define method""" - pass
- - -
-[docs] - @classmethod - def define_validate(cls, **kwargs): - """A method to validate the kwargs passed to the define method""" - pass
- - - #Interafce & Utility -
-[docs] - @classmethod - def define(cls, **kwargs): - """taking a component or system class as possible input valid input is later validated as an instance of that class or subclass""" - assert not cls.template_class, f"{cls} is not template class and cannot defined anything, ie anything that has been created as a function of `define` cannot be defined" - - cls.define_validate(**kwargs) - - # Create A New Signals Class - kw_pairs = [f"{k}_{v}" for k, v in kwargs.items()] - new_name = f"{cls.attr_prefix}_{('_'.join(kw_pairs))}".replace(".", "_") - # define the class dictionary - new_dict = dict(name=new_name) - new_slot = cls._setup_cls(new_name, new_dict, **kwargs) - return new_slot
- - - @classmethod - def _setup_cls(cls, name, new_dict, **kwargs): - - #randomize name for specifics reasons - uid = str(uuid.uuid4()) - name = name + "_" + uid.replace("-", "")[0:16] - new_dict['uuid'] = uid - new_dict['default_options'] = cls.default_options.copy() - new_dict['template_class'] = False - new_dict['name'] = name - new_slot = type(name, (cls,), new_dict) - new_slot.default_options["default"] = new_slot.make_factory() - new_slot.default_options["validator"] = new_slot.configure_instance - log.debug( - f"defined {name}|{new_slot} with {kwargs}| {new_slot.default_options}" - ) - return new_slot - - @classmethod - def make_factory(cls, **kwargs): - #print(f"{cls} making factory with: {kwargs}") - return attrs.Factory(cls.create_instance, takes_self=True) - -
-[docs] - @classmethod - def make_attribute(cls, name, comp_class, **kwargs): - """makes an attrs.Attribute for the class""" - cust_options = cls.configure_for_system(name, comp_class, **kwargs) - # make copy for new instance - opts = cls.default_options.copy() - # update with custom kwargs - if isinstance(cust_options, dict): - opts.update(cust_options) - # input has the final override - opts.update(kwargs) - # The core functionality - opts.update(name=name, type=cls) - - # Handle the default and validator, if not overridden - if "default" not in kwargs: - opts["default"] = cls.make_factory() - if "validator" not in kwargs: - opts["validator"] = cls.configure_instance - - return attrs.Attribute(**opts)
- - - # Structural Orchestration Through Subclassing -
-[docs] - @classmethod - def collect_cls(cls,system)->dict: - """collects all the attributes for a system""" - if not isinstance(system,type): - system = system.__class__ - return {k:at.type for k,at in system._get_init_attrs_data(cls).items()}
- - -
-[docs] - @classmethod - def collect_attr_inst(cls,system,handle_inst=True)->dict: - """collects all the attribute instances for a system""" - cattr = cls.collect_cls(system) - out = {} - for k,v in cattr.items(): - inst = getattr(system,k) - if (inst is None and getattr(cls.instance_class,'none_ok',False)) or (cls.instance_class is not None and not isinstance(inst,cls.instance_class)): - log.warning(f"Attribute {k}|{inst} is not an instance of {cls.instance_class} in {system}") - continue - - if inst and handle_inst: - inst = cls.handle_instance(inst) - - if inst is not None: - out[k] = inst - return out
- - - @staticmethod - def unpack_atrs(d,pre='',conv=None): - - if not conv: - conv = lambda v: v - if isinstance(d,dict): - for k,v in d.items(): - if not isinstance(v,dict): - yield k,pre,conv(v) - elif v: - if pre and not pre.endswith('.'): ppre = pre+'.' - ck = f'{ppre}{k}' - for kii,ki,vi in ATTR_BASE.unpack_atrs(v,ck): - yield kii,ki,conv(vi) - else: - if pre and not pre.endswith('.'): ppre = pre+'.' - ck = f'{ppre}{k}' - yield '',ck,v - return d - -
-[docs] - @classmethod - def handle_instance(cls,canidate): - """handles the instance, override as you wish""" - #print('handle_instance',cls,canidate,cls.instance_class) - - if isinstance(canidate,cls.instance_class): - o = canidate.as_ref_dict() - return o - return canidate #live and let live
- - -
-[docs] - @classmethod - def subclasses(cls, out=None): - """return all subclasses of components, including their subclasses - :param out: out is to pass when the middle of a recursive operation, do not use it! - """ - - # init the set by default - if out is None: - out = set() - - for cls in cls.__subclasses__(): - if not cls.template_class: - continue - out.add(cls) - cls.subclasses(out) - - return out
-
- - -ATTR_BASE.default_options = dict( - # validator=ATTR_BASE.configure_instance, - repr=False, - cmp=None, - hash=None, - init=False, # change this to allow for init input - metadata=None, - converter=None, - kw_only=True, - eq=None, - order=None, - on_setattr=None, - inherited=False, -) -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/common.html b/docs/_build/html/_modules/engforge/common.html deleted file mode 100644 index e60e0ad..0000000 --- a/docs/_build/html/_modules/engforge/common.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - engforge.common — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.common

-"""A set of common values and functions that are globaly available."""
-import sys
-import functools
-
-# Common Modules
-from engforge.configuration import *
-from engforge.logging import LoggingMixin
-from urllib.request import urlopen
-
-import numpy
-
-
-
-[docs] -class ForgeLog(LoggingMixin): - pass
- - - -log = ForgeLog() -log.info("Starting engforge Enviornment") - - -
-[docs] -class inst_vectorize(numpy.vectorize): - def __get__(self, obj, objtype): - return functools.partial(self.__call__, obj)
- - - -
-[docs] -def chunks(lst, n): - """Yield successive n-sized chunks from lst.""" - for i in range(0, len(lst), n): - yield lst[i : i + n]
- - - -
-[docs] -def is_ec2_instance(): - """Check if an instance is running on AWS.""" - result = False - meta = "http://169.254.169.254/latest/meta-data/public-ipv4" - try: - result = urlopen(meta, timeout=5.0).status == 200 - return True - except: - return False - return False
- - - -
-[docs] -def get_size(obj, seen=None): - """Recursively finds size of objects""" - size = sys.getsizeof(obj) - if seen is None: - seen = set() - obj_id = id(obj) - if obj_id in seen: - return 0 - # Important mark as seen *before* entering recursion to gracefully handle - # self-referential objects - seen.add(obj_id) - if isinstance(obj, dict): - size += sum([get_size(v, seen) for v in obj.values()]) - size += sum([get_size(k, seen) for k in obj.keys()]) - elif hasattr(obj, "__dict__"): - size += get_size(obj.__dict__, seen) - elif hasattr(obj, "__iter__") and not isinstance( - obj, (str, bytes, bytearray) - ): - size += sum([get_size(i, seen) for i in obj]) - return size
- - - -# Constants -g = gravity = 9.80665 # m/s2 -G_grav_constant = 6.67430e-11 # m3/kgs -speed_of_light = 299792458 # m/s -u_planck = 6.62607015e-34 # Js -R_univ_gas = 8.314462618 # J/molkg -mass_electron = 9.1093837015e-31 # kg -mass_proton = 1.67262192369e-27 -mass_neutron = 1.67492749804e-27 -r_electron = 2.8179403262e-15 -Kboltzman = 1.380649e-23 # J⋅K−1 -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/component_collections.html b/docs/_build/html/_modules/engforge/component_collections.html deleted file mode 100644 index 3fbfb78..0000000 --- a/docs/_build/html/_modules/engforge/component_collections.html +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - engforge.component_collections — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
-
    -
  • - - -
  • -
  • -
-
-
-
-
- -

Source code for engforge.component_collections

-"""define a collection of components that will propigate to its parents dataframe
-
-When `wide` is set each component's references are reported to the system's table, otherwise only one component's references are reported, however the system will iterate over the components by calling `system.iterable_components` 
-
-Define a Iterable Component slot in a system by calling `Slot.define_iterable(...,wide=True/False)`
-
-CostModel isonly supported in wide mode at this time.
-
-Types: 
-1. ComponentList, ordered by index
-2. ComponentDict, ordered by key
-3. ComponentGraph,  ?#TODO:
-"""
-
-from collections import UserDict, UserList
-from engforge.components import Component
-from engforge.attr_slots import Slot
-from engforge.configuration import forge
-from engforge.typing import *
-from engforge.system_reference import Ref, system_property
-from engforge.properties import *
-
-
-import attrs
-
-
-
-[docs] -def check_comp_type(instance, attr, value): - """ensures the input component type is a Component""" - from engforge.eng.costs import CostModel - - if ( - not instance.wide - and isinstance(value, type) - and issubclass(value, CostModel) - ): - raise TypeError(f"Cost Mixin Not Supported As Iter Type! {value}") - - if isinstance(value, type) and issubclass(value, Component): - return - - raise TypeError(f"Not A Component Class! {value}")
- - - -
-[docs] -class iter_tkn: - """ambigious type to keep track of iterable position form system reference""" - - pass
- - - -
-[docs] -@forge -class ComponentIter(Component): - """Iterable components are designed to eval a large selection of components either one-by-one or all at once at the system level depending on if `wide` property is set.""" - - _ref_cache: dict = None - _item_refs: dict = None - - wide: bool = True - - # what holds the components - data: iter - - # current item keu, non table type, this triggers `anything_changed` in `system._iterate_component()` - current_item: iter_tkn = attr.ib(factory=lambda: None, hash=False, eq=False) - _first_item_key: iter_tkn - - @property - def current(self): - """returns all data in wide format and the active key in _current_item""" - if self.wide: - return self.data - else: - if self.current_item is None: - if not hasattr(self, "_first_item_key"): - next(self._item_gen()) - return self.data[self._first_item_key] - return self.data[self.current_item] - - def _item_gen(self): - for key, item in self.data.items(): - if not hasattr(self, "_first_item_key"): - self._first_item_key = key - yield key, item - - def __setitem__(self, key, value): - assert isinstance( - value, self.component_type - ), f"{value} is not of type: {self.component_type}" - super().__setitem__(key, value) - self.reset() - - def reset(self): - # reset reference cache - self._prv_internal_references = None - self._item_refs = None - self.current_item = None - - def _item_key(self, itkey, item): - """override this to customize data access to self.data or other container name""" - return itkey - - #TODO: way to update internal references in problem, do on update()? - @property - def _internal_references(self) -> dict: - """considers wide format to return active references""" - if self.wide: - return self._prv_internal_references - else: - if self.current_item is None: - return self._item_refs[self._first_item_key] - return self._item_refs[self.current_item] - -
-[docs] - def comp_references(self,**kw): - """Returns this components global references""" - out = {} - out["attributes"] = at = {} - out["properties"] = pr = {} - - for key in self.system_properties_classdef(): - pr[key] = Ref(self, key, True, False) - - for key in self.input_fields(): - at[key] = Ref(self, key, False, True) - - return out
- - -
-[docs] - def internal_references(self, recache=False,numeric_only=False): - """lists the this_name.comp_key.<attr/prop key>: Ref format to override data_dict""" - - if ( - recache == False - and hasattr(self, "_prv_internal_references") - and self._prv_internal_references - ): - return self._internal_references - - keeprefcopy = lambda d: {k: {**c} for k, c in d.items()} - - out = keeprefcopy(self.comp_references()) - at = out["attributes"] # = at = {} - pr = out["properties"] # = pr = {} - _item_refs = {} - - for itkey, item in self._item_gen(): - it_base_key = self._item_key(itkey, item) - - _item_refs[itkey] = ir = keeprefcopy(self.comp_references()) - atr = ir["attributes"] # = atr = {} - prr = ir["properties"] # = prr = {} - - # set property refs - for key in item.system_properties_classdef(): - k = f"{it_base_key}.{key}" - rc = Ref(item, key, True, False) - pr[k] = rc - prr[key] = rc - - # set attr refs - if numeric_only: - for key in item.numeric_fields(): - k = f"{it_base_key}.{key}" - ri = Ref(item, key, False, True) - at[k] = ri - atr[key] = ri - - else: - for key in item.input_fields(): - k = f"{it_base_key}.{key}" - ri = Ref(item, key, False, True) - at[k] = ri - atr[key] = ri - - # cache the references - self._prv_internal_references = out - self._item_refs = _item_refs - return self._internal_references
- - - def __hash__(self): - return hash(id(self))
- - - -
-[docs] -@forge -class ComponentDict(ComponentIter, UserDict): - """Stores components by name, and allows tabulation of them""" - - component_type: type = attrs.field(validator=check_comp_type) - - # tabulate_depth:int = attrs.field(default=1) #TODO: impement this - - _ref_cache: dict = None - - # Dict Setup - def __on_init__(self): - UserDict.__init__(self) - - def __str__(self): - return f"{self.__class__.__name__}[{len(self.data)}]" - - def __repr__(self) -> str: - return str(self)
- - - -
-[docs] -@forge -class ComponentIterator(ComponentIter, UserList): - """Stores components by name, and allows tabulation of them""" - - component_type: type = attrs.field(validator=check_comp_type) - - # Dict Setup - def __on_init__(self): - UserList.__init__(self) - - def _item_gen(self): - for i, item in enumerate(self.data): - if not hasattr(self, "_first_item_key"): - self._first_item_key = i - yield i, item - - def _item_key(self, itkey, item): - return f"{self.component_type.__name__.lower()}.{itkey}"
- - - # def __setitem__(self, key, value): - # assert isinstance(value,self.component_type) - # super().__setitem__(key, value) - # #reset reference cache - # self._ref_cache = None - - -# #Tabulation Override -# @property -# def internal_references(self): -# """lists the this_name.comp_key.<attr/prop key>: Ref format to override data_dict""" -# -# if self._ref_cache: -# return self._ref_cache -# -# out = {} -# out["attributes"] = at = {} -# out["properties"] = pr = {} -# -# for itkey,item in self._item_gen(): -# it_base_key = f'{itkey}' -# -# for key in item.system_properties_classdef(): -# k = f'{it_base_key}.{key}' -# pr[k] = Ref(item, key) -# -# for key in item.input_fields(): -# k = f'{it_base_key}.{key}' -# at[k] = Ref(item, key, False) -# -# #cache the references -# self._ref_cache = out -# return out - -# #Tabulation Override -# @property -# def internal_references(self): -# """lists the this_name.comp_key.<attr/prop key>: Ref format to override data_dict""" -# -# if self._ref_cache: -# return self._ref_cache -# -# out = {} -# out["attributes"] = at = {} -# out["properties"] = pr = {} -# -# for it,item in self._item_gen(): -# it_base_key = f'{self.component_type.__name__.lower()}.{it}' -# -# for key in item.system_properties_classdef(): -# k = f'{it_base_key}.{key}' -# pr[k] = Ref(item, key) -# -# for key in item.input_fields(): -# k = f'{it_base_key}.{key}' -# at[k] = Ref(item, key, False) -# -# #cache the references -# self._ref_cache = out -# return out -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/components.html b/docs/_build/html/_modules/engforge/components.html deleted file mode 100644 index ea43e94..0000000 --- a/docs/_build/html/_modules/engforge/components.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - engforge.components — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.components

-from contextlib import contextmanager
-import attr
-import typing
-
-# from engforge.logging import LoggingMixin, log
-from engforge.tabulation import TabulationMixin, system_property
-from engforge.configuration import forge, Configuration
-from engforge.solver import SolveableMixin
-from engforge.properties import class_cache
-from engforge.dynamics import DynamicsMixin
-
-
-import os, sys
-import inspect
-
-# import pathlib
-import random
-import matplotlib.pyplot as plt
-
-
-
-[docs] -@forge -class SolveableInterface(Configuration,TabulationMixin,SolveableMixin): - """common base betwewn solvable and system""" - parent: typing.Union["Component", "System"] = attr.ib(default=None) - _last_context: "ProblemExec" - - @property - def last_context(self): - """get the last context run, or the parent's""" - if hasattr(self,"_last_context"): - #cleanup parent context - if hasattr(self,'_parent_context') and not self.parent.last_context: - del self._last_context - del self._parent_context - else: - return self._last_context - elif hasattr(self,'parent') and self.parent and (ctx:=self.parent.last_context): - self._last_context = ctx - self._parent_context = True - return ctx - return None
- - -#NOTE: components / systems not interchangable, systems are like components but are have solver capabilities -#TODO: justify separation of components and systems, and not making system a subclass of component. Otherwise make system a subclass of component -
-[docs] -@forge -class Component(SolveableInterface,DynamicsMixin): - """Component is an Evaluatable configuration with tabulation, and solvable functionality""" - pass
- - -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/configuration.html b/docs/_build/html/_modules/engforge/configuration.html deleted file mode 100644 index ba1f604..0000000 --- a/docs/_build/html/_modules/engforge/configuration.html +++ /dev/null @@ -1,747 +0,0 @@ - - - - - - engforge.configuration — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.configuration

-import attr, attrs
-
-from engforge.engforge_attributes import AttributedBaseMixin
-from engforge.logging import LoggingMixin, log, change_all_log_levels
-from engforge.properties import *
-from engforge.env_var import EnvVariable
-import randomname
-import datetime
-import copy
-
-
-# make a module logger
-
-[docs] -class ConfigLog(LoggingMixin): - pass
- - -log = ConfigLog() - -conv_nms = lambda v: v.split(',') if isinstance(v,str) else v -NAME_ADJ = EnvVariable('FORGE_NAME_ADJ',default=('geometry','size','algorithms','complexity','colors','materials'),type_conv=conv_nms) -NAME_NOUN = EnvVariable('FORGE_NAME_NOUN',default=('chemistry','astronomy','linear_algebra','geometry','coding','corporate_job','design','car_parts','machine_learning','physics_units'),type_conv=conv_nms) -FORGE_DEBUG = EnvVariable('FORGE_LOG_LEVEL',default=('chemistry','astronomy','linear_algebra','geometry','coding','corporate_job','design','car_parts','machine_learning','physics_units'),type_conv=conv_nms) - -
-[docs] -def name_generator(instance): - """a name generator for the instance""" - base = str(instance.__class__.__name__).lower()+'-' - if instance.__class__._use_random_name: - out =base+ randomname.get_name(adj=NAME_ADJ.secret,noun=NAME_NOUN.secret) - else: - out = base - log.debug(f"generated name: {out}") - return out
- - -PROTECTED_NAMES = ['solver','dataframe','_anything_changed'] - -# Wraps Configuration with a decorator, similar to @attrs.define(**options) -
-[docs] -def forge(cls=None, **kwargs): - """Wrap all Configurations with this decorator with the following behavior - 1) we use the callback when any property changes - 2) repr is default - 3) hash is by object identity""" - - # Define defaults and handle conflicts - dflts = dict(repr=False, eq=False, slots=False, kw_only=True, hash=False) - for k, v in kwargs.items(): - if k in dflts: - dflts.pop(k) - - if cls is not None: - # we can't import system here since cls might be system, so look for any system subclasses - if "System" in [c.__name__ for c in cls.mro()]: - log.info(f"Configuring System: {cls.__name__}") - acls = attr.s( - cls, - on_setattr=property_changed, - field_transformer=signals_slots_handler, - **dflts, - **kwargs, - ) - - # must be here since can't inspect till after fields corrected - acls.pre_compile() # custom class compiler - acls.validate_class() - if acls.__name__ != "Configuration": # prevent configuration lookup - acls.compile_classes() # compile subclasses - return acls - - # Component/Config Flow - log.msg(f"Configuring: {cls.__name__}") - acls = attr.s( - cls, - on_setattr=property_changed, - field_transformer=comp_transform, - **dflts, - **kwargs, - ) - if FORGE_DEBUG.in_env: - change_all_log_levels(inst=acls,new_log_level=FORGE_DEBUG.secret) - # must be here since can't inspect till after fields corrected - acls.pre_compile() # custom class compiler - acls.validate_class() - if acls.__name__ != "Configuration": # prevent configuration lookup - acls.compile_classes() # compile subclasses - return acls - - else: - - def f(cls, *args): - return forge(cls, **kwargs) - - f.__name__ == "forge_wrapper" - - return f
- - - -
-[docs] -def meta(title, desc=None, **kwargs): - """a convienience wrapper to add metadata to attr.ib - :param title: a title that gets formatted for column headers - :param desc: a description of the property""" - out = { - "label": title.replace(".", "_").replace("-", "_").title(), - "desc": None, - **kwargs, - } - return out
- - - -# Class Definition Wrapper Methods -
-[docs] -def property_changed(instance, variable, value): - """a callback for when a property changes, this will set the _anything_changed flag to True, and change value when appropriate""" - from engforge.tabulation import TabulationMixin - from engforge.problem_context import ProblemExec - - #TODO: determine when, in an active problem if components change, and update refs accordingly! - - if not isinstance(instance, (TabulationMixin)): - return value - - #Establish Active Session - session = None - if hasattr(ProblemExec.class_cache, "session"): - session = ProblemExec.class_cache.session - - if not session and instance._anything_changed: - # Bypass Check since we've already flagged for an update - if log.log_level <= 2: - log.debug(f"already property changed {instance}{variable.name} {value}") - return value - #log.info(f'property changed {variable.name} {value}') - - if log.log_level <= 6: - log.debug(f"checking property changed {instance}{variable.name} {value}") - - #Check if should be updated - cur = getattr(instance, variable.name) - attrs = attr.fields(instance.__class__) #check identity of variable - if not instance._anything_changed and variable in attrs and value != cur: - if log.log_level < 5: - log.debug(f"changing variables: {variable.name} {value}") - instance._anything_changed = True - - elif log.log_level < 4 and variable in attrs: - log.warning( - f"didnt change variables {variable.name}| {value} == {cur}" - ) - - #If active session in dynamic mode and the component is dynamic, flag for matrix update - #TODO: determine if dynamic matricies affected by this. - - if session and session.dynamic_solve and instance.is_dynamic: - #log.info(f'dynamics changed') - session.dynamics_updated = True #flag for update - - elif session: - #log.info(f'static change') - session.dynamics_updated = False - - return value
- - - -# Class Definition Wrapper Methods -
-[docs] -def signals_slots_handler( - cls, fields, slots=True, signals=True, solvers=True, sys=True, plots=True -): - """ - creates attributes as per the attrs.define field_transformer use case. - - Customize initalization with slots,signals,solvers and sys flags. - """ - from engforge.problem_context import ProblemExec - - log.debug(f"transforming signals and slots for {cls.__name__}") - - for t in fields: - if t.name in PROTECTED_NAMES: - raise Exception(f"cannot use {t.name} as a field name, its protected") - if t.type is None: - log.warning(f"{cls.__name__}.{t.name} has no type") - - out = [] - field_names = set([o.name for o in fields]) - log.debug(f"fields: {field_names}") - - #Add Fields (no underscored fields) - in_fields = {f.name: f for f in fields if not f.name.startswith("_") } - if "name" in in_fields: - name = in_fields.pop("name") - out.append(name) - - else: - log.warning(f"{cls.__name__} does not have a name!") - name = attrs.Attribute( - name="name", - default=attrs.Factory(name_generator, True), - validator=None, - repr=True, - cmp=None, - eq=True, - eq_key=None, - order=True, - order_key=None, - hash=None, - init=True, - metadata=None, - type=str, - converter=None, - kw_only=True, - inherited=True, - on_setattr=None, - alias="name", - ) - out.append(name) - - # Add Slots - if slots: - for slot_name, slot in cls.slots_attributes().items(): - at = slot.make_attribute(slot_name, cls) - out.append(at) - - # Add Signals - if signals: - for signal_name, signal in cls.signals_attributes().items(): - at = signal.make_attribute(signal_name, cls) - out.append(at) - - # Add SOLVERS - if solvers: - for solver_name, solver in cls.solvers_attributes().items(): - at = solver.make_attribute(solver_name, cls) - out.append(at) - - # Add Time - for solver_name, solver in cls.transients_attributes().items(): - # add from cls since not accessible from attrs - at = solver.make_attribute(solver_name, cls) - out.append(at) - - if plots: - for pltname, plot in cls.plot_attributes().items(): - at = plot.make_attribute(pltname, cls) - out.append(at) - - for pltname, plot in cls.trace_attributes().items(): - at = plot.make_attribute(pltname, cls) - out.append(at) - - created_fields = set([o.name for o in out]) - - # Merge Fields Checking if we are overriding an attribute with system_property - # hack since TabulationMixin isn't available yet - if "TabulationMixin" in str(cls.mro()): - cls_properties = cls.system_properties_classdef(True) - else: - cls_properties = {} - cls_dict = cls.__dict__.copy() - cls.__anony_store = {} - # print(f'tab found!! {cls_properties.keys()}') - for k, o in in_fields.items(): - if k not in created_fields: - if k in cls_properties and o.inherited: - log.warning( - f"{cls.__name__} overriding inherited attr: {o.name} as a system property overriding it" - ) - elif o.inherited and k in cls_dict: - log.debug( - f"{cls.__name__} overriding inherited attr: {o.name} as {cls_dict[k]} in cls" - ) - #FIXME: should we deepcopy? - cls.__anony_store[k] = sscb = lambda: copy.copy(cls_dict[k]) - out.append(o.evolve(default=attrs.Factory(sscb))) - else: - log.msg(f"{cls.__name__} adding attr: {o.name}") - out.append(o) - else: - log.warning( - f"{cls.__name__} skipping inherited attr: {o.name} as a custom type overriding it" - ) - - # Enforce Property Changing - # FIXME: is this more reliable than a class wide callback? - # real_out = [] - # for fld in out: - # if fld.type in (int,float,str): - # #log.warning(f"setting property changed on {fld}") - # fld = fld.evolve(on_setattr = property_changed) - # real_out.append(fld) - # else: - # real_out.append(fld) - # #return real_out - return out
- - - -# alternate initalisers -comp_transform = lambda c, f: signals_slots_handler( - c, f, slots=True, signals=True, solvers=True, sys=False, plots=False -) - - - -# TODO: Make A MetaClass for Configuration, and provide forge interface there. Problem with replaceing metaclass later, as in the case of a singleton. -
-[docs] -@forge -class Configuration(AttributedBaseMixin): - """Configuration is a pattern for storing attributes that might change frequently, and proivdes the core functionality for a host of different applications. - - Configuration is able to go through itself and its objects and map all included Configurations, just to a specific level. - - Common functionality includes an __on_init__ wrapper for attrs post-init method - """ - - _temp_vars = None - - _use_random_name: bool = True - name: str = attr.ib( - default=attrs.Factory(name_generator, True), - validator=attr.validators.instance_of(str), - kw_only=True, - ) - - log_fmt = "[%(name)-24s]%(message)s" - log_silo = True - - _created_datetime = None - _subclass_init: bool = True - - # Configuration Information -
-[docs] - def internal_configurations(self, check_config=True, use_dict=True,none_ok=False) -> dict: - """go through all attributes determining which are configuration objects - additionally this skip any configuration that start with an underscore (private variable) - """ - from engforge.configuration import Configuration - slots = self.slots_attributes() - - if check_config: - chk = lambda k, v: isinstance(v, Configuration) - else: - chk = lambda k, v: k in slots and (none_ok or v is not None) - - obj = self.__dict__ - if not use_dict: # slots - obj = {k: obj.get(k, None) for k in slots} - - return { - k: v for k, v in obj.items() if chk(k, v) and not k.startswith("_") - }
- - -
-[docs] - def copy_config_at_state( - self, level=None, levels_deep: int = -1, changed: dict = None, **kw - ): - """copy the system at the current state recrusively to a certain level, by default copying everything - :param levels_deep: how many levels deep to copy, -1 is all - :param level: the current level, defaults to 0 if not set - """ - from engforge.configuration import Configuration - from engforge.components import SolveableInterface - - if changed is None: - # top! - changed = {} - - if self in changed: - self.debug(f"already changed {self}") - return changed[self] - - if level is None: - level = 0 - # at top level add parent to changed to prevent infinte parent recursion - changed[self] = None - - # exit early if below the level - if level >= levels_deep and levels_deep > 0: - self.debug(f"below level {level} {levels_deep} {self}") - new_sys = attrs.evolve(self) # copy as is - changed[self] = new_sys - return new_sys - - # copy the internal configurations - kwcomps = {} - for key, config in self.internal_configurations().items(): - self.debug(f"copying {key} {config} {level} {changed}") - # copy the system - if config in changed: - ccomp = changed[config] - else: - ccomp = config.copy_config_at_state( - level + 1, levels_deep, changed - ) - kwcomps[key] = ccomp - - # Finally make the new system with changed internals - self.debug(f"changing with changes {self} {kwcomps} {kw}") - new_sys = attrs.evolve(self, **kwcomps, **kw) - changed[self] = new_sys - - #Finally change references! - if isinstance(new_sys, SolveableInterface): - new_sys.system_references(recache=True) - - #update the parents - if hasattr(self,'parent'): - if self.parent in changed: - new_sys.parent = changed[self.parent] - - return new_sys
- - -
-[docs] - def go_through_configurations( - self, level=0, levels_to_descend=-1, parent_level=0, only_inst=True,**kw - ): - """A generator that will go through all internal configurations up to a certain level - if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will - only go through this configuration - - :return: level,config""" - from engforge.configuration import Configuration - - should_yield_level = lambda level: all( - [ - level >= parent_level, - any([levels_to_descend < 0, level <= levels_to_descend]), - ] - ) - - if should_yield_level(level): - yield "", level, self - - level += 1 - if "check_config" not in kw: - kw["check_config"] = False - - for key, config in self.internal_configurations(**kw).items(): - if isinstance(config, Configuration): - for skey, level, iconf in config.go_through_configurations( - level, levels_to_descend, parent_level - ): - if not only_inst or iconf is not None : - yield f"{key}.{skey}" if skey else key, level, iconf - else: - if not only_inst or config is not None : - yield key, level, config
- - - # Our Special Init Methodology - def __on_init__(self): - """Override this when creating your special init functionality, you must use attrs for input variables, this is called after parents are assigned. subclasses are always called after""" - pass - - def __pre_init__(self): - """Override this when creating your special init functionality, you must use attrs for input variables, this is called before parents are assigned""" - pass - - def __attrs_post_init__(self): - """This is called after __init__ by attr's functionality, we expose __oninit__ for you to use!""" - # Store abs path On Creation, in case we change - - from engforge.components import Component - - self._log = None - self._anything_changed = True # save by default first go! - self._created_datetime = datetime.datetime.utcnow() - - # subclass instance instance init causes conflicts in structures ect - self.__pre_init__() - if self._subclass_init: - try: - for comp in self.__class__.mro(): - if hasattr(comp, "__pre_init__") and comp.__pre_init__ != Configuration.__pre_init__: - comp.__pre_init__(self) - except Exception as e: - self.error(e, f"error in __pre_init__ {e}") - - # Assign Parents, ensure single componsition - #TODO: allow multi-parent, w/wo keeping state, state swap on update()? - #TODO: replace parent concept with problem context - for compnm, comp in self.internal_configurations(False).items(): - if isinstance(comp, Component): - # TODO: allow multiple parents - if (not hasattr(comp, "parent")) and (comp.parent is not None): - self.warning( - f"Component {compnm} already has a parent {comp.parent} copying, and assigning to {self}" - ) - setattr(self, compnm, attrs.evolve(comp, parent=self)) - else: - comp.parent = self - - self.debug(f"created {self.identity}") - - # subclass instance instance init causes conflicts in structures - self.__on_init__() - if self._subclass_init: - try: - for comp in self.__class__.mro(): - if hasattr(comp, "__on_init__") and comp.__on_init__ != Configuration.__on_init__: - comp.__on_init__(self) - except Exception as e: - self.error(e, f"error in __on_init__") - -
-[docs] - @classmethod - def validate_class(cls): - """A customizeable validator at the end of class creation in forge""" - return
- - -
-[docs] - @classmethod - def pre_compile(cls): - """an overrideable classmethod that executes when compiled, however will not execute as a subclass""" - pass
- - -
-[docs] - @classmethod - def compile_classes(cls): - """compiles all subclass functionality""" - cls.cls_compile() - for subcls in cls.parent_configurations_cls(): - if subcls.subcls_compile is not Configuration: - log.debug(f"{cls.__name__} compiling {subcls.__name__}") - subcls.subcls_compile()
- - -
-[docs] - @classmethod - def cls_compile(cls): - """compiles this class, override this to compile functionality for this class""" - pass
- - -
-[docs] - @classmethod - def subcls_compile(cls): - """reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins""" - pass
- - -
-[docs] - @classmethod - def parent_configurations_cls(cls) -> list: - """returns all subclasses that are a Configuration""" - return [c for c in cls.mro() if issubclass(c, Configuration)]
- - - # Identity & location Methods - @property - def filename(self): - """A nice to have, good to override""" - fil = ( - self.identity.replace(" ", "_") - .replace("-", "_") - .replace(":", "") - .replace("|", "_") - .title() - ) - filename = "".join( - [ - c - for c in fil - if c.isalpha() or c.isdigit() or c == "_" or c == "-" - ] - ).rstrip() - return filename - - @property - def displayname(self): - dn = ( - self.identity.replace("_", " ") - .replace("|", " ") - .replace("-", " ") - .replace(" ", " ") - .title() - ) - # dispname = "".join([c for c in dn if c.isalpha() or c.isdigit() or c=='_' or c=='-']).rstrip() - return dn - - @property - def identity(self): - """A customizeable property that will be in the log by default""" - if not self.name or self.name == "default": - return self.classname.lower() - if self.classname in self.name: - return self.name.lower() - return f"{self.classname}-{self.name}".lower() - - @property - def classname(self): - """Shorthand for the classname""" - return str(type(self).__name__).lower() - - # Structural Orchestration Through Subclassing -
-[docs] - @classmethod - def subclasses(cls, out=None): - """return all subclasses of components, including their subclasses - :param out: out is to pass when the middle of a recursive operation, do not use it! - """ - - # init the set by default - if out is None: - out = set() - - for cls in cls.__subclasses__(): - out.add(cls) - cls.subclasses(out) - - return out
-
- -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/dataframe.html b/docs/_build/html/_modules/engforge/dataframe.html deleted file mode 100644 index d160710..0000000 --- a/docs/_build/html/_modules/engforge/dataframe.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - engforge.dataframe — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.dataframe

-"""Dataframe Module:
-
-Store data in dataframes and provide a simple interface to manipulate it.
-"""
-
-from contextlib import contextmanager
-import attr
-
-from engforge.common import inst_vectorize, chunks
-from engforge.properties import engforge_prop
-# from engforge.configuration import Configuration, forge
-from engforge.logging import LoggingMixin
-from engforge.typing import *
-from engforge.properties import *
-from typing import Callable
-
-import numpy
-import pandas
-import os
-import collections
-import uuid
-
-
-
-[docs] -class DataFrameLog(LoggingMixin): - pass
- - - -log = DataFrameLog() - - -# Dataframe interrogation functions -
-[docs] -def is_uniform(s: pandas.Series): - a = s.to_numpy() # s.values (pandas<0.24) - if (a[0] == a).all(): - return True - try: - if not numpy.isfinite(a).any(): - return True - except: - pass - return False
- - - -# key_func = lambda kv: len(kv[0].split('.'))*len(kv[1]) -# length of matches / length of key -key_func = lambda kv: len(kv[1]) / len(kv[0].split(".")) -# key_func = lambda kv: len(kv[1]) - - -# TODO: remove duplicate columns -# mtches = collections.defaultdict(set) -# dfv = ecs.dataframe_variants[0] -# for v1,v2 in itertools.combinations(dfv.columns,2): -# if numpy.all(dfv[v1]==dfv[v2]): -# -# mtches[v1].add(v2) -# mtches[v2].add(v1) - -#TODO: integrate statistical output of dataframe, if at all in problem domain -#1. stats_mode: mean, median,min,max mode, std, var, skew, kurtosis -#2. min_mode: mean,median,std,min,max -#3. sub_mode: store the dataframe completely separately -
-[docs] -class dataframe_property(engforge_prop): - pass
- - - -#aliases -dataframe_prop = dataframe_property -df_prop = dataframe_property - - -
-[docs] -def determine_split(raw, top: int = 1, key_f=key_func): - parents = {} - - for rw in raw: - grp = rw.split(".") - for i in range(len(grp)): - tkn = ".".join(grp[0 : i + 1]) - parents[tkn] = set() - - for rw in raw: - for par in parents: - if rw.startswith(par): - parents[par].add(rw) - - grps = sorted(parents.items(), key=key_f, reverse=True)[:top] - return [g[0] for g in grps]
- - - -
-[docs] -def split_dataframe(df: pandas.DataFrame) -> tuple: - """split dataframe into a dictionary of invariants and a dataframe of variable values - - :returns tuple: constants,dataframe - """ - uniform = {} - for s in df: - c = df[s] - if is_uniform(c): - uniform[s] = c[0] - - df_unique = df.copy().drop(columns=list(uniform)) - return uniform, df_unique if len(df_unique) > 0 else df_unique
- - - -
-[docs] -class DataframeMixin: - dataframe: pandas.DataFrame - - _split_dataframe_func = split_dataframe - _determine_split_func = determine_split - -
-[docs] - def smart_split_dataframe(self, df=None, split_groups=0, key_f=key_func): - """splits dataframe between constant values and variants""" - if df is None: - df = self.dataframe - out = {} - const, vardf = split_dataframe(df) - out["constants"] = const - columns = set(vardf.columns) - split_groups = min(split_groups, len(columns) - 1) - if split_groups == 0: - out["variants"] = vardf - else: - nconst = {} - cgrp = determine_split(const, min(split_groups, len(const) - 1)) - for i, grp in enumerate(sorted(cgrp, reverse=True)): - columns = set(const) - bad_columns = [c for c in columns if not c.startswith(grp)] - good_columns = [c for c in columns if c.startswith(grp)] - nconst[grp] = {c: const[c] for c in good_columns} - for c in good_columns: - if c in columns: - columns.remove(c) - out["constants"] = nconst - - raw = sorted(set(df.columns)) - grps = determine_split(raw, split_groups, key_f=key_f) - - for i, grp in enumerate(sorted(grps, reverse=True)): - columns = set(vardf.columns) - bad_columns = [c for c in columns if not c.startswith(grp)] - good_columns = [c for c in columns if c.startswith(grp)] - out[grp] = vardf.copy().drop(columns=bad_columns) - # remove columns from vardf - vardf = vardf.drop(columns=good_columns) - if vardf.size > 0: - out["misc"] = vardf - return out
- - - @solver_cached - def _split_dataframe(self): - """splits dataframe between constant values and variants""" - return split_dataframe(self.dataframe) - - @property - def dataframe_constants(self): - return self._split_dataframe[0] - - @property - def dataframe_variants(self): - o = self._split_dataframe[1:] - if isinstance(o, (list,tuple)): - if len(o) == 1: - return o[0] - return o - - def format_columns(self, dataframe: pandas.DataFrame): - dataframe.rename( - lambda x: x.replace(".", "_").lower(), axis="columns", inplace=True - ) - - # Plotting Interface - @property - def skip_plot_vars(self) -> list: - """accesses '_skip_plot_vars' if it exists, otherwise returns empty list""" - if hasattr(self, "_skip_plot_vars"): - return [var.lower() for var in self._skip_plot_vars] - return [] - - @property - def dataframe(self): - """returns the dataframe""" - raise NotImplementedError("must be implemented in subclass")
- -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/datastores/data.html b/docs/_build/html/_modules/engforge/datastores/data.html deleted file mode 100644 index fb93eb6..0000000 --- a/docs/_build/html/_modules/engforge/datastores/data.html +++ /dev/null @@ -1,677 +0,0 @@ - - - - - - engforge.datastores.data — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.datastores.data

-from sqlalchemy import *
-from sqlalchemy.ext.declarative import declarative_base
-from sqlalchemy.orm import sessionmaker
-from sqlalchemy.orm import relationship
-from sqlalchemy.orm import backref
-from sqlalchemy.orm import scoped_session
-from sqlalchemy_utils import *
-
-import functools
-
-import os, sys
-import logging
-import numpy
-import time
-import signal
-import functools
-import time
-from urllib.request import urlopen
-from psycopg2.extensions import register_adapter, AsIs
-import psycopg2
-
-import cachetools
-
-from engforge.env_var import EnvVariable
-from engforge.patterns import SingletonMeta, InputSingletonMeta
-from engforge.logging import (
-    LoggingMixin,
-    change_all_log_levels,
-)
-from engforge.locations import client_path
-
-from engforge.common import is_ec2_instance
-from engforge.tabulation import *  # This should be considered a module of data
-
-from sqlalchemy_batch_inserts import enable_batch_inserting
-
-from contextlib import contextmanager
-
-import diskcache
-
-log = logging.getLogger("engforge-data")
-
-# Env Vars
-DB_NAME = EnvVariable("FORGE_DB_NAME", dontovrride=True)
-DB_HOST = EnvVariable("FORGE_DB_HOST", default="localhost", dontovrride=True)
-DB_PORT = EnvVariable("FORGE_DB_PORT", int, default=5432, dontovrride=True)
-DB_USER = EnvVariable("FORGE_DB_USER", default="postgres", dontovrride=True)
-DB_PASS = EnvVariable("FORGE_DB_PASS", default="postgres", dontovrride=True)
-
-
-
-[docs] -def addapt_numpy_float64(numpy_float64): - return AsIs(numpy_float64)
- - - -
-[docs] -def addapt_numpy_int64(numpy_int64): - return AsIs(numpy_int64)
- - - -
-[docs] -def addapt_numpy_float32(numpy_float32): - return AsIs(numpy_float32)
- - - -
-[docs] -def addapt_numpy_int32(numpy_int32): - return AsIs(numpy_int32)
- - - -
-[docs] -def addapt_numpy_array(numpy_array): - return AsIs(tuple(numpy_array))
- - - -register_adapter(numpy.float64, addapt_numpy_float64) -register_adapter(numpy.int64, addapt_numpy_int64) -register_adapter(numpy.float32, addapt_numpy_float32) -register_adapter(numpy.int32, addapt_numpy_int32) -register_adapter(numpy.ndarray, addapt_numpy_array) - - -# This handles nans (which present as floats)! -
-[docs] -def nan_to_null(f): - if not numpy.isnan(f) and not numpy.isinf(f): - return psycopg2.extensions.Float(f) - return AsIs("NULL")
- - - -register_adapter(float, nan_to_null) - -DataBase = declarative_base() - -# TODO: Get this ray remote decorator working, issues with structure reliability -# @ray.remote -# class RemoteFunctionCache(): - -# def __init__(self, func, maxsize=1024): -# self.func = cachetools.cached(cachetools.LRUCache(maxsize=maxsize))(func) - -# def call(self, key, *args, **kwargs): -# return self.func(key,*args, **kwargs) - -# class CachingMaybeRemoteFunc: -# _cache = None - -# def __init__(self, func,maxsize=1024): -# self.func = cachetools.cached(cachetools.LRUCache(maxsize=maxsize))(func) - -# @property -# def cache(self): -# if self._cache is not None: -# return self._cache - -# elif ray.is_initialized(): -# self._cache = RemoteFunctionCache.remote(self.func,maxsize=maxsize) - -# return self._cache #will be None when not using ray - -# def select_call(self,key,*args, **kwargs): -# if self.cache is not None: -# log.info(f'getting with remote {key}') -# obj = self.cache.call.remote(key, *args, **kwargs) -# return obj.get() - -# else: -# log.info(f'getting local {key}') -# return self.func(key, *args, **kwargs) - -# def __call__(self, key, *args, **kwargs): -# log.info(f'__call__ {key}') -# out = self.select_call( key, *args, **kwargs ) -# log.info(f'got value for {key}: {out}') -# return out - - -# def ray_cache(func): -# return CachingMaybeRemoteFunc(func) - -import numpy as np -import matplotlib.pyplot as pl -from scipy.fftpack import fft, ifft - - -
-[docs] -def autocorrelation_fft(x): - xp = ifftshift((x - np.average(x)) / np.std(x)) - (n,) = xp.shape - xp = np.r_[xp[: n // 2], np.zeros_like(xp), xp[n // 2 :]] - f = fft(xp) - p = np.absolute(f) ** 2 - pi = ifft(p) - return np.real(pi)[: n // 2] / (np.arange(n // 2)[::-1] + n // 2)
- - - -
-[docs] -def autocorrelation_direct(x): - maxdelay = int(len(x) / 5) - N = len(x) - mean = np.average(x) - var = np.var(x) - xp = (x - mean) / np.sqrt(var) - autocorrelation = np.zeros(maxdelay) - for r in range(maxdelay): - for k in range(N - r): - autocorrelation[r] += xp[k] * xp[k + r] - autocorrelation[r] /= float(N - r) - return autocorrelation
- - - -
-[docs] -def autocorrelation_numpy(x): - xp = (x - np.mean(x)) / np.std(x) - result = np.correlate(xp, xp, mode="full") - return result[int(result.size / 2) :] / len(xp)
- - - -# def main(): -# t = np.linspace(0,20,1024) -# x = np.exp(-t**2) -# pl.plot(t[:200], autocorrelation_fft(x)[:200],label='scipy fft') -# pl.plot(t[:200], autocorrelation_direct(x)[:200],label='direct autocorrelation') -# pl.plot(t[:200], autocorrelation_numpy(x)[:200],label='numpy correlate') -# pl.legend() -# pl.show() - - -# @singleton_meta_object -
-[docs] -class DiskCacheStore(LoggingMixin, metaclass=SingletonMeta): - """A singleton object with safe methods for file access, - Aims to prevent large number of file pointers open - - These should be subclassed for each cache location you want""" - - _cache = None - size_limit = 10e9 # 10GB - alt_path = None - cache_class = diskcache.Cache - timeout = 1.0 - cache_init_kwargs = None - - last_expire = None - _current_keys = None - expire_threshold = 60.0 - - retries = 3 - sleep_time = 0.1 - - def __init__(self, **kwargs): - if kwargs: - self.cache_init_kwargs = kwargs - else: - self.cache_init_kwargs = {} - self.info(f"Created DiskCacheStore In {self.cache_root}") - self.cache - - @property - def cache_root(self): - # TODO: CHECK CACHE IS NOT SYNCED TO DROPBOX - if self.alt_path is not None: - return os.path.join( - client_path(skip_wsl=False), "cache", self.alt_path - ) - return os.path.join( - client_path(skip_wsl=False), - "cache", - "{}".format(type(self).__name__).lower(), - ) - - @property - def cache(self): - if self._cache is None: - self.debug("setting cache") - self._cache = self.cache_class( - self.cache_root, - timeout=self.timeout, - size_limit=self.size_limit, - **self.cache_init_kwargs, - ) - return self._cache - -
-[docs] - def set(self, key=None, data=None, retry=True, ttl=None, **kwargs): - """Passes default arguments to set the key:data relationship - :param expire: time in seconds to expire the data - """ - if ttl is None: - ttl = self.retries # onstart - self.last_expire = None - - try: - with self.cache as ch: - ch.set(key, data, retry=retry, **kwargs) - - except Exception as e: - ttl -= 1 - if ttl > 0: - time.sleep(self.sleep_time * (self.retries - ttl)) - return self.set(key=key, data=data, retry=True, ttl=ttl) - else: - self.error(e, "Issue Getting Item From Cache")
- - - # @ray_cache -
-[docs] - def get(self, key=None, on_missing=None, retry=True, ttl=None): - """Helper method to get an item, return None it doesn't exist and warn. - :param on_missing: a callback to use if the data is missing, which will set the data at the key, and return it - """ - if ttl is None: - ttl = self.retries # onstart - - try: - with self.cache as ch: - if key in ch: - return ch.get(key, retry=retry) - else: - if on_missing is not None: - data = on_missing() - self.set(key=key, data=data) - return data - self.warning("key {} not in cache".format(key)) - return None - - except Exception as e: - ttl -= 1 - if ttl > 0: - time.sleep(self.sleep_time * (self.retries - ttl)) - return self.get( - key=key, on_missing=on_missing, retry=True, ttl=ttl - ) - else: - self.error(e, "Issue Getting Item From Cache")
- - -
-[docs] - def expire(self): - """wrapper for diskcache expire method that only permits expiration on a certain interval - :return: bool, True if expired called""" - now = time.time() - if ( - self.last_expire is None - or now - self.last_expire > self.expire_threshold - ): - self.cache.expire() - self.last_expire = now - return True - return False
- - - @property - def current_keys(self): - has_new_keys = self.expire() # will be updated locally max every 60s - if has_new_keys or self._current_keys is None: - self._current_keys = set(list(self.cache)) - - return self._current_keys - - def __iter__(self): - return self.cache.__iter__() - - @property - def identity(self): - return "{}".format(self.__class__.__name__.lower()) - - def __getstate__(self): - d = self.__dict__.copy() - d["_cache"] = None # don't pickle file objects! - return d - - def __setstate__(self, d): - for key, val in d.items(): - self.__dict__[key] = val - self.cache # create cache
- - - -
-[docs] -class DBConnection(LoggingMixin, metaclass=InputSingletonMeta): - """A database singleton that is thread safe and pickleable (serializable) - to get the active instance use DBConnection.instance(**non_default_connection_args) - """ - - # TODO: Make Threadsafe W/ ThreadPoolExecutor! - # we love postgres! - _connection_template = ( - "postgresql://{user}:{passd}@{host}:{port}/{database}" - ) - - pool_size = 20 - max_overflow = 0 - echo = False - - dbname = None - host = None - user = None - passd = None - port = 5432 - - # Reset - connection_string = None - engine = None - scopefunc = None - session_factory = None - Session = None - - _batchmode = False - - connect_args = {"connect_timeout": 5} - - def __init__( - self, database_name=None, host=None, user=None, passd=None, **kwargs - ): - """On the Singleton DBconnection.instance(): __init__(*args,**kwargs) will get called, technically you - could do it this way but won't be thread safe, or a single instance - :param database_name: the name for the database inside the db server - :param host: hostname - :param user: username - :param passd: password - :param port: hostname - :param echo: if the engine echos or not""" - self.info("initalizing db connection") - # Get ENV Defaults - - if database_name is not None: - self.dbname = database_name - else: - self.dbname = DB_NAME.secret - - if host is not None: - self.host = host - else: - self.host = HOST = DB_HOST.secret - - if user is not None: - self.user = user - else: - self.user = USER = DB_USER.secret - - if passd is not None: - self.info("Getting DB pass arg") - self.passd = passd - else: - self.passd = PASS = DB_PASS.secret - - # Args with defaults - if "port" in kwargs: - self.port = kwargs["port"] - else: - self.port = DB_PORT.secret - - if "echo" in kwargs: - self.echo = kwargs["echo"] - else: - self.echo = False - - if "batchmode" in kwargs: - self._batchmode = True # kwargs['batchmode'] - - self.resetLog() - self.configure() - -
-[docs] - def configure(self): - """A boilerplate configure method""" - self.info("Configuring...") - self.connection_string = self._connection_template.format( - host=self.host, - user=self.user, - passd=self.passd, - port=self.port, - database=self.dbname, - ) - extra_args = {} - if self._batchmode: - extra_args["executemany_mode"] = "values" - - self.engine = create_engine( - self.connection_string, - pool_size=self.pool_size, - max_overflow=self.max_overflow, - connect_args={"connect_timeout": 5}, - **extra_args, - ) - self.engine.echo = self.echo - - # self.scopefunc = functools.partial(context.get, "uuid") - - self.session_factory = sessionmaker( - bind=self.engine, expire_on_commit=True - ) - self.Session = scoped_session(self.session_factory)
- - -
-[docs] - @contextmanager - def session_scope(self): - """Provide a transactional scope around a series of operations.""" - if not hasattr(self, "Session"): - self.configure() - session = self.Session() - try: - if self._batchmode: - enable_batch_inserting(session) - - yield session - session.commit() - except: - session.rollback() - raise - finally: - session.close() - del session
- - -
-[docs] - def rebuild_database(self, confirm=True): - """Rebuild database on confirmation, create the database if nessicary""" - if not is_ec2_instance(): - answer = input( - "We Are Going To Overwrite The Databse {}\nType 'CONFIRM' to continue:\n".format( - HOST - ) - ) - else: - answer = "CONFIRM" - - if answer == "CONFIRM" or confirm == False: - # Create Database If It Doesn't Exist - if not database_exists(self.connection_string): - self.info("Creating Database") - create_database(self.connection_string) - else: - # Otherwise Just Drop The Tables - self.debug("Dropping DB Metadata") - DataBase.metadata.drop_all(self.engine) - # (Re)Create Tables - self.debug("Creating DB Metadata") - DataBase.metadata.create_all(self.engine) - else: - try: - raise Exception("Ah ah ah you didn't say the magic word") - except Exception as e: - self.error(e)
- - -
-[docs] - def ensure_database_exists(self, create_meta=True): - """Check if database exists, if not create it and tables""" - self.info(f"checking database existinence... {self.engine}") - if not database_exists(self.connection_string): - self.info("doesn't exist, creating database!") - create_database(self.connection_string) - if create_meta: - DataBase.metadata.create_all(self.engine)
- - - def cleanup_sessions(self): - self.info("Closing All Active Sessions") - self.Session.close_all() - - @property - def identity(self): - return "DB Con: {s.user}@{s.dbname}".format(s=self) - - def __getstate__(self): - """Remove active connection objects, they are not picklable""" - # TODO: Should we remove credentials? How do we distibute object - d = self.__dict__.copy() - d["connection_string"] = None - d["engine"] = None - d["scopefunc"] = None - d["session_factory"] = None - d["Session"] = None - return d - - def __setstate__(self, d): - """We reconfigure on opening a pickle""" - self.__dict__ = d - self.configure()
- -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/dynamics.html b/docs/_build/html/_modules/engforge/dynamics.html deleted file mode 100644 index 7dc2f6c..0000000 --- a/docs/_build/html/_modules/engforge/dynamics.html +++ /dev/null @@ -1,859 +0,0 @@ - - - - - - engforge.dynamics — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.dynamics

-"""Combines the tabulation and component mixins to create a mixin for systems and components that have dynamics, such as state space models, while allowing nonlinear dynamics via matrix modification
-
-This module is intended to work alongside the solver module and the Time integrating attributes, and will raise an error if a conflict is detected.
-
-The DynamicsMixin works by establishing a state matricies A, B, C, and D, which are used to define the dynamics of the system. The state matrix A is the primary matrix, and is used to define the state dynamics of the system. The input matrix B is used to define the input dynamics of the system. The output matrix C is used to define the output dynamics of the system. The feedthrough matrix D is used to define the feedthrough dynamics of the system.
-
-As opposed to the Time attribute, which modifies the state of the system, the DynamicsMixin copies the initial values of the state and input which then are integrated over time. At predefined intervals the control and output will stored in the tabulation.
-
-#TODO: The top level system will collect the underlying dynamical systems and combine them to an index and overall state space model. This will allow for the creation of a system of systems, and the ability to create a system of systems with a single state space model.
-
-#TODO: integration is done by the solver, where DynamicSystems have individual solver control, solver control is set for a smart default scipy 
-"""
-
-from engforge.configuration import Configuration, forge
-from engforge.tabulation import TabulationMixin
-from engforge import properties as prop
-from engforge.attributes import ATTR_BASE
-from engforge.properties import instance_cached, solver_cached
-from engforge.system_reference import Ref
-from engforge.problem_context import ProblemExec
-from engforge.solveable import (
-    SolveableMixin,
-    refmin_solve,
-    refset_get,
-    refset_input,
-)
-
-
-from collections import OrderedDict
-import numpy as np
-import pandas
-import expiringdict
-import attr, attrs
-
-
-# Index maps are used to translate between different indexes (local & global)
-
-
-[docs] -def valid_mtx(arr): - if arr is None: - return False - elif arr.size == 0: - return 0 - return True
- - -##TODO: compile problems using index_map -#TODO: move to problem module -
-[docs] -class INDEX_MAP: - oppo = {str: int, int: str} - - def __init__(self, datas: list): - self.data = [ - data if not data.startswith(".") else data[1:] for data in datas - ] - self.index = {} - - def get(self, key): - if key.startswith("."): - key = key[1:] - if key not in self.index: - self.index[key] = self.data.index(key) - return self.index[key] - - def __getitem__(self, key): - if key.startswith("."): - key = key[1:] - return self.get(key) - -
-[docs] - def __call__(self, key): - if key.startswith("."): - key = key[1:] - return self.get(key)
- - - @staticmethod - def indify(arr, *args): - return [ - arr[arg] if isinstance(arg, int) else arr.index(arg) for arg in args - ] - - def remap_indexes_to(self, new_index, *args, invert=False, old_data=None): - if old_data is None: - old_data = self.data - opt1 = {arg: self.indify(old_data, arg)[0] for arg in args} - opt2 = { - arg: self.indify(old_data, val)[0] - if (not isinstance(val, str)) - else val - for arg, val in opt1.items() - } - oop1 = { - arg: self.indify(new_index, val)[0] for arg, val in opt2.items() - } - oop2 = { - arg: self.indify(new_index, val)[0] - if (invert != isinstance(val, self.oppo[arg.__class__])) - else val - for arg, val in oop1.items() - } - return oop2
- - - - - - -# Quickly create a state space model -# TODO: How to add delay, and feedback? -# TODO: How to add control and limits in general? -# TODO: add time as a state variable -
-[docs] -@forge -class DynamicsMixin(Configuration, SolveableMixin): - """dynamic mixin for components and systems that have dynamics, such as state space models, while allowing nonlinear dynamics via matrix modification. This mixin is intended to work alongside the solver module and the Time integrating attributes, and will raise an error if a conflict is detected #TODO.""" - - #time: float = attrs.field(default=0.0) - - dynamic_state_vars: list = []#attrs.field(factory=list) - dynamic_input_vars: list = []#attrs.field(factory=list) - dynamic_output_vars: list = []#attrs.field(factory=list) - - # state variables - dynamic_A = None - dynamic_B = None - dynamic_C = None - dynamic_D = None - dynamic_F = None - dynamic_K = None - - # Static linear state - static_A= None - static_B= None - static_C= None - static_D= None - static_F= None - static_K= None - - # TODO: - # dynamic_control_module = None - # control_interval:float = 0.0 ##TODO: how often to update the control - # TODO: how often to update the physics, 0 is everytime - update_interval: float = 0 - #delay_ms: float = attrs.field(default=None) - nonlinear: bool = False - - # TODO: add integration state dynamic cache to handle relative time steps - # TODO: add control module with PID control and pole placement design - - #### State Space Model - def __pre_init__(self, **kwargs): - """override this method to define the class""" - # fields = - fields = attrs.fields_dict(self.__class__) - system_property = self.system_properties_def - for p in self.dynamic_state_vars: - assert p in fields, f"state var {p} not in attr: {fields}" - for p in self.dynamic_output_vars: - assert p in fields, f"output var {p} not in attr: {fields}" - for p in self.dynamic_input_vars: - assert p in fields, f"input var {p} not in attr: {fields}" - - @property - def time(self): - #convience function - ctx = getattr(self,'last_context',None) - if ctx: - time = getattr(ctx,'_time',0) - else: - time = 0 - return time - - @instance_cached - def is_dynamic(self): - if self.dynamic_state_vars: - return True - return False - - @instance_cached - def dynamic_state_size(self): - return len(self.dynamic_state_vars) - - @instance_cached - def dynamic_input_size(self): - return len(self.dynamic_input_vars) - - @instance_cached - def dynamic_output_size(self): - return len(self.dynamic_output_vars) - - @property - def dynamic_state(self) -> np.array: - return np.array( - [getattr(self, var, np.nan) for var in self.dynamic_state_vars] - ) - - @property - def dynamic_input(self) -> np.array: - return np.array( - [getattr(self, var, np.nan) for var in self.dynamic_input_vars] - ) - - @property - def dynamic_output(self) -> np.array: - return np.array( - [getattr(self, var, np.nan) for var in self.dynamic_output_vars] - ) - - -
-[docs] - def create_state_matrix(self, **kwargs) -> np.ndarray: - """creates the state matrix for the system""" - return np.zeros((self.dynamic_state_size, self.dynamic_state_size))
- - -
-[docs] - def create_input_matrix(self, **kwargs) -> np.ndarray: - """creates the input matrix for the system, called B""" - return np.zeros((self.dynamic_state_size, max(self.dynamic_input_size, 1)))
- - -
-[docs] - def create_output_matrix(self, **kwargs) -> np.ndarray: - """creates the input matrix for the system, called C""" - return np.zeros((max(self.dynamic_output_size, 1), self.dynamic_state_size))
- - -
-[docs] - def create_feedthrough_matrix(self, **kwargs) -> np.ndarray: - """creates the input matrix for the system, called D""" - return np.zeros((max(self.dynamic_output_size, 1), max(self.dynamic_input_size, 1)))
- - -
-[docs] - def create_state_constants(self, **kwargs) -> np.ndarray: - """creates the input matrix for the system, called F""" - return np.zeros(self.dynamic_state_size)
- - -
-[docs] - def create_output_constants(self, **kwargs) -> np.ndarray: - """creates the input matrix for the system, called O""" - return np.zeros(self.dynamic_output_size)
- - -
-[docs] - def create_dynamic_matricies(self, **kw): - """creates a dynamics object for the system""" - # State + Control - self.static_A = self.create_state_matrix(**kw) - self.static_B = self.create_input_matrix(**kw) - # Output - self.static_C = self.create_output_matrix(**kw) - self.static_D = self.create_feedthrough_matrix(**kw) - # Constants - self.static_F = self.create_state_constants(**kw) - self.static_K = self.create_output_constants(**kw) - - if self.nonlinear: - self.update_dynamics(0, self.dynamic_state, self.dynamic_input)
- - - # Nonlinear Support - # Override these callbacks to modify the state space model -
-[docs] - def update_state(self, t, A, X) -> np.ndarray: - """override""" - return A
- - -
-[docs] - def update_input(self, t, B, X, U) -> np.ndarray: - """override""" - return B
- - -
-[docs] - def update_output_matrix(self, t, C, X) -> np.ndarray: - """override""" - return C
- - -
-[docs] - def update_feedthrough(self, t, D, X, U) -> np.ndarray: - """override""" - return D
- - -
-[docs] - def update_state_constants(self, t, F, X) -> np.ndarray: - """override""" - return F
- - -
-[docs] - def update_output_constants(self, t, O, X) -> np.ndarray: - """override""" - return O
- - -
-[docs] - def update_dynamics(self, t, X, U): - """Updates dynamics when nonlinear is enabled, otherwise it will do nothing""" - if not self.nonlinear: - return - - # try: #NOTE: try catch adds a lot of overhead - # State + Control - self.dynamic_A = self.update_state(t, self.static_A, X) - self.dynamic_B = self.update_input(t, self.static_B, X, U) - - # Output - self.dynamic_C = self.update_output_matrix(t, self.static_C, X) - self.dynamic_D = self.update_feedthrough(t, self.static_D, X, U) - - # Constants - self.dynamic_F = self.update_state_constants(t, self.static_F, X) - self.dynamic_K = self.update_output_constants(t, self.static_K, X) - - if self.log_level <=4: - self.info(f'update_dynamics A:{self.dynamic_A} B:{self.dynamic_B} C:{self.dynamic_C} D:{self.dynamic_D} F:{self.dynamic_F} K:{self.dynamic_K}| time:{t} X:{X} U:{U}')
- - - # except Exception as e: - # self.warning(f'update dynamics failed! A:{self.dynamic_A} B:{self.dynamic_B} C:{self.dynamic_C} D:{self.dynamic_D} F:{self.dynamic_F} K:{self.dynamic_K}| time:{t} X:{X} U:{U}') - # raise e - - # linear and nonlinear system level IO - -
-[docs] - def rate(self, t, dt, X, U, *args, **kwargs): - """simulate the system over the course of time. - - Args: - dt (float): interval to integrate over in time - X (np.ndarray): state input - U (np.ndarray): control input - subsystems (bool, optional): simulate subsystems. Defaults to True. - - Returns: - dataframe: tabulated data - """ - if self.nonlinear: - return self.rate_nonlinear(t, dt, X, U, *args, **kwargs) - else: - return self.rate_linear(t, dt, X, U, *args, **kwargs)
- - -
-[docs] - def rate_linear(self, t, dt, X, U=None): - """simulate the system over the course of time. Return time differential of the state.""" - - O = 0 - if valid_mtx(self.static_A) and valid_mtx(X): - O = self.static_A @ X - - if valid_mtx(U) and valid_mtx(self.static_B): - O += self.static_B @ U - - if valid_mtx(self.static_F): - O += self.static_F - - return O
- - -
-[docs] - def linear_output(self, t, dt, X, U=None): - """simulate the system over the course of time. Return time differential of the state. - - Args: - dt (float): interval to integrate over in time - X (np.ndarray): state input - U (np.ndarray): control input - - Returns: - np.array: time differential of the state - """ - O = 0 - if valid_mtx(self.static_C) and valid_mtx(X): - O = self.static_C @ X - - if valid_mtx(U) and valid_mtx(self.static_D): - O += self.static_D @ U - - if valid_mtx(self.static_K): - O += self.static_K - return O
- - -
-[docs] - def rate_nonlinear(self, t, dt, X, U=None, update=True): - """simulate the system over the course of time. Return time differential of the state. - - Args: - t (float): time - dt (float): interval to integrate over in time - X (np.ndarray): state input - U (np.ndarray): control input - - Returns: - np.array: time differential of the state - """ - if update: - self.update_dynamics(t, X, U) - - O = 0 - if valid_mtx(self.dynamic_A) and valid_mtx(X): - O = O+self.dynamic_A @ X - - if valid_mtx(U) and valid_mtx(self.dynamic_B): - O = O+self.dynamic_B @ U - - if valid_mtx(self.dynamic_F): - O = O+self.dynamic_F - return O
- - -
-[docs] - def nonlinear_output(self, t, dt, X, U=None, update=True): - """simulate the system over the course of time. Return time differential of the state. - - Args: - dt (float): interval to integrate over in time - X (np.ndarray): state input - U (np.ndarray): control input - - Returns: - np.array: time differential of the state - """ - if update: - self.update_dynamics(t, X, U) - - O = 0 - if valid_mtx(self.dynamic_C)and valid_mtx(X): - O = O+self.dynamic_C @ X - - if valid_mtx(U) and valid_mtx(self.dynamic_D): - O = O+self.dynamic_D @ U - - if valid_mtx(self.dynamic_K): - O = O+self.dynamic_K - return O
- - -
-[docs] - def set_time(self, t, system=True,subcomponents=True): - """sets the time of the system and context""" - pass - #set components - #if subcomponents: - # for cdyn_name, comp in self.comp_times.items(): - # comp.set_value(t) - - # if system: #set system time only - # self.time = t - - - #@instance_cached #TODO: cache on solver due to changes of components - #def comp_times(self) -> dict: - """returns a dictionary of time references to components which will be set to the current time"""
- - # return {k: Ref(comp,'time',False,True) for k,l,comp in self.go_through_configurations() if isinstance(comp,DynamicsMixin)} - - # optimized convience funcitons -
-[docs] - def nonlinear_step(self, t, dt, X, U=None, set_Y=False): - """Optimal nonlinear steps""" - #self.time = t #important for simulation, moved to context.integrate - self.update_dynamics(t, X, U) - - dXdt = self.rate_nonlinear(t, dt, X, U, update=False) - out = self.nonlinear_output(t, dt, X, U, update=False) - - if set_Y: - for i, p in enumerate(self.dynamic_output_vars): - self.Yt_ref[p].set_value(out[p]) - - return dXdt
- - -
-[docs] - def linear_step(self, t, dt, X, U=None, set_Y=False): - """Optimal nonlinear steps""" - #self.time = t #important for simulation, moved to context.integrate - self.update_dynamics(t, X, U) - dXdt = self.rate_linear(t, dt, X, U) - out = self.linear_output(t, dt, X, U) - - if set_Y: - for i, p in enumerate(self.dynamic_output_vars): - self.Yt_ref[p].set_value(out[p]) - - return dXdt
- - - def step(self, t, dt, X, U=None, set_Y=False): - try: - if self.nonlinear: - return self.nonlinear_step(t, dt, X, U, set_Y=set_Y) - else: - return self.linear_step(t, dt, X, U, set_Y=set_Y) - - except Exception as e: - self.warning(f'update dynamics failed {e}! A:{self.dynamic_A} B:{self.dynamic_B} C:{self.dynamic_C} D:{self.dynamic_D} F:{self.dynamic_F} K:{self.dynamic_K}| time:{t} X:{X} U:{U} setY:{set_Y}') - raise e - - #Solver Refs - #TODO: move to problem context - @property - def Xt_ref(self): - """alias for state values""" - d = [(var, Ref(self, var)) for var in self.dynamic_state_vars] - return OrderedDict(d) - - @property - def Yt_ref(self): - """alias for output values""" - d = [(var, Ref(self, var)) for var in self.dynamic_output_vars] - return OrderedDict(d) - - @property - def Ut_ref(self): - """alias for input values""" - d = [(var, Ref(self, var)) for var in self.dynamic_input_vars] - return OrderedDict(d) - - @property - def dXtdt_ref(self): - """a dictionary of state var rates""" - d = [(var, self.ref_dXdt(var)) for var in self.dynamic_state_vars] - return OrderedDict(d) - - @solver_cached - def cache_dXdt(self): - """caches the time differential of the state, - uses current state of X and U to determine the dXdt - """ - - #we need to check the active session to determine if we should refresh the problem matrix - if hasattr(ProblemExec.class_cache, "session"): - session = ProblemExec.class_cache.session - if session and session.dynamic_solve and self.is_dynamic: - if session.dxdt != True: #integration update is handeled, all others are some kind of SS. - self.create_dynamic_matricies() - - ctx = getattr(self,'last_context',None) - - if ctx: - time = getattr(ctx,'_time',0) - lt = getattr(ctx, "_last_time", 0) - else: - time = 0 - lt = 0 - - dt = max(time - lt, 0) - step = self.step(time, dt, self.dynamic_state, self.dynamic_input) - if self.log_level <= 10: - self.debug(f"cache dXdt {time} {lt} {dt}| {step}") - return step - -
-[docs] - def ref_dXdt(self, name: str): - """returns the reference to the time differential of the state""" - vars = self.dynamic_state_vars - assert name in vars, f"name {name} not in state vars" - inx = vars.index(name) - accss = lambda sys,prob: self.cache_dXdt[inx] - accss.__name__ = f"ref_dXdt_{name}" - return Ref(self, accss)
- - - -
-[docs] - def determine_nearest_stationary_state( - self, t=0, X=None, U=None - ) -> np.ndarray: - """determine the nearest stationary state""" - - if X is None: - X = self.dynamic_state - if U is None: - U = self.dynamic_input - - if self.nonlinear: - self.update_dynamics(t, X, U) - Mb = self.dynamic_B @ U if self.dynamic_input_size > 0 else 0 - Mx = self.dynamic_F + Mb - return np.linalg.solve(self.dynamic_A, -Mx) - - # static state - Mb = self.static_B @ U if self.dynamic_input_size > 0 else 0 - Mx = Mb + self.static_F - return np.linalg.solve(self.static_A, -Mx)
- - - def __hash__(self): - return hash(id(self))
- - - -
-[docs] -@forge -class GlobalDynamics(DynamicsMixin): - """This object is inherited by configurations that collect other dynamicMixins and orchestrates their simulation, and steady state analysis - - #TODO: establish bounds in solver - """ - -
-[docs] - def setup_global_dynamics(self, **kwargs): - """recursively creates numeric matricies for the simulation""" - for skey,lvl,conf in self.go_through_configurations(): - if isinstance(conf,DynamicsMixin) and conf.is_dynamic: - conf.create_dynamic_matricies(**kwargs)
- - - -
-[docs] - def sim_matrix(self, eval_kw=None, sys_kw=None, **kwargs): - """simulate the system over the course of time. - return a dictionary of dataframes - """ - # - #from engforge.solver import SolveableMixin - - dt = kwargs.pop('dt',0.001) - endtime = kwargs.pop('endtime',10) - - with ProblemExec(self,kwargs,level_name='simmtx',dxdt=True,copy_system=True) as pbx: - if isinstance(self, SolveableMixin): - #adapt simulate to use the solver - sim = lambda Xo,*args, **kw: self.simulate( - dt, endtime,Xo, eval_kw=eval_kw, sys_kw=sys_kw, **kw - ) - out = self._iterate_input_matrix( - sim, - eval_kw=eval_kw, - sys_kw=sys_kw, - return_results=True, - **kwargs, - ) - else: - out = self.simulate(dt, endtime, eval_kw=eval_kw, sys_kw=sys_kw) - return out
- - - #TODO: swap between vars and constraints depending on dxdt=True -
-[docs] - def simulate( - self, - dt, - endtime, - X0=None, - cb=None, - eval_kw=None, - sys_kw=None, - min_kw=None, - run_solver=False, - return_system=False, - return_data=False, - return_all=False, - debug_fail=False, - **kwargs, - ) -> pandas.DataFrame: - """runs a simulation over the course of time, and returns a dataframe of the results. - - A copy of this system is made, and the simulation is run on the copy, so as to not affect the state of the original system. - - #TODO: - """ - min_kw_dflt = {"method": "SLSQP"} - #'tol':1e-6,'options':{'maxiter':100}} - # min_kw_dflt = {'doset':True,'reset':False,'fail':True} - if min_kw is None: - min_kw = min_kw_dflt.copy() - else: - min_kw_dflt.update(min_kw) - mkw = min_kw_dflt - - #force transient - kwargs['dxdt'] = True - - #variables if failed - pbx,system = None,self - try: - - #Time Iteration Context - data = [] - with ProblemExec(system,kwargs,level_name='sim',dxdt=True,copy_system=True,run_solver=run_solver,post_callback=cb) as pbx: - self._sim_ans = pbx.integrate(endtime=endtime,dt=dt,X0=X0,eval_kw=eval_kw,sys_kw=sys_kw,**kwargs) - system = pbx.system #hello copy - - #data = [{"time": k, **v} for k, v in pbx.data.items()] - - #this will affect the context copy, not self - pbx.exit_to_level('sim',False) - - # convert to list with time - #df = pandas.DataFrame(data) - #self.format_columns(df) - df = pbx.dataframe - - #TODO: move to context - if return_all: - return system,(data if return_data else df) - if return_system: - return system - if return_data: - return data - return df - - except Exception as e: - self.error(e,f"simulation failed, return (sys,prob)") - if debug_fail: - return system,pbx - raise e
-
- -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/eng/costs.html b/docs/_build/html/_modules/engforge/eng/costs.html deleted file mode 100644 index 876c8b1..0000000 --- a/docs/_build/html/_modules/engforge/eng/costs.html +++ /dev/null @@ -1,965 +0,0 @@ - - - - - - engforge.eng.costs — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.eng.costs

-
-"""Defines a CostModel & Economics Component that define & orchestrate cost accounting respectively.
-
-CostModels can have a `cost_per_item` and additionally calculate a `cumulative_cost` from internally defined `CostModel`s.
-
-CostModel's can have cost_property's which detail how and when a cost should be applied & grouped. By default each CostModel has a `cost_per_item` which is reflected in `item_cost` cost_property set on the `initial` term as a `unit` category. Multiple categories of cost are also able to be set on cost_properties as follows
-
-```
-@forge
-class Widget(Component,CostModel):
-
-    @cost_property(mode='initial',category='capex,manufacturing')
-    def cost_of_XYZ(self):
-        return ...
-```
-
-Economics models sum CostModel.cost_properties recursively on the parent they are defined. Economics computes the grouped category costs for each item recursively as well as summary properties like annualized values and levalized cost. Economic output is determined by a `fixed_output` or overriding `calculate_production(self,parent)` to dynamically calculate changing economics based on factors in the parent.
-
-Default costs can be set on any CostModel.Slot attribute, by using default_cost(<slot_name>,<cost>) on the class, this will provide a default cost for the slot if no cost is set on the instance. Custom costs can be set on the instance with custom_cost(<slot_name>,<cost>). If cost is a CostModel, it will be assigned to the slot if it is not already assigned.
-
-The economics term_length applies costs over the term, using the `cost_property.mode` to determine at which terms a cost should be applied.
-
-@forge
-class Parent(System,CostModel)
-
-    econ = Slot.define(Economics) #will calculate parent costs as well
-    cost = Slot.define(Widget) #slots automatically set to none if no input provided
-
-Parent(econ=Economics(term_length=25,discount_rate=0.05,fixed_output=1000))
-
-
-"""
-
-from engforge.components import Component
-from engforge.configuration import forge,Configuration
-from engforge.tabulation import TabulationMixin, system_property
-from engforge.system_reference import Ref
-from engforge.properties import instance_cached,solver_cached,cached_system_property
-from engforge.logging import LoggingMixin
-from engforge.component_collections import ComponentIter
-import typing
-import attrs
-import uuid
-import numpy
-import collections
-import pandas
-
-
-[docs] -class CostLog(LoggingMixin):pass
- -log = CostLog() - -#Cost Term Modes are a quick lookup for cost term support -global COST_TERM_MODES,COST_CATEGORIES -COST_TERM_MODES = {'initial': lambda inst,term: True if term < 1 else False, - 'maintenance': lambda inst,term: True if term >= 1 else False, - 'always': lambda inst,term: True} - -category_type = typing.Union[str,list] -COST_CATEGORIES = set(('misc',)) - - - -
-[docs] -class cost_property(system_property): - """A thin wrapper over `system_property` that will be accounted by `Economics` Components and apply term & categorization - - `cost_property` should return a float/int always and will raise an error if the return annotation is different, although annotations are not required and will default to float. - - #Terms: - Terms start counting at 0 and can be evald by the Economic.term_length - cost_properties will return their value as system_properties do without regard for the term state, however a CostModel's costs at a term can be retrived by `costs_at_term`. The default mode is for `initial` cost - - #Categories: - Categories are a way to report cost categories and multiple can be applied to a cost. Categories are grouped by the Economics system at reported in bulk by term and over the term_length - - """ - - cost_categories: list = None - term_mode: str = None - - _all_modes: dict = COST_TERM_MODES - _all_categories:set = COST_CATEGORIES - - def __init__(self, fget=None, fset=None, fdel=None, doc=None, desc=None, label=None, stochastic=False, mode:str='initial',category:category_type=None): - """extends system_property interface with mode & category keywords - :param mode: can be one of `initial`,`maintenance`,`always` or a function with signature f(inst,term) as an integer and returning a boolean True if it is to be applied durring that term. - """ - super().__init__(fget, fset, fdel, doc, desc, label, stochastic) - if isinstance(mode,str): - mode = mode.lower() - assert mode in COST_TERM_MODES, f'mode: {mode} is not in {set(COST_TERM_MODES.keys())}' - self.term_mode = mode - elif callable(mode): - fid = str(uuid.uuid4()) - self.__class__._all_modes[fid] = mode - self.term_mode = fid - else: - raise ValueError(f'mode: {mode} must be cost term str or callable') - - - if category is not None: - if isinstance(category,str): - self.cost_categories = category.split(',') - elif isinstance(category,list): - self.cost_categories = category - else: - raise ValueError(f'categories: {category} not string or list') - for cc in self.cost_categories: - self.__class__._all_categories.add(cc) - else: - self.cost_categories = ['misc'] - - def apply_at_term(self,inst,term): - if term < 0: - raise ValueError(f'negative term!') - if self.__class__._all_modes[self.term_mode](inst,term): - return True - return False - -
-[docs] - def get_func_return(self, func): - """ensures that the function has a return annotation, and that return annotation is in valid sort types""" - anno = func.__annotations__ - typ = anno.get("return", None) - if typ is not None and not typ in (int, float): - raise Exception( - f"system_property input: function {func.__name__} must have valid return annotation of type: {(int,float)}" - ) - else: - self.return_type = float
-
- - -
-[docs] -@forge -class CostModel(Configuration,TabulationMixin): - """CostModel is a mixin for components or systems that reports its costs through the `cost` system property, which by default sums the `item_cost` and `sub_items_cost`. - - `item_cost` is determined by `calculate_item_cost()` which by default uses: `cost_per_item` field to return the item cost, which defaults to `numpy.nan` if not set. Nan values are ignored and replaced with 0. - - `sub_items_cost` system_property summarizes the costs of any component in a Slot that has a `CostModel` or for SlotS which CostModel.declare_cost(`slot`,default=numeric|CostModelInst|dict[str,float]) - """ - _slot_costs: dict #TODO: insantiate per class - - cost_per_item: float = attrs.field(default=numpy.nan) - - def __on_init__(self): - self.set_default_costs() - self.debug(f'setting default costs {self._slot_costs}') - -
-[docs] - def update_dflt_costs(self): - """updates internal default slot costs if the current component doesn't exist or isn't a cost model, this is really a component method but we will use it never the less. - - This should be called from Component.update() if default costs are used - """ - if self._slot_costs: - current_comps = self.internal_components() - for k,v in self._slot_costs.items(): - #Check if the cost model will be accessed - no_comp = k not in current_comps - is_cost = not no_comp and isinstance(current_comps[k],CostModel) - dflt_is_cost_comp = all([isinstance(v,CostModel),isinstance(v,Component)]) - if no_comp and not is_cost and dflt_is_cost_comp: - self.debug('Updating default {k}') - v.update(self)
- - -
-[docs] - def set_default_costs(self): - """set default costs if no costs are set""" - inter_config = self.internal_configurations() - for k,dflt in self._slot_costs.items(): - if k not in inter_config and isinstance(dflt,CostModel): - setattr(self,k,attrs.evolve(dflt,parent=self)) - elif k not in inter_config and isinstance(dflt,type) and issubclass(dflt,CostModel): - self.warning(f'setting default cost {k} from costmodel class, provide a default instance instead!') - setattr(self,k,dflt()) - - #Reset cache - self.internal_components(True)
- - -
-[docs] - @classmethod - def subcls_compile(cls): - assert not issubclass(cls,ComponentIter), 'component iter not supported' - log.debug(f'compiling costs {cls}') - cls.reset_cls_costs()
- - - @classmethod - def reset_cls_costs(cls): - cls._slot_costs = {} - - -
-[docs] - @classmethod - def default_cost(cls,slot_name:str,cost:typing.Union[float,'CostModel'],warn_on_non_costmodel=True): - """Provide a default cost for Slot items that are not CostModel's. Cost is applied class wide, but can be overriden with custom_cost per instance""" - assert not isinstance(cost,type), f'insantiate classes before adding as a cost!' - assert slot_name in cls.slots_attributes(), f'slot {slot_name} doesnt exist' - assert isinstance(cost,(float,int,dict)) or isinstance(cost,CostModel), 'only numeric types or CostModel instances supported' - - atrb = cls.slots_attributes()[slot_name] - atypes = atrb.type.accepted - if warn_on_non_costmodel and not any([issubclass(at,CostModel) for at in atypes]): - log.warning(f'assigning cost to non CostModel based slot {slot_name}') - - cls._slot_costs[slot_name] = cost
- - - #IDEA: create slot if one doesn't exist, for dictionaries and assign a ComponentDict+CostModel in wide mode? - -
-[docs] - def custom_cost(self,slot_name:str,cost:typing.Union[float,'CostModel'],warn_on_non_costmodel=True): - """Takes class costs set, and creates a copy of the class costs, then applies the cost numeric or CostMethod in the same way but only for that instance of""" - assert not isinstance(cost,type), f'insantiate classes before adding as a cost!' - assert slot_name in self.slots_attributes(), f'slot {slot_name} doesnt exist' - assert isinstance(cost,(float,int,dict)) or isinstance(cost,CostModel), 'only numeric types or CostModel instances supported' - - atrb = self.__class__.slots_attributes()[slot_name] - atypes = atrb.type.accepted - if warn_on_non_costmodel and not any([issubclass(at,CostModel) for at in atypes]): - self.warning(f'assigning cost to non CostModel based slot {slot_name}') - - #convert from classinfo - if self._slot_costs is self.__class__._slot_costs: - self._slot_costs = self.__class__._slot_costs.copy() - self._slot_costs[slot_name] = cost - self.set_default_costs()
- - - #if the cost is a cost model, and there's nothing assigned to the slot, assign it - # if assign_when_missing and isinstance(cost,CostModel): - # if hasattr(self,slot_name) and getattr(self,slot_name) is None: - # self.info(f'assigning custom cost {slot_name} with {cost}') - # setattr(self,slot_name,cost) - # elif hasattr(self,slot_name): - # self.warning(f'could not assign custom cost to {slot_name} with {cost}, already assigned to {getattr(self,slot_name)}') - - -
-[docs] - def calculate_item_cost(self)->float: - """override this with a parametric model related to this systems attributes and properties""" - return self.cost_per_item
- - - @system_property - def sub_items_cost(self)->float: - """calculates the total cost of all sub-items, using the components CostModel if it is provided, and using the declared_cost as a backup""" - return self.sub_costs() - - @cost_property(mode='initial',category='unit') - def item_cost(self)->float: - calc_item = self.calculate_item_cost() - return numpy.nansum([0,calc_item]) - - @system_property - def combine_cost(self)->float: - return self.sum_costs() - - @system_property - def itemized_costs(self)->float: - """sums costs of cost_property's in this item that are present at term=0""" - initial_costs = self.costs_at_term(0) - return numpy.nansum( list(initial_costs.values()) ) - - @system_property - def future_costs(self)->float: - """sums costs of cost_property's in this item that do not appear at term=0""" - initial_costs = self.costs_at_term(0,False) - return numpy.nansum(list(initial_costs.values())) - -
-[docs] - def sum_costs(self,saved:set=None,categories:tuple=None,term=0): - """sums costs of cost_property's in this item that are present at term=0, and by category if define as input""" - if saved is None: - saved = set((self,)) #item cost included! - elif self not in saved: - saved.add(self) - itemcst = list(self.dict_itemized_costs(saved,categories,term).values()) - csts = [self.sub_costs(saved,categories,term),numpy.nansum(itemcst)] - return numpy.nansum(csts)
- - - def dict_itemized_costs(self,saved:set=None,categories:tuple=None,term=0,test_val = True)->dict: - ccp = self.class_cost_properties() - costs = {k: obj.__get__(self) if obj.apply_at_term(self,term)==test_val else 0 for k,obj in ccp.items() if categories is None or any([cc in categories for cc in obj.cost_categories])} - return costs - - -
-[docs] - def sub_costs(self,saved:set=None,categories:tuple=None,term=0): - """gets items from CostModel's defined in a Slot attribute or in a slot default, tolerrant to nan's in cost definitions""" - if saved is None: - saved = set() - - sub_tot = 0 - - for slot in self.slots_attributes(): - comp = getattr(self,slot) - - if comp in saved: - #print(f'skipping {slot}:{comp}') - continue - - elif isinstance(comp,Configuration): - saved.add(comp) - - if isinstance(comp,CostModel): - sub = comp.sum_costs(saved,categories,term) - log.debug(f'{self.identity} adding: {comp.identity if comp else comp}: {sub}+{sub_tot}') - cst = [sub_tot,sub] - sub_tot = numpy.nansum(cst) - - - elif slot in self._slot_costs and (categories is None or 'unit' in categories) and term==0: - #Add default costs from direct slots - dflt = self._slot_costs[slot] - sub = eval_slot_cost(dflt,saved) - log.debug(f'sub: {self.identity} adding slot: {comp.identity if comp else comp}.{slot}: {sub}+{sub_tot}') - cst= [sub_tot,sub] - sub_tot = numpy.nansum(cst) - - #add base class slot values when comp was nonee - if comp is None: - #print(f'skipping {slot}:{comp}') - comp_cls = self.slots_attributes()[slot].type.accepted - for cc in comp_cls: - if issubclass(cc,CostModel): - if cc._slot_costs: - for k,v in cc._slot_costs.items(): - sub = eval_slot_cost(v,saved) - log.debug(f'sub: {self.identity} adding dflt: {slot}.{k}: {sub}+{sub_tot}') - cst= [sub_tot,sub] - sub_tot = numpy.nansum(cst) - break #only add once - - - return sub_tot
- - - #Cost Term & Category Reporting -
-[docs] - def costs_at_term(self,term:int,test_val=True)->dict: - """returns a dictionary of all costs at term i, with zero if the mode - function returns False at that term""" - ccp = self.class_cost_properties() - return {k: obj.__get__(self) if obj.apply_at_term(self,term)==test_val else 0 for k,obj in ccp.items()}
- - -
-[docs] - @classmethod - def class_cost_properties(cls)->dict: - """returns cost_property objects from this class & subclasses""" - return {k:v for k,v in cls.system_properties_classdef().items() if isinstance(v,cost_property)}
- - - @property - def cost_properties(self)->dict: - """returns the current values of the current properties""" - ccp = self.class_cost_properties() - return {k:obj.__get__(self) for k,obj in ccp.items()} - - @property - def cost_categories(self): - """returns itemized costs grouped by category""" - base = {cc:0 for cc in self.all_categories()} - for k,obj in self.class_cost_properties().items(): - for cc in obj.cost_categories: - base[cc] += obj.__get__(self) - return base - - def cost_categories_at_term(self,term:int): - base = {cc:0 for cc in self.all_categories()} - for k,obj in self.class_cost_properties().items(): - if obj.apply_at_term(self,term): - for cc in obj.cost_categories: - base[cc] += obj.__get__(self) - return base - - @classmethod - def all_categories(self): - return COST_CATEGORIES
- - -cost_type = typing.Union[float,int,CostModel,dict] -
-[docs] -def eval_slot_cost(slot_item:cost_type,saved:set=None): - sub_tot = 0 - log.debug(f'evaluating slot: {slot_item}') - if isinstance(slot_item,(float,int)): - sub_tot += numpy.nansum([slot_item,0]) - elif isinstance(slot_item,CostModel): - sub_tot += numpy.nansum([slot_item.sum_costs(saved),0]) - elif isinstance(slot_item,type) and issubclass(slot_item,CostModel): - log.warning(f'slot {slot_item} has class CostModel, using its `item_cost` only, create an instance to fully model the cost') - sub_tot = numpy.nansum([sub_tot,slot_item.cost_per_item ]) - elif isinstance(slot_item,dict): - sub_tot += numpy.nansum(list(slot_item.values())) - return sub_tot
- - -
-[docs] -def gend(deect:dict): - for k,v in deect.items(): - if isinstance(v,dict): - for kk,v in gend(v): - yield f'{k}.{kk}',v - else: - yield k,v
- - - - - -parent_types = typing.Union[Component,'System'] - -#TODO: automatically apply economics at problem level if cost_model present, no need for parent econ lookups -
-[docs] -@forge -class Economics(Component): - """Economics is a component that summarizes costs and reports the economics of a system and its components in a recursive format""" - - term_length: int = attrs.field(default=0) - discount_rate: float = attrs.field(default=0.0) - fixed_output: float = attrs.field(default=numpy.nan) - output_type: str = attrs.field(default='generic') - terms_per_year: int = attrs.field(default=1) - - _calc_output: float = None - _costs: float = None - _cost_references: dict = None - _cost_categories: dict = None - _comp_categories: dict = None - _comp_costs: dict = None - parent:parent_types - - def __on_init__(self): - self._cost_categories = collections.defaultdict(list) - self._comp_categories = collections.defaultdict(list) - self._comp_costs = dict() - -
-[docs] - def update(self,parent:parent_types): - - if self.log_level <= 5 : - self.msg(f'econ updating costs: {parent}',lvl=5) - - self.parent = parent - - #this is kinda expensive to do every time, but we need to do it to get the costs - self._gather_cost_references(parent) - self._calc_output = self.calculate_production(parent,0) - self._costs = self.calculate_costs(parent) - - if self._calc_output is None: - self.warning(f'no economic output!') - if self._costs is None: - self.warning(f'no economic costs!')
- - -
-[docs] - def calculate_production(self,parent,term)->float: - """must override this function and set economic_output""" - return numpy.nansum([0,self.fixed_output])
- - -
-[docs] - def calculate_costs(self,parent)->float: - """recursively accounts for costs in the parent, its children recursively.""" - return self.sum_cost_references()
- - - #Reference Utilitly Functions - def sum_cost_references(self): - cst = 0 - for k,v in self._cost_references.items(): - if k.endswith('item_cost'): - val = v.value() - if self.log_level < 2 : self.msg(f'add item cost: {k}|{val}') - cst += val - else: - if self.log_level < 2 : self.msg(f'skip cost: {k}') - return cst - - def sum_references(self,refs): - return numpy.nansum([r.value() for r in refs]) - - def get_prop(self,ref): - if ref.use_dict: - return ref.key - elif ref.key in ref.comp.class_cost_properties(): - return ref.comp.class_cost_properties()[ref.key] - # elif ref.key in ref.comp.system_properties_classdef(): - # return ref.comp.system_properties_classdef()[ref.key] - # else: - # raise KeyError(f'ref key doesnt exist as property: {ref.key}') - - def term_fgen(self,comp,prop): - if isinstance(comp,dict): - return lambda term: comp[prop] if term == 0 else 0 - return lambda term: prop.__get__(comp) if prop.apply_at_term(comp,term) else 0 - - def sum_term_fgen(self,ref_group): - term_funs = [self.term_fgen(ref.comp,self.get_prop(ref)) - for ref in ref_group] - return lambda term: numpy.nansum([t(term) for t in term_funs]) - - #Gather & Set References (the magic!) - #TODO: update internal_references callback to problem -
-[docs] - def internal_references(self,recache=True,numeric_only=False): - """standard component references are """ - d = self._gather_references() - self._create_term_eval_functions() - #Gather all internal economic variables and report costs - props = d['properties'] - - #calculate lifecycle costs - lc_out = self.lifecycle_output - - if self._cost_references: - props.update(**self._cost_references) - - if self._cost_categories: - for key,refs in self._cost_categories.items(): - props[key] = Ref(self._cost_categories,key,False,False,eval_f=self.sum_references) - - if self._comp_categories: - for key,refs in self._comp_categories.items(): - props[key] = Ref(self._comp_categories,key,False,False,eval_f=self.sum_references) - - for k,v in lc_out.items(): - props[k] = Ref(lc_out,k,False,False) - - return d
- - - @property - def lifecycle_output(self)->dict: - """return lifecycle calculations for lcoe""" - totals = {} - totals['category'] = lifecat = {} - totals['annualized'] = annul = {} - summary = {} - out = {'summary':summary,'lifecycle':totals} - - lc = self.lifecycle_dataframe - for c in lc.columns: - if 'category' not in c and 'cost' not in c: - continue - tot = lc[c].sum() - if 'category' in c: - c_ = c.replace('category.','') - lifecat[c_] = tot - else: - totals[c] = tot - annul[c] = tot * self.terms_per_year / (self.term_length+1) - - summary['total_cost'] = lc.term_cost.sum() - summary['years'] = lc.year.max()+1 - LC = lc.levalized_cost.sum() - LO = lc.levalized_output.sum() - summary['levalized_cost'] = LC / LO if LO != 0 else numpy.nan - summary['levalized_output'] = LO / LC if LC != 0 else numpy.nan - - out2 = dict(gend(out)) - self._term_output = out2 - return self._term_output - - - @property - def lifecycle_dataframe(self) -> pandas.DataFrame: - """simulates the economics lifecycle and stores the results in a term based dataframe""" - out = [] - - if self.term_length == 0: - rng = [0] - else: - rng = list(range(0,self.term_length)) - - for i in rng: - t = i - row = {'term':t,'year':t/self.terms_per_year} - out.append(row) - for k,sum_f in self._term_comp_category.items(): - row[k] = sum_f(t) - for k,sum_f in self._term_cost_category.items(): - row[k] = sum_f(t) - for k,sum_f in self._term_comp_cost.items(): - row[k] = sum_f(t) - row['term_cost'] = tc = numpy.nansum([v(t) for v in self._term_comp_cost.values()]) - row['levalized_cost'] = tc * (1+self.discount_rate)**(-1*t) - row['output'] = output = self.calculate_production(self.parent,t) - row['levalized_output'] = output * (1+self.discount_rate)**(-1*t) - - - return pandas.DataFrame(out) - - - def _create_term_eval_functions(self): - """uses reference summation grouped by categories & component""" - self._term_comp_category = {} - if self._comp_categories: - for k,vrefs in self._comp_categories.items(): - self._term_comp_category[k] = self.sum_term_fgen(vrefs) - - self._term_cost_category = {} - if self._cost_categories: - for k,vrefs in self._cost_categories.items(): - self._term_cost_category[k] = self.sum_term_fgen(vrefs) - - self._term_comp_cost = {} - if self._comp_costs: - for k, ref in self._comp_costs.items(): - prop = self.get_prop(ref) - self._term_comp_cost[k] = self.term_fgen(ref.comp,prop) - - - def _gather_cost_references(self,parent:'System'): - """put many tabulation.Ref objects into a dictionary to act as additional references for this economics model. - - References are found from a walk through the parent slots through all child slots""" - self._cost_references = CST = {} - comps = {} - comp_set = set() - - #reset data - self._cost_categories = collections.defaultdict(list) - self._comp_categories = collections.defaultdict(list) - self._comp_costs = dict() - - for key,level,conf in parent.go_through_configurations(check_config=False): - #skip self - if conf is self: - continue - - bse = f'{key}.' if key else '' - #prevent duplicates' - if conf in comp_set: - continue - - elif isinstance(conf,Configuration): - comp_set.add(conf) - else: - comp_set.add(key) - - _base = key.split('.') - kbase = '.'.join(_base[:-1]) - comp_key = _base[-1] - - self.debug(f'checking {key} {comp_key} {kbase}') - - #Get Costs Directly From the cost model instance - if isinstance(conf,CostModel): - comps[key] = conf - self.debug(f'adding cost model for {kbase}.{comp_key}') - self._extract_cost_references(conf,bse) - - #Look For defaults! - #1. try looking for already parsed components (top down) - elif kbase and kbase in comps: - child = comps[kbase] - if isinstance(child,CostModel) and comp_key in child.parent._slot_costs: - self.debug(f'adding cost for {kbase}.{comp_key}') - compcanidate = child._slot_costs[comp_key] - if isinstance(compcanidate,CostModel): - self.debug(f'dflt child costmodel {kbase}.{comp_key}') - self._extract_cost_references(compcanidate,bse+'cost.') - else: - _key=bse+'cost.item_cost' - self.debug(f'dflt child cost for {kbase}.{comp_key}') - CST[_key] = ref = Ref(child._slot_costs,comp_key,False,False, eval_f = eval_slot_cost) - cc = 'unit' - self._comp_costs[_key] = ref - self._cost_categories['category.'+cc].append(ref) - self._comp_categories[bse+'category.'+cc].append(ref) - - #2. try looking at the parent - elif isinstance(parent,CostModel) and kbase == '' and comp_key in parent._slot_costs: - - compcanidate = parent._slot_costs[comp_key] - if isinstance(compcanidate,CostModel): - self.debug(f'dflt parent cost model for {kbase}.{comp_key}') - self._extract_cost_references(compcanidate,bse+'cost.') - else: - self.debug(f'dflt parent cost for {kbase}.{comp_key}') - _key=bse+'cost.item_cost' - CST[_key] = ref = Ref(parent._slot_costs,comp_key,False,False, eval_f = eval_slot_cost) - cc = 'unit' - self._comp_costs[_key] = ref - self._cost_categories['category.'+cc].append(ref) - self._comp_categories[bse+'category.'+cc].append(ref) - - else: - self.debug(f'unhandled cost: {key}') - - self._cost_references = CST - self._anything_changed = True - return CST - - def _extract_cost_references(self,conf:'CostModel',bse:str): - #Add cost fields - _key = bse+'item_cost' - CST = self._cost_references - if self.log_level < 5: - self.msg(f'extracting costs from {bse}|{conf.identity}',lvl=5) - - #cost properties of conf item - for cost_nm,cost_prop in conf.class_cost_properties().items(): - _key=bse+'cost.'+cost_nm - CST[_key] = ref = Ref(conf,cost_nm,True,False) - self._comp_costs[_key] = ref - - #If there are categories we'll add references to later sum them - if cost_prop.cost_categories: - for cc in cost_prop.cost_categories: - self._cost_categories['category.'+cc].append(ref) - self._comp_categories[bse+'category.'+cc].append(ref) - else: - #we'll reference it as misc - cc = 'misc' - self._cost_categories['category.'+cc].append(ref) - self._comp_categories[bse+'category.'+cc].append(ref) - - comps_act = conf.internal_components() - if self.log_level < 10: self.msg(f'{conf.identity if conf else conf} active components: {comps_act}',lvl=5) - #add slot costs with current items (skip class defaults) - for slot_name, slot_value in conf._slot_costs.items(): - #Skip items that are internal components - if slot_name in comps_act: - self.debug(f'skipping slot {slot_name}') - continue - else: - self.debug(f'adding slot {conf}.{slot_name}') - #Check if current slot isn't occupied - cur_slot = getattr(conf,slot_name) - _key = bse+slot_name+'.cost.item_cost' - if not isinstance(cur_slot,Configuration) and _key not in CST: - CST[_key] = ref = Ref(conf._slot_costs,slot_name,False,False,eval_f = eval_slot_cost) - - cc = 'unit' - self._comp_costs[_key] = ref - self._cost_categories['category.'+cc].append(ref) - self._comp_categories[bse+'category.'+cc].append(ref) - - elif _key in CST: - self.debug(f'skipping key {_key}') - - #add base class slot values when comp was none - for compnm,comp in conf.internal_configurations(False,none_ok=True).items(): - if comp is None: - if self.log_level < 5: - self.msg(f'{conf} looking up base class costs for {compnm}',lvl=5) - comp_cls = conf.slots_attributes()[compnm].type.accepted - for cc in comp_cls: - if issubclass(cc,CostModel): - if cc._slot_costs: - if self.log_level < 5: - self.msg(f'{conf} looking up base slot cost for {cc}') - for k,v in cc._slot_costs.items(): - _key=bse+compnm+'.'+k+'.cost.item_cost' - if _key in CST: - if self.log_level < 10: - self.debug(f'{conf} skipping dflt key {_key}') - #break #skip if already added - continue - - if isinstance(v,CostModel): - self._extract_cost_references(v,bse+compnm+'.'+k+'.') - else: - if self.log_level < 10: - self.debug(f'adding missing cost for {conf}.{compnm}') - CST[_key] = ref = Ref(cc._slot_costs,k,False,False,eval_f = eval_slot_cost) - - cc = 'unit' - self._comp_costs[_key] = ref - self._cost_categories['category.'+cc].append(ref) - self._comp_categories[bse+'category.'+cc].append(ref) - - break #only add once - - elif isinstance(comp,CostModel): - if self.log_level < 10: - self.debug(f'{conf} using actual costs for {comp}') - - @property - def cost_references(self): - return self._cost_references - - @system_property - def combine_cost(self)->float: - if self._costs is None: - return 0 - return self._costs - - @system_property - def output(self)->float: - if self._calc_output is None: - return 0 - return self._calc_output
- - -#TODO: add costs for iterable components (wide/narrow modes) -# if isinstance(conf,ComponentIter): -# conf = conf.current -# #if isinstance(conf,CostModel): -# # sub_tot += conf.item_cost -# if isinstance(conf,ComponentIter): -# item = conf.current -# if conf.wide: -# items = item -# else: -# items = [items] -# else: -# items = [conf] -#for conf in items: - - -# if isinstance(self,CostModel): -# sub_tot += self.item_cost - -#accomodate ComponentIter in wide mode -# if isinstance(self,ComponentIter): -# item = self.current -# if self.wide: -# items = item -# else: -# items = [items] -# else: -# items = [self] - -#accomodate ComponentIter in wide mode -#for item in items: -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/eng/fluid_material.html b/docs/_build/html/_modules/engforge/eng/fluid_material.html deleted file mode 100644 index c486179..0000000 --- a/docs/_build/html/_modules/engforge/eng/fluid_material.html +++ /dev/null @@ -1,406 +0,0 @@ - - - - - - engforge.eng.fluid_material — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.eng.fluid_material

-from engforge.configuration import Configuration, forge
-from engforge.components import Component, system_property, forge
-
-
-import matplotlib
-import random
-import attr, attrs
-import numpy
-import inspect
-import sys
-
-import CoolProp
-from CoolProp.CoolProp import PropsSI
-import fluids
-import abc
-
-
-# TODO: add a exact fluid state (T,P) / (Q,P) in the concept of processes for each thermodynamic operation (isothermal,isobaric,heating...ect)
-
-STD_PRESSURE = 1e5  # pa
-STD_TEMP = 273 + 15
-
-
-
-[docs] -@forge -class FluidMaterial(Component): - """Placeholder for pressure dependent material, defaults to ideal water""" - - P = attrs.field(default=STD_PRESSURE, type=float) - T = attrs.field(default=STD_TEMP, type=float) - - @abc.abstractproperty - def density(self): - """default functionality, assumed gas with eq-state= gas constant""" - return 1000.0 - - @abc.abstractproperty - def viscosity(self): - """ideal fluid has no viscosity""" - return 1e-10 - - @abc.abstractproperty - def surface_tension(self): - return 1e-10
- - - # TODO: enthalpy - - -
-[docs] -@forge -class IdealGas(FluidMaterial): - """Material Defaults To Gas Properties, so eq_of_state is just Rgas, no viscosity, defaults to air""" - - gas_constant = attrs.field(default=287.0, type=float) - - @system_property - def density(self) -> float: - """default functionality, assumed gas with eq-state= gas constant""" - return self.P / (self.gas_constant * self.T) - - @system_property - def viscosity(self) -> float: - """ideal fluid has no viscosity""" - return 1e-10
- - - # @system_property - # def surface_tension(self): - # return 0.0 - - -IdealAir = type("IdealAir", (IdealGas,), {"gas_constant": 287.0}) -IdealH2 = type("IdealH2", (IdealGas,), {"gas_constant": 4124.2}) -IdealOxygen = type("IdealOxygen", (IdealGas,), {"gas_constant": 259.8}) -IdealSteam = type("IdealSteam", (IdealGas,), {"gas_constant": 461.5}) - -# @forge -# class PerfectGas(FluidMaterial): -# '''A Calorically Perfect gas with viscosity''' -# eq_of_state = attrs.field() -# P = attrs.field(default=STD_PRESSURE, type=float) - -# @system_property -# def density(self): -# '''default functionality, assumed gas with eq-state= gas constant''' -# return self.eq_of_state.density(T=self.T,P=self.P) - -# @system_property -# def viscosity(self): -# '''ideal fluid has no viscosity''' -# return self.eq_of_state.viscosity(T=self.T,P=self.P) - - -
-[docs] -@forge -class CoolPropMaterial(FluidMaterial): - """Uses coolprop equation of state""" - - material: str - - # TODO: handle phase changes with internal _quality that you can add heat to - _surf_tension_K = None - _surf_tension_Nm = None - _state = None - - @property - def state(self): - if hasattr(self, "_force_state"): - return self._force_state - if self._state and not self.anything_changed: - return self._state - else: - tsat = self.Tsat - if abs(self.T - tsat) < 1e-4: - self._state = ("Q", 0, "P", self.P, self.material) - elif self.T > tsat: - self._state = ("T|gas", self.T, "P", self.P, self.material) - else: - self._state = ("T|liquid", self.T, "P", self.P, self.material) - - return self._state - - @system_property - def density(self) -> float: - """default functionality, assumed gas with eq-state= gas constant""" - return PropsSI("D", *self.state) - - @system_property - def enthalpy(self) -> float: - return PropsSI("H", *self.state) - - @system_property - def viscosity(self) -> float: - return PropsSI("V", *self.state) - - @system_property - def surface_tension(self) -> float: - """returns liquid surface tension""" - if self._surf_tension_K and self._surf_tension_Nm: - X = self._surf_tension_K - Y = self._surf_tension_Nm - l = Y[0] - r = Y[-1] - return numpy.interp(self.T, xp=X, fp=Y, left=l, right=r) - - self.debug("no surface tension model! returning 0") - return 0.0 - - @system_property - def thermal_conductivity(self) -> float: - """returns liquid thermal conductivity""" - return PropsSI("CONDUCTIVITY", *self.state) - - @system_property - def specific_heat(self) -> float: - """returns liquid thermal conductivity""" - return PropsSI("C", *self.state) - - @system_property - def Tsat(self) -> float: - return PropsSI("T", "Q", 0, "P", self.P, self.material) - - @system_property - def Psat(self) -> float: - try: - return PropsSI("P", "Q", 0, "T", self.T, self.material) - except: - return numpy.nan - -
-[docs] - def __call__(self, *args, **kwargs): - """calls coolprop module with args adding the material""" - args = (*args, self.material) - return PropsSI(*args)
-
- - - -# TODO: add water suface tenstion -T_K = [ - 273.15, - 278.15, - 283.15, - 293.15, - 303.15, - 313.15, - 323.15, - 333.15, - 343.15, - 353.15, - 363.15, - 373.15, - 423.15, - 473.15, - 523.15, - 573.15, - 623.15, - 647.25, -] -ST_NM = [ - 0.0756, - 0.0749, - 0.0742, - 0.0728, - 0.0712, - 0.0696, - 0.0679, - 0.0662, - 0.0644, - 0.0626, - 0.0608, - 0.0589, - 0.0482, - 0.0376, - 0.0264, - 0.0147, - 0.0037, - 0.0, -] - - -Water = type( - "Water", - (CoolPropMaterial,), - {"material": "Water", "_surf_tension_K": T_K, "_surf_tension_Nm": ST_NM}, -) -Air = type("Air", (CoolPropMaterial,), {"material": "Air"}) -Oxygen = type("Oxygen", (CoolPropMaterial,), {"material": "Oxygen"}) -Hydrogen = type("Hydrogen", (CoolPropMaterial,), {"material": "Hydrogen"}) -Steam = type( - "Steam", - (CoolPropMaterial,), - { - "material": "IF97:Water", - "_surf_tension_K": T_K, - "_surf_tension_Nm": ST_NM, - }, -) -SeaWater = type( - "SeaWater", - (CoolPropMaterial,), - {"material": "MITSW", "_surf_tension_K": T_K, "_surf_tension_Nm": ST_NM}, -) - -# Create some useful mixed models - - -
-[docs] -@forge -class CoolPropMixture(CoolPropMaterial): - """coolprop mixture of two elements... can only use T/Q, P/Q, T/P calls to coolprop""" - - material1 = "Air" - materail2 = "Water" - _X = 1.0 # 1.0 > mole fraction of material > 0 - - @system_property - def material(self) -> str: - Xm = self._X - return f"{self.material1}[{Xm}]&{self.materail2}[{1.0-Xm}]" - - @classmethod - def setup(cls): - try: - CoolProp.apply_simple_mixing_rule( - cls.material, cls.material2, "linear" - ) - except Exception as e: - pass - # self.error(e,'issue setting mixing rule, but continuting.') - - @system_property - def Mmass1(self) -> float: - return PropsSI("M", "T", self.T, "P", self.P, self.material1) - - @system_property - def Mmass2(self) -> float: - return PropsSI("M", "T", self.T, "P", self.P, self.material2) - -
-[docs] - def update_mass_ratios(self, m1, m2): - """add masses or massrates and molar ratio will be updated""" - x1 = m1 / self.Mmass1 - x2 = m2 / self.Mmass2 - xtot = x1 + x2 - self._X = x1 / xtot
-
- - - -AirWaterMix = type("AirWaterMix", (CoolPropMixture,), {}) -AirWaterMix.setup() -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/eng/geometry.html b/docs/_build/html/_modules/engforge/eng/geometry.html deleted file mode 100644 index 88c5838..0000000 --- a/docs/_build/html/_modules/engforge/eng/geometry.html +++ /dev/null @@ -1,1097 +0,0 @@ - - - - - - engforge.eng.geometry — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.eng.geometry

-"""These exist as in interface to sectionproperties from PyNite"""
-
-from engforge.configuration import Configuration, forge, LoggingMixin
-from engforge.properties import (
-    cached_system_property,
-    system_property,
-    instance_cached,
-)
-from engforge.typing import Options
-from engforge.eng.prediction import PredictionMixin
-from engforge.env_var import EnvVariable
-import numpy
-import attr, attrs
-
-from scipy import optimize as skopt
-
-from sklearn import svm
-
-from sectionproperties.pre.geometry import Geometry
-from sectionproperties.pre.pre import Material as sec_material
-from sectionproperties.analysis.section import Section
-import sectionproperties.pre.library.primitive_sections as sections
-import numpy as np
-import shapely
-import attr, attrs
-import functools
-import itertools
-import multiprocessing as mp
-import threading
-import random
-import pandas
-import pickle
-import hashlib
-import tempfile,os
-import json
-
-# generic cross sections from
-# https://mechanicalbase.com/area-moment-of-inertia-calculator-of-certain-cross-sectional-shapes/
-temp_path = os.path.join(tempfile.gettempdir(),'shapely_sections')
-section_cache = EnvVariable('FORGE_SECTION_CACHE',default = temp_path,desc='directory to cache section properties')
-if 'FORGE_SECTION_CACHE' not in os.environ and not os.path.exists(temp_path):
-    os.mkdir(temp_path)
-
-section_cache.info(f'loading section from {section_cache.secret}')
-
-
-[docs] -class GeometryLog(LoggingMixin): - pass
- -log = GeometryLog() - - -
-[docs] -def conver_np(inpt): - if isinstance(inpt,np.ndarray): - return inpt - elif isinstance(inpt,(list,tuple)): - return np.array(inpt) - elif isinstance(inpt,(int,float)): - return np.array([inpt]) - else: - raise ValueError(f'got non numpy array/float: {inpt}')
- - - - -
-[docs] -@attrs.define(slots=False) -class ParametricSpline: - """a multivariate spline defined by uniform length vector input, with points P1,P2 and their slopes P1ds,P2ds""" - - P1=attrs.field(converter=conver_np) - P2=attrs.field(converter=conver_np) - P1ds=attrs.field(converter=conver_np) - P2ds=attrs.field(converter=conver_np) - - def __attrs_post_init__(self): - assert len(self.P1) == len(self.P2) - assert len(self.P1ds) == len(self.P2ds) - assert len(self.P1) == len(self.P1ds) - - @functools.cached_property - def a0(self): - return self.P1 - - @functools.cached_property - def a1(self): - return self.P1ds - - @functools.cached_property - def a2(self): - return 3*(self.P2-self.P1 ) - 2*self.P1ds - self.P2ds - - @functools.cached_property - def a3(self): - return (self.P2ds - self.P1ds - 2*self.a2)/3. - - def coords(self,s:float): - if isinstance(s,(float,int)): - assert s <= 1 - assert 0 <= s - return self._coords(s) - elif isinstance(s,(list,tuple,numpy.ndarray)): - assert max(s) <= 1 - assert min(s) >= 0 - ol = [self._coords(si) for si in s] - return numpy.array(ol) - else: - raise ValueError(f'non array/float input {s}') - - def _coords(self,s:float): - return self.a0 + self.a1*s + self.a2*s**2 +self.a3*s**3
- - - - -# TODO: cache SectionProperty sections and develop auto-mesh refinement system. - -
-[docs] -@forge -class Profile2D(Configuration,PredictionMixin): - name: str = attr.ib(default="generic cross section") - - # provide relative interface over - y_bounds: tuple = None - x_bounds: tuple = None - - @property - def A(self): - return 0 - - @property - def Ao(self): - """outside area, over ride for hallow sections""" - return self.A - - @property - def Ixx(self): - return 0 - - @property - def Iyy(self): - return 0 - - @property - def J(self): - return 0 - - def display_results(self): - self.info("mock section, no results to display") - - def plot_mesh(self): - self.info("mock section, no mesh to plot") - - def calculate_stress(self, N, Vx, Vy, Mxx, Myy, M11, M22, Mzz): - # TODO: Implement stress object, make fake mesh, and mock? - # sigma_n = N / self.A - # sigma_bx = self.Myy * self.max_y / self.Ixx - # sigma_by = self.Mxx * self.max_x / self.Iyy - self.warning(f'calculating stress in simple profile!') - return np.nan - - def estimate_stress(self, N, Vx, Vy, Mxx, Myy, M11, M22, Mzz): - # TODO: Implement stress object, make fake mesh, and mock? - # sigma_n = N / self.A - # sigma_bx = self.Myy * self.max_y / self.Ixx - # sigma_by = self.Mxx * self.max_x / self.Iyy - self.warning(f'estimating stress in simple profile!') - return np.nan
- - - -
-[docs] -@forge -class Rectangle(Profile2D): - """models rectangle with base b, and height h""" - - b: float = attr.ib() - h: float = attr.ib() - name: str = attr.ib(default="rectangular section") - - def __on_init__(self): - self.y_bounds = (self.h / 2, -self.h / 2) - self.x_bounds = (self.b / 2, -self.b / 2) - - @property - def A(self): - return self.h * self.b - - @property - def Ixx(self): - return self.b * self.h**3.0 / 12.0 - - @property - def Iyy(self): - return self.h * self.b**3.0 / 12.0 - - @property - def J(self): - return (self.h * self.b) * (self.b**2.0 + self.h**2.0) / 12
- - - -
-[docs] -@forge -class Triangle(Profile2D): - """models a triangle with base, b and height h""" - - b: float = attr.ib() - h: float = attr.ib() - name: str = attr.ib(default="rectangular section") - - def __on_init__(self): - self.y_bounds = (self.h / 2, -self.h / 2) - self.x_bounds = (self.b / 2, -self.b / 2) - - @property - def A(self): - return self.h * self.b / 2.0 - - @property - def Ixx(self): - return self.b * self.h**3.0 / 36.0 - - @property - def Iyy(self): - return self.h * self.b**3.0 / 36.0 - - @property - def J(self): - return (self.h * self.b) * (self.b**2.0 + self.h**2.0) / 12
- - - -
-[docs] -@forge -class Circle(Profile2D): - """models a solid circle with diameter d""" - - d: float = attr.ib() - name: str = attr.ib(default="rectangular section") - - def __on_init__(self): - self.x_bounds = self.y_bounds = (self.d / 2, -self.d / 2) - - @property - def A(self): - return (self.d / 2.0) ** 2.0 * numpy.pi - - @property - def Ixx(self): - return numpy.pi * (self.d**4.0 / 64.0) - - @property - def Iyy(self): - return numpy.pi * (self.d**4.0 / 64.0) - - @property - def J(self): - return numpy.pi * (self.d**4.0 / 32.0)
- - - -
-[docs] -@forge -class HollowCircle(Profile2D): - """models a hollow circle with diameter d and thickness t""" - - d: float = attr.ib() - t: float = attr.ib() - name: str = attr.ib(default="rectangular section") - - def __on_init__(self): - self.y_bounds = (self.d / 2, -self.d / 2) - self.x_bounds = (self.d / 2, -self.d / 2) - - @property - def di(self): - return self.d - self.t * 2 - - @property - def Ao(self): - """outside area, over ride for hallow sections""" - return (self.d**2.0) / 4.0 * numpy.pi - - @property - def A(self): - return (self.d**2.0 - self.di**2.0) / 4.0 * numpy.pi - - @property - def Ixx(self): - return numpy.pi * ((self.d**4.0 - self.di**4.0) / 64.0) - - @property - def Iyy(self): - return numpy.pi * ((self.d**4.0 - self.di**4.0) / 64.0) - - @property - def J(self): - return numpy.pi * ((self.d**4.0 - self.di**4.0) / 32.0)
- - - -# ADVANCED CUSTOM SECTIONS -
-[docs] -def get_mesh_size(inst): - if isinstance(inst.shape, Geometry): - shape = inst.shape.geom - else: - shape = inst.shape - - dec = inst.mesh_extent_decimation - x, y = shape.exterior.coords.xy - dx = abs(max(x) - min(x)) - dy = abs(max(y) - min(y)) - ddx = np.abs(np.diff(x)) - ddx = ddx[ddx > inst.min_mesh_size].tolist() - ddy = np.abs(np.diff(y)) - ddy = ddy[ddy > inst.min_mesh_size].tolist() - - A = shape.area - dAmin = A *0.95/ (inst.goal_elements) - - cans = [dx / dec, dy / dec] - if ddx: - cans.append(min(ddx)) - if ddy: - cans.append(min(ddy)) - - ms = max(min(cans),inst.min_mesh_size) - return max(ms**2.,dAmin) #length to area conversion
- - - -
-[docs] -def calculate_stress(section, n=0, vx=0, vy=0, mxx=0, myy=0, mzz=0,raw=False,row=False,record=True,value=True)->float: - """returns the maximum vonmises stress in the section and returns the ratio of the allowable stress, also known as the failure fracion - :param raw: if raw is true, the stress object is returned, otherwise the failure fraction is returned - """ - inp = dict(n=n, vx=vx, vy=vy, mxx=mxx, myy=myy, mzz=mzz) - - stress = section._sec.calculate_stress(**inp).get_stress()[0] - fail_stress = section.determine_failure_stress(stress) - inp['fail_stress'] = fail_stress - inp['fail_frac'] = ff = fail_stress / section.material.allowable_stress - inp['fails'] = int(ff >= 1) - - if record: - section.record_stress(inp) - - if value: - return fail_stress - - if raw: - return stress - - if row: - return inp - - return ff
- - -
-[docs] -@forge(hash=False) -class ShapelySection(Profile2D): - """a 2D profile that takes a shapely section to calculate section properties, use a sectionproperties section with hidden variable `_geo` to bypass shape calculation""" - - name: str = attrs.field(default="shapely section") - shape: shapely.Polygon = attrs.field() - - #Mesh sizing - coarse: bool = attrs.field(default=False) - mesh_extent_decimation = attrs.field(default=100) - min_mesh_angle: float = attrs.field(default=20) #below 20.7 garunteed to work - min_mesh_size: float = attrs.field(default=1E-5) #multiply by min - goal_elements: float = attrs.field(default=1000) #multiply by min - _mesh_size: float = attrs.field(default=attrs.Factory(get_mesh_size, True)) - - material: sec_material = attrs.field(default=None) - failure_mode = Options('von_mises','max_norm','maximum_strain') - - #Stress classification & prediction - prediction: bool = attr.field(default=False) - prediction_goal_error: float = attrs.field(default=0.025) - max_records: list = attr.field(default=10000) - prediction_records: list - near_margin=0.1 - max_margin=1.5 - save_threshold=0.90 - max_rec_parm = 'fail_frac' - - _use_symmetric: bool = attrs.field(default=True) - _prediction_parms = ['n','vx','vy','mxx','myy','mzz'] - _do_print: bool = attrs.field(default=False) - _sec: Section = None - _geo: Geometry = None - _A: float - _symmetric: bool - _subclass_init: bool = False - - def __on_init__(self): - self.init_with_material(self.material) - - if self.prediction: - self.add_prediction_record({'n':0,'vx':0,'vy':0,'mxx':0,'myy':0,'mzz':0,'fails':0,'fail_frac':0}) - self._symmetric = self.check_symmetric() - if self._symmetric and self._use_symmetric: - self._prediction_models = {'fails':{'mod':svm.SVC(C=2000,gamma=0.1,probability=True),'N':0},'fail_frac':{'mod':svm.SVR(C=5,gamma=0.5),'N':0}} - else: - self._prediction_models = {'fails':{'mod':svm.SVC(C=5000,gamma=5,probability=True),'N':0},'fail_frac':{'mod':svm.SVR(C=10,gamma=0.5),'N':0}} - # self.determine_failure_front(pareto_front=False) - # self.basis_expand(expand_values=[0.75,0.5,0.1],Nparm=3,est=True) - -
-[docs] - def training_callback(self,models): - """when training is complete save the model to a pickle with `ShapelySection_<hash>.pkl`""" - score = models['fail_frac']['train_score'] - Nscore = models['fail_frac']['N'] - test_score = score * Nscore #compare to meta file - - #Opt out of saving if score is below threshold - if score < self.save_threshold: - return - #Opt out of saving if score is worse than previous - if os.path.exists(self.meta_path): - with open(self.meta_path,'r') as f: - meta = json.load(f) - if test_score < meta['test_score']: - self.info(f'new model score {test_score} is worse than {meta["test_score"]}, not saving') - return - - new_meta = {'test_score':test_score,'N':Nscore,'train_score':score} - #add a meta json file to show info regarding data (num points better ect) - with open(self.meta_path,'w') as f: - json.dump(new_meta,f) - - #Finally save the geometry - self.info(f'saving model with score: {Nscore}x{score}=>{test_score}') - fil = self.cache_path - with open(fil,'wb') as f: - pickle.dump(self,f) - self.info(f'saved section to {fil}')
- - - - - @property - def section_cache(self) -> str: - return section_cache.secret - - @property - def cache_name(self) -> str: - return f'ShapelySection_{self.hash_id()}.pkl' - - @property - def meta_name(self) -> str: - return f'ShapelySection_meta_{self.hash_id()}.json' - - @property - def cache_path(self): - return os.path.join(self.section_cache,self.cache_name) - - @property - def meta_path(self): - return os.path.join(self.section_cache,self.meta_name) - - @classmethod - def from_cache(cls,hash_id): - cchc = section_cache.secret - log.info(f'loading section {hash_id} from cache {cchc}') - fil = os.path.join(cchc,f'ShapelySection_{hash_id}.pkl') - with open(fil,'rb') as f: - model = pickle.load(f) - return model - - def prediction_weights(self,df,window,initial_weight=10): - weights = numpy.ones(min(len(df),window)) - weights[0] = initial_weight**2 #zero value is important! - weights[:getattr(self,'N_base',100)] = initial_weight #then base values - if hasattr(self,'N_pareto'): - weights[:getattr(self,'N_pareto')] = initial_weight**0.5 #then pareto values - #Dont emphasise fit above max margin - dm = (df.fail_frac - self.max_margin).to_numpy() - penalize_inx = (dm>0) - weights[penalize_inx] = np.maximum(1.0/((1.0+dm[penalize_inx])),0.1) - return weights - - def _subsample_data(self,X,y,window,weights): - """subsamples the data to the window size""" - inx = getattr(self,'N_pareto',getattr(self,'N_base',window)) - x1 = X.iloc[:inx] - y1 = y.iloc[:inx] - w1 = weights[:inx] - if inx != window: - x2 = X.iloc[inx:].sample(frac=0.5) - y2 = y.iloc[x2.index] - w2 = weights[x2.index] - return pandas.concat((x1,x2)),pandas.concat((y1,y2)),numpy.concatenate((w1,w2)) - return X.iloc[:window],y.iloc[:window],weights[:window] - - def reset_prediction(self): - self._fitted = False - self._basis = None - self._training_history = None - self._running_error = None - self.add_prediction_record({'n':0,'vx':0,'vy':0,'mxx':0,'myy':0,'mzz':0,'fails':0,'fail_frac':0}) - #self._symmetric = self.check_symmetric() - - @property - def mesh_size(self): - return self._mesh_size - - @property - def _prediction_record(self): - """not a property of state, just return an empty dict, we add record manually""" - return {} - - @mesh_size.setter - def mesh_size(self, value): - #print(f'setting mesh size to {value}') - #BUG: something going on with setattrs on mesh_size, setting to None, hacky fix to set __dict__ directly - _mesh_size = max(value,self.min_mesh_area) - self.__dict__['_mesh_size'] = _mesh_size - self.mesh_section() - - def init_with_material(self, material=None): - if self._sec is not None: - raise Exception(f"already initalized!") - - if isinstance(self.shape,Geometry): - self._geo = self.shape - if self._geo.material and self.material: - self.warning(f'overriding material {self._geo.material} with {self.material}') - self._geo.material = self.material - elif self._geo.material: - self.info(f'setting beam material from section') - self.material = self._geo.material - elif self.material: - self._geo.material = self.material - elif isinstance(self.shape,shapely.Polygon): - self._geo = Geometry(self.shape, self.material) - else: - raise ValueException(f'got invalid shape: {self.shape}') - - self.calculate_mesh_size() - self.mesh_section() - - def calculate_mesh_size(self): - self.mesh_size = get_mesh_size(self) - - @property - def min_mesh_area(self): - if isinstance(self.shape, Geometry): - shape = self.shape.geom - else: - shape = self.shape - A = shape.area - dAmin = A *0.95/ (self.goal_elements) - return dAmin - -
-[docs] - def mesh_section(self): - """caches section properties and mesh""" - self._cross_section = None #reset cross section - self._mesh = self._geo.create_mesh(mesh_sizes=self.mesh_size, coarse=self.coarse,min_angle=self.min_mesh_angle) - self._sec = Section(self._geo) - self._sec.calculate_geometric_properties() - self._sec.calculate_warping_properties() - self._sec.calculate_frame_properties() - - self._A = self._sec.get_area() - if self.material: - self._Ixx, self._Iyy, self._Ixy = self._sec.get_eic(e_ref=self.material) - self._J = self._sec.get_ej() - else: - self._Ixx, self._Iyy, self._Ixy = self._sec.get_ic() - self._J = self._sec.get_j() - - self.calculate_bounds()
- - - - def calculate_bounds(self): - self.info(f"calculating shape bounds!") - xcg, ycg = self._geo.calculate_centroid() - minx, maxx, miny, maxy = self._geo.calculate_extents() - self.y_bounds = (miny - ycg, maxy - ycg) - self.x_bounds = (minx - xcg, maxx - xcg) - - @property - def A(self): - return self._A - - @property - def Ao(self): - """outside area, over ride for hallow sections""" - return self.A - - @property - def Ixx(self): - return self._Ixx - - @property - def Iyy(self): - return self._Iyy - - @property - def J(self): - return self._J - - @property - def Ixy(self): - return self._Ixy - - def display_results(self): - self.info("mock section, no results to display") - - def plot_mesh(self): - self._sec.display_mesh_info() - - - def plot_mesh(self): - return self._sec.plot_centroids() - - def calculate_stress(self, n=0, vx=0, vy=0, mxx=0, myy=0, mzz=0,**kw)->float: - return calculate_stress(self,n=n, vx=vx, vy=vy, mxx=mxx, myy=myy, mzz=mzz,**kw) - -
-[docs] - def estimate_stress(self, n=0, vx=0, vy=0, mxx=0, myy=0, mzz=0,value=False,calc_margin=2,min_est_records=100,calc_every=25,pre_train_margin=2,force_calc=False)->float: - """uses a support vector machine to estimate stresses and returns the ratio of the allowable stress, also known as the failure fracion if prediction is set to True, otherwise calculates stress""" - - Nrec = 0 - under_size = True - if self.prediction: - pr = self.prediction_records - Nrec = len(pr) if pr else 0 - under_size = Nrec <= min_est_records - - do_calc = not self.prediction or not self._fitted or under_size - if do_calc or force_calc: - if self._do_print and self.prediction: - print(f'calc till {len(self.prediction_records)} <= {min_est_records}') - stress = calculate_stress(self,n=n, vx=vx, vy=vy, mxx=mxx, myy=myy, mzz=mzz,value=value) - return stress - else: - parms = self._prediction_parms - data = dict(n=n,vx=vx,vy=vy,mxx=mxx,myy=myy,mzz=mzz) - - #Format data for prediction - if self._symmetric and self._use_symmetric: - inp = {k:abs(data[k]/v) for k,v in zip(parms,self._basis)} - else: - inp = {k:data[k]/v for k,v in zip(parms,self._basis)} - X = pandas.DataFrame([inp]) - val = self._prediction_models['fail_frac']['mod'].predict(X)[0] - - #Provide margin of error and use estimate where possible - if not self.trained: - #calc when in doubt - calc_margin = calc_margin*pre_train_margin - - - #calculate stress if close to failure within saftey margin - err = 1-val - mrg = self.fail_frac_criteria(calc_margin=calc_margin) - do_calc = abs(err)<=mrg or all([calc_every,(Nrec%calc_every)==0]) - oob = val <= self.max_margin and self.check_out_of_domain(data,0.1) - if self._do_print: - self.info(f'{"calc" if do_calc or oob else "est"} stress {abs(err):5.3f}>{mrg*calc_margin:5.3f}| {calc_margin} | oob {oob}') - - if do_calc: - return self.calculate_stress(n=n, vx=vx, vy=vy, mxx=mxx, myy=myy, mzz=mzz,value=value) - - elif oob: - # if self._do_print: - # self.info(f'out of domain {val:5.3f}<={self.max_margin:5.3f}') - return self.calculate_stress(n=n, vx=vx, vy=vy, mxx=mxx, myy=myy, mzz=mzz,value=value) - - - - #otherwise prediction is value - if value: - return val * self.material.allowable_stress - - return val
- - - def fail_frac_criteria(self,calc_margin=2,min_rec=1000): - MargRec = max(min_rec/len(self._prediction_records),1) - - if self._training_history: - score = self._training_history[-1]['fail_frac']['scr'] - else: - score = self._prediction_models['fail_frac']['train_score'] - - mrg = max(abs((1-score)),self.prediction_goal_error) - return mrg*calc_margin*MargRec - -
-[docs] - def estimate_failure(self, n=0, vx=0, vy=0, mxx=0, myy=0, mzz=0)->float: - """uses a support vector machine to estimate stresses and returns a number zero or one to indicate failure, if prediction is set to True, otherwise calculates stress""" - if not self.prediction or not self._fitted: - ff = calculate_stress(self,n=n, vx=vx, vy=vy, mxx=mxx, myy=myy, mzz=mzz,row=True,value=False) - return ff['fails'] - else: - #TODO: add logic to determine if calculation should be done close to failure - - parms = self._prediction_parms - data = dict(n=n,vx=vx,vy=vy,mxx=mxx,myy=myy,mzz=mzz) - if self._symmetric and self._use_symmetric: - inp = {k:abs(data[k]/v) for k,v in zip(parms,self._basis)} - else: - inp = {k:data[k]/v for k,v in zip(parms,self._basis)} - X = pandas.DataFrame([inp]) - return self._prediction_models['fails']['mod'].predict(X)[0]
- - -
-[docs] - def record_stress(self,stress_dict): - """determines if stress record should be added to prediction_records""" - if not self.prediction: - return - if len(self.prediction_records) > self.max_records: - return - #Add the data to the stress records - #TODO: add logic to determine if stress record should be added to prediction_records - ff = stress_dict['fail_frac'] - if ff == 0: - #null included - return - - #Convert to positive domain - if self._symmetric and self._use_symmetric: - stress_dict = {k:abs(v) for k,v in stress_dict.items()} - - if not getattr(self,'N_base',None): - max_margin = None - else: - max_margin = self.max_margin - - if self.near_margin and abs(ff-1) < self.near_margin: - #near failure always add to map resolution - self.add_prediction_record(stress_dict) - elif max_margin and ff < max_margin*2: - #under max marging - self.add_prediction_record(stress_dict,False,0.1) - elif not self.near_margin and not max_margin: - #no checks - self.add_prediction_record(stress_dict,False)
- - - -
-[docs] - def determine_failure_stress(self,stress_obj): - """uses the failure mode to compare to allowable stress""" - if self.failure_mode == 'von_mises': - return stress_obj['sig_vm'].max() - elif self.failure_mode == 'max_norm': - return np.nan #TODO: make this work - elif self.failure_mode == 'maximum_strain': - return np.nan #TODO: make this work - else: - raise ValueError(f'invalid failure mode: {self.failure_mode}')
- - -
-[docs] - def fail_learning(self,X,parm,base_kw,mult=1): - '''optimizes stress until failure, given base_kw arguments for extra parameters''' - base_kw = base_kw.copy() - inpt = {parm:mult*X} - base_kw.update(inpt) - - base_kw['value'] = False #override value for calcstress to fail frac - ff = self.calculate_stress(**base_kw).item() - return 1 - ff
- - - def solve_fail(self,fail_parm,base_kw,guess=None,tol=1E-4,mult=1): - if guess is None: - guess = 1000*random.random() - kw = {} - # if self._basis is not None: - # fpinx = self._prediction_parms.index(fail_parm) - # bracket = (0,self._basis[fpinx]*1.25) - # kw['bracket'] = bracket - - ans = skopt.root_scalar( self.fail_learning , x0=guess*0.1, x1=guess, xtol = tol, args=(fail_parm,base_kw,mult))#,**kw) - if self._do_print: - self.info(f'{mult}x{fail_parm:<6}| success: {ans.converged} , ans:{ans.root}, base: {base_kw}') - else: - self.debug(f'{mult}x{fail_parm:<6}| success: {ans.converged} , ans:{ans.root}, base: {base_kw}') - if ans.converged: - return ans.root - return 1E6 - - #Determine Outer Bound Of Failures - def determine_failure_front(self,pareto_inx = [0.5,0.1],pareto_front=False): - self.info(f'determining failure front for cross section, with pareto inx: {pareto_inx}') - null_kw = {} - if self._symmetric: - mvec = [1] - else: - mvec = [-1,1] - - if self._basis is None: - self.info(f'determining normalization basis') - res = {} - for mult in mvec: - res[mult] = {} - for p in self._prediction_parms: - res[mult][p] = self.solve_fail(p,null_kw,mult) - - self._basis = np.array([max([abs(v.get(p,1E6)) for k,v in res.items() ]) for p in self._prediction_parms]) - - self.N_base = len(self.prediction_records) - - #Second Pareto Value Calc - if pareto_front: - for mult in mvec: - for aux_frac in pareto_inx: - #TODO: expand parato combos past 2 - for fail_parm,aux_parm in itertools.combinations(self._prediction_parms,2): - ainx = self._prediction_parms.index(aux_parm) - aux_val = self._basis[ainx]*aux_frac - base_kw = {aux_parm:aux_val} - finx = self._prediction_parms.index(fail_parm) - guesstimate = self._basis[finx]*(1-aux_frac) - self.solve_fail(fail_parm,base_kw,guess=guesstimate,mult=mult) - if not self._symmetric: - self.solve_fail(fail_parm,base_kw,guess=guesstimate,mult=-1*mult) #alternato - - self.N_pareto = len(self.prediction_records) - -
-[docs] - def basis_expand(self,expand_values=[0.9,0.75,0.5,0.1,0.01],Nparm=4,est=True,normalize=True): - """run combinations of parameters and permutations of weights against the basis values to populate the stress records, by default using estimation logic to speed up the process""" - i = 0 - Nparm = min(min(Nparm,len(self._prediction_parms)),len(expand_values)) - for parms in itertools.combinations(self._prediction_parms,Nparm): - for weight in itertools.permutations(expand_values,Nparm): - wt = sum(weight) - q = max(wt,1) if normalize else 1 - inxs = [self._prediction_parms.index(p) for p in parms] - base_kw = {p:w*self._basis[i]/q for p,w,i in zip(parms,weight,inxs)} - - #print(base_kw) - if est: - self.estimate_stress(**base_kw) - else: - self.calculate_stress(**base_kw) - i+=1 - if i%100 == 0: - self.info(f'basis expansion... {i}')
- - - - def random_force_input(self,exp_mg=12,exp_min=6,min_ex=1,max_ex=3): - porp = np.random.random(size=6)**np.random.randint(numpy.random.randint(min_ex,max_ex),numpy.random.randint(exp_min,exp_mg),size=(6,)) - stress = porp * self._basis - return {k:v for k,v in zip(self._prediction_parms,stress)} - -
-[docs] - def train_until_valid(self,print_interval=50,max_iter=1000,est=False): - """trains the prediction models until the error is below the goal error""" - i = 0 - goal = self.prediction_goal_error - while not self.trained: - inp = self.random_force_input() - if est: - self.estimate_stress(**inp) - else: - self.calculate_stress(**inp) - - if i % print_interval == 0: - self.info(f'training... current error: {self._training_history[-1]}') - i+= 1 - if i >= max_iter: - self.info(f'training... max iterations reached') - return
- - - - #Geometric Prediction Solutions -
-[docs] - def check_symmetric(self,precision=3,Nincr=180): - """checks if the section is symmetric about the x and y axis, by finding the intersection of """ - if isinstance(self.shape, Geometry): - shape = self.shape.geom - else: - shape = self.shape - x,y = (np.array(v) for v in shape.exterior.coords.xy) - xc = shape.centroid.x - yc = shape.centroid.y - dx= x-xc - dy= y-yc - - dth = np.arctan2(dx,dy) - rth = (dx**2 + dy**2)**0.5 - inx = np.cumsum(np.ones(dth.size))-1 - - Nincr = 1000 - Imax = inx.max() - inx2 = np.linspace(0,Imax,Nincr) - oppo = lambda i: (i+Imax/2)%Imax - - R = np.interp(inx2,inx,rth) - T = np.interp(inx2,inx,dth) - X = np.cos(T)*R - Y = np.sin(T)*R - - #finds set of radius at a given angle - def find_radii(targetth): - """targetth must be positive from 0->pi""" - r = (dth - targetth) - #print(r) - if np.all(r < 0): - r = r + np.pi - elif np.all(r > 0): - r = r - np.pi - sgn = np.concatenate([ r[1:]*r[:-1], [r[0]*r[-1]] ] ) - possibles = np.where( sgn < 0)[0] - #print(f'\n{targetth}') - out = set() - for poss in possibles: - poss2 = int((poss+1)%Imax) - x_ = np.array([r[poss],r[poss2]]) - y_ = np.array([inx[poss],inx[poss2]]) - itarget = (0 - x_[0])*(y_[1]-y_[0])/(x_[1]-x_[0]) + y_[0] - r_ = np.interp(itarget,inx2,R) - out.add(round(r_,precision)) - #print(itarget,r_) - return out - - #check symmetry from 0-180 deg - syms = [] - for targetth in np.linspace(0,np.pi,Nincr): - o1 = find_radii(targetth) - o2 = find_radii(targetth-np.pi) - sym_point = len(o1.intersection(o2)) >= 1 - syms.append(sym_point) - - return np.all(syms)
- - - - def __hash__(self): - """uniqueness based on geometry and material""" - #print('hash shape...') - if isinstance(self.shape, Geometry): - shape = self.shape.geom - else: - shape = self.shape - vals = (shape.wkb_hex,str(hash(self.material)),str(self.goal_elements),str(self.min_mesh_angle) ) - h=hashlib.md5() - for hv in vals: - h.update(hv.encode()) - return int(h.hexdigest(),16) - -
-[docs] - def hash_id(self)->str: - """string for saving to persisting""" - return str(hash(self))
-
- - -ALL_CROSSSECTIONS = [ - cs for cs in locals() if type(cs) is type and issubclass(cs, Profile2D) -] -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/eng/pipes.html b/docs/_build/html/_modules/engforge/eng/pipes.html deleted file mode 100644 index 12e5698..0000000 --- a/docs/_build/html/_modules/engforge/eng/pipes.html +++ /dev/null @@ -1,1369 +0,0 @@ - - - - - - engforge.eng.pipes — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.eng.pipes

-"""We'll use the QP formulation to develop a fluid analysis system for fluids
-start with single phase and move to others
-
-
-1) Pumps Power = C x Q x P 
-2) Compressor = C x (QP) x (PR^C2 - 1)
-3) Pipes = dP = C x fXL/D x V^2 / 2g
-4) Pipe Fittings / Valves = dP = C x V^2 (fXL/D +K)   |   K is a constant, for valves it can be interpolated between closed and opened
-5) Splitters & Joins: Handle fluid mixing
-6) Phase Separation (This one is gonna be hard)
-7) Heat Exchanger dP = f(V,T) - phase change issues
-8) Filtration dP = k x Vxc x (Afrontal/Asurface) "linear"
-"""
-
-from engforge.components import Component
-from engforge.configuration import forge
-from engforge.system_reference import Ref
-from engforge.tabulation import (
-    system_property,
-    NUMERIC_VALIDATOR,
-    STR_VALIDATOR,
-)
-from engforge.eng.fluid_material import FluidMaterial
-from engforge.common import G_grav_constant
-from engforge.attr_slots import *
-from engforge.attr_signals import *
-from engforge.logging import LoggingMixin
-from engforge.system import System
-from engforge.properties import *
-
-
-import networkx as nx
-
-import attr, attrs
-
-import numpy
-import fluids
-
-import attrs
-
-
-
-[docs] -class PipeLog(LoggingMixin): - pass
- - - -log = PipeLog() - -#TODO: add compressibility effects -
-[docs] -@forge -class PipeNode(Component): - x: float = attrs.field() - y: float = attrs.field() - z: float = attrs.field() - - _segments: list # created on init - - def __on_init__(self): - self._segments = [] - - def add_segment(self, pipe: "PipeFlow"): - if pipe not in self.segments: - self._segments.append(pipe) - else: - self.warning(f"pipe already added: {pipe}") - - @property - def segments(self): - return self._segments - - @system_property - def sum_of_flows(self) -> float: - out = 0 - for pipe_seg in self._segments: - if self is pipe_seg.node_s: - out -= pipe_seg.Q - elif self is pipe_seg.node_e: - out += pipe_seg.Q - return out
- - - -
-[docs] -@forge -class PipeFlow(Component): - D: float = attrs.field() - v: float = attrs.field(default=0) - material = Slot.define(FluidMaterial) - - def set_flow(self, flow): - v = flow / self.A - self.v = v - - # Geometric Propreties - @system_property - def A(self) -> float: - """:returns: the cross sectional area of pipe in [m2]""" - return 3.1415 * (self.D / 2.0) ** 2.0 - - @system_property - def C(self) -> float: - """:returns: the sectional circmerence of pipe""" - return 3.1415 * self.D - - # Fluid Propreties - @system_property - def Q(self) -> float: - """:returns: the volumetric flow through this pipe in [m3/s]""" - return self.A * self.v - - @system_property - def Mf(self) -> float: - """:returns: the massflow through this pipe in [kg/s]""" - return self.density * self.Q - - @system_property - def reynoldsNumber(self) -> float: - """:returns: the flow reynolds number""" - o = abs(self.density * self.v * self.D / self.viscosity) - return max(o, 1) - - # Material Properties Exposure - @system_property - def density(self) -> float: - return self.material.density - - @system_property - def viscosity(self) -> float: - return self.material.viscosity - - @system_property - def enthalpy(self) -> float: - return self.material.enthalpy - - @system_property - def T(self) -> float: - return self.material.T - - @T.setter - def T(self, new_T): - self.material.T = new_T - - @system_property - def P(self) -> float: - return self.material.P - - @P.setter - def P(self, new_P): - self.material.P = new_P - - @property - def dP_f(self): - """The loss of pressure in the pipe due to pressure""" - raise NotImplemented() - - @property - def dP_p(self): - """The loss of pressure in the pipe due to potential""" - raise NotImplemented() - - @property - def dP_tot(self): - raise NotImplemented() - - @property - def Fvec(self): - """returns the fluidized vector for 1D CFD for continuity:0, and momentum:1""" - # TODO: add energy eq - # TODO: 1D CFD Pipe Network Solver :) - return [ - self.density * self.v, - self.density * self.v**2.0 + self.P, - ] # TODO: include Txx
- - - -
-[docs] -@forge -class Pipe(PipeFlow, Component): - node_s = Slot.define(PipeNode, default_ok=False) - node_e = Slot.define(PipeNode, default_ok=False) - roughness: float = attrs.field(default=0.0) - bend_radius: float = attrs.field(default=None) - - straight_method = "Clamond" - laminar_method = "Schmidt laminar" - turbulent_method = "Schmidt turbulent" - - def __on_init__(self): - self.node_s.add_segment(self) - self.node_e.add_segment(self) - - @system_property - def Lx(self) -> float: - return self.node_e.x - self.node_s.x - - @system_property - def Ly(self) -> float: - return self.node_e.y - self.node_s.y - - @system_property - def Lz(self) -> float: - return self.node_e.z - self.node_s.z - - @system_property - def Lhz(self) -> float: - """:returns: The length of pipe element in the XY plane""" - return numpy.sqrt(self.Lx**2.0 + self.Ly**2.0) - - @system_property - def L(self) -> float: - """:returns: The absolute length of pipe element""" - return numpy.sqrt(self.Lx**2.0 + self.Ly**2.0 + self.Lz**2.0) - - @system_property - def inclination(self) -> float: - """:returns: the inclination angle in degrees""" - return numpy.rad2deg(numpy.arctan2(self.Lz, self.Lhz)) - - @system_property - def friction_factor(self) -> float: - """The friction factor considering bend radius""" - if self.bend_radius is None: - re = self.reynoldsNumber - return fluids.friction.friction_factor( - re, self.roughness, Method=self.straight_method - ) - else: - re = self.reynoldsNumber - dc = self.D * self.bend_radius - return fluids.friction.friction_factor_curved( - re, - self.D, - dc, - self.roughness, - laminar_method=self.laminar_method, - turbulent_method=self.turbulent_method, - ) - - @system_property - def Kpipe(self) -> float: - """The loss coeffient of this pipe section""" - return self.friction_factor * self.L / self.D - - @system_property - def dP_f(self) -> float: - """The loss of pressure in the pipe due to pressure""" - return self.sign * self.density * self.v**2.0 * self.Kpipe / 2.0 - - @system_property - def dP_p(self) -> float: - """The loss of pressure in the pipe due to potential""" - return self.density * self.Lz * 9.81 - - @system_property - def dP_tot(self) -> float: - return self.dP_f + self.dP_p - - @system_property - def sign(self) -> int: - return numpy.sign(self.v)
- - - -# Specalized Nodes -
-[docs] -class FlowNode(PipeNode): - """Base For Boundary Condition Nodes of""" - - @system_property - def dP_f(self) -> float: - return 0.0 - - @system_property - def dP_p(self) -> float: - return 0.0 - - @system_property - def dP_tot(self) -> float: - return 0.0
- - - -
-[docs] -@forge -class PipeFitting(FlowNode, PipeFlow): - Kfitting = attr.ib(default=0.1, type=float) - - @system_property - def dP_f(self) -> float: - """The loss of pressure in the pipe due to pressure""" - return self.density * self.v**2.0 * self.Kfitting / 2.0 - - @system_property - def dP_p(self) -> float: - """The loss of pressure in the pipe due to potential""" - return 0.0 - - @system_property - def dP_tot(self) -> float: - return self.dP_f + self.dP_p
- - - -# TODO: Add in fitting numbers: -#https://neutrium.net/fluid-flow/pressure-loss-from-fittings-excess-head-k-method/ -# https://neutrium.net/fluid-flow/discharge-coefficient-for-nozzles-and-orifices/ -""" Fitting Types K -0 45° Elbow Standard (R/D = 1) 0.35 -1 45° Elbow Long Radius (R/D = 1.5) 0.20 -2 90° Elbow Curved Standard (R/D = 1) 0.75 -3 90° Elbow Curved Long Radius (R/D = 1.5) 0.45 -4 90° Elbow Square or Mitred NaN 1.30 -5 180° Bend Close Return 1.50 -6 Tee, Run Through Branch Blanked 0.40 -7 Tee, as Elbow Entering in run 1.00 -8 Tee, as Elbow Entering in branch 1.00 -9 Tee, Branching Flow NaN 1.00 -10 Coupling NaN 0.04 -11 Union NaN 0.04 -12 Gate valve Fully Open 0.17 -13 Gate valve 3/4 Open 0.90 -14 Gate valve 1/2 Open 4.50 -15 Gate valve 1/4 Open 24.00 -16 Diaphragm valve Fully Open 2.30 -17 Diaphragm valve 3/4 Open 2.60 -18 Diaphragm valve 1/2 Open 4.30 -19 Diaphragm valve 1/4 Open 21.00 -20 Globe valve, Bevel Seat Fully Open 6.00 -21 Globe valve, Bevel Seat 1/2 Open 9.50 -22 Globe Valve, Composition seat Fully Open 6.00 -23 Globe Valve, Composition seat 1/2 Open 8.50 -24 Plug disk Fully Open 9.00 -25 Plug disk 3/4 Open 13.00 -26 Plug disk 1/2 Open 36.00 -27 Plug disk 1/4 Open 112.00 -28 Angle valve Fully Open 2.00 -29 Y valve or blowoff valve Fully Open 3.00 -30 Plug cock \theta = 5° 0.05 -31 Plug cock \theta = 10° 0.29 -32 Plug cock \theta = 20° 1.56 -33 Plug cock \theta = 40° 17.30 -34 Plug cock \theta = 60° 206.00 -35 Butterfly valve \theta = 5° 0.24 -36 Butterfly valve \theta = 10° 0.52 -37 Butterfly valve \theta = 20° 1.54 -38 Butterfly valve \theta = 40° 10.80 -39 Butterfly valve \theta = 60° 118.00 -40 Check valve Swing 2.00 -41 Check valve Disk 10.00 -42 Check valve Ball 70.00 -43 Foot valve NaN 15.00 -44 Water meter Disk 7.00 -45 Water meter Piston 15.00 -46 Water meter Rotary (star-shaped disk) 10.00 -47 Water meter Turbine-wheel 6.00""" - - -# -
-[docs] -@forge -class FlowInput(FlowNode): - flow_in: float = attrs.field(default=0.0) - - @system_property - def sum_of_flows(self) -> float: - out = self.flow_in - for pipe_seg in self._segments: - if self is pipe_seg.node_s: - out -= pipe_seg.Q - elif self is pipe_seg.node_e: - out += pipe_seg.Q - return out
- - - -# -# class PressureInput(FlowNode): -# pressure_in: float = attrs.field() -# -# class PressureOut(FlowNode): -# pressure_out: float = attrs.field() - - -
-[docs] -@forge -class Pump(Component): - """Simulates a pump with power input, max flow, and max pressure by assuming a flow characteristic""" - - max_flow: float = attrs.field() - max_pressure: float = attrs.field() - # throttle: float - - @property - def design_flow_curve(self): - """:returns: a tuple output of flow vector, and pressure vector""" - flow = numpy.linspace(0, self.max_flow) - return flow, self.max_pressure * (1 - (flow / self.max_flow) ** 2.0) - -
-[docs] - def dPressure(self, current_flow): - """The pressure the pump generates""" - flow, dP = self.design_flow_curve - assert current_flow >= 0, "Flow must be positive" - assert current_flow <= self.max_flow, "Flow must be less than max flow" - return numpy.interp(current_flow, flow, dP)
- - -
-[docs] - def power(self, current_flow): - """The power used considering in watts""" - return self.dPressure(current_flow) * current_flow
-
- - - -
-[docs] -@forge -class PipeSystem(System): - in_node = Slot.define(PipeNode) - graph: nx.Graph - items: dict - - def __on_init__(self): - self.items = {} - self.flow_solvers = {} - self.pipe_flow = {} - self.create_graph_from_pipe_or_node(self.in_node) - self.assemble_solvers() - - def assemble_solvers(self): - for i, cycle in enumerate(nx.cycle_basis(self.graph)): - cycle_attr_name = f"_cycle_redisual_{i}" - pipes = [] - self.info(f"found cycle: {cycle}") - for cs, cl in zip(cycle, cycle[1:] + [cycle[0]]): - pipe = self.graph.get_edge_data(cs, cl)["pipe"] - mult = 1 - if cs == pipe.node_e.system_id: - # reverse - mult = -1 - pipes.append((pipe, mult)) - - def res_func(): - out = 0 - for pipe, mult in pipes: - out += mult * pipe.dP_tot - return out / 1000.0 - - setattr(self, cycle_attr_name, res_func) - self.flow_solvers[cycle_attr_name] = Ref(self, cycle_attr_name) - - bf = lambda kv: len(kv[1].segments) - for nid, node in sorted(self.nodes.items(), key=bf): - if len(node.segments) > 1: - self.flow_solvers[nid] = Ref(node, "sum_of_flows") - elif not isinstance(node, FlowInput): - self.info(f"deadend: {node.identity}") - # self.flow_solvers[nid] = Ref(node,'sum_of_flows') - - for nid, node in self.nodes.items(): - if isinstance(node, FlowInput): - self.flow_solvers[nid] = Ref(node, "sum_of_flows") - - for pid, pipe in self.pipes.items(): - self.pipe_flow[pid] = Ref(pipe, "v") - - @property - def _X(self): - return {k: v for k, v in self.pipe_flow.items()} - - @property - def _F(self): - return {k: v for k, v in self.flow_solvers.items()} - - @instance_cached - def F_keyword_order(self): - """defines the order of inputs in ordered mode for calcF""" - return {i: k for i, k in enumerate(self.flow_solvers)} - - @property - def nodes(self): - return {k: v for k, v in self.items.items() if isinstance(v, PipeNode)} - - @property - def pipes(self): - return {k: v for k, v in self.items.items() if isinstance(v, Pipe)} - - # Pipe System Composition -
-[docs] - def add_to_graph(self, graph, node_or_pipe) -> str: - """recursively add node or pipe elements""" - - idd = node_or_pipe.system_id - - # Early Exit - if idd in self.items: - return idd - - elif graph.has_node(idd): - return idd - - log.info(f"adding {idd}") - - if isinstance(node_or_pipe, PipeNode): - if not graph.has_node(idd): - graph.add_node(idd, sys_id=idd, node=node_or_pipe) - self.items[idd] = node_or_pipe - - for seg in node_or_pipe.segments: - self.add_to_graph(graph, seg) - - elif isinstance(node_or_pipe, Pipe): - nodes = node_or_pipe.node_s - nodee = node_or_pipe.node_e - - if not graph.has_node(nodes.system_id): - nsid = self.add_to_graph(graph, nodes) - else: - nsid = nodes.system_id - - if not graph.has_node(nodee.system_id): - neid = self.add_to_graph(graph, nodee) - else: - neid = nodee.system_id - - if not graph.has_edge(nsid, neid): - graph.add_edge(nsid, neid, sys_id=idd, pipe=node_or_pipe) - self.items[idd] = node_or_pipe - - else: - raise ValueError(f"not a node or pipe: {node_or_pipe}") - - return idd
- - -
-[docs] - def create_graph_from_pipe_or_node(self, node_or_pipe) -> nx.Graph: - """Creates a networkx graph from a pipe or node""" - - self.graph = nx.Graph() - - if isinstance(node_or_pipe, PipeNode): - self.add_to_graph(self.graph, node_or_pipe) - - elif isinstance(node_or_pipe, Pipe): - self.add_to_graph(self.graph, node_or_pipe) - - else: - raise ValueError(f"not a node or pipe: {node_or_pipe}") - - return self.graph
- - - def draw(self): - try: - from pyvis.network import Network - - net = Network(directed=False) - - net.from_nx(self.graph) - net.show("process_graph.html") - - except: - pos = pos = nx.spring_layout(self.graph) - nx.draw(self.graph, pos=pos) - labels = nx.draw_networkx_labels(self.graph, pos=pos)
- - - - - -#TODO: update compressibility: -# -# import control as ct -# import numpy as np -# from engforge.components import Component, forge -# from matplotlib.pylab import * -# -# DT_DFLT = 1E-3 -# @forge(auto_attribs=True) -# class Accumulator(Component): -# -# Rt: float = 5000 -# Pref: float = 1E6 -# Lref: float = 5 -# Aact: float = 5 -# Cact: float = 0.1 -# Mact: float = 0.1 -# Pmax: float = 7E8 -# tlast: float = 0 -# Kwall: float = 1 -# -# lim_marg: float = 0.01 -# min_dt: float = DT_DFLT -# -# model: 'InputOutputSystem' = None -# -# discrete: bool = True -# pressure_mode: bool = False #false is flow based -# -# def __on_init__(self): -# #handle defined pressure mode -# if self.pressure_mode: -# if not self.discrete: -# self.model = ct.NonlinearIOSystem(self.pr_update_accumulator,self.pr_accumulator_output,inputs=('Pi',),outputs=('Pc','Qc','Pout'),states=('x','v'),name= self.name if self.name else 'accumul ator') -# else: -# self.model = ct.NonlinearIOSystem(self.pr_discrete_update_accumulator,self.pr_accumulator_output,inputs=('Pi',),outputs=('Pc','Qc','Pout'),states=('x','v'),name= self.name if self.name else 'accumulator',dt=True) -# else: -# if not self.discrete: -# self.model = ct.NonlinearIOSystem(self.w_update_accumulator,self.w_output,inputs=('Qc',),outputs=('Pc','Pout'),states=('x'),name= self.name if self.name else 'accumulator') -# else: -# self.model = ct.NonlinearIOSystem(self.w_discrete_update_accumulator, self.w_output,inputs=('Qc',),outputs=('Pc','Pout'),states=('x'),name= self.name if self.name else 'accumulator',dt=True) -# -# def w_update_accumulator(self,t,x,u,params): -# Rt = params.get('Rt',self.Rt) #Pa/(m3/s) -# Pref = params.get('Pref',self.Pref) -# Lref = params.get('Lref',self.Lref) -# Aact = params.get('Aact',self.Aact) -# Cact = params.get('Cact',self.Cact) -# Mact = params.get('Mact',self.Mact) -# Kwall = params.get('Kwall',self.Kwall) -# Pmax = params.get('Pmax',self.Pmax) -# -# qin = u[0] -# -# xact = x[0] -# #Pi = x[0] -# -# if self.discrete and isinstance(self.model.dt,float): -# self.dt = dt = self.model.dt -# -# else: #infer dt -# if t >= self.tlast+self.min_dt: -# self.dt = dt = max(abs(t - self.tlast),self.min_dt) -# self.tlast = t -# else: -# self.dt = dt = getattr(self,'dt',self.min_dt) -# -# #determine rate of x change (positive compresses accumulator (x->0)) -# xdot = -qin/Aact -# -# xmin = Pref*Lref/Pmax -# -# #limit xdot to prevent over/under shoot -# if xact + dt * xdot > Lref*(1-self.lim_marg): -# xdot = (Lref-xact)/dt -# elif xact + dt * xdot < xmin: -# xdot = (xmin-xact)/dt -# -# return xdot -# -# def w_discrete_update_accumulator(self,t,x,u,params): -# v = self.w_update_accumulator(t,x,u,params) -# dt = self.model.dt -# -# if self.discrete and isinstance(self.model.dt,float): -# dt = self.model.dt -# else: -# dt = self.dt -# -# xnew= x[0] + v*dt -# -# return xnew -# -# def w_output(self,t,x,u,params): -# Rt = params.get('Rt',self.Rt) #Pa/(m3/s) -# Pref = params.get('Pref',self.Pref) -# Lref = params.get('Lref',self.Lref) -# Aact = params.get('Aact',self.Aact) -# Cact = params.get('Cact',self.Cact) -# Mact = params.get('Mact',self.Mact) -# Kwall = params.get('Kwall',self.Kwall) -# Pmax = params.get('Pmax',self.Pmax) -# -# qin = u[0] -# -# xact = x[0] -# -# xmin = Pref*Lref/Pmax -# -# Pcomp = Pref*Lref / max(xmin,xact) -# -# #junction pressure is higher than pcomp when accumulator is compressed -# Pi = Pcomp + qin*Rt -# -# return [Pcomp,Pi] -# -# -# -# -# def pr_update_accumulator(self,t,x,u,params): -# """takes the current accumulator position, external pressure, and accumulator constants to determine the rate of change of accumulator position""" -# Rt = params.get('Rt',self.Rt) #Pa/(m3/s) -# Pref = params.get('Pref',self.Pref) -# Lref = params.get('Lref',self.Lref) -# Aact = params.get('Aact',self.Aact) -# Cact = params.get('Cact',self.Cact) -# Mact = params.get('Mact',self.Mact) -# Kwall = params.get('Kwall',self.Kwall) -# Pmax = params.get('Pmax',self.Pmax) -# -# Pi = u[0] -# #print(x,u) -# xact = x[0] -# v = x[1] -# -# if self.discrete and isinstance(self.model.dt,float): -# self.dt = dt = self.model.dt -# -# else: #infer dt -# if t >= self.tlast+self.min_dt: -# self.dt = dt = max(abs(t - self.tlast),self.min_dt) -# self.tlast = t -# else: -# self.dt = dt = getattr(self,'dt',self.min_dt) -# -# xmin = Pref*Lref/Pmax -# -# Pcomp = Pref*Lref / max(max(xmin,xact),Lref) -# dP = Pcomp-Pi -# sgn = np.sign(dP) -# -# #FIXME: remove since dP is based on equillibritum -# #xeq = max(min(Pref*Lref/Pi,Lref),xmin) -# #K = 0*self.Kwall*(xeq-xact)/Lref -# K = 0 -# -# xdot = sgn * ( abs(dP) / ( Rt * Aact**2.))**0.5/Lref -# dvdt = ((xdot-v) - K)/Mact - Cact*Aact*v*abs(v)/Mact -# -# x_proj = v * dt + xact -# -# #Consider projected limits -# if x_proj >= Lref*(1-self.lim_marg): -# vin = v -# v = (Lref-xact)/dt#,-1*Lref/10/dt) -# dvdt = (v-vin)/dt -# -# elif x_proj <= xmin: -# vin = v -# v = (0 - xact)/dt -# dvdt = (v-vin)/dt -# -# return v,dvdt -# -# def pr_discrete_update_accumulator(self,t,x,u,params): -# v,dvdt = self.pr_update_accumulator(t,x,u,params) -# dt = self.model.dt -# -# if self.discrete and isinstance(self.model.dt,float): -# dt = self.model.dt -# else: -# dt = self.dt -# -# xnew= x[0] + v*dt -# vnew = x[1] + dvdt*dt -# -# return xnew,vnew -# -# def pr_accumulator_output(self,t,x,u,params): -# """returns accumulator pressure and flow (in positive)""" -# Rt = params.get('Rt',self.Rt) #Pa/(m3/s) -# Pref = params.get('Pref',self.Pref) -# Lref = params.get('Lref',self.Lref) -# Aact = params.get('Aact',self.Aact) -# Cact = params.get('Cact',self.Cact) -# Mact = params.get('Mact',self.Mact) -# Pmax = params.get('Pmax',self.Pmax) -# #dt = params.get('dt',self.dt) -# -# Pi = u[0] -# xact = x[0] -# v = x[1] -# -# xmin = Pref*Lref/Pmax -# Pcomp = Pref*Lref / max(xmin,xact) -# Q = v*Aact -# return [Pcomp,Q,Pi] -# -# @forge(auto_attribs=True) -# class Motor(Component): -# """Nonlinear motor with parasitics with fixed displacement""" -# -# I: float = 1 -# D: float = 1E-6 -# Cd: float = 0.0 -# Ckloss: float = 0 -# f: float = 0.0 -# N: float = 1000 -# -# min_dt: float = DT_DFLT -# model: 'InputOutputSystem' = None -# discrete: bool = True -# tlast = 0 -# -# def __on_init__(self): -# #print(self.name) -# if not self.discrete: -# self.model = ct.NonlinearIOSystem(self.update_motor, self.motor_output, inputs=('P1','P2'), outputs=('Trq','Q','Pwr','Pin','Pout'), state=('w',), name=self.name if self.name else 'motor') -# else: -# self.model = ct.NonlinearIOSystem(self.discrete_update_motor, self.motor_output, inputs=('P1','P2'), outputs=('Trq','Q','Pwr','Pin','Pout'), state=('w',), name=self.name if self.name else 'motor',dt=True) -# self.tlast = 0 -# -# def update_motor(self,t,x,u,params): -# """updates the motor acceleration based on pressure differential and nonlinear parasitics""" -# I = params.get('I',self.I) -# D = params.get('D',self.D) -# Cd = params.get('Cd',self.Cd) -# Ckloss = params.get('Ckloss',self.Ckloss) -# f = params.get('f',self.f) -# N = params.get('N',self.N) -# -# P1 = u[0] -# P2 = u[1] -# w = x[0] -# -# Q = D*(w/(2*3.14159)) -# dPq = np.sign(Q)*Ckloss*Q**2 -# -# dw_torque = (D/(2*np.pi))* ((P1 - P2)-dPq) -# dw_friction = w*f*N -# dw_drag = w*abs(w)*Cd -# -# return (dw_torque - dw_friction - dw_drag)/I -# -# def discrete_update_motor(self,t,x,u,params): -# dw = self.update_motor(t,x,u,params) -# -# -# if self.discrete and isinstance(self.model.dt,float): -# self.dt = dt = self.model.dt -# -# else: #infer dt -# if t >= self.tlast+self.min_dt: -# self.dt = dt = max(abs(t - self.tlast),self.min_dt) -# self.tlast = t -# else: -# self.dt = dt = getattr(self,'dt',self.min_dt) -# -# return x[0] + dw*self.dt -# -# def motor_output(self,t,x,u,params): -# """calculates torque, flow and power output""" -# I = params.get('I',self.I) -# D = params.get('D',self.D) -# Cd = params.get('Cd',self.Cd) -# Ckloss = params.get('Ckloss',self.Ckloss) -# f = params.get('f',self.f) -# N = params.get('N',self.N) -# -# P1 = u[0] -# P2 = u[1] -# w = x[0] -# -# Q = (w/2*3.14159)*D -# dPq = np.sign(Q)*Ckloss*Q**2 -# -# dP = (P1 - P2) - dPq -# -# Trq = D * dP / (2*3.14159) -# Pwr = dP * Q -# return [Trq, Q, Pwr,P1,P2] -# -# -# @forge(auto_attribs=True) -# class Actuator(Component): -# Ap: float = 1 -# mp: float = 0.5 -# bp: float = 0.1 -# Kwall: float = 1000 -# Lstroke: float = 1 -# -# min_dt = DT_DFLT -# lim_marg = 0.01 -# -# lim = None # true if high, false if low and none otherwise -# -# model: 'InterConnectedSystem' = None -# -# discrete: bool = True -# -# tlast = 0 -# -# def __on_init__(self): -# if self.discrete: -# self.model = ct.NonlinearIOSystem(self.discrete_update_fnc,self.output_fnc,state=('x','v'),outputs=('Q1','Q2','P1','P2'),inputs=('F','P1','P2'),dt=True,name=self.name if self.name else 'actuator') -# -# else: -# self.model = ct.NonlinearIOSystem(self.update_fnc,self.output_fnc,state=('x','v'),outputs=('Q1','Q2','P1','P2'),inputs=('F','P1','P2'),name=self.name if self.name else 'actuator') -# -# -# -# def update_fnc(self,t,x,u,params): -# Ap = params.get('Ap',self.Ap) -# mp = params.get('mp',self.mp) -# bp = params.get('bp',self.bp) -# Kwall = params.get('Kwall',self.Kwall) -# Lstroke = params.get('Lstroke',self.Lstroke) -# -# xpos = x[0] -# v = x[1] -# -# f = u[0] -# p1 = u[1] -# p2 = u[2] -# -# if self.discrete and isinstance(self.model.dt,float): -# dt = self.model.dt -# self.dt = dt -# -# else: #infer dt -# if t >= self.tlast+self.min_dt: -# self.dt = dt = max(abs(t - self.tlast),self.min_dt) -# self.tlast = t -# else: -# self.dt = dt = getattr(self,'dt',self.min_dt) -# -# if xpos > Lstroke: -# #print('kpos') -# K = self.Kwall*(xpos-Lstroke) -# elif xpos < 0: -# #print('kneg') -# K = self.Kwall*(xpos - 0) -# else: -# K = 0 -# -# daf = f - (p1-p2)*Ap -# dad = bp*v*abs(v) -# dvdt = (daf - dad - K*daf)/mp -# -# x_proj = v * dt + xpos -# -# if x_proj >= Lstroke*(1-self.lim_marg): -# vin = v -# v = (Lstroke-xpos)/dt -# dvdt = min((v-vin)/dt,dvdt) -# -# elif x_proj <= self.lim_marg: -# vin = v -# v = (0 - xpos)/dt -# dvdt = max((v-vin)/dt,dvdt) -# -# -# return [v,dvdt] -# -# def discrete_update_fnc(self,t,x,u,params): -# v,dvdt = self.update_fnc(t,x,u,params) -# if self.discrete and isinstance(self.model.dt,float): -# dt = self.model.dt -# else: -# dt = self.dt -# -# if hasattr(self,'last_a'): -# dvdt = (self.last_a + dvdt)/2 -# v = (self.last_v + v)/2 -# -# vnew = v + dvdt*dt -# newx = x[0] + v*dt -# -# if newx < 0: -# newx = 0 -# if vnew < 0: -# vnew = 0 -# -# elif newx > self.Lstroke: -# newx = self.Lstroke -# if vnew > 0: -# vnew = 0 -# -# self.last_x = newx -# self.last_v = vnew -# self.last_a = dvdt -# -# return newx, vnew -# -# def output_fnc(self,t,x,u,params): -# Ap = params.get('Ap',self.Ap) -# -# v = x[1] -# -# Q1 = -1*v * Ap -# Q2 = v * Ap -# -# return [Q1,Q2,u[1],u[2]] -# -# -# @forge(auto_attribs=True) -# class Pipe(Component): -# '''models pressure change and flow Q from nodes with pressure P1->P2''' -# Kp:float = 1 #TODO: better friction model -# -# flow_input: bool = False -# model: 'InputOutputSystem' = None -# -# def __on_init__(self): -# if not self.flow_input: -# self.model = ct.NonlinearIOSystem(self.pipe_flow,self.pipe_flow_output,state=('Q'),inputs=('P1','P2'),outputs=('P1o','P2o','Q'),dt=True,name=self.name if self.name else 'pipe') -# else: -# self.model = ct.NonlinearIOSystem(self.pipe_pressure,self.pipe_pressure_output,state=('P2'),inputs=('P1','Q'),outputs=('P1o','P2','Q'),dt=True,name=self.name if self.name else 'pipe') -# -# def pipe_flow(self,t,x,u,params): -# Kp = params.get('Kp',self.Kp) -# p1 = u[0] -# p2 = u[1] -# dP = (p2-p1) -# return -1*np.sign(dP)*(abs(dP)/Kp)**0.5 -# -# def pipe_pressure(self,t,x,u,params): -# Kp = params.get('Kp',self.Kp) -# p1 = u[0] -# q = u[1] -# return -1*np.sign(q)*Kp*q**2 + p1 -# -# def pipe_flow_output(self,t,x,u,params): -# return [u[0],u[1],x[0]] -# -# def pipe_pressure_output(self,t,x,u,params): -# return [u[0],x[0],u[1]] -# -# -# @forge(auto_attribs=True) -# class Valve(Component): -# Ao: float = 0.1 #area -# ts: float = 30/1000. #seconds -# rho: float = 1000 -# Cd: float = 0.1 -# discrete_control: bool = True # contorl signal is zero or one, vs a goal -# -# tlast = 0 -# min_dt:float = 1E-3 -# -# def update_alpha(self,t,x,u,params): -# ts = params.get('ts',self.ts) -# uctl = u[0] -# alpha = x[0] -# -# if t >= self.tlast+self.min_dt: -# self.dt = dt = max(abs(t - self.tlast),self.min_dt) -# self.tlast = t -# else: -# self.dt = dt = getattr(self,'dt',self.min_dt) -# -# dA = 1.0 / ts -# -# if self.discrete_control: -# if uctl==1: -# if alpha < 1-dA*dt: -# return dA -# else: -# return 1-alpha -# elif uctl==0: -# if alpha > dA*dt: -# return dA -# else: -# return 0-alpha -# else: -# vctl = min(max(uctl,0),1) -# d = (uctl-alpha)/dt -# dv = max(min(d,dA),-dA) -# return dv -# -# -# def get_flow(self,t,x,u,params): -# rho = params.get('rho',self.rho) -# ts = params.get('ts',self.ts) -# Cd = params.get('Cd',self.Cd) -# Ao = params.get('Ao',self.Ao) -# -# alpha = x[0] -# if alpha < 0.05: -# return 0.0 #avoid divide by zero in area -# -# dP = u[1] -# Av = Ao*min(max(alpha,0),1) -# return np.sign(dP)*Cd*Av*((2/rho)*abs(dP))**0.5 -# -# @forge(auto_attribs=True) -# class PipeJunction(Component): -# -# n_pipes: int = 2 -# Vi: float = 1 -# B: float = 300E3 -# -# min_dt = DT_DFLT -# model: 'InputOutputSystem' = None -# discrete:bool = True -# -# def __on_init__(self): -# state = ('P',) -# inputs = tuple(f'Q{i+1}' for i in range(self.n_pipes)) -# outins = tuple(f'Qout{i+1}' for i in range(self.n_pipes)) -# outputs = tuple(list(state)+list(outins)+['dQ']) -# if self.discrete: -# self.model = ct.NonlinearIOSystem(self.discrete_pressure_update,self.output,inputs=inputs,outputs=outputs,state=state,dt=True,name=self.name if self.name else 'junction') -# self.tlast = 0 -# else: -# self.model = ct.NonlinearIOSystem(self.pressure_update,self.output,inputs=inputs,outputs=outputs,state=state,name=self.name if self.name else 'junction') -# -# def pressure_update(self,t,x,u,params): -# #TODO: update compressibility from temp / pressure ect. -# B = params.get('B',self.B) -# Vi = params.get('Vi',self.Vi) -# sumQ = sum(u) -# dPdt = (B/Vi)*sumQ -# return dPdt -# -# def discrete_pressure_update(self,t,x,u,params): -# dPdt = self.pressure_update(t,x,u,params) -# if self.discrete and isinstance(self.model.dt,float): -# dt = self.model.dt -# self.dt = dt -# -# else: #infer dt -# if t >= self.tlast+self.min_dt: -# self.dt = dt = max(abs(t - self.tlast),self.min_dt) -# self.tlast = t -# else: -# self.dt = dt = getattr(self,'dt',self.min_dt) -# return self.dt*dPdt + x[0] -# -# def output(self,t,x,u,parms): -# return tuple([x[0]]+list(u)+[sum(u)]) -# - - - - - - - - - - - - - -if __name__ == "__main__": - N = 10 - - rho = 1000.0 - f = 0.015 - L = 1.0 - Po = 1e5 - - A = 1.0 * ones(N) - u = 0.0 * ones(N) - p = Po * ones(N) - - Pin = 1.1e5 - Uin = lambda Ps: sqrt((Pin - Ps) / (rho * 2.0)) - - def F(i): - ui = u[i] - ps = p[i] - F1 = rho * ui - F2 = F1 * ui + ps - return F1, F2 - - def J(i): - return 0.0, -rho * f - - def decodeF(F1, F2): - up = F1 / rho - pp = F2 - rho * up**2.0 - return up, pp - - plast = p.copy() - ulast = u.copy() - it = 0 - started = False - while not started or (plast - p).mean() > 1e-3 or (ulast - u).mean() > 1e-3: - started = True - - plast = p.copy() - ulast = u.copy() - - for i in range(N): - if i == 0: # inlet - ps = p[i] - ui = Uin(ps) - u[i] = ui - - # STATUS - F1, F2 = F(i) - J1, J2 = J(i) - - # PREDICT i+1 - dF1, dF2 = J1, J2 - Fp1, Fp2 = F1 + dF1 * L, F2 + dF2 * L - - up1, pp1 = decodeF(Fp1, Fp2) - - # CORRECTOR i+1 - Jp1, Jp2 = 0.0, -rho * f - dpF1, dpF2 = Jp1, Jp2 - - # avgGradients - dF1n, dF2n = 0.5 * (dpF1 + dF1), 0.5 * (dpF2 + dF2) - - # Calculate i+1 actual - Fn1, Fn2 = F1 + dF1n * L, F2 + dF2n * L - - un, pn = decodeF(Fn1, Fn2) - if N - 1 > i: - u[i + 1] = un - p[i + 1] = pn - - for i in reversed(range(N)): - # if i == 0: #inlet - # ps = p[i] - # ui = Uin(ps) - # u[i] = ui - - if i == N - 1: - p[i] = Po - - # STATUS - F1, F2 = F(i) - J1, J2 = J(i) - - # PREDICT i+1 - dF1, dF2 = J1, J2 - Fp1, Fp2 = F1 + dF1 * L, F2 + dF2 * L - - up1, pp1 = decodeF(Fp1, Fp2) - - # CORRECTOR i+1 - Jp1, Jp2 = 0.0, -rho * f - dpF1, dpF2 = Jp1, Jp2 - - # avgGradients - dF1n, dF2n = 0.5 * (dpF1 + dF1), 0.5 * (dpF2 + dF2) - - # Calculate i+1 actual - Fn1, Fn2 = F1 + dF1n * L, F2 + dF2n * L - - un, pn = decodeF(Fn1, Fn2) - if N - 1 > i: - u[i - 1] = un - p[i - 1] = pn - - print(u) - print(p) - it += 1 - if it >= 2: - break -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/eng/prediction.html b/docs/_build/html/_modules/engforge/eng/prediction.html deleted file mode 100644 index 9fe869f..0000000 --- a/docs/_build/html/_modules/engforge/eng/prediction.html +++ /dev/null @@ -1,467 +0,0 @@ - - - - - - engforge.eng.prediction — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.eng.prediction

-"""a module that defines PredictionMixin which uses sklearn to make predictions about results"""
-#core data
-import numpy
-import numpy as np
-import time
-import pandas
-import random
-
-#store average and variance in a dict
-base_stat = {'avg':0,'var':0}
-    
-
-
-[docs] -class PredictionMixin: - - train_window: int = 5000 #number of data points to use for training - prediction_goal_error: float = 0.02 #goal error for training 99% - trained: bool = False - - _basis: np.ndarray = None #basis for normalizing data - _prediction_models: dict = None #parm: {'mod':obj,'train_time':float,'N':int,'train_score':scr} - _prediction_parms: list = None #list of strings to get from dataframe - _re_train_frac: float = 2 #retrain when N_data > model.N * _re_train_frac - _re_train_maxiter: int = 50 #max number of retraining iterations - _running_error: dict = None #parm: {'err':float,'N':int} - _fitted:bool = False - _training_history = None - _do_print = False - - _sigma_retrain = 3 #retrain when sigma is greater than this - _X_prediction_stats: list = None #list of strings to get from dataframe - _prediction_records: list = None#made lazily, but you can replace this - - @property - def prediction_records(self): - if self._prediction_records is None: - self._prediction_records = [] - return self._prediction_records - - @property - def _prediction_record(self): - raise NotImplementedError(f'must implement _prediction_record') - - @property - def basis(self): - return self._basis - -
-[docs] - def add_prediction_record(self,record,extra_add=True,mult_sigma=1,target_items=1000): - """adds a record to the prediction records, and calcultes the average and variance of the data - :param record: a dict of the record - :param extra_add: if true, the record is added to the prediction records even if the data is inbounds - :returns: a boolean indicating if the record was out of bounds of current data (therefor should be added) - """ - if self._X_prediction_stats is None: - self._X_prediction_stats = {p:base_stat.copy() for p in self._prediction_parms} - - N = len(self.prediction_records) + 1 - Pf = max((N/target_items ),0.1) - J = len(self._prediction_parms) - - #moving average and variance - out_of_bounds = extra_add #skip this check - choice = False - temp_stat = {} - for i,parm in enumerate(self._prediction_parms): - rec_val = record[parm] - cur_stat = self._X_prediction_stats[parm] - temp_stat[parm] = cur_stat = cur_stat.copy() - avg = cur_stat['avg'] - dev = (rec_val - avg) - var = cur_stat['var'] - std = var**0.5 - std_err = std / N - #check out of bounds - #probability of acceptance - narrow distributions are not wanted - near_zero = abs(rec_val)/max(abs(avg),1) <= 0.005 - if (not choice or not out_of_bounds) and avg != 0 and std != 0 and not near_zero: - g = 3*min((abs(avg)-std)/abs(std),1) #negative when std > avg - a = min(abs(dev)/std/J,1) - #prob accept should be based on difference from average - prob_deny = np.e**g - prob_accept = (a/Pf) - std_choice = std - avg_choice = avg - dev_choice = dev - choice = random.choices([True,False],[prob_accept,prob_deny])[0] - cur_stat['avg'] = avg + dev/N - cur_stat['var'] = var + (dev**2 - var)/N - - #observe point and predict to get error - self.observe_and_predict(record) - - #update stats if point accepted - accepted = choice or out_of_bounds or extra_add - if accepted: - for parm,cur_stat in temp_stat.items(): - self._X_prediction_stats[parm] = cur_stat #reassign (in case) - - #fmt null values - if not choice: - std_choice = '' - avg_choice = '' - dev_choice = '' - prob_accept = '' - prob_deny = '' - - if accepted: - if self._do_print: - self.info(f'add record | chance: {choice and not extra_add} | {prob_accept:5.3f} | {prob_deny:5.3f} | {std_choice/avg_choice} | {dev_choice/std_choice} | {avg_choice}') - self._prediction_records.append(record) - - try: - self.check_and_retrain(self.prediction_records) - except Exception as e: - self.warning(f'error in prediction: {e}')
- - -
-[docs] - def check_out_of_domain(self,record,extra_margin=1,target_items=1000): - """checks if the record is in bounds of the current data""" - if self._X_prediction_stats is None: - return True - - if hasattr(self,'max_rec_parm') and self.max_rec_parm in record: - #we're not counting extemities - if record[self.max_rec_parm] > self.max_margin: - return False - - N = len(self.prediction_records) - Pf = max((N/target_items),0.1) - J = len(self._prediction_parms) - - for i,parm in enumerate(self._prediction_parms): - rec_val = record[parm] - cur_stat = self._X_prediction_stats[parm] - avg = cur_stat['avg'] - dev = (rec_val - avg) - var = max(cur_stat['var'],1) - std = var**0.5 - std_err = std / len(self.prediction_records) - #check out of bounds - g = 3*min((abs(avg)-std)/abs(std),1) #negative when std > avg - a = min(abs(dev)/std/J,1) - near_zero = abs(rec_val)/max(abs(avg),1) <= 1E-3 - prob_deny = np.e**g - prob_accept = (a*extra_margin/Pf) #relative to prob_deny - choice = random.choices([True,False],[prob_accept,prob_deny])[0] - if choice and not near_zero: - if self._do_print: - self.info(f'record oob chance: {choice} | {prob_accept:5.3f} | {prob_deny:5.3f} | {std/abs(avg)} | {dev/std} | {avg} ') - return True - return False
- - - - -
-[docs] - def train_compare(self,df,test_frac=2,train_full=False,min_rec=250): - """Use the dataframe to train the models, and compare the results to the current models using `train_frac` to divide total samples into training and testing sets, unless `train_full` is set. - - :param df: dataframe to train with - :param test_frac: N/train_frac will be size of the training window - :param train_full: boolean to use full training data - :return: trained models - """ - if self._prediction_models is None or self._basis is None: - return {} - - if self._training_history is None: - train_iter = {} - self._training_history = [] - else: - train_iter = {} - - - out = {} - N = len(df) - window = self.train_window - if window > (N/test_frac): - window = max(int(N/test_frac),25) - - MargRec = max(min_rec/len(self.prediction_records),1) - - self.info(f'training dataset: {N} | training window: {window}') - for parm,mod_dict in self._prediction_models.items(): - mod = mod_dict['mod'] - X = df[self._prediction_parms]/self._basis - y = df[parm] - N = len(y) - - stl = time.time() - weights = self.prediction_weights(df,N) - if train_full: - mod.fit(X,y,weights) - etl = time.time() - scr = mod.score(X,y,weights)/MargRec - train_iter[parm] = {'scr':scr,'time':etl-stl,'N':N} - else: - mod.fit(*self._subsample_data(X,y,window,weights)) - etl = time.time() - scr = mod.score(*self._score_data(X,y,weights))/MargRec - train_iter[parm] = {'scr':scr,'time':etl-stl,'N':N} - - dt = etl-stl - - self.info(f'Prediction: {mod.__class__.__name__}| Score[{parm}] = {scr*100:3.5}% | Training Time: {dt}s') - - out[parm] = {'mod':mod,'train_time':dt,'N':N,'train_score':scr} - - self._running_error = {parm:{'err':0.5,'N':0} for parm in self._prediction_models} - self._prediction_models = out - self._fitted = True - - #add training item to history - self._training_history.append(train_iter) - - #do something when trained - self.training_callback(self._prediction_models) - - return out
- - -
-[docs] - def training_callback(self,models): - """override to provide a callback when training is complete, such as saving the models""" - pass
- - - def prediction_weights(self,df,window): - return np.ones(min(len(df),window)) - - def _subsample_data(self,X,y,window,weights): - """subsamples the data to the window size""" - return X.iloc[:window],y.iloc[:window],weights[:window] - - def _score_data(self,X,y,weights): - """override this, by default, just returns the data to the score""" - return X,y,weights - -
-[docs] - def score_data(self,df): - """scores a dataframe""" - - if self._prediction_models is None: - return - - if not self._fitted: - return - - train_iter = {} - self._training_history.append(train_iter) - - scores = {} - for parm,mod_dict in self._prediction_models.items(): - model = mod_dict['mod'] - X = df[self._prediction_parms]/self._basis - y = df[parm] - scr = model.score(X,y) - scores[parm] = scr - train_iter[parm] = {'scr':scr,'time':np.nan,'N':len(y)} - if self._do_print: - self.info(f'Prediction: {model.__class__.__name__}| Score[{parm}] = {scr*100:3.5}%') - else: - self.debug(f'Prediction: {model.__class__.__name__}| Score[{parm}] = {scr*100:3.5}%') - - - return scores
- - -
-[docs] - def observe_and_predict(self,row): - """uses the existing models to predict the row and measure the error""" - if self._prediction_models is None: - #self.warning('No models to predict with') - return - - if self._running_error is None: - self._running_error = {parm:{'err':0,'N':0} for parm in self._prediction_models} - - if not self._fitted: - return - - if not all([p in row for p in self._prediction_parms]): - return - - for parm,mod_dict in self._prediction_models.items(): - model = mod_dict['mod'] - if parm not in row: - continue - X = pandas.DataFrame([{parm:row[parm] for parm in self._prediction_parms}]) - y = row[parm] - x = abs(model.predict(X)) - if y == 0: - if x==0: - err = 0 - else: - err = 1 - else: - y = abs(y) - err = (y - x )/y - cerr = self._running_error[parm]['err'] - N = self._running_error[parm]['N'] + 1 - self._running_error[parm]['err'] = cerr + (err-cerr)/N - self._running_error[parm]['N'] = N
- - - -
-[docs] - def check_and_retrain(self,records,min_rec=None): - """Checks if more data than threshold to train or if error is sufficiently low to ignore retraining, or if more data already exists than window size (no training)""" - if self._prediction_models is None: - return - - if not hasattr(self,'min_rec'): - min_rec = 50 - else: - min_rec = self.min_rec - - if self.trained: - if len(records) % min_rec == 0: - df = self.prediction_dataframe(records) - self.score_data(df) - return - - Nrec = len(records) - if Nrec < min_rec: - return - - df = self.prediction_dataframe(records) - - if not self._fitted: - self.train_compare(df) - return - - #an early check if the data is more than the target or if the error is less than the target - self.trained = all([(1-mod_dict['train_score']) <= self.prediction_goal_error for mod_dict in self._prediction_models.values()]) - - for parm,mod_dict in self._prediction_models.items(): - model = mod_dict['mod'] - N = mod_dict['N'] - # - if Nrec > N * self._re_train_frac or (Nrec-N) > self._re_train_maxiter: - self.train_compare(df) - return
- - - def prediction_dataframe(self,records): - df = pandas.DataFrame(records)._get_numeric_data() - df[np.isnan(df)] = 0 #zeros baybee - return df
- -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/eng/solid_materials.html b/docs/_build/html/_modules/engforge/eng/solid_materials.html deleted file mode 100644 index 9b052df..0000000 --- a/docs/_build/html/_modules/engforge/eng/solid_materials.html +++ /dev/null @@ -1,592 +0,0 @@ - - - - - - engforge.eng.solid_materials — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.eng.solid_materials

-from engforge.configuration import Configuration, forge
-from engforge.properties import *
-from engforge.common import *
-import matplotlib
-import random
-import attr
-import numpy
-import inspect
-import sys
-import uuid
-import json,hashlib
-
-# One Material To Merge Them All
-from PyNite import Material as PyNiteMat
-from sectionproperties.pre.pre import Material as SecMat
-
-SectionMaterial = SecMat.mro()[0]
-
-ALL_MATERIALS = []
-METALS = []
-PLASTICS = []
-CERAMICS = []
-
-
-CMAP = matplotlib.cm.get_cmap("viridis")
-
-
-
-[docs] -def random_color(): - return CMAP(random.randint(0, 255))
- - -
-[docs] -def ih(val): - """ignore hash""" - return ''
- - - -
-[docs] -@forge(hash=False) -class SolidMaterial(SectionMaterial, PyNiteMat.Material, Configuration): - """A class to hold physical properties of solid structural materials and act as both a section property material and a pynite material""" - - __metaclass__ = SecMat - - name: str = attr.ib(default="solid material") - color: float = attr.ib(factory=random_color,hash=False,eq=ih) - - # Structural Properties - density: float = attr.ib(default=1.0) - elastic_modulus: float = attr.ib(default=1e8) # Pa - in_shear_modulus: float = attr.ib(default=None) - yield_strength: float = attr.ib(default=1e6) # Pa - tensile_strength_ultimate: float = attr.ib(default=2e6) # Pa - hardness: float = attr.ib(default=10) # rockwell - izod: float = attr.ib(default=100) - poissons_ratio: float = attr.ib(default=0.30) - - # Thermal Properties - melting_point: float = attr.ib(default=1000 + 273) # K - maxium_service_temp: float = attr.ib(default=500 + 273) # K - thermal_conductivity: float = attr.ib(default=10) # W/mK - specific_heat: float = attr.ib(default=1000) # J/kgK - thermal_expansion: float = attr.ib(default=10e-6) # m/mK - - # Electrical Properties - electrical_resistitivity: float = attr.ib(default=1e-8) # ohm-m - - # Economic Properties - cost_per_kg: float = attr.ib(default=1.0) # dollar per kg - - # Saftey Properties - factor_of_saftey: float = attr.ib(default=1.5) - - _unique_id: str = None - -
-[docs] - @classmethod - def pre_compile(cls): - cls.color = random_color()
- - - @property - def E(self) -> float: - return self.elastic_modulus - - @property - def G(self) -> float: - return self.shear_modulus - - @property - def nu(self) -> float: - return self.poissons_ratio - - @property - def rho(self) -> float: - return self.density - - @property - def shear_modulus(self) -> float: - """Shear Modulus""" - if self.in_shear_modulus: - return self.in_shear_modulus - # hello defaults - return self.E / (2.0 * (1 + self.poissons_ratio)) - - @property - def yield_stress(self) -> float: - return self.yield_strength - - @property - def ultimate_stress(self) -> float: - return self.tensile_strength_ultimate - - @inst_vectorize - def von_mises_stress_max(self, normal_stress, shear_stress): - a = normal_stress / 2.0 - b = numpy.sqrt(a**2.0 + shear_stress**2.0) - v1 = a - b - v2 = a + b - vout = v1 if abs(v1) > abs(v2) else v2 - return vout - - @property - def allowable_stress(self) -> float: - return self.yield_stress / self.factor_of_saftey - - @property - def unique_id(self): - if self._unique_id is None: - uid = str(uuid.uuid4()) - self._unique_id = f"{self.name}_{uid}" - return self._unique_id - - def __hash__(self): - """a stable hash that ignores name, color and unique id, ie only the material properties are the same if two hashes are the equal""" - #print('hashing...') - ignore = ['color','_unique_id','name'] - ict = {k:v for k,v in self.input_as_dict.items() if k not in ignore} - d = hashlib.sha1(json.dumps(ict, sort_keys=True).encode()) - return int(d.hexdigest(),16)
- - -
-[docs] -@forge(hash=False) -class SS_316(SolidMaterial): - name: str = attr.ib(default="stainless steel 316") - - # Structural Properties - density: float = attr.ib(default=8000.0) # kg/m3 - elastic_modulus: float = attr.ib(default=193e9) # Pa - yield_strength: float = attr.ib(default=240e6) # Pa - tensile_strength_ultimate: float = attr.ib(default=550e6) # Pa - poissons_ratio: float = attr.ib(default=0.30) - - # Thermal Properties - melting_point: float = attr.ib(default=1370 + 273) # K - maxium_service_temp: float = attr.ib(default=870 + 273) # K - thermal_conductivity: float = attr.ib(default=16.3) # W/mK - specific_heat: float = attr.ib(default=500) # J/kgK - thermal_expansion: float = attr.ib(default=16e-6) # m/mK - - # Electrical Properties - electrical_resistitivity: float = attr.ib(default=7.4e-7) # ohm-m - - # Economic Properties - cost_per_kg: float = attr.ib(default=3.26) # dollar per kg
- - - -
-[docs] -@forge(hash=False) -class ANSI_4130(SolidMaterial): - name: str = attr.ib(default="steel 4130") - - # Structural Properties - density: float = attr.ib(default=7872.0) # kg/m3 - elastic_modulus: float = attr.ib(default=205e9) # Pa - yield_strength: float = attr.ib(default=460e6) # Pa - tensile_strength_ultimate: float = attr.ib(default=560e6) # Pa - poissons_ratio: float = attr.ib(default=0.28) - - # Thermal Properties - melting_point: float = attr.ib(default=1432 + 273) # K - maxium_service_temp: float = attr.ib(default=870 + 273) # K - thermal_conductivity: float = attr.ib(default=42.7) # W/mK - specific_heat: float = attr.ib(default=477) # J/kgK - thermal_expansion: float = attr.ib(default=11.2e-6) # m/mK - - # Electrical Properties - electrical_resistitivity: float = attr.ib(default=2.23e-7) # ohm-m - - # Economic Properties - cost_per_kg: float = attr.ib(default=2.92) # dollar per kg
- - - -
-[docs] -@forge(hash=False) -class ANSI_4340(SolidMaterial): - name: str = attr.ib(default="steel 4340") - - # Structural Properties - density: float = attr.ib(default=7872.0) # kg/m3 - elastic_modulus: float = attr.ib(default=192e9) # Pa - yield_strength: float = attr.ib(default=470e6) # Pa - tensile_strength_ultimate: float = attr.ib(default=745e6) # Pa - poissons_ratio: float = attr.ib(default=0.28) - - # Thermal Properties - melting_point: float = attr.ib(default=1427 + 273) # K - maxium_service_temp: float = attr.ib(default=830 + 273) # K - thermal_conductivity: float = attr.ib(default=44.5) # W/mK - specific_heat: float = attr.ib(default=475) # J/kgK - thermal_expansion: float = attr.ib(default=13.7e-6) # m/mK - - # Electrical Properties - electrical_resistitivity: float = attr.ib(default=2.48e-7) # ohm-m - - # Economic Properties - cost_per_kg: float = attr.ib(default=2.23) # dollar per kg
- - - -
-[docs] -@forge(hash=False) -class Aluminum(SolidMaterial): - name: str = attr.ib(default="aluminum generic") - - # Structural Properties - density: float = attr.ib(default=2680.0) # kg/m3 - elastic_modulus: float = attr.ib(default=70.3e9) # Pa - yield_strength: float = attr.ib(default=240e6) # Pa - tensile_strength_ultimate: float = attr.ib(default=290e6) # Pa - poissons_ratio: float = attr.ib(default=0.33) - - # Thermal Properties - melting_point: float = attr.ib(default=607 + 273) # K - maxium_service_temp: float = attr.ib(default=343 + 273) # K - thermal_conductivity: float = attr.ib(default=138) # W/mK - specific_heat: float = attr.ib(default=880) # J/kgK - thermal_expansion: float = attr.ib(default=22.1e-6) # m/mK - - # Electrical Properties - electrical_resistitivity: float = attr.ib(default=4.99e-7) # ohm-m - - # Economic Properties - cost_per_kg: float = attr.ib(default=1.90) # dollar per kg
- - - -
-[docs] -@forge(hash=False) -class CarbonFiber(SolidMaterial): - name: str = attr.ib(default="carbon fiber") - - # Structural Properties - density: float = attr.ib(default=1600.0) # kg/m3 - elastic_modulus: float = attr.ib(default=140e9) # Pa - yield_strength: float = attr.ib(default=686e6) # Pa - tensile_strength_ultimate: float = attr.ib(default=919e6) # Pa - poissons_ratio: float = attr.ib(default=0.33) - - # Thermal Properties - melting_point: float = attr.ib(default=300 + 273) # K - maxium_service_temp: float = attr.ib(default=150 + 273) # K - thermal_conductivity: float = attr.ib(default=250) # W/mK - specific_heat: float = attr.ib(default=1100) # J/kgK - thermal_expansion: float = attr.ib(default=14.1e-6) # m/mK - - # Electrical Properties - electrical_resistitivity: float = attr.ib(default=10000) # ohm-m - - # Economic Properties - cost_per_kg: float = attr.ib(default=1.90) # dollar per kg
- - - -
-[docs] -@forge(hash=False) -class Concrete(SolidMaterial): - name: str = attr.ib(default="concrete") - - # Structural Properties - density: float = attr.ib(default=2000.0) # kg/m3 - elastic_modulus: float = attr.ib(default=2.92e9) # Pa - yield_strength: float = attr.ib(default=57.9e6) # Pa - tensile_strength_ultimate: float = attr.ib(default=0.910e6) # Pa - poissons_ratio: float = attr.ib(default=0.26) - - # Thermal Properties - melting_point: float = attr.ib(default=3000 + 273) # K - maxium_service_temp: float = attr.ib(default=3000 + 273) # K - thermal_conductivity: float = attr.ib(default=0.5) # W/mK - specific_heat: float = attr.ib(default=736) # J/kgK - thermal_expansion: float = attr.ib(default=16.41e-6) # m/mK - - # Electrical Properties - electrical_resistitivity: float = attr.ib(default=1e6) # ohm-m - - # Economic Properties - cost_per_kg: float = attr.ib(default=95.44 / 1000.0) # dollar per kg
- - - -
-[docs] -@forge(hash=False) -class DrySoil(SolidMaterial): - name: str = attr.ib(default="dry soil") - - # Structural Properties - density: float = attr.ib(default=1600.0) # kg/m3 - elastic_modulus: float = attr.ib(default=70.3e9) # Pa - yield_strength: float = attr.ib(default=0.0) # Pa - tensile_strength_ultimate: float = attr.ib(default=0.0) # Pa - poissons_ratio: float = attr.ib(default=0.33) - - # Thermal Properties - melting_point: float = attr.ib(default=1550 + 273) # K - maxium_service_temp: float = attr.ib(default=1450 + 273) # K - thermal_conductivity: float = attr.ib(default=0.25) # W/mK - specific_heat: float = attr.ib(default=800) # J/kgK - thermal_expansion: float = attr.ib(default=16.41e-6) # m/mK - - # Electrical Properties - electrical_resistitivity: float = attr.ib(default=1e6) # ohm-m - - # Economic Properties - cost_per_kg: float = attr.ib(default=44.78 / 1000.0) # dollar per kg
- - - -
-[docs] -@forge(hash=False) -class WetSoil(SolidMaterial): - name: str = attr.ib(default="wet soil") - - # Structural Properties - density: float = attr.ib(default=2080.0) # kg/m3 - elastic_modulus: float = attr.ib(default=70.3e9) # Pa - yield_strength: float = attr.ib(default=0.0) # Pa - tensile_strength_ultimate: float = attr.ib(default=0.0) # Pa - poissons_ratio: float = attr.ib(default=0.33) - - # Thermal Properties - melting_point: float = attr.ib(default=1550 + 273) # K - maxium_service_temp: float = attr.ib(default=1450 + 273) # K - thermal_conductivity: float = attr.ib(default=2.75) # W/mK - specific_heat: float = attr.ib(default=1632) # J/kgK - thermal_expansion: float = attr.ib(default=16.41e-6) # m/mK - - # Electrical Properties - electrical_resistitivity: float = attr.ib(default=940.0) # ohm-m - - # Economic Properties - cost_per_kg: float = attr.ib(default=34.44 / 1000.0) # dollar per kg
- - - -
-[docs] -@forge(hash=False) -class Rock(SolidMaterial): - name: str = attr.ib(default="wet soil") - - # Structural Properties - density: float = attr.ib(default=2600.0) # kg/m3 - elastic_modulus: float = attr.ib(default=67e9) # Pa - yield_strength: float = attr.ib(default=13e6) # Pa - tensile_strength_ultimate: float = attr.ib(default=13e6) # Pa - poissons_ratio: float = attr.ib(default=0.26) - - # Thermal Properties - melting_point: float = attr.ib(default=3000) # K - maxium_service_temp: float = attr.ib(default=3000) # K - thermal_conductivity: float = attr.ib(default=1.0) # W/mK - specific_heat: float = attr.ib(default=2000) # J/kgK - thermal_expansion: float = attr.ib(default=16.41e-6) # m/mK - - # Electrical Properties - electrical_resistitivity: float = attr.ib(default=1e6) # ohm-m - - # Economic Properties - cost_per_kg: float = attr.ib(default=50.44 / 1000.0) # dollar per kg
- - - -
-[docs] -@forge(hash=False) -class Rubber(SolidMaterial): - name: str = attr.ib(default="rubber") - - # Structural Properties - density: float = attr.ib(default=1100.0) # kg/m3 - elastic_modulus: float = attr.ib(default=0.1e9) # Pa - yield_strength: float = attr.ib(default=0.248e6) # Pa - tensile_strength_ultimate: float = attr.ib(default=0.5e6) # Pa - poissons_ratio: float = attr.ib(default=0.33) - - # Thermal Properties - melting_point: float = attr.ib(default=600 + 273) # K - maxium_service_temp: float = attr.ib(default=300 + 273) # K - thermal_conductivity: float = attr.ib(default=0.108) # W/mK - specific_heat: float = attr.ib(default=2005) # J/kgK - thermal_expansion: float = attr.ib(default=100e-6) # m/mK - - # Electrical Properties - electrical_resistitivity: float = attr.ib(default=1e13) # ohm-m - - # Economic Properties - cost_per_kg: float = attr.ib(default=40.0 / 1000.0) # dollar per kg
- - - -# @attr.s -# class AL_6063(SolidMaterial): -# name:str = attr.ib(default='aluminum 6063') - -# #Structural Properties -# density:float = attr.ib(default=2700.0) #kg/m3 -# elastic_modulus:float = attr.ib(default=192E9) #Pa -# tensile_strength_yield = attr.ib(default=470E6) #Pa -# tensile_strength_ultimate:float = attr.ib(default=745E6) #Pa -# poissons_ratio:float = attr.ib(default=0.28) - -# #Thermal Properties -# melting_point:float = attr.ib(default=1427+273) #K -# maxium_service_temp:float = attr.ib(default=830+273) #K -# thermal_conductivity:float = attr.ib(default=44.5) #W/mK -# specific_heat:float = attr.ib(default=475) #J/kgK -# thermal_expansion:float = attr.ib(default = 13.7E-6) #m/mK - -# #Electrical Properties -# electrical_resistitivity:float = attr.ib(default=2.48E-7) #ohm-m - -# #Economic Properties -# cost_per_kg:float = attr.ib(default=1.90) #dollar per kg - - -# @attr.s -# class AL_7075(SolidMaterial): -# name:str = attr.ib(default='aluminum 7075') - -# #Structural Properties -# density:float = attr.ib(default=2700.0) #kg/m3 -# elastic_modulus:float = attr.ib(default=192E9) #Pa -# tensile_strength_yield = attr.ib(default=470E6) #Pa -# tensile_strength_ultimate:float = attr.ib(default=745E6) #Pa -# poissons_ratio:float = attr.ib(default=0.28) - -# #Thermal Properties -# melting_point:float = attr.ib(default=1427+273) #K -# maxium_service_temp:float = attr.ib(default=830+273) #K -# thermal_conductivity:float = attr.ib(default=44.5) #W/mK -# specific_heat:float = attr.ib(default=475) #J/kgK -# thermal_expansion:float = attr.ib(default = 13.7E-6) #m/mK - -# #Electrical Properties -# electrical_resistitivity:float = attr.ib(default=2.48E-7) #ohm-m - -# #Economic Properties -# cost_per_kg:float = attr.ib(default=1.90) #dollar per kg - - -ALL_MATERIALS = [ - mat - for name, mat in inspect.getmembers(sys.modules[__name__]) - if inspect.isclass(mat) - and issubclass(mat, SolidMaterial) - and mat is not SolidMaterial -] -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/eng/structure_beams.html b/docs/_build/html/_modules/engforge/eng/structure_beams.html deleted file mode 100644 index 3800f27..0000000 --- a/docs/_build/html/_modules/engforge/eng/structure_beams.html +++ /dev/null @@ -1,971 +0,0 @@ - - - - - - engforge.eng.structure_beams — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.eng.structure_beams

-from collections.abc import Iterable
-import attr
-import numpy
-import functools
-import shapely
-import pandas
-from shapely.geometry import Polygon, Point
-
-from engforge.tabulation import (
-    TABLE_TYPES,
-    NUMERIC_VALIDATOR,
-    system_property,
-)
-from engforge.configuration import forge, Configuration
-from engforge.components import Component
-
-# from engforge.analysis import Analysis
-from engforge.properties import system_property
-from engforge.system import System
-from engforge.eng.solid_materials import *
-from engforge.common import *
-import engforge.eng.geometry as ottgeo
-from engforge.eng.costs import CostModel,cost_property
-
-import sectionproperties
-import sectionproperties.pre.geometry as geometry
-import sectionproperties.pre.library.primitive_sections as sections
-import sectionproperties.analysis.section as cross_section
-import PyNite as pynite
-
-# from PyNite import Visualization
-import copy
-
-nonetype = type(None)
-
-
-
-[docs] -def rotation_matrix_from_vectors(vec1, vec2): - """Find the rotation matrix that aligns vec1 to vec2 - :param vec1: A 3d "source" vector - :param vec2: A 3d "destination" vector - :return mat: A transform matrix (3x3) which when applied to vec1, aligns it with vec2. - """ - a, b = (vec1 / numpy.linalg.norm(vec1)).reshape(3), ( - vec2 / numpy.linalg.norm(vec2) - ).reshape(3) - v = numpy.cross(a, b) - if any(v): # if not all zeros then - c = numpy.dot(a, b) - s = numpy.linalg.norm(v) - kmat = numpy.array( - [[0, -v[2], v[1]], [v[2], 0, -v[0]], [-v[1], v[0], 0]] - ) - return numpy.eye(3) + kmat + kmat.dot(kmat) * ((1 - c) / (s**2)) - - else: - return numpy.eye( - 3 - ) # cross of all zeros only occurs on identical directions
- - - -
-[docs] -@forge -class Beam(Component,CostModel): - """Beam is a wrapper for emergent useful properties of the structure""" - - # parent structure, will be in its _beams - structure: "Structure" = attr.ib() - - name: str = attr.ib() - material: "SolidMaterial" = attr.ib( - validator=attr.validators.instance_of(SolidMaterial), - ) - section: "Profile2D" = attr.ib( - validator=attr.validators.instance_of( - ( - geometry.Geometry, - ottgeo.Profile2D, - type(None), - ) - ) - ) - - # Section Overrides - in_Iy: float = attr.ib( - default=None, - validator=attr.validators.instance_of((int, float, nonetype)), - ) - in_Ix: float = attr.ib( - default=None, - validator=attr.validators.instance_of((int, float, nonetype)), - ) - in_J: float = attr.ib( - default=None, - validator=attr.validators.instance_of((int, float, nonetype)), - ) - in_A: float = attr.ib( - default=None, - validator=attr.validators.instance_of((int, float, nonetype)), - ) - # by default assume symmetric - in_Ixy: float = attr.ib( - default=0.0, - validator=attr.validators.instance_of((int, float, nonetype)), - ) - - min_mesh_size: float = attrs.field(default=0.01) - analysis_intervals: int = attrs.field(default=3) - - _L = None - _ITensor = None - - min_stress_xy = None # set to true or false - - def __on_init__(self): - self.debug("initalizing...") - # update material - if isinstance(self.section, ottgeo.ShapelySection): - if self.section.material is None: - raise Exception("No Section Material") - else: - self.material = self.section.material - self.update_section(self.section) - - def update_section(self, section): - self.section = section - - self.debug(f"determining {section} properties...") - if isinstance(self.section, geometry.Geometry): - self.debug(f'converting to shapelysection {section}') - if not self.section.material: - material = self.material - else: - material = self.section.material - self.section = ottgeo.ShapelySection(shape=self.section,material=self.material) - - if isinstance(self.section, ottgeo.ShapelySection): - self.debug(f"determining profile {section} properties...") - self.in_Ix = self.section.Ixx - self.in_Iy = self.section.Iyy - self.in_J = self.section.J - self.in_A = self.section.A - self.in_Ixy = self.section.Ixy - - elif isinstance(self.section, ottgeo.Profile2D): - self.warning(f"use shapely section instead {section} properties...") - #raise Exception("use shapely section instead") - self.in_Ix = self.section.Ixx - self.in_Iy = self.section.Iyy - self.in_J = self.section.J - self.in_A = self.section.A - else: - raise Exception(f"unhanelded input {self.section}") - - self.debug(f"checking input values") - assert all( - [ - val is not None - for val in (self.in_Iy, self.in_Ix, self.in_J, self.in_A) - ] - ) - - # Assemble tensor - T = [[self.in_Ix, self.in_Ixy], [self.in_Ixy, self.in_Iy]] - self._ITensor = numpy.array(T) - - @system_property - def current_combo(self) -> str: - return self.structure.current_combo - - @system_property - def L(self) -> float: - return self.length - - @system_property - def length(self) -> float: - return self.member.L() - - @property - def member(self): - return self.structure.members[self.name] - - @property - def n1(self): - return self.member.i_node - - @property - def n2(self): - return self.member.j_node - - @property - def P1(self): - return numpy.array([self.n1.X, self.n1.Y, self.n1.Z]) - - @property - def P2(self): - return numpy.array([self.n2.X, self.n2.Y, self.n2.Z]) - - @system_property - def E(self) -> float: - return self.material.E - - @system_property - def G(self) -> float: - return self.material.G - - @property - def ITensor(self): - return self._ITensor - - @system_property - def Iy(self) -> float: - return self.in_Iy - - @system_property - def Ix(self) -> float: - return self.in_Ix - - @system_property - def J(self) -> float: - return self.in_J - - @system_property - def A(self) -> float: - return self.in_A - - @property - def Ao(self): - """outside area, over ride for hallow sections""" - if isinstance(self.section, ottgeo.Profile2D): - return self.section.Ao - return self.A - - @system_property - def Ixy(self) -> float: - return self.ITensor[0, 1] - - @system_property - def Imx(self) -> float: - return self.material.density * self.Ix - - @system_property - def Imy(self) -> float: - return self.material.density * self.Iy - - @system_property - def Imxy(self) -> float: - return self.material.density * self.Ixy - - @system_property - def Jm(self) -> float: - return self.material.density * self.J - - @system_property - def Imz(self) -> float: - return self.mass * self.L**2.0 / 12.0 - - @system_property - def Iz(self) -> float: - """Outside area inertia on z""" - return self.A * self.L**2.0 / 12.0 - - @system_property - def Izo(self) -> float: - """Outside area inertia on z""" - return self.Ao * self.L**2.0 / 12.0 - - @property - def LOCAL_INERTIA(self): - """the mass inertia tensor in local frame""" - return numpy.array( - [ - [self.Imz + self.Imx, self.Imxy, 0.0], - [self.Imxy, self.Imz + self.Imy, 0.0], - [0.0, 0.0, self.Jm], - ] - ) - - @property - def INERTIA(self): - """the mass inertia tensor in global structure frame""" - # TODO: include rotation from beam uv vector frame? is it ok already? - return self.RotationMatrix.dot(self.LOCAL_INERTIA) - - @property - def GLOBAL_INERTIA(self): - """Returns the rotated inertia matrix with structure relative parallal axis contribution""" - return self.INERTIA + self.CG_RELATIVE_INERTIA - - @property - def CG_RELATIVE_INERTIA(self): - """the mass inertia tensor in global frame""" - dcg = self.cog - self.structure.cog - return self.mass * numpy.eye(3) * dcg * dcg.T - - @system_property - def Vol(self) -> float: - return self.A * self.L - - @system_property - def Vol_outside(self) -> float: - return self.Ao * self.L - - @system_property - def section_mass(self) -> float: - return self.material.density * self.A - - @system_property - def mass(self) -> float: - return self.material.density * self.Vol - - @cost_property(category='mfg,material,beams') - def cost(self) -> float: - return self.mass * self.material.cost_per_kg - - @property - def centroid2d(self): - return self.section._sec.get_c() - - @instance_cached - def centroid3d(self): - return self.L_vec / 2.0 + self.P1 - - @property - def n_vec(self): - return self.L_vec / self.L - - @property - def L_vec(self): - return self.P2 - self.P1 - - @property - def cog(self): - return self.centroid3d - - # Geometry Tabulation - # p1 - @system_property - def X1(self) -> float: - return self.P1[0] - - @system_property - def Y1(self) -> float: - return self.P1[1] - - @system_property - def Z1(self) -> float: - return self.P1[2] - - # p2 - @system_property - def X2(self) -> float: - return self.P2[0] - - @system_property - def Y2(self) -> float: - return self.P2[1] - - @system_property - def Z2(self) -> float: - return self.P2[2] - - # cg - @system_property - def Xcg(self) -> float: - return self.centroid3d[0] - - @system_property - def Ycg(self) -> float: - return self.centroid3d[1] - - @system_property - def Zcg(self) -> float: - return self.centroid3d[2] - - @property - def RotationMatrix(self): - n_o = [ - 1, - 0, - 0, - ] - # n_vec is along Z, so we must tranlate from the along axis which is z - return rotation_matrix_from_vectors(n_o, self.n_vec) - - @property - def ReverseRotationMatrix(self): - # FIXME: Ensure that this is the correct orientation - return self.RotationMatrix.T - - def section_results(self): - return self.section._sec.display_results() - - def show_mesh(self): - return self.section._sec.plot_mesh() - -
-[docs] - def estimate_stress(self, force_calc=True,**forces): - """uses the best available method to determine max stress in the beam, for ShapelySections this is done through a learning process, for other sections it is done through a simple calculation aimed at providing a conservative estimate""" - if isinstance(self.section, ottgeo.ShapelySection): - return self.section.estimate_stress(**forces,force_calc=force_calc) - else: - return self._fallback_estimate_stress(**forces)
- - - def _fallback_estimate_stress(self, n, vx, vy, mxx, myy, mzz,SM=5,**extra): - """sum the absolute value of each stress component. This isn't accurate but each value here should represent the worst sections, and take the 1-norm to max for each type of stress""" - - if self.section.x_bounds is None: - self.warning(f"bad section bounds") - self.section.calculate_bounds() - - m_y = max([abs(v) for v in self.section.y_bounds]) - m_x = max([abs(v) for v in self.section.x_bounds]) - - sigma_n = n / self.in_A - - sigma_bx = mxx * m_y / self.in_Ix - sigma_by = myy * m_x / self.in_Iy - sigma_tw = mzz * max(m_y, m_x) / self.in_J - - # A2 = self.in_A/2. - # experimental - # sigma_vx = vx * (A2*m_y/2) / (self.in_Iy*m_x) - # sigma_vy = vy * (A2*m_x/2) / (self.in_Ix*m_y) - - # assume circle (worst case) - sigma_vx = vx * 0.75 / self.in_A - sigma_vy = vy * 0.75 / self.in_A - - max_bend = abs(sigma_bx) + abs(sigma_by) - max_shear = abs(sigma_vx) + abs(sigma_vy) - - return (abs(sigma_n) + max_bend + abs(sigma_tw) + max_shear)*SM - -
-[docs] - def get_forces_at(self, x, combo=None,lower=True,skip_principle=True): - """outputs pynite results in section_properties.calculate_stress() input""" - if combo is None: - combo = self.structure.current_combo - - x = x * self.L # frac of L - principles = ['m11','m22','m33'] - - inp = dict( - N=self.member.axial(x, combo), - Vx=self.member.shear("Fz", x, combo), - Vy=self.member.shear("Fy", x, combo), - Mxx=self.member.moment("Mz", x, combo), - Myy=self.member.moment("My", x, combo), - M11=0, - M22=0, - Mzz=self.member.torque(x, combo), - ) - inp = {k.lower():v for k, v in inp.items() if any([k.lower() not in principles]) or not skip_principle} - return inp
- - -
-[docs] - def get_stress_at(self, x, combo=None,**kw): - """takes force input and runs stress calculation as a fraction of material properties""" - if combo is None: - combo = self.structure.current_combo - - inp = self.get_forces_at(x, combo) - - #preferr real stresses to fail fraction - if 'value' not in kw: - kw['value'] = True - - return self.calculate_stress(**inp,**kw)
- - -
-[docs] - def calculate_stress(self, **forces): - """takes force input and runs stress calculation as a fraction of material properties, see ShapelySection.calculate_stress() for more details""" - #preferr real stresses to fail fraction - if 'value' not in forces: - forces['value'] = True - - return self.section.calculate_stress(**forces)
- - - @property - def Fg(self): - """force of gravity""" - return numpy.array([0, 0, -self.mass * g]) - - # RESULTS: - @system_property - def max_stress_estimate(self) -> float: - """estimates these are proportional to stress but 2D FEA is "truth" since we lack cross section specifics""" - if not self.structure._any_solved: - return numpy.nan - - vals = [ self.estimate_stress(**self.get_forces_at(x),value=True) for x in [0, 0.5, 1]] - - try: - return max(vals) - - except Exception as e: - self.warning(f'failed to get max stress estimate {e}| {vals}') - return numpy.nan - - @system_property - def fail_factor_estimate(self) -> float: - """the ratio of max estimated stress to the material's allowable stress""" - if not self.structure._any_solved: - return numpy.nan - return self.max_stress_estimate / self.material.allowable_stress - - # axial - @system_property - def min_axial(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.min_axial(self.structure.current_combo) - - @system_property - def max_axial(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.max_axial(self.structure.current_combo) - - # deflection - @system_property - def min_deflection_x(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.min_deflection("dx", self.structure.current_combo) - - @system_property - def max_deflection_x(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.max_deflection("dx", self.structure.current_combo) - - @system_property - def min_deflection_y(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.min_deflection("dy", self.structure.current_combo) - - @system_property - def max_deflection_y(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.max_deflection("dy", self.structure.current_combo) - - # torsion - @system_property - def min_torsion(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.min_torque(self.structure.current_combo) - - @system_property - def max_torsion(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.max_torque(self.structure.current_combo) - - # shear - @system_property - def min_shear_z(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.min_shear("Fz", self.structure.current_combo) - - @system_property - def max_shear_z(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.max_shear("Fz", self.structure.current_combo) - - @system_property - def min_shear_y(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.min_shear("Fy", self.structure.current_combo) - - @system_property - def max_shear_y(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.max_shear("Fy", self.structure.current_combo) - - # moment - @system_property - def min_moment_z(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.min_moment("Mz", self.structure.current_combo) - - @system_property - def max_moment_z(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.max_moment("Mz", self.structure.current_combo) - - @system_property - def min_moment_y(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.min_moment("My", self.structure.current_combo) - - @system_property - def max_moment_y(self) -> float: - if not self.structure._any_solved: - return numpy.nan - return self.member.max_moment("My", self.structure.current_combo) - - # Load Application - def get_valid_force_choices( - only_local=False, only_global=False, use_moment=True - ): - if only_local or only_global: - assert only_global != only_local, "choose local or global" - - floc = set(["Fx", "Fy", "Fz"]) - fglb = set(["FX", "FY", "FZ"]) - mloc = set(["Mx", "My", "Mz"]) - mglb = set(["MX", "MY", "MZ"]) - - if only_global: - if use_moment: - return list(set.union(*(fglb, mglb))) - return list(fglb) - - elif only_local: - if use_moment: - return list(set.union(*(floc, mloc))) - return list(floc) - - else: - if use_moment: - return list(set.union(*(floc, mloc, fglb, mglb))) - return list(set.union(*(floc, fglb))) - - # FORCE APPLICATION (TODO: update for global input 0.0.78) -
-[docs] - def apply_pt_load(self, x_frac, case=None, **kwargs): - """add a force in a global orientation""" - if case is None: - case = self.structure.default_case - - # adjust x for relative input - x = x_frac * self.L - - valid = self.get_valid_force_choices(use_moment=True, only_global=True) - fin = [(v, kwargs[v]) for v in valid if v in kwargs] - for Fkey, Fval in fin: - if Fval: - self.debug(f"adding {Fkey}={Fval}") - self.structure.frame.add_member_pt_load( - self.member.name, Fkey, Fval, x, case=case - )
- - -
-[docs] - def apply_distributed_load( - self, start_factor=1, end_factor=1, case=None, **kwargs - ): - """add forces in global vector""" - if case is None: - case = self.structure.default_case - valid = self.get_valid_force_choices(use_moment=False, only_global=True) - fin = [(v, kwargs[v]) for v in valid if v in kwargs] - for Fkey, Fval in fin: - if Fval: - self.debug(f"adding dist {Fkey}={Fval}") - self.structure.frame.add_member_dist_load( - self.member.name, - Fkey, - Fval * start_factor, - Fval * end_factor, - case=case, - )
- - -
-[docs] - def apply_local_pt_load(self, x, case=None, **kwargs): - """add a force in a global orientation""" - if case is None: - case = self.structure.default_case - valid = self.get_valid_force_choices(only_local=True, use_moment=True) - fin = [(v, kwargs[v]) for v in valid if v in kwargs] - for Fkey, Fval in fin: - if Fval: - self.debug(f"adding {Fkey}={Fval}") - self.structure.frame.add_member_pt_load( - self.member.name, Fkey, Fval, x, case=case - )
- - -
-[docs] - def apply_local_distributed_load( - self, start_factor=1, end_factor=1, case=None, **kwargs - ): - """add forces in global vector""" - if case is None: - case = self.structure.default_case - valid = self.get_valid_force_choices(only_local=True, use_moment=False) - fin = [(v, kwargs[v]) for v in valid if v in kwargs] - for Fkey, Fval in fin: - if Fval: - self.debug(f"adding dist {Fkey}={Fval}") - self.structure.frame.add_member_dist_load( - self.member.name, - Fkey, - Fval * start_factor, - Fval * end_factor, - case=case, - )
- - - def apply_gravity_force_distribution( - self, sv=1, ev=1, z_dir="FZ", z_mag=-1 - ): - # TODO: ensure that integral of sv, ev is 1, and all positive - self.debug(f"applying gravity distribution to {self.name}") - for case in self.structure.gravity_cases: - total_weight = self.mass * self.structure.gravity_mag - d = {z_dir: z_mag * total_weight} - self.apply_distributed_load(case=self.structure.gravity_name, **d) - - def apply_gravity_force(self, x_frac=0.5, z_dir="FZ", z_mag=-1): - self.debug(f"applying gravity to {self.name}") - for case in self.structure.gravity_cases: - total_weight = self.mass * self.structure.gravity_mag - d = {z_dir: z_mag * total_weight} - self.apply_pt_load(x_frac, case=self.structure.gravity_name, **d) - - def __dir__(self) -> Iterable[str]: - d = set(super().__dir__()) - return list(d.union(dir(Beam))) - -
-[docs] - def max_von_mises(self) -> float: - """The worst of the worst cases, after adjusting the beem orientation for best loading""" - # TODO: make faster system property - return numpy.nanmax([self.max_von_mises_by_case()])
- - -
-[docs] - def max_von_mises_by_case(self, combos=None): - """Gathers max vonmises stress info per case""" - - cmprv = {} - for rxy in [True, False]: - new = [] - out = self.von_mises_stress_l - for cmbo, vm_stress_vec in out.items(): - if combos and cmbo not in combos: - continue - new.append(numpy.nanmax(vm_stress_vec)) - cmprv[rxy] = numpy.array(new) - - if cmprv[True] and cmprv[False]: - vt = numpy.nanmax(cmprv[True]) - vf = numpy.nanmax(cmprv[False]) - - # We choose the case with the - if vf < vt: - self.min_stress_xy = False - return vf - - self.min_stress_xy = True - return vt
- - - #TODO: Breakout other stress vectors - @solver_cached - def von_mises_stress_l(self): - """Max von-mises stress""" - out = {} - sect_stresses = self.section_stresses() - for combo in self.structure.frame.LoadCombos: - rows = [] - for i in numpy.linspace(0, 1, self.analysis_intervals): - max_vm = sect_stresses[combo][i] - rows.append(max_vm) - out[combo] = numpy.array(rows) - return out - - - def section_stresses(self,**kwargs): - # FIXME: enable: assert self.structure.solved, f'must be solved first!' - combos = {} - for combo in self.structure.frame.LoadCombos: - combos[combo] = spans = {} - for i in numpy.linspace(0, 1, self.analysis_intervals): - self.info(f"evaluating stresses for {combo} @ {i} w {kwargs}") - sol = self.get_stress_at(i, combo,**kwargs) - spans[i] = sol - return combos
- - - - # #TODO: remove or refactor - # @solver_cached - # def stress_info(self): - # """Max profile stress info along beam for each type""" - # rows = [] - # for combo in self.structure.frame.LoadCombos: - # for i in numpy.linspace(0, 1, self.analysis_intervals): - # mat_stresses = self.section_stresses[combo][i].get_stress() - # oout = {"x": i, "combo": combo} - # for stresses in mat_stresses: - # max_vals = { - # sn - # + "_max_" - # + stresses["Material"]: numpy.nanmax(stress) - # for sn, stress in stresses.items() - # if isinstance(stress, numpy.ndarray) - # } - # min_vals = { - # sn - # + "_min_" - # + stresses["Material"]: numpy.nanmin(stress) - # for sn, stress in stresses.items() - # if isinstance(stress, numpy.ndarray) - # } - # avg_vals = { - # sn - # + "_avg_" - # + stresses["Material"]: numpy.nanmean(stress) - # for sn, stress in stresses.items() - # if isinstance(stress, numpy.ndarray) - # } - # # Make some simple to determine dataframe failure prediction - # factor_of_saftey = ( - # self.material.yield_strength - # / numpy.nanmax(stresses["sig_vm"]) - # ) - # fail_frac = ( - # numpy.nanmax(stresses["sig_vm"]) - # / self.material.allowable_stress - # ) - # fsnm = stresses["Material"] + "_saftey_factor" - # fsff = stresses["Material"] + "_fail_frac" - # allowable = {fsnm: factor_of_saftey, fsff: fail_frac} - # oout.update(allowable) - # oout.update(max_vals) - # oout.update(min_vals) - # oout.update(avg_vals) - # rows.append(oout) - # - # return pandas.DataFrame(rows) - - -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/eng/thermodynamics.html b/docs/_build/html/_modules/engforge/eng/thermodynamics.html deleted file mode 100644 index a5c3629..0000000 --- a/docs/_build/html/_modules/engforge/eng/thermodynamics.html +++ /dev/null @@ -1,408 +0,0 @@ - - - - - - engforge.eng.thermodynamics — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.eng.thermodynamics

-import attr
-
-# from engforge.configuration import Configuration, forge
-from engforge.components import Component, system_property, forge
-
-from engforge.eng.fluid_material import Water, Air, Steam
-from CoolProp.CoolProp import PropsSI
-import CoolProp.CoolProp as CP
-import numpy
-from numpy import vectorize
-
-STD_TEMP = 273 + 20
-STD_PRESSURE = 1.01325e5
-
-
-# Thermodynamics
-@vectorize
-def heat_of_vaporization(P, material="Water", measure="Hmolar"):
-    """Returns heat of vaporization for material
-    :param P: pressure in P
-    """
-    assert measure.startswith("H")  # Must be an enthalpy
-    if P > 2.2063e07:  # Critical Pressure
-        return 0.0
-    H_L = PropsSI(measure, "P", P, "Q", 0, material)
-    H_V = PropsSI(measure, "P", P, "Q", 1, material)
-    return H_V - H_L
-
-
-@vectorize
-def boiling_point(P, material="Water"):
-    """Returns the boiling point in `K` for the material"""
-    return PropsSI("T", "P", P, "Q", 1, material)
-
-
-# Heat Exchanger
-
-[docs] -def dp_he_entrance(sigma, G, rho): - """Heat Exchanger Entrance Pressure Loss - :param sigma: contraction-ratio - ratio of minimum flow area to frontal area - :param G: mass flux of fluid - :param rho: density of fluid - """ - Kc = 0.42 * (1.0 - sigma**2.0) ** 2.0 - return (1.0 - sigma**2.0 + Kc) * (G**2.0 / rho) / 2.0
- - - -
-[docs] -def dp_he_exit(sigma, G, rho): - """Heat Exchanger Exit Pressure Loss - :param sigma: contraction-ratio - ratio of minimum flow area to frontal area - :param G: mass flux of fluid - :param rho: density of fluid - """ - Ke = (1.0 - sigma) ** 2.0 - return (1.0 - sigma**2.0 + Ke) * (G**2.0 / rho) / 2.0
- - - -
-[docs] -def dp_he_core(G, f, L, rho, Dh): - """Losses due to friction - :param f: fanning friction factor - :param G: mass flux (massflow / Area) - :param L: length of heat exchanger - :param rho: intermediate density - :param Dh: diameter of heat exchanger - """ - top = 4 * f * L * G**2.0 - btm = Dh * 2 * rho - dp_friciton = top / btm - return dp_friciton
- - - -
-[docs] -def dp_he_gas_losses(G, rhoe, rhoi): - """Measures the pressure loss or gain due to density changes in the HE - :param G: mass flux - :param rhoe: exit density - :param rhoi: entrance density - """ - dp_pressure = G**2.0 * ((1.0 / rhoe) - (1.0 / rhoi)) - return dp_pressure
- - - -
-[docs] -def fanning_friction_factor(Re, method="turbulent"): - if method == "turbulent": - if Re <= 5e4: - return 0.0791 / (Re**0.25) - return 0.0014 + 0.125 / (Re**0.32) - elif method == "laminar": - return 16.0 / Re - else: # Default to turbulent - return fanning_friction_factor(Re, method="turbulent")
- - - -# Simple Elements -
-[docs] -@forge -class SimpleHeatExchanger(Component): - Thi = attr.ib() - mdot_h = attr.ib() - Cp_h = attr.ib() - - Tci = attr.ib() - mdot_c = attr.ib() - Cp_c = attr.ib() - - efficiency = attr.ib(default=0.8) - name = attr.ib(default="HeatExchanger") - - @system_property - def CmatH(self) -> float: - return self.Cp_h * self.mdot_h - - @system_property - def CmatC(self) -> float: - return self.Cp_c * self.mdot_c - - @system_property - def Tout_ideal(self) -> float: - numerator = self.Thi * self.CmatH + self.Tci * self.CmatC - denominator = self.CmatC + self.CmatH - return numerator / denominator - - @system_property - def Qdot_ideal(self) -> float: - """Use Tout ideal to determine the heat flow should be the same for both""" - v1 = self.CmatH * (self.Thi - self.Tout_ideal) - v2 = self.CmatC * (self.Tout_ideal - self.Tci) - if abs((v2 - v1) / float(v1)) >= 0.1: - self.warning("Qdot_ideal not matching") - return (v1 + v2) / 2.0 - - @system_property - def Qdot(self) -> float: - return self.Qdot_ideal * self.efficiency - - @system_property - def Th_out(self) -> float: - return self.Thi - self.Qdot / self.CmatH - - @system_property - def Tc_out(self) -> float: - return self.Tci + self.Qdot / self.CmatC
- - - -# Compression -
-[docs] -@forge -class SimpleCompressor(Component): - pressure_ratio = attr.ib() - - Tin = attr.ib() - mdot = attr.ib() - - Cp = attr.ib() - gamma = attr.ib(default=1.4) - - efficiency = attr.ib(default=0.75) - name = attr.ib(default="Compressor") - - @system_property - def temperature_ratio(self) -> float: - return ( - self.pressure_ratio ** ((self.gamma - 1.0) / self.gamma) - 1.0 - ) / self.efficiency - - @system_property - def Tout(self) -> float: - return self.temperature_ratio * self.Tin - - @system_property - def power_input(self) -> float: - return self.Cp * self.mdot * (self.Tout - self.Tin) - - def pressure_out(self, pressure_in): - return self.pressure_ratio * pressure_in
- - - -
-[docs] -@forge -class SimpleTurbine(Component): - Pout = attr.ib() - - Pin = attr.ib() - Tin = attr.ib() - - mdot = attr.ib() - - Cp = attr.ib() - gamma = attr.ib(default=1.4) - - efficiency = attr.ib(default=0.80) - name = attr.ib(default="Turbine") - - @system_property - def pressure_ratio(self) -> float: - return self.Pin / self.Pout - - @system_property - def Tout(self) -> float: - return self.Tin * ( - 1 - - self.efficiency - * ( - 1.0 - - (1 / self.pressure_ratio) ** ((self.gamma - 1.0) / self.gamma) - ) - ) - # return self.Tin * self.pressure_ratio**((self.gamma-1.0)/self.gamma)/ self.efficiency - - @system_property - def power_output(self) -> float: - """calculates power output base on temp diff (where eff applied)""" - return self.Cp * self.mdot * (self.Tin - self.Tout)
- - - -# Compression -
-[docs] -@forge -class SimplePump(Component): - MFin = attr.field() # kg/s - pressure_ratio = attr.field() # nd - Tin = attr.field(default=STD_TEMP) # k - Pin = attr.field(default=STD_PRESSURE) # c - - efficiency = attr.field(default=0.75) - fluid = attr.field(factory=Water) - name = attr.field(default="pump") - - def __on_init__(self): - self.eval() - - def eval(self): - self.fluid.T = self.Tin - self.fluid.P = self.Pin - - Tsat = self.fluid.Tsat - if self.Tin / Tsat >= 1: - self.warning("infeasible: pumping vapor!") - - elif (self.Tin / self.fluid.Tsat) > 0.8: - self.warning("pump near saturated temp") - - @system_property - def volumetric_flow(self) -> float: - return self.MFin / self.fluid.density - - @system_property - def temperature_delta(self) -> float: - rho = self.fluid.density - v = self.MFin / rho - p = self.Pin - w = v * p / self.efficiency # work done - cp = self.fluid.specific_heat - dt = w * (1 - self.efficiency) / (rho * cp * v) - return dt - - @system_property - def Pout(self) -> float: - return self.pressure_ratio * self.Pin - - @system_property - def Tout(self) -> float: - return self.temperature_delta + self.Tin - - @system_property - def pressure_delta(self) -> float: - return (self.pressure_ratio - 1) * self.Pin - - @system_property - def power_input(self) -> float: - return self.volumetric_flow * self.pressure_delta / self.efficiency - - @system_property - def cost(self) -> float: - pwr = self.power_input - c1 = numpy.log(pwr) - c2 = -0.03195 * pwr**2.0 - c3 = 467.2 * pwr - c4 = 2.048e4 - return c1 + c2 + c3 + c4
- -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/engforge_attributes.html b/docs/_build/html/_modules/engforge/engforge_attributes.html deleted file mode 100644 index a07fe0c..0000000 --- a/docs/_build/html/_modules/engforge/engforge_attributes.html +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - engforge.engforge_attributes — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.engforge_attributes

-from engforge.attributes import ATTR_BASE, AttributeInstance
-from engforge.attr_dynamics import Time
-from engforge.attr_solver import Solver
-from engforge.attr_signals import Signal
-from engforge.attr_slots import Slot
-from engforge.attr_plotting import Plot, Trace
-from engforge.logging import LoggingMixin, log
-from engforge.typing import *
-
-from contextlib import contextmanager
-import deepdiff
-import typing
-import datetime
-
-
-import attr, attrs
-
-from  attrs import Attribute
-
-
-
-[docs] -class EngAttr(LoggingMixin): - pass
- - - -log = EngAttr() - - -
-[docs] -def get_attributes_of(cls, subclass_of: type = None, exclude=False): - choose = issubclass - if exclude: - choose = lambda ty, type_set: not issubclass(ty, type_set) - - if subclass_of is None: - subclass_of = ATTR_BASE - - # This handles the attrs class before or after compilation - attrval = {} - if "__attrs_attrs__" in cls.__dict__: # Handle Attrs Class - for k, v in attrs.fields_dict(cls).items(): - if isinstance(v.type, type) and choose(v.type, subclass_of): - attrval[k] = v - - # else: # Handle Pre-Attrs Class - # FIXME: should this run first? - for k, v in cls.__dict__.items(): - if isinstance(v, type) and choose(v, subclass_of): - attrval[k] = v - - return attrval
- - - -
-[docs] -class AttributedBaseMixin(LoggingMixin): - """A mixin that adds the ability to configure all engforge.core attributes of a class""" - - - # Auto Configuration Methods -
-[docs] - @classmethod - def collect_all_attributes(cls): - """collects all the attributes for a system""" - out = {} - for base_class in ATTR_BASE.subclasses(): - nm = base_class.__name__.lower() - out[nm] = base_class.collect_cls(cls) - return out
- - -
-[docs] - def collect_inst_attributes(self,**kw): - """collects all the attributes for a system""" - out = {} - for base_class in ATTR_BASE.subclasses(): - nm = base_class.__name__.lower() - out[nm] = base_class.collect_attr_inst(self,**kw) - return out
- - - @classmethod - def _get_init_attrs_data(cls, subclass_of: type, exclude=False): - choose = issubclass - if exclude: - choose = lambda ty, type_set: not issubclass(ty, type_set) - - attrval = {} - if "__attrs_attrs__" in cls.__dict__: # Handle Attrs Class - for k, v in attrs.fields_dict(cls).items(): - if isinstance(v.type, type) and choose(v.type, subclass_of): - attrval[k] = v - - # else: # Handle Pre-Attrs Class - # FIXME: should this run first? - for k, v in cls.__dict__.items(): - if isinstance(v, type) and choose(v, subclass_of): - attrval[k] = v - - return attrval - - # Attribute Methods - @property - def attrs_fields(self) -> set: - return set(attr.fields(self.__class__)) - - - - @classmethod - def _extract_type(cls, typ): - """gathers valid types for an attribute.type""" - from engforge.attr_slots import Slot - from engforge.configuration import Configuration - - if not isinstance(typ, type) or typ is None: - return list() - - if issubclass(typ, Slot): - accept = typ.accepted - if isinstance(accept, (tuple, list)): - return list(accept) - return [accept] - - elif issubclass(typ, Configuration): - return [typ] - - elif issubclass(typ, TABLE_TYPES): - return [typ] - -
-[docs] - @classmethod - def check_ref_slot_type(cls, sys_key: str) -> list: - """recursively checks class slots for the key, and returns the slot type""" - - from engforge.configuration import Configuration - - slot_refs = cls.slot_refs() - if sys_key in slot_refs: - return slot_refs[sys_key] - - slts = cls.input_attrs() - key_segs = sys_key.split(".") - out = [] - # print(slts.keys(),sys_key) - if "." not in sys_key and sys_key not in slts: - pass - - elif sys_key in slts: - # print(f'slt find {sys_key}') - return cls._extract_type(slts[sys_key].type) - else: - fst = key_segs[0] - rem = key_segs[1:] - if fst in slts: - sub_clss = cls._extract_type(slts[fst].type) - out = [] - for acpt in sub_clss: - if isinstance(acpt, type) and issubclass( - acpt, Configuration - ): - vals = acpt.check_ref_slot_type(".".join(rem)) - # print(f'recursive find {acpt}.{rem} = {vals}') - if vals: - out.extend(vals) - - elif isinstance(acpt, type): - out.append(acpt) - - slot_refs[sys_key] = out - - return out
- - -
-[docs] - @classmethod - def slot_refs(cls, recache=False): - """returns all slot references in this configuration""" - key = f"{cls.__name__}_prv_slot_sys_refs" - if recache == False and hasattr(cls, key): - return getattr(cls, key) - o = {} - setattr(cls, key, o) - return o
- - -
-[docs] - @classmethod - def slots_attributes(cls) -> typing.Dict[str, "Attribute"]: - """Lists all slots attributes for class""" - return cls._get_init_attrs_data(Slot)
- - -
-[docs] - @classmethod - def signals_attributes(cls) -> typing.Dict[str, "Attribute"]: - """Lists all signals attributes for class""" - return cls._get_init_attrs_data(Signal)
- - -
-[docs] - @classmethod - def solvers_attributes(cls) -> typing.Dict[str, "Attribute"]: - """Lists all signals attributes for class""" - return cls._get_init_attrs_data(Solver)
- - -
-[docs] - @classmethod - def transients_attributes(cls) -> typing.Dict[str, "Attribute"]: - """Lists all signals attributes for class""" - return cls._get_init_attrs_data(Time)
- - -
-[docs] - @classmethod - def trace_attributes(cls) -> typing.Dict[str, "Attribute"]: - """Lists all trace attributes for class""" - return cls._get_init_attrs_data(Trace)
- - -
-[docs] - @classmethod - def plot_attributes(cls) -> typing.Dict[str, "Attribute"]: - """Lists all plot attributes for class""" - return cls._get_init_attrs_data(Plot)
- - - @classmethod - def input_attrs(cls): - return attr.fields_dict(cls) - -
-[docs] - @classmethod - def input_fields(cls,add_ign_types:list=None): - '''no attr base types, no tuples, no lists, no dicts''' - ignore_types = [ - ATTR_BASE, - #tuple, - #list, - #dict, - ] - if add_ign_types: - ignore_types.extend(add_ign_types) - return cls._get_init_attrs_data(tuple(ignore_types), exclude=True)
- - - @classmethod - def numeric_fields(cls): - ignore_types = ( - ATTR_BASE, - str, - tuple, - list, - dict, - ) - typ = cls._get_init_attrs_data(ignore_types, exclude=True) - return {k: v for k, v in typ.items() if v.type in (int, float)} - - @classmethod - def table_fields(cls): - keeps = (str, float, int) # TODO: add numpy fields - typ = cls._get_init_attrs_data(keeps) - return {k: v for k, v in typ.items()} - - # Dictonaries - @property - def as_dict(self): - """returns values as they are in the class instance""" - from engforge.configuration import Configuration - - inputs = self.input_attrs() - # TODO: add signals? - properties = getattr(self, "system_properties_classdef", None) - if properties: - inputs.update(properties()) - - o = {k: getattr(self, k, None) for k, v in inputs.items()} - return o - - @property - def input_as_dict(self): - """returns values as they are in the class instance, but converts classes inputs to their input_as_dict""" - from engforge.configuration import Configuration - - o = {k: getattr(self, k, None) for k in self.input_fields()} - o = { - k: v if not isinstance(v, Configuration) else v.input_as_dict - for k, v in o.items() - } - return o - - @property - def numeric_as_dict(self): - from engforge.configuration import Configuration - - o = {k: getattr(self, k, None) for k in self.numeric_fields()} - o = { - k: v if not isinstance(v, Configuration) else v.numeric_as_dict - for k, v in o.items() - } - return o - - # Hashes - @property - def unique_hash(self): - d = self.as_dict - return deepdiff.DeepHash(d)[d] - - @property - def numeric_hash(self): - d = self.input_as_dict - return deepdiff.DeepHash(d)[d] - - @property - def numeric_hash(self): - d = self.numeric_as_dict - return deepdiff.DeepHash(d)[d] - - # Configuration Push/Pop methods -
-[docs] - def setattrs(self, dict): - """sets attributes from a dictionary""" - msg = f"invalid keys {set(dict.keys()) - set(self.input_attrs())}" - assert set(dict.keys()).issubset(set(self.input_attrs())), msg - for k, v in dict.items(): - setattr(self, k, v)
- - -
-[docs] - @contextmanager - def difference(self, **kwargs): - """a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way. - - with self.difference(name='new_name', value = new_value) as new_config: - #do stuff with config, ok to fail - - you may not access any "private" variable that starts with an `_` as in _whatever - - difference is useful for saving slight differences in configuration in conjunction with solve - you might create wrappers for eval, or implement a strategy pattern. - - only attributes may be changed. - - #TODO: allow recursive operation with sub comps or systems. - #TODO: make a full system copy so the system can be reverted later - """ - _temp_vars = {} - - _temp_vars.update( - { - arg: getattr(self, arg) - for arg in kwargs.keys() - if hasattr(self, arg) - if not arg.startswith("_") - } - ) - - bad_vars = set.difference(set(kwargs.keys()), set(_temp_vars.keys())) - if bad_vars: - self.warning("Could Not Change {}".format(",".join(list(bad_vars)))) - - try: # Change Variables To Input - self.setattrs(kwargs) - yield self - finally: - rstdict = {k: _temp_vars[k] for k, v in kwargs.items()} - self.setattrs(rstdict)
-
- - -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/env_var.html b/docs/_build/html/_modules/engforge/env_var.html deleted file mode 100644 index 2673ceb..0000000 --- a/docs/_build/html/_modules/engforge/env_var.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - engforge.env_var — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.env_var

-"""Defines a class called `EnvVariable` that defines an interface for env variables with an option to obscure and convert variables, as well as provide a default option.
-
-A global record of variables is kept for informational purposes in keeping track of progam variables
-
-To prevent storage of env vars in program memory, access to the os env variables is provided on access of the `secret` variable. It is advisable to use the result of this as directly as possible when dealing with actual secrets. 
-
-For example add: `db_driver(DB_HOST.secret,DB_PASSWORD.secret,...)
-"""
-
-
-import os
-from engforge.logging import LoggingMixin
-from typing import Any
-import socket
-import inspect
-
-global warned
-warned = set()  # a nice global variable to hold any warnings
-
-FALSE_VALUES = (False, "false", "no", "n")
-TRUE_VALUES = (True, "checked", "true", "yes", "y")
-
-
-
-[docs] -def parse_bool(input: str): - if isinstance(input, str): - input = input.lower() - - if not input: - return False - elif input in TRUE_VALUES: - return True - elif input in FALSE_VALUES: - return False - return False
- - - -DEFAULT_CONVERTERS = {bool: parse_bool} - - -
-[docs] -class EnvVariable(LoggingMixin): - """A method to wrap SECRETS and in application with a way to get the value using self.secret - Do not store values from self.secret to ensure security - - You can override the secret with _override""" - - var_name: str = None - type_conv: Any = None - default: Any = None - obscure: bool = True - _override: str - _secrets = {} # its class based so like a singleton - _replaced = set() - fail_on_missing: bool - desc: str = None - _upgrd_warn: bool = False - _dontovrride: bool = False - - def __init__( - self, - secret_var_name, - type_conv=None, - default=None, - obscure=False, - fail_on_missing=False, - desc: str = None, - dontovrride=False, - ): - """pass arguments to SecretVariable to have it look up information at runtime from envargs, but not store it in memory. - :param secret_var_name: the enviornmental variable - :param type_conv: the data from env vars will be converted with this function - :param default: the value to use if the secret_var_name doesn't exist in enviornmental variables - :param obscure: default True, will prevent the result being printed by str(self) - :param fail_on_missing: if the secret env variable is not found, and default is None - :param desc: a description of the purpose of the variable - """ - self.var_name = secret_var_name - self.type_conv = ( - type_conv - if type_conv not in DEFAULT_CONVERTERS - else DEFAULT_CONVERTERS[type_conv] - ) - self._dontovrride = dontovrride - - if default is not None: - self.default = default - self.obscure = obscure - # UserString.__init__(self,f'[SECRET:{secret_var_name}]') - - self.fail_on_missing = fail_on_missing - - # record env vars - if secret_var_name in self.__class__._secrets: - cur = self.__class__._secrets[secret_var_name] - if dontovrride: - self.debug(f"not replacing: {cur}->{self}") - self.__dict__ = cur.__dict__ - else: - self.info(f"replacing {cur}->{self}") - self._replaced.add(cur) - self.__class__._secrets[secret_var_name] = self - else: - self.__class__._secrets[secret_var_name] = self - - # FIXME: prevent engforge var from replacing other module instnace - # not possible to locate where other instances - # if secret_var_name in self.__class__._secrets: - # cur = self.__class__._secrets[secret_var_name] - # if cur != self and self not in self._replaced: - # self._replaced.add(cur) - # self.info(f'replacing {cur}->{self}') - # self.__class__._secrets[secret_var_name] = self - # elif self in self._replaced: - # self.info(f'skipping replaced readd {self}') - # #self.__class__._secrets[secret_var_name] = self - # else: - # self.__class__._secrets[secret_var_name] = self - - def __str__(self): - if self.obscure: - return f"{self.obscured_name:<40} = XXXXXX" - return f"{self.obscured_name:<40} = {self.secret}" - - def __add__(self, other) -> str: - return str(str.__add__(str(self), other)) - - def __radd__(self, other) -> str: - return str(str.__add__(other, str(self))) - - @property - def obscured_name(self) -> str: - if hasattr(self, "_override"): - return f"SECRETS[OVERRIDE]" - return f"SECRETS[{self.var_name}]" - - @property - def secret(self): - # Check if this secret is the one in the secrets registry - sec = self.__class__._secrets[self.var_name] - if sec is not self and not sec._dontovrride: - # Provide warning that the secret is being replaced - if not self._upgrd_warn: - self._upgrd_warn = True - self.info( - f"upgrading: {self.var_name} from {id(self)}->{id(sec)}" - ) - - # Monkeypatch dictionary - self.__dict__ = sec.__dict__ - - if hasattr(self, "_override"): - return self._override - - if self.var_name in os.environ: - secval = os.environ[self.var_name] - elif self.default is not None: - if self.var_name not in warned: - if self.obscure: - dflt = "XXXXXXX" - else: - dflt = self.default - - self.debug(f"Env Var: {self.var_name} Not Found! Using: {dflt}") - warned.add(self.var_name) - - secval = self.default - else: - if self.fail_on_missing: - raise FileNotFoundError( - f"Could Not Find Env Variable {self.var_name}" - ) - else: - if self.var_name not in warned: - self.debug(f"Env Var: {self.var_name} Not Found!") - warned.add(self.var_name) - return None - - if self.type_conv is None: - return secval - else: - return self.type_conv(secval) - - @property - def in_env(self): - return self.var_name in os.environ - -
-[docs] - def remove(self): - """removes this secret from the record""" - if self in self.__class__._secrets: - self.__class__._secrets.remove(self)
- - - @classmethod - def load_env_vars(self): - for s in EnvVariable._secrets.values(): - str(s) - -
-[docs] - @classmethod - def print_env_vars(cls): - """prints env vars in memory""" - # preload - cls.load_env_vars() - for var, s in sorted( - EnvVariable._secrets.items(), key=lambda kv: kv[1].var_name - ): - print(f"{s.var_name:<40}|{s}")
-
- - - -# DEFAULT ENV VARIABLES -try: - # This should always work unless we don't have privideges (rare assumed) - host = socket.gethostname().upper() -except: - host = "MASTER" - -global HOSTNAME, SLACK_WEBHOOK - -HOSTNAME = EnvVariable( - "FORGE_HOSTNAME", default=host, obscure=False, dontovrride=True -) -SLACK_WEBHOOK = EnvVariable( - "FORGE_SLACK_LOG_WEBHOOK", default=None, obscure=False, dontovrride=True -) - -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/locations.html b/docs/_build/html/_modules/engforge/locations.html deleted file mode 100644 index fa1c5a0..0000000 --- a/docs/_build/html/_modules/engforge/locations.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - engforge.locations — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.locations

-from engforge.env_var import EnvVariable
-
-FORGE_PATH_VAR = EnvVariable(
-    "FORGE_REPORT_PATH", default=None, dontovrride=True
-)
-
-
-
-[docs] -def client_path(alternate_path=None, **kw): - path = FORGE_PATH_VAR.secret - if path is None: - if alternate_path is None: - raise KeyError( - f"no `FORGE_REPORT_PATH` set and no alternate path in client_path call " - ) - return alternate_path - else: - return path
- -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/logging.html b/docs/_build/html/_modules/engforge/logging.html deleted file mode 100644 index 80e2d86..0000000 --- a/docs/_build/html/_modules/engforge/logging.html +++ /dev/null @@ -1,442 +0,0 @@ - - - - - - engforge.logging — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.logging

-import logging
-import logging
-import traceback
-import sys, os
-from pyee import EventEmitter
-from termcolor import colored
-import requests
-import json
-import uuid
-
-global log_change_emitter
-log_change_emitter = EventEmitter()
-
-
-BASIC_LOG_FMT = "[%(name)-24s]%(message)s"
-
-global LOG_LEVEL
-LOG_LEVEL = logging.INFO
-
-
-[docs] -def change_all_log_levels(inst=None,new_log_level: int=20, check_function=None): - """Changes All Log Levels With pyee broadcast before reactor is running - :param new_log_level: int - changes unit level log level (10-msg,20-debug,30-info,40-warning,50-error,60-crit) - :param check_function: callable -> bool - (optional) if provided if check_function(unit) is true then the new_log_level is applied - """ - if isinstance(new_log_level, float): - new_log_level = int(new_log_level) # Float Case Is Handled - - assert ( - isinstance(new_log_level, int) - and new_log_level >= 1 - and new_log_level <= 100 - ) - - global LOG_LEVEL - LOG_LEVEL = new_log_level - - if LoggingMixin.log_level != new_log_level: - print(f"changing log levels to {new_log_level}...") - log.info(f"Changing All Logging Units To Level {new_log_level}") - log_change_emitter.emit("change_level", new_log_level, check_function) - LoggingMixin.log_level = new_log_level - if inst: inst.log_level = new_log_level
- - -
-[docs] -class LoggingMixin(logging.Filter): - """Class to include easy formatting in subclasses""" - - log_level = LOG_LEVEL - _log = None - - log_on = True - - log_fmt = "[%(name)-24s]%(message)s" - - slack_webhook_url = None - # log_silo = False - - change_all_log_lvl = lambda s, *a, **kw: change_all_log_levels(s,*a, **kw) - - @property - def logger(self): - if self._log is None: - inst_log_name = ( - "engforgelog_" + self.identity + "_" + str(uuid.uuid4()) - ) - self._log = logging.getLogger(inst_log_name) - self._log.setLevel(level=self.__class__.log_level) - - # Apply Filter Info - self._log.addFilter(self) - self.installSTDLogger() - from engforge.env_var import EnvVariable, SLACK_WEBHOOK - - # Hot Patch Class (EnvVar is logging mixin... soo... here we are) - if LoggingMixin.slack_webhook_url is None: - # Do this on the fly since we SecretVariable is a log component - LoggingMixin.slack_webhook_url = SLACK_WEBHOOK - - if not hasattr(self, "_f_change_log"): - - def _change_log(new_level, check_function=None): - if new_level != self.log_level: - if check_function is None or check_function(self): - msg = f"changing {self.identity} log level: {self.log_level} -> {new_level}" - self.__class__.log_level = new_level - self.info(msg) - self._log.setLevel(new_level) - self.log_level=new_level - self.resetLog() - - log_change_emitter.add_listener("change_level", _change_log) - - self._f_change_log = _change_log - - return self._log - -
-[docs] - def resetLog(self): - """reset log""" - self._log = None - self.debug(f"reset!")
- - -
-[docs] - def resetSystemLogs(self, reseted=None): - """resets log on all internal instance LoggingMixins""" - self.resetLog() - self.debug(f"reset!") - if reseted is None: - reseted = set() - for k, v in self.__dict__.items(): - if isinstance(v, LoggingMixin) and id(v) not in reseted: - reseted.add(id(v)) - v.resetSystemLogs(reseted)
- - -
-[docs] - def installSTDLogger(self): - """We only want std logging to start""" - sh = logging.StreamHandler(sys.stdout) - peerlog = logging.Formatter(self.log_fmt) - sh.setFormatter(peerlog) - self._log.addHandler(sh)
- - -
-[docs] - def add_fields(self, record): - """Overwrite this to modify logging fields""" - pass
- - -
-[docs] - def filter(self, record): - """This acts as the interface for `logging.Filter` - Don't overwrite this, use `add_fields` instead.""" - record.name = self.identity.lower()[:24] - self.add_fields(record) - return True
- - -
-[docs] - def msg(self, *args,lvl=5): - """Writes to log... this should be for raw data or something... least priorty""" - if self.log_on: - self.logger.log( - lvl, self.message_with_identiy(self.extract_message(args), "blue") - )
- - -
-[docs] - def debug(self, *args): - """Writes at a low level to the log file... usually this should - be detailed messages about what exactly is going on""" - if self.log_on: - self.logger.debug( - self.message_with_identiy(self.extract_message(args), "cyan") - )
- - -
-[docs] - def info(self, *args): - """Writes to log but with info category, these are important typically - and inform about progress of process in general""" - if self.log_on: - self.logger.info( - self.message_with_identiy(self.extract_message(args), "white") - )
- - -
-[docs] - def warning(self, *args): - """Writes to log as a warning""" - self.logger.warning( - self.message_with_identiy( - "WARN: " + self.extract_message(args), "yellow" - ) - )
- - -
-[docs] - def error(self, error, msg=""): - """Writes to log as a error""" - - # fmt = 'ERROR: {msg!r}|{err!r}' - - tb = error.__traceback__ - fmt = "ERROR:{msg}->{err}" - - tb = "\n".join(traceback.format_exception(error, value=error, tb=tb)) - msgfmt = ("\n" + " " * 51 + "|").join(str(msg).split("\n")) - - # tbcl = colored(tb, "red") - # self.logger.exception( fmt.format(msg=msgfmt,err=tbcl)) - # self.logger.exception( msgfmt) - - m = colored(fmt.format(msg=msgfmt, err=tb), "red") - self.logger.error(m)
- - -
-[docs] - def critical(self, *args): - """A routine to communicate to the root of the server network that there is an issue""" - msg = self.extract_message(args) - msg = self.message_with_identiy(msg, "magenta") - self.logger.critical(msg) - - # FIXME: setup slack notificatinos with env var - self.slack_notification(self.identity.title(), msg)
- - - def slack_notification(self, category, message): - from engforge.env_var import SLACK_WEBHOOK, HOSTNAME - - if SLACK_WEBHOOK.var_name in os.environ: - self.info("getting slack webhook") - url = SLACK_WEBHOOK.secret - else: - return - stage = HOSTNAME.secret - headers = {"Content-type": "application/json"} - data = { - "text": "{category} on {stage}:\n```{message}```".format( - category=category.upper(), stage=stage, message=message - ) - } - self.info(f"Slack Notification : {url}:{category},{message}") - slack_note = requests.post( - url, data=json.dumps(data).encode("ascii"), headers=headers - ) - -
-[docs] - def message_with_identiy(self, message: str, color=None): - """converts to color and string via the termcolor library - :param message: a string convertable entity - :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white] - """ - if color != None: - return colored(str(message), color) - return str(message)
- - - def extract_message(self, args): - for arg in args: - if type(arg) is str: - return arg - if self.log_level < 0: - print(f"no string found for {args}") - return "" - - @property - def identity(self): - return type(self).__name__ - - def __getstate__(self): - d = dict(self.__dict__) - d["_f_change_log"] = None - return d
- - - -
-[docs] -class Log(LoggingMixin): - pass
- - - -log = Log() - - -# try: -# logging.getLogger('parso.cache').disabled=True -# logging.getLogger('parso.cache.pickle').disabled=True -# logging.getLogger('parso.python.diff').disabled=True -# -# except Exception as e: -# log.warning(f'could not diable parso {e}') -# def installGELFLogger(): -# '''Installs GELF Logger''' -# # self.gelf = graypy.GELFTLSHandler(GELF_HOST,GELF_PORT, validate=True,\ -# # ca_certs=credfile('graylog-clients-ca.crt'),\ -# # certfile = credfile('test-client.crt'), -# # keyfile = credfile('test-client.key') -# # ) -# log = logging.getLogger('') -# gelf = graypy.GELFUDPHandler(host=GELF_HOST,port=12203, extra_fields=True) -# log.addHandler(gelf) - - -# def installSTDLogger(fmt = BASIC_LOG_FMT): -# '''We only want std logging to start''' -# log = logging.getLogger('') -# sh = logging.StreamHandler(sys.stdout) -# peerlog = logging.Formatter() -# sh.setFormatter(peerlog) -# log.addHandler( sh ) -# -# -# def set_all_loggers_to(level,set_stdout=False,all_loggers=False): -# global LOG_LEVEL -# LOG_LEVEL = level -# -# if set_stdout: installSTDLogger() -# -# logging.basicConfig(level = LOG_LEVEL) #basic config -# -# log = logging.getLogger() -# log.setLevel(LOG_LEVEL)# Set Root Logger -# -# log.setLevel(level) #root -# -# loggers = [logging.getLogger(name) for name in logging.root.manager.loggerDict] -# for logger in loggers: -# if logger.__class__.__name__.lower().startswith('engforge'): -# logger.log(LOG_LEVEL,'setting log level: {}'.format(LOG_LEVEL)) -# logger.setLevel(LOG_LEVEL) -# elif all_loggers: -# logger.log(LOG_LEVEL,'setting log level: {}'.format(LOG_LEVEL)) -# logger.setLevel(LOG_LEVEL) -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/patterns.html b/docs/_build/html/_modules/engforge/patterns.html deleted file mode 100644 index eec4aa8..0000000 --- a/docs/_build/html/_modules/engforge/patterns.html +++ /dev/null @@ -1,594 +0,0 @@ - - - - - - engforge.patterns — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.patterns

-import numpy, functools
-
-from engforge.logging import LoggingMixin, logging
-
-
-
-[docs] -class inst_vectorize(numpy.vectorize): - def __get__(self, obj, objtype): - return functools.partial(self.__call__, obj)
- - - -
-[docs] -def chunks(lst, n): - """Yield successive n-sized chunks from lst.""" - for i in range(0, len(lst), n): - yield lst[i : i + n]
- - - -
-[docs] -class Singleton: - """ - A non-thread-safe helper class to ease implementing singletons. - This should be used as a decorator -- not a metaclass -- to the - class that should be a singleton. - - The decorated class can define one `__init__` function that - takes only the `self` argument. Also, the decorated class cannot be - inherited from. Other than that, there are no restrictions that apply - to the decorated class. - - To get the singleton instance, use the `instance` method. Trying - to use `__call__` will result in a `TypeError` being raised. - - """ - - def __init__(self, decorated): - self._decorated_cls = decorated - - self.__class__.__name__ = self._decorated_cls.__name__ - -
-[docs] - def instance(self, *args, **kwargs): - """ - Returns the singleton instance. Upon its first call, it creates a - new instance of the decorated class and calls its `__init__` method. - On all subsequent calls, the already created instance is returned. - - """ - try: - return self._instance - except AttributeError: - self._instance = self._decorated_cls(*args, **kwargs) - return self._instance
- - -
-[docs] - def __call__(self): - raise TypeError("Singletons must be accessed through `instance()`.")
- - - def __instancecheck__(self, inst): - return isinstance(inst, self._decorated)
- - - -
-[docs] -class SingletonMeta(type): - """Metaclass for singletons. Any instantiation of a Singleton class yields - the exact same object, e.g.: - - >>> class MyClass(metaclass=Singleton): - pass - >>> a = MyClass() - >>> b = MyClass() - >>> a is b - True - """ - - _instances = {} - -
-[docs] - def __call__(cls, *args, **kwargs): - if cls not in cls._instances: - cls._instances[cls] = super(SingletonMeta, cls).__call__( - *args, **kwargs - ) - return cls._instances[cls]
- - - @classmethod - def __instancecheck__(mcs, instance): - if instance.__class__ is mcs: - return True - else: - return isinstance(instance.__class__, mcs)
- - - -# class MetaRegistry(type): - -# REGISTRY = {} - -# def __new__(meta, name, bases, class_dict): -# cls = type.__new__(meta, name, bases, class_dict) -# if name not in registry: -# meta.register_class(cls) -# return cls - -# def register_class(target_class): -# REGISTRY[target_class.__name__] = target_class - - -
-[docs] -class InputSingletonMeta(type): - """Metaclass for singletons. Any instantiation of a Singleton class yields - the exact same object, for the same given input, e.g.: - - >>> class MyClass(metaclass=Singleton): - pass - >>> a = MyClass(input='same') - >>> b = MyClass(input='diff') - >>> a is b - False - """ - - _instances = {} - -
-[docs] - def __call__(cls, *args, **kwargs): - keyarg = {"class": cls, "args": args, **kwargs} - keyarg["class"] = cls - keyarg["args"] = args - key = frozenset(keyarg.items()) - if key not in cls._instances: - # print(f'creating new {key}') - cls._instances[key] = super(InputSingletonMeta, cls).__call__( - *args, **kwargs - ) - return cls._instances[key]
- - - @classmethod - def __instancecheck__(mcs, instance): - if instance.__class__ is mcs: - return True - else: - return isinstance(instance.__class__, mcs)
- - - -
-[docs] -def singleton_meta_object(cls): - """Class decorator that transforms (and replaces) a class definition (which - must have a Singleton metaclass) with the actual singleton object. Ensures - that the resulting object can still be "instantiated" (i.e., called), - returning the same object. Also ensures the object can be pickled, is - hashable, and has the correct string representation (the name of the - singleton) - """ - assert isinstance(cls, SingletonMeta), ( - cls.__name__ + " must use Singleton metaclass" - ) - - def instance(self): - return cls - - cls.__call__ = instance - cls.__hash__ = lambda self: hash(cls) - cls.__repr__ = lambda self: cls.__name__ - cls.__reduce__ = lambda self: cls.__name__ - obj = cls() - obj.__name__ = cls.__name__ - return obj
- - - -
-[docs] -def flat2gen(alist): - for item in alist: - if isinstance(item, (list, tuple)): - for subitem in item: - yield subitem - else: - yield item
- - - -
-[docs] -def flatten(alist): - return list(flat2gen(alist))
- - - -# -# -# -# #TODO: Move to ray-util -# # FROM RAY INSPECT_SERIALIZE -# """A utility for debugging serialization issues.""" -# from typing import Any, Tuple, Set, Optional -# import inspect -# import ray.cloudpickle as cp -# import colorama -# from contextlib import contextmanager -# -# def recursive_python_module_line_counter(curpath=None): -# total_lines = 0 -# if curpath is None or not isinstance(curpath, str): -# curpath = os.path.realpath(os.curdir) -# -# print(f'Getting Python Lines In {curpath}') -# for dirpath, dirs, fils in os.walk(curpath): -# for fil in fils: -# if fil.endswith('.py'): -# filpath = os.path.join(dirpath,fil) -# with open(filpath,'r') as fp: -# lines = len(str(fp.read()).split('\n')) -# total_lines += lines -# print(f'{filpath}: {lines} / {total_lines}') -# -# print(f'Total Lines {total_lines}') -# - -# -# @contextmanager -# def _indent(printer): -# printer.level += 1 -# yield -# printer.level -= 1 -# -# -# class _Printer(LoggingMixin): -# -# log_level = logging.WARNING -# -# def __init__(self): -# self.level = 0 -# -# def indent(self): -# return _indent(self) -# -# def print(self, msg, warning=False): -# indent = " " * self.level -# if warning: -# self.warning(indent+msg) -# else: -# self.debug(indent+msg) -# -# -# _printer = _Printer() -# -# -# class FailureTuple: -# """Represents the serialization 'frame'. -# -# Attributes: -# obj: The object that fails serialization. -# name: The variable name of the object. -# parent: The object that references the `obj`. -# """ -# -# def __init__(self, obj: Any, name: str, parent: Any): -# self.obj = obj -# self.name = name -# self.parent = parent -# -# def __repr__(self): -# return f"FailTuple({self.name} [obj={self.obj}, parent={self.parent}])" -# -# -# def _inspect_func_serialization(base_obj, depth, parent, failure_set): -# """Adds the first-found non-serializable element to the failure_set.""" -# assert inspect.isfunction(base_obj) -# closure = inspect.getclosurevars(base_obj) -# found = False -# if closure.globals: -# _printer.print(f"Detected {len(closure.globals)} global variables. " -# "Checking serializability...") -# -# with _printer.indent(): -# for name, obj in closure.globals.items(): -# serializable, _ = inspect_serializability( -# obj, -# name=name, -# depth=depth - 1, -# _parent=parent, -# _failure_set=failure_set) -# found = found or not serializable -# if found: -# break -# -# if closure.nonlocals: -# _printer.print( -# f"Detected {len(closure.nonlocals)} nonlocal variables. " -# "Checking serializability...") -# with _printer.indent(): -# for name, obj in closure.nonlocals.items(): -# serializable, _ = inspect_serializability( -# obj, -# name=name, -# depth=depth - 1, -# _parent=parent, -# _failure_set=failure_set) -# found = found or not serializable -# if found: -# break -# if not found: -# _printer.print( -# f"WARNING: Did not find non-serializable object in {base_obj}. " -# "This may be an oversight.",warning=True) -# return found -# -# -# def _inspect_generic_serialization(base_obj, depth, parent, failure_set): -# """Adds the first-found non-serializable element to the failure_set.""" -# assert not inspect.isfunction(base_obj) -# functions = inspect.getmembers(base_obj, predicate=inspect.isfunction) -# found = False -# with _printer.indent(): -# for name, obj in functions: -# serializable, _ = inspect_serializability( -# obj, -# name=name, -# depth=depth - 1, -# _parent=parent, -# _failure_set=failure_set) -# found = found or not serializable -# if found: -# break -# -# with _printer.indent(): -# members = inspect.getmembers(base_obj) -# for name, obj in members: -# if name.startswith("__") and name.endswith( -# "__") or inspect.isbuiltin(obj): -# continue -# serializable, _ = inspect_serializability( -# obj, -# name=name, -# depth=depth - 1, -# _parent=parent, -# _failure_set=failure_set) -# found = found or not serializable -# if found: -# break -# if not found: -# _printer.print( -# f"WARNING: Did not find non-serializable object in {base_obj}. " -# "This may be an oversight.",warning=True) -# return found -# -# -# def inspect_serializability( -# base_obj: Any, -# name: Optional[str] = None, -# depth: int = 3, -# _parent: Optional[Any] = None, -# _failure_set: Optional[set] = None) -> Tuple[bool, Set[FailureTuple]]: -# """Identifies what objects are preventing serialization. -# -# Args: -# base_obj: Object to be serialized. -# name: Optional name of string. -# depth: Depth of the scope stack to walk through. Defaults to 3. -# -# Returns: -# bool: True if serializable. -# set[FailureTuple]: Set of unserializable objects. -# -# .. versionadded:: 1.1.0 -# -# """ -# colorama.init() -# top_level = False -# declaration = "" -# found = False -# if _failure_set is None: -# top_level = True -# _failure_set = set() -# declaration = f"Checking Serializability of {base_obj}" -# _printer.print("=" * min(len(declaration), 80)) -# _printer.print(declaration) -# _printer.print("=" * min(len(declaration), 80)) -# -# if name is None: -# name = str(base_obj) -# else: -# _printer.print(f"Serializing '{name}' {base_obj}...") -# try: -# cp.dumps(base_obj) -# return True, _failure_set -# except Exception as e: -# _printer.print(f"{colorama.Fore.RED}!!! FAIL{colorama.Fore.RESET} " -# f"serialization: {e}",warning=True) -# found = True -# try: -# if depth == 0: -# _failure_set.add(FailureTuple(base_obj, name, _parent)) -# # Some objects may not be hashable, so we skip adding this to the set. -# except Exception: -# pass -# -# if depth <= 0: -# return False, _failure_set -# -# # TODO: we only differentiate between 'function' and 'object' -# # but we should do a better job of diving into something -# # more specific like a Type, Object, etc. -# if inspect.isfunction(base_obj): -# _inspect_func_serialization( -# base_obj, depth=depth, parent=base_obj, failure_set=_failure_set) -# else: -# _inspect_generic_serialization( -# base_obj, depth=depth, parent=base_obj, failure_set=_failure_set) -# -# if not _failure_set: -# _failure_set.add(FailureTuple(base_obj, name, _parent)) -# -# if top_level: -# print("=" * min(len(declaration), 80)) -# if not _failure_set: -# _printer.print("Nothing failed the inspect_serialization test, though " -# "serialization did not succeed.",warning=True) -# else: -# fail_vars = f"\n\n\t{colorama.Style.BRIGHT}" + "\n".join( -# str(k) -# for k in _failure_set) + f"{colorama.Style.RESET_ALL}\n\n" -# _printer.print(f"Variable: {fail_vars}was found to be non-serializable. " -# "There may be multiple other undetected variables that were " -# "non-serializable. ",warning=True) -# _printer.print("Consider either removing the " -# "instantiation/imports of these variables or moving the " -# "instantiation into the scope of the function/class. ",warning=True) -# _printer.print("If you have any suggestions on how to improve " -# "this error message, please reach out to the " -# "Ray developers on github.com/ray-project/ray/issues/",warning=True) -# _printer.print("=" * min(len(declaration), 80)) -# return not found, _failure_set -# -# -# import pickle -# -# def pickle_trick(obj, max_depth=10): -# output = {} -# -# if max_depth <= 0: -# return output -# -# try: -# pickle.dumps(obj) -# except (pickle.PicklingError, TypeError) as e: -# failing_children = [] -# -# if isinstance(obj, (list,tuple)): -# for it in obj: -# result = pickle_trick(v, max_depth=max_depth - 1) -# if result: -# failing_children.append(result) -# -# elif hasattr(obj, "__dict__"): -# for k, v in obj.__dict__.items(): -# result = pickle_trick(v, max_depth=max_depth - 1) -# if result: -# failing_children.append(result) -# -# output = { -# "fail": obj, -# "err": e, -# "depth": max_depth, -# "failing_children": failing_children -# } -# -# return output -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/problem_context.html b/docs/_build/html/_modules/engforge/problem_context.html deleted file mode 100644 index 63b6e51..0000000 --- a/docs/_build/html/_modules/engforge/problem_context.html +++ /dev/null @@ -1,2034 +0,0 @@ - - - - - - engforge.problem_context — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.problem_context

-"""The ProblemExec provides a uniform set of options for managing the state of the system and its solvables, establishing the selection of combos or de/active attributes to Solvables. Once once created any further entracnces to ProblemExec will return the same instance until finally the last exit is called. 
-
-The ProblemExec class allows entrance to a its context to the same instance until finally the last exit is called. The first entrance to the context will create the instance, each subsequent entrance will return the same instance. The ProblemExec arguments are set the first time and remove keyword arguments from the input dictionary (passed as a dict ie stateful) to subsequent methods. 
-This isn't technically a singleton pattern, but it does provide a similar interface. Instead mutliple problem instances will be clones of the first instance, with the optional difference of input/output/event criteria. The first instance will be returned by each context entry, so for that reason it may always appear to have same instance, however each instance is unique in a recusive setting so it may record its own state and be reverted to its own state as per the options defined.
-
-#TODO: allow update of kwargs on re-entrance
-
-## Example:
-.. code-block:: python
-
-    #Application code (arguments passed in kw)
-    with ProblemExec(sys,combos='default',slv_vars'*',**kw) as pe:
-        pe._sys_refs #get the references and compiled problem
-        for i in range(10):
-            pe.solve_min(pe.Xref,pe.Yref,**other_args)
-            pe.set_checkpoint() #save the state of the system 
-            self.save_data()
-            
-
-    #Solver Module (can use without knowledge of the runtime system)
-    with ProblemExec(sys,{},Xnew=Xnext,ctx_fail_new=True) as pe:
-        #do revertable math on the state of the system without concern for the state of the system
-...
-
-# Combos Selection
-By default no arguments run will select all active items with combo="default". The `combos` argument can be used to select a specific set of combos, a outer select. From this set, the `ign_combos` and `only_combos` arguments can be used to ignore or select specific combos based on exclusion or inclusion respectively.
-
-# Parameter Name Selection
-The `slv_vars` argument can be used to select a specific set of solvables. From this set, the `ign_vars` and `only_vars` arguments can be used to ignore or select specific solvables based on exclusion or inclusion respectively. The `add_vars` argument can be used to add a specific set of solvables to the solver.
-
-# Active Mode Handiling
-The `only_active` argument can be used to select only active items. The `activate` and `deactivate` arguments can be used to activate or deactivate specific solvables.
-
-`add_obj` can be used to add an objective to the solver. 
-
-# Exit Mode Handling
-
-The ProblemExec supports the following exit mode handling vars:
-
-- `fail_revert`: Whether to raise an error if no solvables are selected. Default is True.
-- `revert_last`: Whether to revert the last change. Default is True.
-- `revert_every`: Whether to revert every change. Default is True.
-- `exit_on_failure`: Whether to exit on first failure. Default is True.
-
-These vars control the behavior of the ProblemExec when an error occurs or when no solvables are selected.
-
-"""
-
-#TODO: define the 
-
-from engforge.logging import LoggingMixin
-from engforge.system_reference import Ref
-from engforge.dataframe import DataframeMixin,pandas
-from engforge.solver_utils import *
-from engforge.env_var import EnvVariable
-import weakref
-
-from scipy.integrate import solve_ivp
-from collections import OrderedDict
-import numpy as np
-import pandas as pd
-import expiringdict
-import attr, attrs
-import datetime
-
-
-[docs] -class ProbLog(LoggingMixin): pass
- -log = ProbLog() - -import uuid - -#TODO: implement add_vars feature, ie it creates a solver variable, or activates one if it doesn't exist from in system.heirarchy.format -#TODO: define the dataframe / data storage feature - -min_opt = {'finite_diff_rel_step': 0.25,'maxiter':10000} -min_kw_dflt = {"tol":1e-10, "method": "SLSQP",'jac':'cs', 'hess':'cs','options':min_opt} - - -#The KW Defaults for Solver via kw_dict -# IMPORTANT:!!! these group parameter names by behavior, they are as important as the following class, add/remove variables with caution -#these choices affect how solver-items are selected and added to the solver -slv_dflt_options = dict(combos='default',ign_combos=None,only_combos=None,add_obj=True,slv_vars='*',add_vars=None,ign_vars=None,only_vars=None,only_active=True,activate=None,deactivate=None,dxdt=None,weights=None,both_match=True,obj=None) -#KW Defaults for the local context (what saves state for contexts / reverts ect) -dflt_parse_kw = dict(fail_revert=True,revert_last=True,revert_every=True,exit_on_failure=True, pre_exec=True,post_exec=True,opt_fail = True,level_name='top',post_callback=None,success_thresh=10,copy_system=False,run_solver=False,min_kw=None,save_mode='all',x_start = None,save_on_exit=False,enter_refresh=False) -#can be found on session._<parm> or session.<parm> -root_defined = dict( last_time = 0,time = 0,dt = 0,update_refs=None,post_update_refs=None,sys_refs=None,slv_kw=None,minimizer_kw=None,data = None,weights=None,dxdt = None,run_start = None,run_end = None,run_time = None,all_refs=None,num_refs=None,converged=None,comp_changed=False) -save_modes = ['vars','nums','all','prob'] -transfer_kw = ['system','_dxdt'] - -root_possible = list(root_defined.keys()) + list('_'+k for k in root_defined.keys()) - -#TODO: output options extend_dataframe=True,return_dataframe=True,condensed_dataframe=True,return_system=True,return_problem=True,return_df=True,return_data=True -#TODO: connect save_data() output to _data table. -#TODO: move dataframe mixin here, system should return a dataframe, and the problem should be able to save data to the dataframe, call this class Problem(). With default behavior it could seem like a normal dataframe is returned on problem.return(*state,exit,revert...) - -#Special exception classes handled in exit -
-[docs] -class IllegalArgument(Exception): - """an exception to exit the problem context as specified""" - pass
- - -
-[docs] -class ProblemExit(Exception): - """an exception to exit the problem context, without error""" - revert:bool - prob:"ProblemExec" - def __init__(self,prob:"ProblemExec",revert:bool=None): - self.revert = revert - self.prob = prob - - def __str__(self) -> str: - return f'ProblemExit[{self.prob}|rvt={self.revert}]'
- - -
-[docs] -class ProblemExitAtLevel(ProblemExit): - """an exception to exit the problem context, without error""" - level: str - def __init__(self,prob:"ProblemExec",level:str,revert=None): - assert level is not None, 'level must be defined' - assert isinstance(level,str), 'level must be a string' - self.prob = prob - self.level = level.lower() - self.revert = revert - - def __str__(self) -> str: - return f'ProblemExit[{self.prob}|lvl={self.level}|rvt={self.revert}]'
- - - -#TODO: determine when components are updated, and refresh the system references accordingly. -#TODO: Map attributes/properties by component key and then autofix refs! (this is a big one), no refresh required. Min work -
-[docs] -class ProblemExec: - """ - Represents the execution context for a problem in the system. The ProblemExec class provides a uniform set of options for managing the state of the system and its solvables, establishing the selection of combos or de/active attributes to Solvables. Once once created any further entracnces to ProblemExec will return the same instance until finally the last exit is called. - - ## params: - - _problem_id: uuid for subproblems, or True for top level, None means uninitialized - - """ - #TODO: convert this to a system based cache where there is a unique problem for each system instance. On subprobem copy a system and add o dictionary. - class_cache = None #ProblemExec is assigned below - - #this class, wide, dont redefine it - problems_dict = weakref.WeakValueDictionary() - - system: "System" - session: "ProblemExec" - session_id = None - - #problem state / per level - problem_id = None - entered: bool = False - exited: bool = False - - #solution control (point to singleton/subproblem via magic getattr) - _last_time: float = 0 - _time: float = 0 - _dt: float = 0 - _update_refs: dict - _post_update_refs: dict - _sys_refs: dict - _slv_kw: dict - _minimizer_kw: dict - _data: list - _weights: dict - x_start:dict - _dxdt:float - _run_start:float - _run_end:float - _run_time:float - _converged:bool - - - #Interior Context Options - enter_refresh: bool = False - save_on_exit: bool = False - save_mode: str = 'all' - level_name: str = None #target this context with the level name - level_number: int = 0 #TODO: keep track of level on the global context - pre_exec: bool = True - post_exec: bool = True - fail_revert: bool = True - revert_last: bool = True - revert_every: bool = True - exit_on_failure: bool = True - opt_fail: bool = True - raise_on_unknown: bool = True - copy_system: bool = False - success_thresh = 1E6 #if system has `success_thresh` it will be assigned to the context - post_callback: callable = None#callback that will be called on the system each time it is reverted, it should take args(system,current_problem_exec) - run_solver: bool = False #for transient #i would love this to be=true, but there's just too much possible variation in application to make it so without some kind of control / continuity strategy. Dynamics are natural responses anyways, so solver use should be an advanced case for now (MPC/Filtering/ect later) - - - - - def __getattr__(self, name): - '''This is a special method that is called when an attribute is not found in the usual places, like when interior contexts (anything not the root (session_id=True)) are created that dont have the top level's attributes. some attributes will look to the parent session''' - - #interior context lookup (when in active context, ie session exists) - if hasattr(self.class_cache,'session') and name in root_possible: - #revert to the parent session - if self.session_id != True and name.startswith('_'): - #self.info(f'get parent private {name}') - return getattr(self.class_cache.session,name) - - elif name in root_defined: - #self.info(f'get parent public {name}') - return getattr(self.class_cache.session,'_'+name) - - if name in root_defined: #public interface - #self.info(f'get root fallback {name}') - return self.__getattribute__('_'+name) - - # Default behaviour - return self.__getattribute__(name) - - - def __init__(self,system,kw_dict=None,Xnew=None,ctx_fail_new=False,**opts): - """ - Initializes the ProblemExec. - - #TODO: exit system should abide by update / signals options - - #TODO: provide data storage options for dataframe / table storage history/ record keeping (ss vs transient data) - - #TODO: create an option to copy the system and run operations on it, and options for applying the state from the optimized copy to the original system - - :param system: The system to be executed. - :param Xnew: The new state of the system to set wrt. reversion, optional - :param ctx_fail_new: Whether to raise an error if no execution context is available, use in utility methods ect. Default is False. - :param kw_dict: A keyword argument dictionary to be parsed for solver options, and removed from the outer context. Changes are made to this dictionary, so they are removed automatically from the outer context, and thus no longer passed to interior vars. - :param dxdt: The dynamics integration method. Default is None meaning that dynamic vars are not considered for minimization unless otherwise specified. Steady State can be specified by dxdt=0 all dynamic vars are considered as solver variables, with the constraint that their rate of change is zero. If a dictionary is passed then the dynamic vars are considered as solver variables, with the constraint that their rate of change is equal to the value in the dictionary, and all other unspecified rates are zero (steady). - - #### Solver Selection Options - :param combos: The selection of combos. Default is '*' (select all). - :param ign_combos: The combos to be ignored. - :param only_combos: The combos to be selected. - :param add_obj: Whether to add an objective to the solver. Default is True. - :param slv_vars: The selection of solvables. Default is '*' (select all). - :param add_vars: The solvables to be added to the solver. - :param ign_vars: The solvables to be ignored. - :param only_vars: The solvables to be selected. - :param only_active: Whether to select only active items. Default is True. - :param activate: The solvables to be activated. - :param deactivate: The solvables to be deactivated. - :param fail_revert: Whether to raise an error if no solvables are selected. Default is True. - :param revert_last: Whether to revert the last change. Default is True. - :param revert_every: Whether to revert every change. Default is True. - :param exit_on_failure: Whether to exit on failure, or continue on. Default is True. - """ - - self.dynamics_updated = False #it is known - - if kw_dict is None: - #kw_dict is stateful so you can mix system & context args together, and ensure context args are removed. in the case this is unused, we'll create an empty dict to avoid errors - kw_dict = {} - - #storage optoins - if opts.pop('persist',False) or kw_dict.pop('persist',False) : - self.persist_contexts() - - # temp solver storage - self.solver_hist = expiringdict.ExpiringDict(100, 60) - - if self.log_level < 5: - if hasattr(self.class_cache,'session'): - self.debug(f'subctx{self.level_number}| keywords: {kw_dict} and misc: {opts}') - else: - self.debug(f'context| keywords: {kw_dict} and misc: {opts}') - - #special cases for parsing - #parse the options to change behavior of the context - level_name = None - if opts and 'level_name' in opts: - level_name = opts.pop('level_name').lower() - if kw_dict and 'level_name' in kw_dict: - level_name = kw_dict.pop('level_name').lower() - - #solver min-args wrt defaults - min_kw = None - if opts and 'min_kw' in opts: - min_kw = kw_dict.pop('min_kw') - if kw_dict and 'min_kw' in kw_dict: - min_kw = kw_dict.pop('min_kw') - - - mkw =min_kw_dflt.copy() - if min_kw is None: - min_kw = mkw - else: - mkw.update(min_kw) - - self._minimizer_kw = mkw - - #Merge kwdict(stateful) and opts (current level) - #solver vars should be static for a problem and subcontexts, however the default vars can change. Subproblems allow for the solver vars to be changed on its creation. - opt_in,opt_out = {},{} - if opts: - #these go to the context instance optoins - opt_in = {k:v for k,v in opts.items() if k in dflt_parse_kw} - #these go to system establishment - opt_out = {k:v for k,v in opts.items() if k not in opt_in} - - if kw_dict is None: - kw_dict = {} - - else: - #these go to the context instance optoins - kw_in = {k:v for k,v in kw_dict.items() if k in dflt_parse_kw} - opt_in.update(kw_in) - kw_out = {k:v for k,v in kw_dict.items() if k not in opt_in} - #these go to system establishment - opt_out.update(kw_out) - #remove problem options from dict (otherwise passed along to system!) - for k in kw_in: - kw_dict.pop(k) - - - #Define the handiling of rate integrals - if 'dxdt' in opts and opts['dxdt'] is not None: - dxdt = opts.pop('dxdt') - if 'dxdt' in kw_dict and kw_dict['dxdt'] is not None: - dxdt = kw_dict.pop('dxdt') - else: - dxdt = None #by default dont consider dynamics - - if dxdt is not None and dxdt is not False: - if dxdt == 0: - pass - elif dxdt is True: - pass - elif isinstance(dxdt, dict): # dxdt is a dictionary - #provide a set of values or function to have the solver solve for - pass - else: - raise IllegalArgument(f'bad dxdt value {dxdt}') - - if hasattr(self.class_cache,'session'): - #mirror the state of session (exactly) - copy_vals = {k:v for k,v in self.class_cache.session.__dict__.items() if k in dflt_parse_kw or k in transfer_kw} - self.__dict__.update(copy_vals) - self._problem_id = int(uuid.uuid4()) - self.problems_dict[self._problem_id] = self #carry that weight - self.session_id = int(uuid.uuid4()) - - self.class_cache.session._prob_levels[self.level_name] = self - #error if the system is different (it shouldn't be!) - if self.system is not system: - raise IllegalArgument(f'somethings wrong! change of comp! {self.system} -> {system}') - - #modify things from the input - if level_name is None: - #your new id - self.level_name = 'ctx_'+str(int(self._problem_id))[0:15] - else: - self.level_name = level_name - - if opt_in: self.__dict__.update(opt_in) #level options ASAP - self.temp_state = Xnew #input state exception to this - if log.log_level < 5: - self.msg(f'setting execution context with {opt_in}| {opt_out}') - - #each state request to be reverted, then we need to store the state of each execution context overriding the outer context x_start - self.set_checkpoint() - - elif ctx_fail_new: - raise IllegalArgument(f'no execution context available') - - else: - #add the prob options to the context - self.__dict__.update(opt_in) - self._problem_id = True #this is the top level - self.problems_dict[self._problem_id] = self #carry that weight - self._prob_levels = {} - - self._dxdt = dxdt - self.reset_data() - - #supply the level name default as top if not set - if level_name is None: - self.level_name = 'top' - else: - self.level_name = level_name - - self.temp_state = Xnew - self.establish_system(system,kw_dict=kw_dict,**opt_out) - - #Finally we record where we started! - self.set_checkpoint() - - if log.log_level < 10: - self.info(f'new execution context for {system}| {opts} | {self._slv_kw}') - - elif log.log_level <= 3: - self.msg(f'new execution context for {system}| {self._slv_kw}') - - -
-[docs] - def reset_data(self): - '''reset the data storage''' - #the data storage!! - #TODO: add buffer type, or disk cache - self._data = {} #index:row_dict - self._index = 0# works for time or index
- - - -
-[docs] - def establish_system(self,system,kw_dict,**kwargs): - """caches the system references, and parses the system arguments""" - from engforge.solver import SolverMixin - from engforge.system import System - - if self.copy_system: - system = system.copy_config_at_state() - - #place me here after system has been modified - self.system = system - #cache as much as possible before running the problem (stitch in time saves 9 or whatever) - - - #pass args without creating singleton (yet) - self.session_id = int(uuid.uuid4()) - self._run_start = datetime.datetime.now() - self.name = system.name + '-' + str(self.session_id)[:8] - - if log.log_level < 5: - self.info(f'establish {system}| {kw_dict} {kwargs}') - - assert isinstance(self.system,SolverMixin), 'only solveable interfaces are supported for execution context' - self.system._last_context = self #set the last context to this one - - if hasattr(self.system,'success_thresh') and isinstance(self.system.success_thresh,(int,float)): - self.success_thresh = self.system.success_thresh - #Extract solver vars and set them on this object, they will be distributed to any new further execution context's via monkey patch above - in_kw = self.get_extra_kws(kwargs,slv_dflt_options,use_defaults=False) - self._slv_kw = self.get_extra_kws(kw_dict,slv_dflt_options,rmv=True) - self._slv_kw.update(in_kw) #update with input! - - self.refresh_references() - - #Get solver weights - self._weights = self._slv_kw.get('weights',None) - - #Grab inputs and set to system - for k,v in dflt_parse_kw.items(): - if k in self._slv_kw: - setattr(self,k,self._slv_kw[k]) - - if log.log_level < 5: - self.msg(f'established sys context: {self} {self._slv_kw}')
- - - @property - def sesh(self): - """caches the property for the session""" - if hasattr(self,'inst_sesh'): - return self.inst_sesh - sesh = self.get_sesh() - return sesh - -
-[docs] - def get_sesh(self,sesh=None): - """get the session""" - out = sesh - if not sesh: - if hasattr(self.class_cache,'session'): - out = self.class_cache.session - elif self._problem_id == True: - out = self - if out: - self.inst_sesh = out - return out
- - - #Update Methods -
-[docs] - def refresh_references(self,sesh=None): - """refresh the system references""" - sesh = self.sesh - - if self.log_level < 5: - self.warning(f'refreshing system references') - check_dynamics = sesh.check_dynamics - sesh._num_refs = sesh.system.system_references(numeric_only=True) - sesh._sys_refs = sesh.system.solver_vars(check_dynamics=check_dynamics,addable=sesh._num_refs,**sesh._slv_kw) - - sesh.update_methods(sesh=sesh) - sesh.min_refresh(sesh=sesh)
- - - - def update_methods(self,sesh=None): - #Get the update method refs - sesh = sesh if sesh is not None else self.sesh - - sesh._update_refs = sesh.system.collect_update_refs() - #TODO: find subsystems that are not-subsolvers and execute them - sesh._post_update_refs = sesh.system.collect_post_update_refs() - - sesh.update_dynamics(sesh=sesh) - - def update_dynamics(self,sesh=None): - #apply changes to the dynamics models - sesh = sesh if sesh is not None else self.sesh - if self.dynamic_comps: - self.info(f'update dynamics') - self.system.setup_global_dynamics() - - def min_refresh(self,sesh=None): - sesh = sesh if sesh is not None else self.sesh - - if self.log_level < 5: - self.info(f'min refresh') - - #final ref's after update - #after updates - sesh._all_refs = sesh.system.system_references(recache=True,check_config=False,ignore_none_comp=False) - - - #Problem Variable Definitions - sesh.Xref = sesh.all_problem_vars - sesh.Yref = sesh.sys_solver_objectives() - - cons = {} #TODO: parse additional constraints - sesh.constraints = sesh.sys_solver_constraints(cons) - - - @property - def check_dynamics(self): - sesh = self.sesh - return sesh._dxdt is not None and sesh._dxdt is not False - - #Context Manager Interface - def __enter__(self): - #Set the new state - - if self.entered: - #TODO: enable env-var STRICT MODE to fail on things like this - self.warning(f'context already entered!') - elif self.log_level < 10: - self.debug(f'enter context: {self.level_name} {self._dxdt} {self.dynamics_updated}') - - #Important managed updates / refs from Xnew input - self.activate_temp_state() - self.entered = True - - #signals / updates - if self.pre_exec: - self.pre_execute() - - #TODO: create a component-slot ref-update graph, and update the system references accordingly. - #TODO: map the signals to the system references, and update the system references accordingly. - #TODO: - #transients wont update components/ methods dynamically (or shouldn't) so we can just update the system references once and be done with it for other cases, but that is not necessary unless a component changes or a component has in general a unique reference update system (economics / component-iterators) - sesh = self.sesh - if not sesh._dxdt is True and self.enter_refresh: - sesh.update_methods(sesh=sesh) - sesh.min_refresh(sesh=sesh) - - elif sesh.dynamics_updated: - sesh.update_dynamics(sesh=sesh) - - #Check for existing session - if sesh not in [None,self]: - self.msg(f'entering existing execution context') - if not isinstance(self,self.class_cache): - self.warning(f'change of execution class!') - #global level number - - self.class_cache.level_number += 1 - self.class_cache.session._prob_levels[self.level_name] = self - - return self.class_cache.session - - #return New - self.class_cache.session = self - self.class_cache.level_number = 0 - - if self.log_level < 10: - refs = {k:v for k,v in self.sesh._sys_refs.get('attrs',{}).items() if v} - self.debug(f'creating execution context for {self.system}| {self._slv_kw}| {refs}') - - return self - - def __exit__(self, exc_type, exc_value, traceback): - #define exit action, to handle the error here return True. Otherwise error propigates up to top level - self.exited = True - if self.log_level < 10: - self.debug(f'exit action {exc_type} {exc_value}') - - #Last opprotunity to update the system at tsate - if self.post_exec: - #a component cutsom callback + signals - self.post_execute() - - if self.post_callback: - #a context custom callback - self.post_callback() - - #save state to dataframe - if self.save_on_exit: - self.save_data() - - #sesh = self.sesh #this should be here - #if self.level_name in sesh._prob_levels: - # sesh._prob_levels.pop(self.level_name) - - #Exit Scenerio (boolean return important for context manager exit handling in heirarchy) - if isinstance(exc_value,ProblemExit): - if self.log_level < 7: - self.debug(f'exit action {exc_type}| {exc_value.__dict__}') - - #first things first - if exc_value.revert: - self.revert_to_start() - if self.pre_exec: - self.pre_execute() - - lvl_match = False - #Decide our exit conditon (if we should exit) - if isinstance(exc_value,ProblemExitAtLevel): - #should we stop? - lvl_match = exc_value.level == self.level_name - if lvl_match: - if self.log_level <= 11: - self.debug(f'exit at level {exc_value}') - ext = True - else: - if self.log_level <= 5: - self.msg(f'exit not at level {exc_value}') - ext = False - - #Check if we missed a level name and its the top level, if so then we raise a real error! - #always exit with level_name='top' at outer context - if not ext and self.class_cache.session is self and exc_value.level=='top': - if self.log_level <= 11: - self.debug(f'exit at top') - - ext = True #top override - - elif self.class_cache.session is self and not ext: - #never ever leave the top level without deleting the session - self.class_cache.level_number = 0 - if type(self.problems_dict) is not dict: - self.problems_dict.pop(self._problem_id,None) - del self.class_cache.session - raise KeyError(f'cant exit to level! {exc_value.level} not found!!') - - else: - if self.log_level <= 18: - self.info(f'problem exit revert={exc_value.revert}') - - ext = True #basic exit is one level up - - self.clean_context() - if type(self.problems_dict) is not dict: - self.problems_dict.pop(self._problem_id,None) - return ext - - #default exit scenerios - elif exc_type is not None: - ext = self.error_action(exc_value) - else: - ext = self.exit_action() - - self.clean_context() - if type(self.problems_dict) is not dict: - self.problems_dict.pop(self._problem_id,None) - return ext - -
-[docs] - def debug_levels(self): - """debug the levels of the context""" - if hasattr(self.class_cache,'session'): - for k,v in self.class_cache.session._prob_levels.items(): - self.info(f'level: {k} | {v} | {v.x_start}') - - else: - raise IllegalArgument(f'no session available')
- - - #Multi Context Exiting: -
-[docs] - def persist_contexts(self): - """convert all contexts to a new storage format""" - self.info(f'persisting contexts!') - current_problems = self.problems_dict - ProblemExec.problems_dict = {} - for k,v in current_problems.items(): - self.problems_dict[k] = v #you will go on!
- - -
-[docs] - def discard_contexts(self): - """discard all contexts""" - current_problems = self.problems_dict - ProblemExec.problems_dict = weakref.WeakValueDictionary() - for k,v in current_problems.items(): - ProblemExec.problems_dict[k] = v #you will go on!
- - -
-[docs] - def reset_contexts(self,fail_if_discardmode=True): - """reset all contexts to a new storage format""" - if isinstance(self.problems_dict,dict): - ProblemExec.problems_dict = {} - elif fail_if_discardmode: - raise IllegalArgument(f'cant reset contexts! {self.problems_dict} while not in persistance mode')
- - - def exit_with_state(self): - raise ProblemExit(self,revert=False) - - def exit_and_revert(self): - raise ProblemExit(self,revert=True) - - def exit_to_level(self,level:str,revert=False): - raise ProblemExitAtLevel(self,level=level,revert=revert) - -
-[docs] - def exit_action(self): - """handles the exit action wrt system""" - EOL =(self.class_cache.session is self or self.level_name == 'top') - if self.revert_last and EOL: - if self.log_level <= 8: - self.debug(f'revert last!') - self.debug(f'revert to{self.x_start}') - self.revert_to_start() - - #run execute - if self.pre_exec: - self.pre_execute() - - elif self.revert_every: - if self.log_level <= 8: - self.debug(f'revert to{self.x_start}') - self.revert_to_start() - - #run execute - if self.pre_exec: - self.pre_execute() - - #TODO: add exit on success option - return True #continue as normal
- - -
-[docs] - def error_action(self,error): - """handles the error action wrt to the problem""" - if self.log_level <= 11: - self.debug(f' with input: {self.kwargs}') - - if self.fail_revert: - self.revert_to_start() - - if self.exit_on_failure: - self.error(error,f'error in execution context') - return False #send me up - else: - self.warning(f'error in execution context: {error}') - - return True #our problem will go on
- - - -
-[docs] - def save_data(self,index=None,force=False,**add_data): - """save data to the context""" - - sesh = self.sesh - if not self.exited and self.post_exec: - #a context custom callback - sesh.post_execute() - - if force or not sesh.data or sesh.system.anything_changed: - out = sesh.output_state - if index is None and sesh._dxdt == True: #integration - index = sesh._time - elif index is None: - index = sesh._index - - if add_data: out.update(add_data) - if sesh._dxdt==True: out['time'] = sesh._time - out['index'] = index - sesh._data[index] = out - #if we are integrating, then we dont increment the index - if sesh._dxdt != True: - sesh._index += 1 - - #reset the data for changed items - sesh.system._anything_changed = False - self.debug(f'data saved = {index}') - - elif self.log_level < 15: - self.warning(f'no data saved, nothing changed')
- - - - def clean_context(self): - if hasattr(self.class_cache,'session') and self.class_cache.session is self: - if self.log_level <= 8: - self.debug(f'closing execution session') - self.class_cache.level_number = 0 - del self.class_cache.session - elif hasattr(self.class_cache,'session'): - #global level number - self.class_cache.level_number -= 1 - - #if we are the top level, then we mark the session runtime/messages - if self.session_id == True: - self._run_end = datetime.datetime.now() - self._run_time = self._run_end - self._run_start - if self.log_level <= 10: - self.debug(f"EXIT[{self.system.identity}] run time: {self._run_time}",lvl=5) - - #time context - def set_time(self,time,dt): - self._last_time = lt = self._time - self._time = time - dt_calc = time - lt - self._dt = dt if dt_calc <= 0 else dt_calc - #self.system.set_time(time) #system times / subcomponents too - - - def integrate(self,endtime,dt=0.001,max_step_dt=0.01,X0=None,**kw): - #Unpack Transient Problem - sesh = self.sesh - intl_refs = sesh.integrator_var_refs #order forms problem basis - sesh.prv_ingtegral_refs = intl_refs #for rate function - refs = sesh._sys_refs - system = sesh.system - - min_kw = sesh._minimizer_kw - if min_kw is None: min_kw = {} - - if dt > max_step_dt: - self.warning(f'dt {dt} > max_step_dt {max_step_dt}!') - dt = max_step_dt - - if self.log_level < 15: - self.info(f'simulating {system},{sesh}| int:{intl_refs} | refs: {refs}' ) - - if not intl_refs: - raise Exception(f'no transient parameters found') - - x_cur = {k: v.value(sesh.system,sesh) for k, v in intl_refs.items()} - - if self.log_level < 10: - self.debug(f'initial state {X0} {intl_refs}| {refs}') - - if X0 is None: - # get current - X0 = x_cur - #add any missing solver vars existing in the system - if set(X0) != set(x_cur): - X0 = x_cur.update(X0) - - #this will fail if X0 doesn't have solver vars! - X0 = np.array([X0[p] for p in intl_refs]) - Time = np.arange(sesh.system.time, endtime + dt, dt) - - rate_kw = {'min_kw':min_kw,'dt':dt} - - #get the probelem variables - Xss = sesh.problem_opt_vars - Yobj = sesh.final_objectives - - #run the simulation from the current state to the endtime - ans = solve_ivp(sesh.integral_rate, [sesh.system.time, endtime], X0, method="RK45", t_eval=Time, max_step=max_step_dt,args=(dt,Xss,Yobj),**kw) - - print(ans) - - return ans - -
-[docs] - def integral_rate(self,t, x, dt,Xss=None,Yobj=None, **kw): - """provides the dynamic rate of the system at time t, and state x""" - sesh = self.sesh - intl_refs = sesh.prv_ingtegral_refs #cached in self.integral() - refs = sesh._sys_refs - system = sesh.system - - out = {p: np.nan for p in intl_refs} - Xin = {p: x[i] for i, p in enumerate(intl_refs)} - - if self.log_level < 10: - self.info(f'sim_iter {t} {x} {Xin}') - - with ProblemExec(system,level_name='tr_slvr',Xnew=Xin,revert_last=False,revert_every=False,dxdt=True) as pbx: - # test for record time - - self.set_time(t,dt) - - #save data at the start - pbx.save_data() #TODO: check_enable/ rate_check - - #ad hoc time integration - for name, trdct in pbx.integrators.items(): - if self.log_level <=10: - - self.info(f'updating {trdct.var}|{trdct.var_ref.value(self.system,self)}<-{trdct.rate}|{trdct.current_rate}|{trdct.rate_ref.value(self.system,self)}') - print( getattr(self.system,trdct.var,None)) - print( getattr(self.system,trdct.rate,None)) - - out[trdct.var] = trdct.current_rate - - # dynamics - for compnm, compdict in pbx.dynamic_comps.items(): - comp = compdict#["comp"] - if not comp.dynamic_state_vars and not comp.dynamic_input_vars: - continue #nothing to do... - - Xds = np.array([r.value() for r in comp.Xt_ref.values()]) - Uds = np.array([r.value() for r in comp.Ut_ref.values()]) - # time updated in step - #system.info(f'comp {comp} {compnm} {Xds} {Uds}') - dxdt = comp.step(t, dt, Xds, Uds, True) - - for i, (p, ref) in enumerate(comp.Xt_ref.items()): - out[(f"{compnm}." if compnm else "") + p] = dxdt[i] - - #solvers - if self.run_solver and Xss and Yobj and self.solveable: - # TODO: add in any transient - with ProblemExec(system,level_name='ss_slvr',revert_last=False,revert_every=False,dxdt=True) as pbx: - - ss_out = pbx.solve_min(Xss, Yobj, **self._minimizer_kw) - if ss_out['ans'].success: - if self.log_level <= 9: - self.info(f'exiting solver {t} {ss_out["Xans"]} {ss_out["Xstart"]}') - pbx.set_ref_values(ss_out['Xans']) - pbx.exit_to_level('ss_slvr',False) - else: - self.warning(f'solver failed to converge {ss_out["ans"].message} {ss_out["Xans"]} {ss_out["X0"]}') - if pbx.opt_fail: - pbx.exit_to_level('sim',pbx.fail_revert) - else: - pbx.exit_to_level('ss_slvr',pbx.fail_revert) - - V_dxdt = np.array([out[p] for p in intl_refs]) - if self.log_level <= 10: - self.info(f'exiting transient {t} {V_dxdt} {Xin}') - pbx.exit_to_level('tr_slvr',False) - - if any( np.isnan(V_dxdt) ): - self.warning(f'solver got infeasible: {V_dxdt}|{Xin}') - pbx.exit_and_revert() - #TODO: handle this better, seems to cause a warning - raise ValueError(f'infeasible! nan result {V_dxdt} {out} {Xin}') - - elif self.log_level <= 5: - self.debug(f'rate {self._dt} {t:5.3f}| {x}<-{V_dxdt} {Xin}') - - return V_dxdt
- - -
-[docs] - def solve_min( - self,Xref=None,Yref=None,output=None,**kw - ): - """ - Solve the minimization problem using the given vars and constraints. And sets the system state to the solution depending on input of the following: - - Solve the root problem using the given vars. - :param Xref: The reference input values. - :param Yref: The reference objective values to minimize. - :param output: The output dictionary to store the results. (default: None) - :param fail: Flag indicating whether to raise an exception if the solver doesn't converge. (default: True) - :param kw: Additional keyword arguments. - :return: The output dictionary containing the results. - """ - sesh = self.sesh - if Xref is None: - Xref = sesh.Xref - - if Yref is None: - Yref = sesh.final_objectives - - thresh = kw.pop("thresh", sesh.success_thresh) - - #TODO: options for solver detail in response - dflt = { - "Xstart": Ref.refset_get(Xref,sys=sesh.system,prob=sesh), - "Ystart": Ref.refset_get(Yref,sys=sesh.system,prob=sesh), - "Xans": None, - "success": None, - "Xans":None, - "Yobj":None, - "Ycon":None, - "ans": None, - "weights":sesh._weights, - "constraints":sesh.constraints, - } - - if output: - dflt.update(output) - output = dflt - else: - output = dflt - - if len(Xref) == 0: - self.info(f'no variables found for solver: {kw}') - #None for `ans` will not trigger optimization failure - return output - - #override constraints input - kw.update(sesh.constraints) - - if len(kw['bounds']) != len(Xref): - raise ValueError(f"bounds {len(sesh.constraints['bounds'])} != Xref {len(Xref)}") - - if self.log_level < 10: - self.debug(f"minimize {Xref} {Yref} {kw}") - - if sesh._weights is not None: - kw['weights'] = sesh._weights - - sesh._ans = refmin_solve(sesh.system,self,Xref, Yref, **kw) - output["ans"] = sesh._ans - - sesh.handle_solution(sesh._ans,Xref,Yref,output) - - return output
- - - def handle_solution(self,answer,Xref,Yref,output): - #TODO: move exit condition handiling somewhere else, reduce cross over from process_ans - sesh = self.sesh - - thresh = sesh.success_thresh - vars = list(Xref) - - #Output Results - Xa = {p: answer.x[i] for i, p in enumerate(vars)} - output["Xans"] = Xa - Ref.refset_input(Xref,Xa) - - Yout = {p: Yref[p].value(sesh.system,self) for p in Yref} - output["Yobj"] = Yout - - Ycon = {} - if sesh.constraints['constraints']: - x_in = answer.x - for c,k in zip(sesh.constraints['constraints'],sesh.constraints['info']): - cv = c['fun'](x_in,self,{}) - Ycon[k] = cv - output['Ycon'] = Ycon - - de = answer.fun - if answer.success and de < thresh if thresh else True: - sesh.system._converged = True #TODO: put in context - output["success"] = True - - elif answer.success: - # out of threshold condition - self.warning( - f"solver didnt meet threshold: {de} <? {thresh} ! {answer.x} -> residual: {answer.fun}" - ) - sesh.system._converged = False - output["success"] = False # only false with threshold - - else: - sesh.system._converged = False - if self.opt_fail: - raise Exception(f"solver didnt converge: {answer}") - else: - self.warning(f"solver didnt converge: {answer}") - output["success"] = False - - return output - - #Solver Parsing Methods - -
-[docs] - def sys_solver_objectives(self,**kw): - """gathers variables from solver vars, and attempts to locate any input_vars to add as well. use exclude_vars to eliminate a variable from the solver - """ - sys_refs = self.sesh._sys_refs - - #Convert result per kind of objective (min/max ect) - objs = sys_refs.get('attrs',{}).get('solver.obj',{}) - return {k:v for k,v in objs.items()}
- - -
-[docs] - def pos_obj(self,ref): - """converts an objective to a positive value""" - def f(sys,prob): - return (1+ref.value(sys,prob)**2) - - return ref.copy(key=f)
- - - @property - def final_objectives(self)->dict: - """returns the final objective of the system""" - sesh = self.sesh - Yobj = sesh.problem_objs - Yeq = sesh.problem_eq - Xss = sesh.problem_opt_vars - if Yobj: - return Yobj #here is your application objective, sir - - #now make up an objective - elif not Yobj and Yeq: - #TODO: handle case of Yineq == None with root solver - self.info(f'making Yobj from Yeq: {Yeq}') - Yobj = { k: self.pos_obj(v) for k,v in Yeq.items() } - - elif not Yobj: - #minimize the product of all vars, so the smallest value is the best that satisfies all constraints - if self.session_id == True: - self.info(f'making Yobj from X: {Xss}') - def dflt(sys,prob)->float: - out = 1 - for k,v in prob.problem_opt_vars.items(): - val = v.value(sys,prob) - # The code snippet is calculating the linear norm of positive - # values greater than 1 by adding the square root of the sum - # of 1 and the square of the value to the variable `out`. This - # operation is intended to apply a large penalty to positive - # values greater than 1. - out = out + (1+val**2)**0.5 #linear norm of positive values > 1 should be very large penalty - return 1 - - Yobj = {'smallness': Ref(sesh.system, dflt)} - return Yobj #our residual based objective - -
-[docs] - def sys_solver_constraints(self,add_con=None,combo_filter=True, **kw): - """formatted as arguments for the solver - """ - from engforge.solver_utils import create_constraint - sesh = self.sesh - Xrefs = sesh.Xref - - system = sesh.system - sys_refs = sesh._sys_refs - all_refz = sesh.ref_attrs - - extra_kw = self.kwargs - - #TODO: move to kwarg parsing on setup - deactivated = ext_str_list(extra_kw,'deactivate',[]) if 'deactivate' in extra_kw and extra_kw['deactivate'] else [] - activated = ext_str_list(extra_kw,'activate',[]) if 'activate' in extra_kw and extra_kw['activate'] else [] - - slv_inst = sys_refs.get('type',{}).get('solver',{}) - trv_inst = {v.var:v for v in sys_refs.get('type',{}).get('time',{}).values()} - sys_refs = sys_refs.get('attrs',{}) - - if add_con is None: - add_con = {} - - - #The official definition of X var order - Nstates = len(Xrefs) - Xvars = list(Xrefs) #get names of solvers + dynamics - - # constraints lookup - bnd_list = [[None, None]] * Nstates - con_list = [] - con_info = [] #names of constraints - constraints = {"constraints": con_list, "bounds": bnd_list,"info":con_info} - - - if isinstance(add_con, dict): - # Remove None Values - nones = {k for k, v in add_con.items() if v is None} - for ki in nones: - constraints.pop(ki, None) - assert all( - [callable(v) for k, v in add_con.items()] - ), f"all custom input for constraints must be callable with X as argument" - constraints["constraints"].extend( - [v for k, v in add_con.items() if v is not None] - ) - - if add_con is False: - constraints = {} #youre free! - return constraints - - # Add Constraints - ex_arg = {"con_args": (),**kw} - - #Variable limit (function -> ineq, numeric -> bounds) - #TODO: dynamic limits - for slvr, ref in sesh.problem_opt_vars.items(): - #TODO: solution to this is to combine the independent variables into one, but allow multiple dependent objectives for constraints/objectives - assert not all((slvr in slv_inst,slvr in trv_inst)), f'solver and integrator share parameter {slvr} ' - if slvr in slv_inst: - slv = slv_inst[slvr] - slv_var = True #mark a static varible - elif slvr in trv_inst: - slv = trv_inst[slvr] - slv_var = False #a dynamic variable - else: - self.warning(f'no solver instance for {slvr} ') - continue - - slv_constraints = slv.constraints - if log.log_level < 7: - self.debug(f'constraints {slvr} {slv_constraints}') - - for ctype in slv_constraints: - cval = ctype['value'] - kind = ctype['type'] - var = ctype['var'] - if log.log_level < 3: - self.msg(f'const: {slvr} {ctype}') - - if cval is not None and slvr in Xvars: - - #Check for combos & activation - combos = None - if 'combos' in ctype: - combos = ctype['combos'] - combo_var = ctype['combo_var'] - active = ctype.get('active',True) - in_activate = any([arg_var_compare(combo_var,v) for v in activated]) if activated else False - in_deactivate = any([arg_var_compare(combo_var,v) for v in deactivated]) if deactivated else False - - if log.log_level <= 5: - self.debug(f'filter combo: {ctype}=?{extra_kw}') - - #Check active or activated - if not active and not activated: - if log.log_level < 3: - self.msg(f'skip con: inactive {var} {slvr} {ctype}') - continue - - elif not active and not in_activate: - if log.log_level < 3: - self.msg(f'skip con: inactive {var} {slvr} {ctype}') - continue - - elif active and in_deactivate: - if log.log_level < 3: - self.msg(f'skip con: deactivated {var} {slvr} ') - continue - - if combos and combo_filter: - filt = filter_combos(combo_var,slv, extra_kw,combos) - if not filt: - if log.log_level < 5: - self.debug(f'filtering constraint={filt} {var} |{combos}') - continue - - if log.log_level < 10: - self.debug(f'adding var constraint {var,slvr,ctype,combos}') - - #get the index of the variable - x_inx = Xvars.index(slvr) - - #lookup rates for overlapping dynamic variables - rate_val = None - if sesh._dxdt is not None: - if isinstance(sesh._dxdt,dict) and not slv_var: - rate_val = sesh._dxdt.get(slvr,0) - elif not slv_var: - rate_val = 0 - - #add the dynamic parameters when configured - if not slv_var and rate_val is not None: - #print(f'adding dynamic constraint {slvr} {rate_val}') - #if kind in ('min','max') and slvr in Xvars: - varref = Xrefs[slvr] - #varref = slv.rate_ref - #Ref Case - ccst = ref_to_val_constraint(system,system.last_context,Xrefs,varref,kind,rate_val,**kw) - #con_list.append(ccst) - con_info.append(f'dxdt_{varref.comp.classname}.{slvr}_{kind}_{cval}') - con_list.append(ccst) - - # elif slv_var: - elif slv_var: - #establish simple bounds w/ solver - if ( - kind in ("min", "max") - and slvr in Xvars - and isinstance(cval, (int, float)) - ): - minv, maxv = bnd_list[x_inx] - bnd_list[x_inx] = [ - cval if kind == "min" else minv, - cval if kind == "max" else maxv, - ] - - #add the bias of cval to the objective function - elif kind in ('min','max') and slvr in Xvars: - varref = Xrefs[slvr] - #Ref Case - ccst = ref_to_val_constraint(system,system.last_context,Xrefs,varref,kind,cval,**kw) - con_info.append(f'val_{ref.comp.classname}_{kind}_{slvr}') - con_list.append(ccst) - - else: - self.warning(f"bad constraint: {cval} {kind} {slv_var}|{slvr}") - - # Add Constraints - for slvr, ref in self.problem_ineq.items(): - slv = slv_inst[slvr] - slv_constraints = slv.constraints - parent= self.get_parent_key(slvr,look_back_num=2) #get the parent comp - for ctype in slv_constraints: - cval = ctype['value'] - kind = ctype['type'] - if cval is not None: - name = f'ineq_{parent}{ref.comp.classname}.{slvr}_{kind}_{cval}' - if log.log_level < 5: - self.debug(f'filtering constraint {slvr} |{name}') - con_info.append(name) - con_list.append( - create_constraint( - system,Xrefs, 'ineq', cval, **kw - ) - ) - - for slvr, ref in self.problem_eq.items(): - parent= self.get_parent_key(slvr,look_back_num=2) #get the parent comp - if slvr in slv_inst and slvr in all_refz.get('solver.eq',{}): - slv = slv_inst[slvr] - slv_constraints = slv.constraints - - for ctype in slv_constraints: - cval = ctype['value'] - kind = ctype['type'] - if cval is not None: - name = f'eq_{parent}{ref.comp.classname}.{slvr}_{kind}_{cval}' - if log.log_level < 5: - self.debug(f'filtering constraint {slvr} |{name}') - con_info.append(name) - con_info.append(f'eq_{parent}{ref.comp.classname}.{slvr}_{kind}_{cval}') - con_list.append( - create_constraint( - system,Xrefs, 'eq', cval, **kw - ) - ) - else: - #This must be a dynamic rate - self.debug(f'dynamic rate eq {slvr} ') - con_info.append(f'eq_{parent}{ref.comp.classname}.{slvr}_rate') - con_list.append( - create_constraint( - system,Xrefs, 'eq', ref, **kw - ) - ) - - - - return constraints
- - - # General method to distribute input to internal components -
-[docs] - @classmethod - def parse_default(self,key,defaults,input_dict,rmv=False,empty_str=True): - """splits strings or lists and returns a list of options for the key, if nothing found returns None if fail set to True raises an exception, otherwise returns the default value""" - if key in input_dict: - #kwargs will no longer have key! - if not rmv: - option = input_dict.get(key) - else: - option = input_dict.pop(key) - #print(f'removing option {key} {option}') - if option is None: - return option,False - - elif isinstance(option,(int,float,bool)): - return option,False - - elif isinstance(option,str): - if not empty_str and not option: - return None,False - - option = option.split(',') - - return option,False - - elif key in defaults: - return defaults[key],True - - return None,None
- - - -
-[docs] - @classmethod - def get_extra_kws(cls,kwargs,_check_keys:dict=slv_dflt_options,rmv=False,use_defaults=True): - """extracts the combo input from the kwargs""" - # extract combo input - if not _check_keys: - return {} - _check_keys = _check_keys.copy() - #TODO: allow extended check_keys / defaults to be passed in, now every value in check_keys has a default - cur_in = kwargs - output = {} - for p,dflt in _check_keys.items(): - val,is_dflt = cls.parse_default(p,_check_keys,cur_in,rmv=rmv) - if not is_dflt: - output[p] = val - elif use_defaults: - output[p] = val - if rmv: - cur_in.pop(p,None) - - #copy from data - filtr = dict(list(filter(lambda kv: kv[1] is not None or kv[0] in _check_keys, output.items()))) - #print(f'got {combos} -> {comboos} from {kwargs} with {_check_keys}') - return filtr
- - - #State Interfaces - @property - def record_state(self)->dict: - """records the state of the system using session""" - #refs = self.all_variable_refs - sesh = self.sesh - refs = sesh.all_comps_and_vars #no need for properties - return Ref.refset_get(refs,sys=sesh.system,prob=self) - - @property - def output_state(self)->dict: - """records the state of the system""" - sesh = self.sesh - #TODO: add system_properties to num_refs / all_system_refs ect. - if 'nums' == sesh.save_mode: - refs = sesh.num_refs - elif 'all' == sesh.save_mode: - refs = sesh.all_system_references - elif 'vars' == sesh.save_mode: - refs = self.all_variable_refs - elif 'prob' == sesh.save_mode: - raise NotImplementedError(f'problem save mode not implemented') - else: - raise KeyError(f'unknown save mode {sesh.save_mode}, not in {save_modes}') - - out = Ref.refset_get(refs,sys=sesh.system,prob=self) - #Integration - if sesh._dxdt == True: - out['time'] = sesh._time - - return out - - -
-[docs] - def get_ref_values(self,refs=None): - """returns the values of the refs""" - sesh = self.sesh - if refs is None: - refs = sesh.all_system_references - return Ref.refset_get(refs,sys=self.system,prob=self)
- - -
-[docs] - def set_ref_values(self,values,refs=None): - """returns the values of the refs""" - #TODO: add checks for the refs - sesh = self.sesh - if refs is None: - refs = sesh.all_comps_and_vars - return Ref.refset_input(refs,values)
- - -
-[docs] - def set_checkpoint(self): - """sets the checkpoint""" - self.x_start = self.record_state - if log.log_level <= 7: - self.debug(f'set checkpoint: {list(self.x_start.values())}')
- - - def revert_to_start(self): - sesh = self.sesh - if log.log_level < 5: - xs = list(self.x_start.values()) - rs = list(self.record_state.values()) - self.debug(f'reverting to start: {xs} -> {rs}') - #TODO: STRICT MODE Fail for refset_input - Ref.refset_input(sesh.all_comps_and_vars,self.x_start,fail=False) - - def activate_temp_state(self,new_state=None): - #TODO: determine when components change, and update refs accordingly! - sesh = self.sesh - #TODO: STRICT MODE Fail for refset_input - if new_state: - if self.log_level < 3: self.debug(f'new-state: {self.temp_state}') - Ref.refset_input(sesh.all_comps_and_vars,new_state,fail=False) - elif self.temp_state: - if self.log_level < 3: self.debug(f'act-state: {self.temp_state}') - Ref.refset_input(sesh.all_comps_and_vars,self.temp_state,fail=False) - elif self.log_level < 3: - self.debug(f'no-state: {new_state}') - - #initial establishment costs / ect - if sesh.pre_exec: - sesh.pre_execute() - - - #System Events -
-[docs] - def apply_pre_signals(self): - """applies all pre signals""" - msg_lvl = self.log_level <= 2 - if self.log_level < 5: - self.msg(f"applying pre signals",lvl=6) - for signame, sig in self.sesh.signals.items(): - if sig.mode == "pre" or sig.mode == "both": - if msg_lvl: - self.msg(f"applying post signals: {signame}",lvl=3) - sig.apply()
- - -
-[docs] - def apply_post_signals(self): - """applies all post signals""" - msg_lvl = self.log_level <= 2 - if self.log_level < 5: - self.msg(f"applying post signals",lvl=6) - for signame, sig in self.sesh.signals.items(): - if sig.mode == "post" or sig.mode == "both": - if msg_lvl: - self.msg(f"applying post signals: {signame}",lvl=3) - sig.apply()
- - -
-[docs] - def update_system(self,*args,**kwargs): - """updates the system""" - for ukey,uref in self.sesh._update_refs.items(): - self.debug(f'context updating {ukey}') - uref.value(*args,**kwargs)
- - -
-[docs] - def post_update_system(self,*args,**kwargs): - """updates the system""" - for ukey,uref in self.sesh._post_update_refs.items(): - self.debug(f'context post updating {ukey}') - uref.value(*args,**kwargs)
- - -
-[docs] - def pre_execute(self,*args,**kwargs): - """Updates the pre/both signals after the solver has been executed. This is useful for updating the system state after the solver has been executed.""" - if log.log_level < 5: - self.msg(f"pre execute") - - sesh = self.sesh - sesh.apply_pre_signals() - sesh.update_system(*args,**kwargs)
- - - -
-[docs] - def post_execute(self,*args,**kwargs): - """Updates the post/both signals after the solver has been executed. This is useful for updating the system state after the solver has been executed.""" - if log.log_level < 5: - self.msg(f"post execute") - - sesh = self.sesh - sesh.apply_post_signals() - sesh.post_update_system(*args,**kwargs)
- - - - - - #Logging to class logger - @property - def identity(self): - return f'PROB|{str(self.session_id)[0:5]}' - - @property - def log_level(self): - return log.log_level - - def msg(self,msg,*a,**kw): - if log.log_level < 5: - log.msg(f'{self.identity}|[{self.level_number}-{self.level_name}] {msg}',*a,**kw) - - def debug(self,msg,*a,**kw): - if log.log_level <= 15: - log.debug(f'{self.identity}|[{self.level_number}-{self.level_name}] {msg}',*a,**kw) - - def warning(self,msg,*a,**kw): - log.warning(f'{self.identity}|[{self.level_number}-{self.level_name}] {msg}',*a,**kw) - - def info(self,msg,*a,**kw): - log.info(f'{self.identity}|[{self.level_number}-{self.level_name}] {msg}',*a,**kw) - - def error(self,error,msg,*a,**kw): - log.error(error,f'{self.identity}|[{self.level_number}-{self.level_name}] {msg}',*a,**kw) - - def critical(self,msg,*a,**kw): - log.critical(f'{self.identity}|[{self.level_number}-{self.level_name}] {msg}',*a,**kw) - - #Safe Access Methods - @property - def ref_attrs(self): - return self.sesh._sys_refs.get('attrs',{}).copy() - - @property - def attr_inst(self): - return self.sesh._sys_refs.get('type',{}).copy() - - @property - def dynamic_comps(self): - return self.sesh._sys_refs.get('dynamic_comps',{}).copy() - - #Instances - @property - def integrators(self): - return self.attr_inst.get('time',{}).copy() - - @property - def signal_inst(self): - return self.attr_inst.get('signal',{}).copy() - - @property - def solver_inst(self): - return self.attr_inst.get('solver',{}).copy() - - @property - def kwargs(self): - """copy of slv_kw args""" - return self.sesh._slv_kw.copy() - - - @property - def dynamic_state(self): - return self.ref_attrs.get('dynamics.state',{}).copy() - - @property - def dynamic_rate(self): - return self.ref_attrs.get('dynamics.rate',{}).copy() - - @property - def problem_input(self): - return self.ref_attrs.get('dynamics.input',{}).copy() - - @property - def integrator_vars(self): - return self.ref_attrs.get('time.var',{}).copy() - - @property - def integrator_rates(self): - return self.ref_attrs.get('time.rate',{}).copy() - - #Y solver variables - @property - def problem_objs(self): - return self.ref_attrs.get('solver.obj',{}).copy() - - @property - def problem_eq(self): - base_eq = self.ref_attrs.get('solver.eq',{}).copy() - if self._dxdt in [True,None] or self._dxdt is False: - return base_eq #wysiwyg - base_eq.update(self.dynamic_rate_eq) - - if len(base_eq) > len(self.Xref): - self.warning(f'problem_eq has more items than variables {base_eq} {self.Xref}') - #TODO: in this case combine the rate_eq to prevent this error - - return base_eq - - - @property - def dynamic_rate_eq(self): - #Add Dynamics Rate Equalities - base_eq = {} - if self._dxdt in [True,None] or self._dxdt is False: #zero case - return base_eq - - Xrefs = self.Xref - system = self.system - #henceforth, the rate shall be equal to somethign! - base_eq.update(self.dynamic_rate) - base_eq.update(self.filter_vars(self.integrator_rates)) - out = {} - #TODO: handle callable case - if self._dxdt is not None and (isinstance(self._dxdt,dict) or abs(self._dxdt) > 0): - #add in the dynamic rate constraints - for var,varref in base_eq.items(): - if (isinstance(self._dxdt,dict) and var in self._dxdt): - rate_val = self._dxdt.get(var,0) #zero default rate - elif isinstance(self._dxdt,(int,float)): - rate_val = self._dxdt - con_ref = ref_to_val_constraint(system,system.last_context,Xrefs,varref,'min',rate_val,return_ref=True) - out[var] = con_ref - else: - out[var] = varref #zip rate - else: - #thou shalt be zero (no ref modifications) - out = base_eq - - return out - - @property - def problem_ineq(self): - return self.ref_attrs.get('solver.ineq',{}).copy() - - @property - def signals_source(self): - return self.ref_attrs.get('signal.source',{}).copy() - - @property - def signals_target(self): - return self.ref_attrs.get('signal.target',{}).copy() - - @property - def signals(self): - return self.ref_attrs.get('signal.signal',{}).copy() - - #formatted output - @property - def is_active(self): - """checks if the context has been entered and not exited""" - return self.entered and not self.exited - - @property - def solveable(self): - """checks the system's references to determine if its solveabl""" - if self.sesh.problem_opt_vars: - #TODO: expand this - return True - return False - - @property - def integrator_rate_refs(self): - """combine the dynamic state and the integrator rates to get the transient state of the system, but convert their keys to the target var names """ - dc = self.dynamic_state.copy() - for int_name,intinst in self.integrators.items(): - if intinst.var in dc: - raise KeyError(f'conflict with integrator name {intinst.var} and dynamic state') - dc.update({intinst.var:intinst.rate_ref}) - return dc - - @property - def integrator_var_refs(self): - """combine the dynamic state and the integrator rates to get the transient state of the system, but convert their keys to the target var names """ - dc = self.dynamic_state.copy() - for int_name,intinst in self.integrators.items(): - if intinst.var_ref in dc: - raise KeyError(f'conflict with integrator name {intinst.var_ref} and dynamic state') - dc.update({intinst.var:intinst.var_ref}) - return dc - - #Dataframe support - - @property - def dataframe(self)->pd.DataFrame: - """returns the dataframe of the system""" - sesh = self.sesh - res = pd.DataFrame([kv[-1] for kv in sorted(sesh.data.items(), - key=lambda kv:kv[0]) ]) - self.system.format_columns(res) - return res - - #TODO: expose optoin for saving all or part of the system information, for now lets default to all (saftey first, then performance :) -
-[docs] - def get_parent_key(self,key,look_back_num=1): - """returns the parent key of the key""" - if not key: - return '' - elif key.count('.') >= look_back_num: - return '.'.join(key.split('.')[:-look_back_num])+'.' - return ''
- - - #Dynamics Interface -
-[docs] - def filter_vars(self,refs:list): - '''selects only settable refs''' - return {f'{self.get_parent_key(k)}{v.key}':v for k,v in refs.items() if v.allow_set}
- - - #X solver variable refs - @property - def problem_opt_vars(self)->dict: - """solver variables""" - return self.ref_attrs.get('solver.var',{}).copy() - - @property - def all_problem_vars(self)->dict: - """solver variables + dynamics states when dynamic_solve is True""" - varx = self.ref_attrs.get('solver.var',{}).copy() - #Add the dynamic states to be optimized (ignore if integrating) - sesh = self.sesh - if sesh.dynamic_solve and not sesh._dxdt is True: - varx.update(sesh.dynamic_state) - varx.update(self.filter_vars(sesh.integrator_vars)) - - return varx - - @property - def dynamic_solve(self)->bool: - """indicates if the system is dynamic""" - sesh = self.sesh - dxdt = sesh._dxdt - - if dxdt is None or dxdt is False: - return False - - if dxdt is True: - return True - - in_type = isinstance(dxdt,(dict,float,int)) - bool_type = (isinstance(dxdt,bool) and dxdt == True) - if in_type or bool_type: - return True - - return False - - @property - def all_variable_refs(self)->dict: - sesh = self.sesh - ing = self.integrator_vars - stt = self.dynamic_state - vars = self.problem_opt_vars - return {**ing,**stt,**vars} - - @property - def all_variables(self)->dict: - """returns all variables in the system""" - return self.all_refs['attributes'] - - @property - def all_comps(self)->dict: - """returns all variables in the system""" - return self.all_refs['components'] - - @property - def all_components(self)->dict: - """returns all variables in the system""" - return self.all_refs['components'] - - @property - def all_comps_and_vars(self)->dict: - #TODO: ensure system refes are fresh per system runtime events - sesh = self.sesh - refs = sesh.all_refs - attrs = refs['attributes'].copy() - comps = refs['components'].copy() - attrs.update(comps) - return attrs - - @property - def all_system_references(self)->dict: - sesh = self.sesh - refs = sesh.all_refs - out = {} - out.update(refs['attributes']) - out.update(refs['properties']) - return out - - def __str__(self): - #TODO: expand this - return f'ProblemContext[{self.level_name:^12}][{str(self.session_id)[0:8]}-{str(self._problem_id)[0:8]}][{self.system.identity}]'
- - - -#TODO: move all system_reference concept inside problem context, remove from system/tabulation ect. -#TODO: use prob.register/change(comp,key='') to add components to the problem context, mapping subcomponents to the problem context -#TODO: make a graph of all problem dependencies and use that to determine the order of operations, and subsequent updates. - - -#subclass before altering please! -ProblemExec.class_cache = ProblemExec - -
-[docs] -class Problem(ProblemExec,DataframeMixin): - #TODO: implement checks to ensure that problem is defined as the top level context to be returned to - #TODO: also define return options for data/system/dataframe and indexing - pass - - @property - def level_name(self): - return 'top' #fixed top output, garuntees exit to here. - - @level_name.setter - def level_name(self,value): - raise AttributeError(f'cannot set level_name of top level problem context')
- - - - -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/properties.html b/docs/_build/html/_modules/engforge/properties.html deleted file mode 100644 index 10f3b2b..0000000 --- a/docs/_build/html/_modules/engforge/properties.html +++ /dev/null @@ -1,635 +0,0 @@ - - - - - - engforge.properties — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.properties

-"""
-Like typical python properties, normal functions are embelished with additional functionality.
-
-`system_properties` is a core function that adds meta information to a normal python property to include its output in the results. It is the "y" in y=f(x).
-
-`class_cache` a subclassing safe property that stores the result at runtime
-
-`solver_cache` a property that is recalculated any time there is an update to any attrs variable.
-"""
-import os
-from engforge.logging import LoggingMixin
-from engforge.typing import TABLE_TYPES
-
-IS_BUILD = os.environ.get('SPHINX_BUILD','false').strip().lower() == 'true'
-
-
-
-[docs] -class PropertyLog(LoggingMixin): - pass
- - - -log = PropertyLog() - - -
-[docs] -class engforge_prop: - """an interface for extension and identification and class return support""" - - must_return = False - - def __init__(self, fget=None, fset=None, fdel=None, *args, **kwargs): - """ """ - - self.fget = fget - if fget: - self.gname = fget.__name__ - self.get_func_return(fget) - self.fset = fset - self.fdel = fdel - -
-[docs] - def __call__( - self, fget=None, fset=None, fdel=None, doc=None, *args, **kwargs - ): - """this will be called when input is provided before property is set""" - if fget and self.fget is None: - self.gname = fget.__name__ - self.get_func_return(fget) - self.fget = fget - - if self.fset is None: - self.fset = fset - - if self.fdel is None: - self.fdel = fdel - - return self
- - -
-[docs] - def get_func_return(self, func): - """ensures that the function has a return annotation, and that return annotation is in valid sort types""" - anno = func.__annotations__ - typ = anno.get("return", None) - if not typ in (int, str, float) and self.must_return: - raise Exception( - f"system_property input: function {func.__name__} must have valid return annotation of type: {(int,str,float)}" - ) - else: - self.return_type = typ
- - - def __get__(self, obj, objtype=None): - if obj is None: - return self # class support - if self.fget is None: - raise AttributeError("unreadable attribute") - return self.fget(obj) - - def __set__(self, obj, value): - if self.fset is None: - raise AttributeError("can't set attribute") - self.fset(obj, value) - - def __delete__(self, obj): - if self.fdel is None: - raise AttributeError("can't delete attribute") - self.fdel(obj) - - def getter(self, fget): - return type(self)(fget, self.fset, self.fdel, self.__doc__) - - def setter(self, fset): - return type(self)(self.fget, fset, self.fdel, self.__doc__) - - def deleter(self, fdel): - return type(self)(self.fget, self.fset, fdel, self.__doc__)
- - - -
-[docs] -class cache_prop(engforge_prop): - allow_set: bool = ( - False # keep this flag false to maintain current persistent value - ) - - def __init__(self, *args, **kwargs): - self.allow_set = True - super().__init__(*args, **kwargs) - - def __set__(self, instance, value): - if self.allow_set: - self.set_cache(instance, reason="change", val=value) - else: - raise Exception(f"cannot set {self.gname}") - - def set_cache(self, instance, reason="update", val=None): - raise NotImplementedError( - "cache_prop must be subclassed and set_cache method defined" - )
- - - -
-[docs] -class system_property(engforge_prop): - """ - this property notifies the system this is a property to be tabulated in the dataframe output. - - @system_property - def function(...): < this uses __init__ to assign function - - @system_property(desc='really nice',label='funky function') - def function(...): < this uses __call__ to assign function - - When the underlying data has some random element, set stochastic=True and this will flag the component to always save data. - - Functions wrapped with table type must have an return annotion of (int,float,str)... ex def func() -> int: - """ - - desc = "" - label = None - stochastic = False - get_func_return: type = None - return_type = None - must_return = True - - def __init__( - self, - fget=None, - fset=None, - fdel=None, - doc=None, - desc=None, - label=None, - stochastic=False, - ): - """You can initalize just the functions, or precreate the object but with meta - @system_property - def function(...): < this uses __init__ to assign function - - @system_property(desc='really nice',label='funky function') - def function(...): < this uses __call__ to assign function - """ - - self.fget = fget - if fget: - self.get_func_return(fget) - - self.fset = fset - self.fdel = fdel - if doc is None and fget is not None: - doc = fget.__doc__ - elif doc is not None: - self.__doc__ = doc - - if desc is not None: - self.desc = desc - - if label is not None: - self.label = label - elif fget is not None: - self.label = fget.__name__.lower() - - # Set random flag - self.stochastic = stochastic - -
-[docs] - def __call__(self, fget=None, fset=None, fdel=None, doc=None): - """this will be called when input is provided before property is set""" - if fget and self.fget is None: - self.get_func_return(fget) - self.fget = fget - if self.fset is None: - self.fset = fset - if self.fdel is None: - self.fdel = fdel - - if doc is None and fget is not None: - doc = fget.__doc__ - elif doc is not None: - self.__doc__ = doc - - if self.label is None and fget is not None: - self.label = fget.__name__.lower() - - return self
- - -
-[docs] - def get_func_return(self, func): - """ensures that the function has a return annotation, and that return annotation is in valid sort types""" - anno = func.__annotations__ - typ = anno.get("return", None) - if not typ in (int, str, float): - raise Exception( - f"system_property input: function {func.__name__} must have valid return annotation of type: {(int,str,float)}" - ) - else: - self.return_type = typ
- - - def __get__(self, obj, objtype=None): - if obj is None: - return self # class support - if self.fget is None: - raise AttributeError("unreadable attribute") - return self.fget(obj) - - def __set__(self, obj, value): - if self.fset is None: - raise AttributeError("can't set attribute") - self.fset(obj, value) - - def __delete__(self, obj): - if self.fdel is None: - raise AttributeError("can't delete attribute") - self.fdel(obj) - - def getter(self, fget): - return type(self)(fget, self.fset, self.fdel, self.__doc__) - - def setter(self, fset): - return type(self)(self.fget, fset, self.fdel, self.__doc__) - - def deleter(self, fdel): - return type(self)(self.fget, self.fset, fdel, self.__doc__)
- -#aliases -sys_prop = system_property -system_prop = system_property - - -
-[docs] -class cached_system_property(system_property): - """A system property that caches the result when nothing changes. Use for expensive functions since the checking adds some overhead""" - - gname: str - -
-[docs] - def get_func_return(self, func): - """ensures that the function has a return annotation, and that return annotation is in valid sort types""" - anno = func.__annotations__ - typ = anno.get("return", None) - if not typ in (int, str, float): - raise Exception( - f"system_property input: function {func.__name__} must have valid return annotation of type: {(int,str,float)}" - ) - else: - self.return_type = typ
- - - @property - def private_var(self): - return f"_{self.gname}" - - def __get__(self, instance: "TabulationMixin", objtype=None): - if instance is None: - return self - if not hasattr(instance, self.private_var) and not IS_BUILD: - from engforge.tabulation import TabulationMixin - - assert issubclass( - instance.__class__, TabulationMixin - ), f"incorrect class: {instance.__class__.__name__}" - return self.set_cache(instance, reason="set") - elif instance.anything_changed: - return self.set_cache(instance) - return getattr(instance, self.private_var) - - def set_cache(self, instance, reason="update", val=None): - if log.log_level < 5: - log.msg( - f"solver cache for {instance.identity}.{self.private_var}| {reason}" - ) - if val is None: - val = self.fget(instance) - setattr(instance, self.private_var, val) - return val
- - -#aliases -cached_sys_prop = system_property -cached_system_prop = system_property - -# TODO: install solver reset / declarative instance cache+ -
-[docs] -class solver_cached(cache_prop): - """ - A property that updates a first time and then anytime time the input data changed, as signaled by attrs.on_setattr callback - """ - - @property - def private_var(self): - return f"_{self.gname}" - - def __get__(self, instance: "TabulationMixin", objtype=None): - if not hasattr(instance, self.private_var) and not IS_BUILD: - from engforge.tabulation import TabulationMixin - - assert instance.__class__ is None or issubclass( - instance.__class__, TabulationMixin - ), f"incorrect class: {instance.__class__.__name__}" - return self.set_cache(instance, reason="set") - - elif instance.anything_changed: - return self.set_cache(instance) - - return getattr(instance, self.private_var) - - def set_cache(self, instance, reason="update", val=None): - if log.log_level < 5: - log.debug( - f"caching attr for {instance.identity}.{self.private_var}| {reason}" - ) - if val is None: - val = self.fget(instance) # default! - setattr(instance, self.private_var, val) - return val
- - - -# TODO: install solver reset / declarative instance cache+ -
-[docs] -class instance_cached(cache_prop): - """ - A property that caches a result to an instance the first call then returns that each successive call - """ - - @property - def private_var(self): - return f"_{self.gname}" - - def __get__(self, instance: "TabulationMixin", objtype=None): - if not hasattr(instance, self.private_var): - from engforge.tabulation import TabulationMixin - - if instance.__class__ is not None and not IS_BUILD: # its an instance - assert issubclass( - instance.__class__, TabulationMixin - ), f"incorrect class: {instance.__class__.__name__}" - return self.set_cache(instance, reason="set") - else: - return self.fget(instance) - return getattr(instance, self.private_var) - - def set_cache(self, instance, reason="update", val=None): - if log.log_level < 5: - log.debug( - f"caching instance for {instance.identity}.{self.private_var}| {reason}" - ) - if val is None: - val = self.fget(instance) # default! - setattr(instance, self.private_var, val) - return val
- - - -
-[docs] -class class_cache(cache_prop): - """a property that caches a value on the class at runtime, and then maintains that value for the duration of the program. A flag with the class name ensures the class is correct. Intended for instance methods""" - - @property - def private_var(self): - return f"_{self.gname}" - - @property - def id_var(self): - return f"__{self.gname}" - - def __get__(self, instance: "Any", objtype=None): - cls = instance.__class__ - if hasattr(cls, self.private_var): - # check and gtfo - # print(f'getting private var {self.private_var}') - return getattr(cls, self.private_var) - else: - if not hasattr(cls, self.id_var): - # initial cache - return self.set_cache(instance, cls) - elif cls.__name__ != getattr(cls, self.id_var): - # recache the system if name doesn't match - return self.set_cache(instance, cls) - # print(f'getting private def {self.private_var}') - - return getattr(cls, self.private_var) - - def set_cache(self, instance, cls): - log.debug(f"cls caching for {cls.__name__}.{self.private_var}") - val = self.fget(instance) - setattr(cls, self.private_var, val) - setattr(cls, self.id_var, cls.__name__) - return val
- - - -# #TODO: make a `solver_context` that exposes a ray python remote funciton with wait & other provisions... add to a call graph and optimize later -# NOTE: challenge to handle class/instance/functions with same code -# from engforge.properties import engforge_prop -# class solver_context(engforge_prop): -# -# fget = None -# -# def __init__( -# self, -# fget=None, -# **kwargs, -# ): -# if fget: -# self.fget = remote_func_ret(fget) -# self.ray_kw = kwargs -# -# def __call__(self, fget=None, fset=None, fdel=None, doc=None): -# """this will be called when input is provided before property is set""" -# if fget and self.fget is None: -# self.fget = remote_func_ret(fget,**self.ray_kw) -# -# return self -# -# def __get__(self, obj, objtype=None): -# if obj is None: -# return self -# if self.fget is None: -# raise AttributeError("unreadable attribute") -# return self.fget(obj) -# -# -# class remote_func_ret: -# fget = None -# remote_fget = None -# def __init__(self,func=None,**kwargs): -# self.ray_kwargs = kwargs -# if func: -# self.setup_func(func) -# -# def setup_func(self,func): -# self.fget = func -# if self.ray_kwargs: -# d = ray.remote(**self.ray_kwargs) -# self.remote_fget = d(func) -# else: -# self.remote_fget = ray.remote(func) -# -# def __call__(self,*args,**kwargs): -# return self.fget(*args,**kwargs) -# -# def remote(self,wait=False,getret=False,*args,**kwargs): -# res = self.remote_fget.remote(*args,**kwargs) -# -# if wait: -# ray.wait([res]) -# return res -# if getret: -# return ray.get([res]) -# return res -# -# -# @solver_context -# def test_deck(a,b,c): -# print(a,b,c) -# -# return a * b * c -# -# @solver_context(num_cpus=2) -# def super_test(a,b,c): -# print(a,b,c) -# -# return a * b * c -# -# -# class nonactor: -# -# def __init__(self,c): -# self.c = c -# -# @solver_context -# def test_inst(self,a,b): -# print(a,b) -# -# return a * b * self.c -# -# @solver_context(num_cpus=2) -# def inst_test(self,a,b): -# print(a,b) -# -# return a * b * self.c -# -# print(test_deck) -# print(super_test) -# print(nonactor.test_inst) -# print(nonactor.inst_test) -# -# ac = nonactor(1) -# print(ac.test_inst) -# print(ac.inst_test) -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/reporting.html b/docs/_build/html/_modules/engforge/reporting.html deleted file mode 100644 index 6a49386..0000000 --- a/docs/_build/html/_modules/engforge/reporting.html +++ /dev/null @@ -1,739 +0,0 @@ - - - - - - engforge.reporting — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.reporting

-"""The set of reporters define an interface to report plots or tables"""
-
-from engforge.configuration import Configuration, forge
-from engforge.typing import Options
-from engforge.logging import LoggingMixin
-import attrs
-import abc
-
-import os, pathlib
-import datetime
-
-
-
-[docs] -def path_exist_validator(inst, attr, value): - if not isinstance(value, str): - raise ValueError(f"{attr.name} isnt a string") - if not os.path.exists(value): - raise FileExistsError(f"{value} does not exist")
- - - -# BASE CLASSSES (PLOT + TABLE) -
-[docs] -@attrs.define -class Reporter(LoggingMixin): - """A mixin intended""" - - name: str = attrs.field(default="reporter") - -
-[docs] - def check_config(self): - """a test to see if the reporter should be used""" - return True
- - -
-[docs] - @classmethod - def subclasses(cls, out=None): - """get all reporters of this type""" - if out is None: - out = set() - - for scls in cls.__subclasses__(): - out.add(scls) - scls.subclasses(scls)
- - - def upload(self, analysis: "Analysis"): - self.info(f"uploading {analysis.identity} to {self.identity}") - raise NotImplemented()
- - - -# Functionality Mixins -
-[docs] -@attrs.define -class TemporalReporterMixin(Reporter): - """Provide single or periodic keys""" - - # report_mode: Options("single", "daily", "monthly") #choose wisely - - @property - def report_root(self): - raise NotImplemented() - - @property - def date_key(self): - d = datetime.datetime.utcnow().date() - return f"{d.year}.{d.month:02}.{d.day:02}" - - @property - def month_key(self): - d = datetime.datetime.utcnow().date() - return f"{d.year}.{d.month:02}" - - @property - def report_root(self): - """define your keys!""" - raise NotImplemented()
- - - -
-[docs] -@attrs.define -class DiskReporterMixin(TemporalReporterMixin): - path: str = attrs.field(default=None, validator=path_exist_validator) - - # whats our /report/<key> gonna be - report_mode = Options("single", "daily", "monthly") - - @property - def report_root(self): - if self.report_mode == "single": - return self.path - elif self.report_mode == "daily": - return os.path.join(self.path, self.date_key) - elif self.report_mode == "monthly": - return os.path.join(self.path, self.month_key) - - raise ValueError(f"options failed!") - - def ensure_exists(self): - if not os.path.exists(self.report_root): - pth = pathlib.Path(self.report_root) - pth.mkdir(parents=True, exist_ok=True) - - def ensure_path(self, file_path,is_dir=False): - pth = pathlib.Path(file_path) - diri = pth if is_dir else pth.parent - if not diri.exists(): - diri.mkdir(parents=True, exist_ok=True)
- - - -# Basic Reporter Types -
-[docs] -@attrs.define -class TableReporter(Reporter): - """A reporter to upload dataframes to a table store""" - - name: str = attrs.field(default="table_reporter")
- - - -
-[docs] -@attrs.define -class PlotReporter(Reporter): - """A reporter to upload plots to a file store""" - - name: str = attrs.field(default="plot_reporter") - - # FIXME: make attrs work... layout class conflict - # ext = Options('png','jpg','gif') - # ext: str = attrs.field(default='png') - ext = "png" - -# def upload(self, analysis): -# for figkey, fig in analysis.stored_plots.items(): -# try: -# filname = os.path.join(self.report_root, f"{figkey}.{self.ext}") -# self.ensure_path(filname) -# self.info(f"saving {figkey} to {filname}") -# fig.savefig(filname) -# -# except Exception as e: -# self.error(e, f"issue showing {figkey}") - def upload(self,analyis): - raise NotImplemented(f'plot reporter subclass needs an upload method')
- - - -# Table Reporters -
-[docs] -@attrs.define -class CSVReporter(TableReporter, DiskReporterMixin): - name: str = attrs.field(default="CSV") - - def upload(self, analysis: "Analysis"): - self.info(f"uploading {analysis.identity} to {self.identity}") - self.ensure_exists() - - system = analysis.system - - # Make System Dataframe - af = os.path.join(self.report_root, f"system_{system.name}.csv") - self.ensure_path(af) - self.info(f"saving system to: {af}") - system.dataframe.to_csv(af)
- - -# # Make Analysis Dataframe -# af = os.path.join(self.report_root, f"analysis_{analysis.name}.csv") -# self.ensure_path(af) -# self.info(f"saving analysis to: {af}") -# analysis.dataframe.to_csv(af) -# -# for ckey, comp in system.comp_references().items(): -# af = os.path.join(self.report_root, f"{ckey}_{comp.name}.csv") -# self.ensure_path(af) -# self.info(f"saving {ckey} to: {af}") -# comp.dataframe.to_csv(af) - - -
-[docs] -@attrs.define -class ExcelReporter(TableReporter, DiskReporterMixin): - name: str = attrs.field(default="EXCEL")
- - - -
-[docs] -@attrs.define -class GsheetsReporter(TableReporter, TemporalReporterMixin): - name: str = attrs.field(default="GSHEETS")
- - - -# @attrs.define -# class SQLReporter(TableReporter): -# name: str = attrs.field(default="SQL") -# -# -# @attrs.define -# class ArangoReporter(TableReporter): -# name: str = attrs.field(default="SQL") - - -# PLOT Reporters -
-[docs] -@attrs.define -class DiskPlotReporter(PlotReporter, DiskReporterMixin): - name: str = attrs.field(default="DrivePlots") - - def upload(self, analysis): - for figkey, fig in analysis.stored_plots.items(): - try: - filname = os.path.join(self.report_root, f"{figkey}.{self.ext}") - self.ensure_path(filname) - self.info(f"saving {figkey} to {filname}") - fig.savefig(filname) - - except Exception as e: - self.error(e, f"issue showing {figkey}")
- - -
-[docs] -@attrs.define -class GdriveReporter(PlotReporter, TemporalReporterMixin): - name: str = attrs.field(default="Gdrive") - share_drive: str = attrs.field( - default=None, validator=attrs.validators.instance_of(str) - )
- - - -# TODO: move to analysis -# def split_dataframe_by_colmum(self,df,max_columns=10): -# df_cols = list(df.columns) -# if len(df_cols) < max_columns: -# return [df] -# -# col_chunks = list(chunks(df_cols,max_columns)) -# dat_chunks = [df[colck].copy() for colck in col_chunks] -# -# return dat_chunks - -# def cleanup_dataframe(self,df,badwords=('min','max')): -# tl_df = self.static_dataframe -# to_drop = [cl for cl in tl_df.columns if any([bw in cl.lower() for bw in badwords])] -# out_df = tl_df.drop(columns=to_drop) -# return out_df - - -# @solver_cached -# def variable_dataframe(self): -# vals = list(zip(*list((self.variable_data_dict.values())))) -# cols = list((self.variable_data_dict.keys())) -# if vals: -# return pandas.DataFrame(data = vals, columns=cols, copy = True) -# else: -# return None -# -# @solver_cached -# def static_dataframe(self): -# vals = [list((self.static_data_dict.values()))] -# cols = list((self.static_data_dict.keys())) -# if vals: -# return pandas.DataFrame(data = vals, columns=cols, copy = True) -# else: -# return None - -# Clearance Methods -# table property internal variables -# __store_options = ('csv','excel','gsheets')#,'db','gsheets','excel','json') -# _store_types = None -# _store_level:int = -1 - -# @property -# def table_iterator(self): -# '''Checks data to see what type of table it is, type 1 is a single row -# whereas type 2 & 3 have several rows, but type 2 has some values that are singular -# -# iterates table_type,values,label''' -# -# if not self.TABLE: -# return 0,[],[] -# if len(self.TABLE) <= 1: -# yield 1,self.TABLE[1],self.data_label -# else: -# #wide outerloop over vars -# for label in set.union(*[set(tuple(row.keys())) for i,row in self.TABLE.items()]): -# #inner loop over data -# col = [row[label] if label in row else None for inx,row in self.TABLE.items()] -# -# if all([isinstance(cvar,TABLE_TYPES) for cvar in col]): #do a type check -# if len(set(col)) <= 1: #All Values Are Similar -# yield 2, col[0], label #Can assume that first value is equal to all -# else: -# yield 3, col, label -# -# def recursive_data_structure(self,levels_to_descend = -1, parent_level=0): -# '''Returns the static and variable data from each configuration to grab defined by the -# recursive commands input in this function -# -# data is stored like: output[level]=[{static,variable},{static,variable},...]''' -# -# output = {} -# -# for level,conf in self.go_through_configurations(0,levels_to_descend,parent_level): -# if level in output: -# output[level].append({'static':conf.static_dataframe,\ -# 'variable':conf.variable_dataframe,'conf':conf}) -# else: -# output[level] = [{'static':conf.static_dataframe,\ -# 'variable':conf.variable_dataframe,\ -# 'conf':conf}] -# -# return output - -# Multi-Component Table Combination Methods -# @solver_cached -# def static_data_dict(self): -# '''returns key-value pairs in table that are single valued, all in type 1, some in type 2''' -# -# output = {} -# for tab_type,value,label in self.table_iterator: -# if tab_type == 1: -# return {l:v for l,v in zip(label,value)} -# elif tab_type == 2: -# output[label] = value -# return output -# -# @solver_cached -# def variable_data_dict(self): -# '''returns a dictionary of key value pairs where values list is not the same all of type 3 and some of type 2''' -# output = {} -# for tab_type,value,label in self.table_iterator: -# if tab_type == 3: -# output[label] = value -# return output -# -# -# #Multi-Component Table Lookups -# @solver_cached -# def toplevel_static(self): -# out_df = self.cleanup_dataframe( self.static_dataframe ) -# df_list = self.split_dataframe_by_colmum(out_df,self.max_col_width_static) -# -# return {'conf':self,'dfs': df_list } -# -# @solver_cached -# def other_static_tables(self): -# rds = self.recursive_data_structure(self.store_level) -# output = [] -# for index, components in rds.items(): -# if index > 0: -# for comp in components: -# if comp['static'] is not None: -# df_list = self.split_dataframe_by_colmum(comp['static'],self.max_col_width_static) -# output.append({'conf':comp['conf'],'dfs': df_list}) -# return output -# -# @solver_cached -# def variable_tables(self): -# '''Grabs all valid variable dataframes and puts them in a list''' -# rds = self.recursive_data_structure(self.store_level) -# -# output = [] -# for index, components in rds.items(): -# for comp in components: -# if comp['variable'] is not None: -# output.append({'conf':comp['conf'],'df':comp['variable']}) -# -# return output -# -# @solver_cached -# def joined_dataframe(self): -# '''this is a high level data frame with all data that changes in the system''' -# if self.variable_tables: -# return pandas.concat([ vt['df'] for vt in list(reversed(self.variable_tables))],axis=1) -# else: -# return None -# -# @property -# def complete_dataframe(self): -# '''this is a high level data frame with all data in the system''' -# -# rds = self.recursive_data_structure() -# if rds: -# dataframes = [] -# stat_dataframes = [] -# for lvl, comps in rds.items(): -# for comp in comps: -# df = comp['conf'].dataframe -# if not comp['conf'] is self: -# nm = comp['conf'].name.lower() -# if nm == 'default': -# nm = comp['conf'].__class__.__name__.lower() -# nm = nm.replace(' ','_') -# strv=f'{nm}_' -# strv+='{}' -# else: -# nm = '' -# strv='{}' -# df.rename(strv.format, axis=1, inplace=True) -# -# dataframes.append(df) -# return pandas.concat(dataframes,join='outer',axis=1) -# -# else: -# return None - -# Saving & Data Acces Methods -# def get_field_from_table(self,field,check_type=None,check_value:Callable = None): -# '''Converts Pandas To Numpy Array By Key, also handles poorly formated fields -# :param check_type: use a type or tuple of types to validate if the field is of type table -# :param check_value: use a function to check each value to ensure its valid for return, check type take priority''' -# if self.joined_dataframe is None: -# return numpy.array([]) -# elif field in self.joined_dataframe: -# table = self.joined_dataframe[field] -# elif field.title() in self.joined_dataframe: -# table = self.joined_dataframe[field.title()] -# else: -# raise Exception('No Field Named {}'.format(field)) -# -# #Remove Infinity -# table = table.replace([numpy.inf, -numpy.inf], numpy.nan) -# -# if check_type is not None: -# if all([isinstance(v,check_type) for v in table]): -# return table.to_numpy(copy=True) -# return None -# elif check_value is not None: -# if all([check_value(v) for v in table]): -# return table.to_numpy(copy=True) -# return None -# -# return table.to_numpy(dtype=float,copy=True) - - -# Save functionality -# TODO: get me outta hur -# def save_table(self,dataframe=None,filename=None,meta_tags=None,*args,**kwargs): -# '''Header method to save the config in many different formats -# :param meta_tags: a dictionary with headers being column names, and the value as the item to fill that column''' -# if dataframe is None: -# dataframe = self.dataframe -# -# self.info('saving gsheets...') -# -# if meta_tags is not None and type(meta_tags) is dict: -# for tag,value in meta_tags.items(): -# dataframe[tag] = value -# -# -# for save_format in self.store_types: -# try: -# if save_format == 'csv': -# self.save_csv(dataframe,filename,*args,**kwargs) -# elif save_format == 'excel': -# self.save_excel(dataframe,filename,*args,**kwargs) -# elif save_format == 'gsheets': -# self.save_gsheets(dataframe,filename,*args,**kwargs) -# except Exception as e: -# self.error(e,'Issue Saving Tables:') - -# def save_csv(self,dataframe,filename=None,*args,**kwargs): -# if self.TABLE: -# if filename is None: -# filename = '{}.csv'.format(self.filename) -# if type(filename) is str and not filename.endswith('.csv'): -# filename += '.csv' -# filepath = os.path.join(self.config_path_daily,filename) -# dataframe.to_csv(path_or_buf=filepath,index=False,*args,**kwargs) -# -# def save_excel(self,dataframe,filename=None,*args,**kwargs): -# if self.TABLE: -# if filename is None: -# filename = '{}.xlsx'.format(self.filename) -# if type(filename) is str and not filename.endswith('.xlsx'): -# filename += '.xlsx' -# filepath = os.path.join(self.config_path_daily,filename) -# dataframe.to_excel(path_or_buf=filepath,*args,**kwargs) - -# @property -# def store_level(self): -# return self._store_level -# -# @store_level.setter -# def store_level(self,new_level:int): -# assert isinstance(new_level,(int)) -# self._store_level = new_level -# -# @property -# def store_types(self): -# if self._store_types is None: -# self._store_types = [] #initalization -# return self._store_types - -# @store_types.setter -# def store_types(self, new_type_or_list): -# '''If you add a list or iterable, and each value is a valid output option we will assign it -# otherwise if its a value in the valid options it will be added. -# ''' -# if isinstance(new_type_or_list,(list,tuple)): -# assert all([val in self.__store_options for val in new_type_or_list]) -# self._store_types = list(new_type_or_list) -# -# elif new_type_or_list in self.__store_options: -# self._store_types.append(new_type_or_list) -# -# else: -# self.warning('store types input not valid {}'.format(new_type_or_list)) - - -# def save_to_worksheet(self,worksheet:'pygsheets.Worksheet'): -# '''Saves to a gsheets via pygsheets adds static and regular data''' -# -# title = self.identity.replace('_',' ').title() -# -# self.info('saving worksheet as {}'.format(title)) -# wksh = worksheet -# -# wksh.clear() -# -# #Static data -# start = pygsheets.Address((2,2)) -# -# tld = self.toplevel_static -# sdf = tld['dfs'] -# -# cur_index = start + (1,0) -# for i,df in enumerate(sdf): -# self.debug('saving dataframe {}'.format(df)) -# wksh.update_value(start.label,self.identity) -# wksh.cell(start.label).set_text_format('bold',True) -# wksh.set_dataframe(df,cur_index.label , extend=True) -# cur_index += (2,0) -# -# cur_index += (3,0) -# -# var_index = pygsheets.Address(cur_index.label) -# -# max_row = 0 -# -# vrt = self.variable_tables -# self.info('saving {} other static tables'.format(len(vrt))) -# -# for dfpack in vrt: -# conf = dfpack['conf'] -# df = dfpack['df'] -# self.debug('saving dataframe {}'.format(df)) -# -# (num_rows,num_cols) = df.shape -# max_row = max(max_row,num_rows) -# -# wksh.update_value((var_index-(1,0)).label,conf.classname) -# wksh.cell((var_index-(1,0)).label).set_text_format('bold',True) -# -# wksh.set_dataframe(df,start=var_index.label,extend=True) -# -# var_index += (0,num_cols) -# -# cur_index += (3+max_row,0) -# -# ost = self.other_static_tables -# -# self.info('saving {} other static tables'.format(len(ost))) -# -# for dfpack in ost: -# conf = dfpack['conf'] -# sdf = dfpack['dfs'] -# -# wksh.update_value((cur_index-(1,0)).label,conf.identity) -# wksh.cell((cur_index-(1,0)).label).set_text_format('bold',True) -# -# for i,df in enumerate(sdf): -# -# self.debug('saving {} dataframe {}'.format(conf.identity, df)) -# wksh.set_dataframe(df,start=cur_index.label ,extend=True) -# cur_index += (2,0) -# -# cur_index += (3,0) - - -# def save_gsheets(self,dataframe,filename=None,index=False,*args,**kwargs): -# '''A function to save the table to google sheets -# :param filename: the filepath on google drive - be careful! -# ''' -# with self.drive.context(filepath_root=self.local_sync_path, sync_root=self.cloud_sync_path) as gdrive: -# with gdrive.rate_limit_manager( self.save_gsheets,6,dataframe,filename=filename,*args,**kwargs) as tdrive: -# -# old_sleep = tdrive._sleep_time -# tdrive.reset_sleep_time( max(old_sleep,2.5) ) -# -# gpath = tdrive.sync_path(self.local_sync_path) -# self.info(f'saving as gsheets in dir {self.local_sync_path} -> {gpath}') -# parent_id = gdrive.get_gpath_id(gpath) -# #TODO: delete old file if exists -# tdrive.sleep(2*(1+tdrive.time_fuzz*random.random())) -# if tdrive and tdrive.gsheets: -# sht = tdrive.gsheets.create(filename,folder=parent_id) -# -# tdrive.sleep(2*(1+tdrive.time_fuzz*random.random())) -# tdrive.cache_directory(parent_id) -# -# wk = sht.sheet1 -# -# wk.rows = dataframe.shape[0] -# gdrive.sleep(2*(1+tdrive.time_fuzz*random.random())) -# -# wk.set_dataframe(dataframe,start='A1',fit=True) -# gdrive.sleep(2*(1+tdrive.time_fuzz*random.random())) -# -# #TODO: add in dataframe dict with schema sheename: {dataframe,**other_args} -# self.info('gsheet saved -> {}'.format(os.path.join(gpath,filename))) -# -# tdrive.reset_sleep_time( old_sleep ) -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/solveable.html b/docs/_build/html/_modules/engforge/solveable.html deleted file mode 100644 index d3fb9db..0000000 --- a/docs/_build/html/_modules/engforge/solveable.html +++ /dev/null @@ -1,1080 +0,0 @@ - - - - - - engforge.solveable — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.solveable

-import attrs,attr
-import uuid
-import numpy
-import numpy as np
-import scipy.optimize as sciopt
-from contextlib import contextmanager
-import copy
-import datetime
-import typing
-
-
-# from engforge.dynamics import DynamicsMixin
-from engforge.attributes import AttributeInstance
-from engforge.engforge_attributes import AttributedBaseMixin
-from engforge.configuration import Configuration, forge
-from engforge.properties import *
-from engforge.system_reference import *
-from engforge.system_reference import Ref
-from engforge.solver_utils import *
-from engforge.attr_dynamics import IntegratorInstance
-
-import collections
-import itertools
-
-SOLVER_OPTIONS = ["root", "minimize"]
-
-
-
-[docs] -class SolvableLog(LoggingMixin): - pass
- - - - -log = SolvableLog() - -#Anonymous Update Funcs (solve scoping issue) -def _update_func(comp,eval_kw): - def updt(*args,**kw): - eval_kw.update(kw) - if log.log_level <= 5: - log.msg(f'update| {comp.name} ',lvl=5) - return comp.update(comp.parent, *args, **eval_kw) - if log.log_level <= 5: - log.msg(f'create method| {comp.name}| {eval_kw}') - updt.__name__ = f'{comp.name}_update' - return updt - -def _post_update_func(comp,eval_kw): - def updt(*args,**kw): - eval_kw.update(kw) - return comp.post_update(comp.parent, *args, **eval_kw) - if log.log_level <= 5: - log.msg(f'create post method| {comp.name}| {eval_kw}') - updt.__name__ = f'{comp.name}_post_update' - return updt - -def _cost_update(comp): - from engforge.eng.costs import Economics,CostModel - - if isinstance(comp,Economics): - def updt(*args,**kw): - if log.log_level <= 8: - log.debug(f'update economics {comp.name} | {comp.term_length} ') - comp.system_properties_classdef(True) - comp.update(comp.parent, *args, **kw) - if log.log_level <= 8: - log.debug(f'economics update cb {comp.name} | {comp.term_length} ') - updt.__name__ = f'{comp.name}_econ_update' - else: - def updt(*args,**kw): - if log.log_level <= 7: - log.msg(f'update costs {comp.name} ',lvl=5) - comp.system_properties_classdef(True) - return comp.update_dflt_costs() - if log.log_level <= 7: - log.debug(f'cost update cb {comp.name} ') - updt.__name__ = f'{comp.name}_cost_update' - - return updt - -dflt_dynamics = {'dynamics.state':{},'dynamics.input':{},'dynamics.rate':{},'dynamics.output':{},'dynamic_comps':{}} -skipa_attr_names = ("index","parent","dynamic_input_vars","dynamic_state_vars","dynamic_output_vars") - - -
-[docs] -class SolveableMixin(AttributedBaseMixin): #'Configuration' - """commonality for components,systems that identifies subsystems and states for solving. - - This class defines the update structure of components and systems, and the storage of internal references to the system and its components. It also provides a method to iterate over the internal components and their references. - - Importantly it defines the references to the system and its components, and the ability to set the system state from a dictionary of values across multiple objects. It also provides a method to iterate over the internal components and their references. There are several helper functions to these ends. - """ - - # TODO: add parent state storage - parent: "Configuration" - - _prv_internal_references: dict - _prv_internal_components: dict - _prv_internal_systems: dict - _prv_internal_tabs: dict - _prv_system_references: dict - - # Update Flow - #TODO: pass the problem vs the parent component, then locate this component in the problem and update any references -
-[docs] - def update(self, parent, *args, **kwargs): - """Kwargs comes from eval_kw in solver""" - if log.log_level <= 5: - log.debug(f"void updating {self.__class__.__name__}.{self}")
- - -
-[docs] - def post_update(self, parent, *args, **kwargs): - """Kwargs comes from eval_kw in solver""" - if log.log_level <= 5: - log.debug(f"void post-updating {self.__class__.__name__}.{self}")
- - -
-[docs] - def collect_update_refs(self,eval_kw=None,ignore=None): - """checks all methods and creates ref's to execute them later""" - from engforge.eng.costs import CostModel,Economics - - updt_refs = {} - from engforge.components import Component - from engforge.component_collections import ComponentIter - - # Ignore - if ignore is None: - ignore = set() - elif self in ignore: - return - - for key, comp in self.internal_configurations(False).items(): - if ignore is not None and comp in ignore: - continue - - if not isinstance(comp,SolveableMixin): - continue - - #provide add eval_kw - if eval_kw and key in eval_kw: - eval_kw_comp = eval_kw[key] - else: - eval_kw_comp = {} - ekw = eval_kw_comp - - #Add if its a unique update method (not the passthrough) - if isinstance(comp,(CostModel,Economics)): - ref = Ref(comp,_cost_update(comp)) - updt_refs[key+'._cost_model_'] = ref - - elif comp.__class__.update != SolveableMixin.update: - ref = Ref(comp,_update_func(comp,ekw)) - updt_refs[key] = ref - - #Cost Models - - - ignore.add(self) - return updt_refs
- - -
-[docs] - def collect_post_update_refs(self,eval_kw=None,ignore=None): - """checks all methods and creates ref's to execute them later""" - updt_refs = {} - from engforge.components import Component - from engforge.component_collections import ComponentIter - - # Ignore - if ignore is None: - ignore = set() - elif self in ignore: - return - - for key, comp in self.internal_configurations(False).items(): - if ignore is not None and comp in ignore: - continue - - if not isinstance(comp,SolveableMixin): - continue - - # provide add eval_kw - if eval_kw and key in eval_kw: - eval_kw_comp = eval_kw[key] - else: - eval_kw_comp = {} - - ekw = eval_kw_comp - - #Add if its a unique update method (not the passthrough) - if comp.__class__.post_update != SolveableMixin.post_update: - ref = Ref(comp,_post_update_func(comp,ekw)) - updt_refs[key] = ref - - ignore.add(self) - return updt_refs
- - - # internals caching - # instance attributes - - #TODO: move all system / property & identification to the problem_context or new system_identificaiton class (problem/base) - @instance_cached - def signals(self): - """this is just a record of signals from this solvable. dont use this to get the signals, use high level signals strategy #TODO: add signals strategy""" - return {k: getattr(self, k) for k in self.signals_attributes()} - - @instance_cached - def solvers(self): - """this is just a record of any solvable attribute. dont use this to get the attribute, use another strategy""" - return {k: getattr(self, k) for k in self.solvers_attributes()} - - @instance_cached(allow_set=True) - def transients(self): - """this is just a record of any transient attribute. dont use this to get the transient, use another strategy""" - return {k: getattr(self, k) for k in self.transients_attributes()} - -
-[docs] - def internal_components(self, recache=False) -> dict: - """get all the internal components""" - if recache == False and hasattr(self, "_prv_internal_components"): - return self._prv_internal_components - from engforge.components import Component - - o = {k: getattr(self, k) for k in self.slots_attributes()} - o = {k: v for k, v in o.items() if isinstance(v, Component)} - self._prv_internal_components = o - return o
- - -
-[docs] - def internal_systems(self, recache=False) -> dict: - """get all the internal components""" - if recache == False and hasattr(self, "_prv_internal_systems"): - return self._prv_internal_systems - from engforge.system import System - - o = {k: getattr(self, k) for k in self.slots_attributes()} - o = {k: v for k, v in o.items() if isinstance(v, System)} - self._prv_internal_systems = o - return o
- - -
-[docs] - def internal_tabulations(self, recache=False) -> dict: - """get all the internal tabulations""" - from engforge.tabulation import TabulationMixin - - if recache == False and hasattr(self, "_prv_internal_tabs"): - return self._prv_internal_tabs - - o = {k: getattr(self, k) for k in self.slots_attributes()} - o = {k: v for k, v in o.items() if isinstance(v, TabulationMixin)} - self._prv_internal_tabs = o - return o
- - - # recursive references - @instance_cached - def iterable_components(self) -> dict: - """Finds ComponentIter internal_components that are not 'wide'""" - from engforge.component_collections import ComponentIter - - return { - k: v - for k, v in self.internal_components().items() - if isinstance(v, ComponentIter) and not v.wide - } - -
-[docs] - def internal_references(self, recache=False,numeric_only=False) -> dict: - """get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)""" - if not numeric_only and (recache == False and hasattr(self, "_prv_internal_references")): - return self._prv_internal_references - - out = self._gather_references(numeric_only=numeric_only) - if not numeric_only: self._prv_internal_references = out - return out
- - - def _gather_references(self,numeric_only=False) -> dict: - out = {} - out["attributes"] = at = {} - out["properties"] = pr = {} - - for key in self.system_properties_classdef(): - pr[key] = Ref(self, key, True, False) - - if numeric_only: - for key in self.numeric_fields(): - at[key] = Ref(self, key, False, True) - else: - for key in self.input_fields((list,tuple,dict)): - at[key] = Ref(self, key, False, True) - - return out - - def _iterate_components(self): - """sets the current component for each product combination of iterable_components""" - - components = self.iterable_components - - if not components: - yield # enter once - else: - - def _gen(gen, compkey): - for itemkey, item in gen: - yield compkey, itemkey - - iter_vals = { - cn: _gen(comp._item_gen(), cn) - for cn, comp in components.items() - } - - for out in itertools.product(*list(iter_vals.values())): - for ck, ikey in out: - # TODO: progress bar or print location - components[ck].current_item = ikey - yield out - - # finally reset the data! - for ck, comp in components.items(): - comp.reset() - -
-[docs] - def comp_references(self,ignore_none_comp=True,**kw): - """A cached set of recursive references to any slot component - #FIXME: by instance recache on iterative component change or other signals - """ - out = {} - for key, lvl, comp in self.go_through_configurations(parent_level=1,**kw): - if ignore_none_comp and not isinstance(comp, SolveableMixin): - continue - out[key] = comp - return out
- - - # Run & Input - def _iterate_input_matrix( - self, - method, - cb=None, - sequence: list = None, - eval_kw: dict = None, - sys_kw: dict = None, - force_solve=False, - return_results=False, - method_kw: dict = None, - **kwargs, - ): - """applies a permutation of input vars for vars. runs the system instance by applying input to the system and its slot-components, ensuring that the targeted attributes actualy exist. - - :param revert: will reset the values of X that were recorded at the beginning of the run. - :param cb: a callback function that takes the system as an argument cb(system) - :param sequence: a list of dictionaries that should be run in order per the outer-product of kwargs - :param eval_kw: a dictionary of keyword arguments to pass to the eval function of each component by their name and a set of keyword args. Use this to set values in the component that are not inputs to the system. No iteration occurs upon these values, they are static and irrevertable - :param sys_kw: a dictionary of keyword arguments to pass to the eval function of each system by their name and a set of keyword args. Use this to set values in the component that are not inputs to the system. No iteration occurs upon these values, they are static and irrevertable - :param kwargs: inputs are run on a product basis asusming they correspond to actual scoped vars (system.var or system.slot.var) - - - :returns: system or list of systems. If transient a set of systems that have been run with permutations of the input, otherwise a single system with all permutations input run - """ - from engforge.system import System - from engforge.problem_context import ProblemExec - - self.debug( - f"running [Solver].{method} {self.identity} with input {kwargs}" - ) - assert hasattr(ProblemExec.class_cache,'session'), 'must be active context!' - # create iterable null for sequence - if sequence is None or not sequence: - sequence = [{}] - - if method_kw is None: - method_kw = {} - - # Create Keys List - sequence_keys = set() - for seq in sequence: - sequence_keys = sequence_keys.union(set(seq.keys())) - - # RUN when not solved, or anything changed, or arguments or if forced - if force_solve or not self.solved or self.anything_changed or kwargs: - _input = self.parse_run_kwargs(**kwargs) - - output = {} - inputs = {} - result = {"output": output, "input_sets": inputs} - - # Pre Run Callback - self.pre_run_callback(eval_kw=eval_kw, sys_kw=sys_kw, **kwargs) - - # Premute the input as per SS or Transient Logic - ingrp = list(_input.values()) - keys = list(_input.keys()) - - # Iterate over components (they are assigned to the system by call) - for itercomp in self._iterate_components(): - # Iterate over inputs - for vars in itertools.product(*ingrp): - # Set the reference aliases - cur = {k: v for k, v in zip(keys, vars)} - - # Iterate over Sequence (or run once) - for seq in sequence: - #apply sequence values - icur = cur.copy() - #apply sequence values - if seq: - icur.update(**seq) - - # Run The Method with inputs provisioned - out = method( - icur, eval_kw, sys_kw, cb=cb, **method_kw - ) - - if return_results: - # store the output - output[max(output) + 1 if output else 0] = out - # store the input - inputs[max(inputs) + 1 if inputs else 0] = icur - - # nice - #TODO: wrap this with context manager - self._solved = True - - # Pre Run Callback with current state - self.post_run_callback(eval_kw=eval_kw, sys_kw=sys_kw, **kwargs) - - if return_results: - return result - - elif not self.anything_changed: - self.warning(f"nothing changed, not running {self.identity}") - - return - elif self.solved: - raise Exception("Analysis Already Solved") - - # IO Functions -
-[docs] - def parse_simulation_input(self, **kwargs): - """parses the simulation input - - :param dt: timestep in s, required for transients - :param endtime: when to end the simulation - """ - # timestep - if "dt" not in kwargs: - raise Exception("transients require `dt` to run") - # f"transients require timestep input `dt`" - dt = float(kwargs.pop("dt")) - - # endtime - if "endtime" not in kwargs: - raise Exception("transients require `endtime` to run") - - # add data - _trans_opts = {"dt": None, "endtime": None} - _trans_opts["dt"] = dt - - # f"transients require `endtime` to specify " - _trans_opts["endtime"] = endtime = float(kwargs.pop("endtime")) - _trans_opts["Nrun"] = max(int(endtime / dt) + 1, 1) - - # TODO: expose integrator choices - # TODO: add delay and signal & feedback options - - return _trans_opts
- - -
-[docs] - def parse_run_kwargs(self, **kwargs): - """ensures correct input for simulation. - :returns: first set of input for initalization, and all input dictionaries as tuple. - - """ - # Validate OTher Arguments By Parameter Or Comp-Recursive - var_args = {k: v for k, v in kwargs.items() if "." not in k} - comp_args = {k: v for k, v in kwargs.items() if "." in k} - - # check vars - inpossible = set.union( - set(self.input_fields()), set(self.slots_attributes()) - ) - argdiff = set(var_args).difference(inpossible) - assert not argdiff, f"bad input {argdiff}" - - # check components - comps = set([k.split(".")[0] for k in comp_args.keys()]) - compdiff = comps.difference(set(self.slots_attributes())) - assert not compdiff, f"bad slot references {compdiff}" - - _input = {} - test = ( - lambda v, add: isinstance(v, (int, float, str, *add)) or v is None - ) - - # vars input - for k, v in kwargs.items(): - # If a slot check the type is applicable - subslot = self.check_ref_slot_type(k) - if subslot is not None: - # log.debug(f'found subslot {k}: {subslot}') - addty = subslot - else: - addty = [] - - # Ensure Its a List - if isinstance(v, numpy.ndarray): - v = v.tolist() - - if not isinstance(v, list): - assert test(v, addty), f"bad values {k}:{v}" - v = [v] - else: - assert all( - [test(vi, addty) for vi in v] - ), f"bad values: {k}:{v}" - - if k not in _input: - _input[k] = v - else: - _input[k].extend(v) - - return _input
- - - # REFERENCE FUNCTIONS - # Location Funcitons -
-[docs] - @classmethod - def locate(cls, key, fail=True) -> type: - """:returns: the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error""" - # Nested - log.msg(f"locating {cls.__name__} | key: {key}") - val = None - - if "." in key: - args = key.split(".") - comp, sub = args[0], ".".join(args[1:]) - assert comp in cls.slots_attributes(), f"invalid {comp} in {key}" - comp_cls = cls.slots_attributes()[comp].type.accepted[0] - val = comp_cls.locate(sub, fail=True) - - elif key in cls.input_fields(): - val = cls.input_fields()[key] - - elif key in cls.system_properties_classdef(): - val = cls.system_properties_classdef()[key] - - # Fail on comand but otherwise return val - if val is None: - if fail: - raise Exception(f"key {key} not found") - return None - return val
- - -
-[docs] - def locate_ref(self, key, fail=True, **kw): - """Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a `.` in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the `comp` passed in the kw will be used. - :param key: the key to locate, or a callable to be used as a reference - :param comp: the component to use if a callable is passed - :returns: the instance assigned to this system. If the key has a `.` in it the comp the lowest level component will be returned - """ - - log.msg(f"locating {self.identity} | key: {key}") - val = None - - #Handle callable key override - if callable(key): - comp = kw.pop("comp", self) - func = copy.copy(key) - return Ref(comp, func, **kw) - else: - assert 'comp' not in kw, f"comp kwarg not allowed with string key {key}" - - if "." in key: - args = key.split(".") - comp, sub = args[0], ".".join(args[1:]) - assert comp in self.slots_attributes(), f"invalid {comp} in {key}" - # comp_cls = cls.slots_attributes()[comp].type.accepted[0] - comp = getattr(self, comp) - if "." not in key: - return Ref(comp, sub, **kw) - if comp: - return comp.locate_ref(sub, fail=fail, **kw) - else: - return None - - elif key in self.input_fields(): - # val= cls.input_fields()[key] - return Ref(self, key, **kw) - - elif key in self.system_properties_classdef(): - # val= cls.system_properties_classdef()[key] - return Ref(self, key, **kw) - - elif ( - key in self.internal_configurations() - or key in self.slots_attributes() - ): - return Ref(self, key, **kw) - - # Fail on comand but otherwise return val - if val is None: - if fail: - raise Exception(f"key {key} not found") - return None - return val
- - - # Reference Caching - #TODO: move to problem context -
-[docs] - def system_references(self, recache=False,numeric_only=False,**kw): - """gather a list of references to attributes and""" - if not numeric_only and not kw and (recache == False and hasattr(self, "_prv_system_references")): - return self._prv_system_references - - out = self.internal_references(recache,numeric_only=numeric_only) - tatr = out["attributes"] - tprp = out["properties"] - comp_dict = {'':self} - out['components'] = comp_set_ref = {} - - # component iternals - for key, comp in self.comp_references(**kw).items(): - sout = comp.internal_references(recache,numeric_only=numeric_only) - satr = sout["attributes"] - sprp = sout["properties"] - - #find the parent component - key_segs = key.split('.') - if len(key_segs) == 1: - parent = '' - else: - parent = '.'.join(key_segs[:-1]) - - #parent refs for assigning a component - comp_dict[key] = comp - if parent in comp_dict: - attr_name = key.split('.')[-1] - comp_set_ref[key] = Ref(comp_dict[parent],attr_name,False,True) - - # Fill in - for k, v in satr.items(): - if k in skipa_attr_names: - continue - tatr[f"{key}.{k}"] = v - - for k, v in sprp.items(): - tprp[f"{key}.{k}"] = v - - if not numeric_only and not kw : self._prv_system_references = out - return out
- - -
-[docs] - def collect_comp_refs(self,conf:"Configuration"=None,**kw): - """collects all the references for the system grouped by component""" - if conf is None: - conf = self - comp_dict = {} - attr_dict = {} - cls_dict = {} - out = {'comps':comp_dict,'attrs':attr_dict,'type':cls_dict} - for key, lvl, conf in self.go_through_configurations(**kw): - comp_dict[key] = conf - attr_dict[key] = conf.collect_inst_attributes() - - return out
- - - -
-[docs] - def collect_solver_refs(self,conf:"Configuration"=None,check_atr_f=None,check_kw=None,check_dynamics=True,**kw): - """collects all the references for the system grouped by function and prepended with the system key""" - from engforge.attributes import ATTR_BASE - from engforge.engforge_attributes import AttributedBaseMixin - - confobj = conf - if confobj is None: - confobj = self - - comp_dict = {} - attr_dict = {} - cls_dict = {} - skipped = {} - - out = {'comps':comp_dict,'attrs':attr_dict,'type':cls_dict,'skipped':skipped} - - #Go through all components - for key, lvl, conf in confobj.go_through_configurations(**kw): - - if conf is None: - continue - - if hasattr(conf,'_solver_override') and conf._solver_override: - continue - - #Get attributes & attribute instances - atrs = conf.collect_inst_attributes() - rawattr = conf.collect_inst_attributes(handle_inst=False) - key = f'{key}.' if key else '' #you need a dot if there's a key - comp_dict[key] = conf - #Gather attribute heirarchy and make key.var the dictionary entry - for atype,aval in atrs.items(): - - ck_type = rawattr[atype] - if atype not in cls_dict: - cls_dict[atype] = {} - - if isinstance(aval,dict) and aval: - - for k,pre,val in ATTR_BASE.unpack_atrs(aval,atype): - - #No Room For Components (SLOTS feature) - if isinstance(val,(AttributedBaseMixin,ATTR_BASE)): - if conf.log_level <= 5: - conf.debug(f'skipping comp attr {val}') - continue - - if val is None: - continue - - if conf.log_level <= 5: - conf.msg(f'') - conf.msg(f'got val: {k} {pre} {val}') - - slv_type = None - pre_var = pre.split('.')[-1] - if hasattr(conf,pre_var): - _var = getattr(conf,pre_var) - if isinstance(_var,AttributeInstance): - slv_type = _var - conf.msg(f'slv type: {conf.classname}.{pre_var} -> {_var}') - - val_type = ck_type[pre_var] - - #Otherwise assign the data from last var and the compoenent name - var_name = pre_var #prer alias - if slv_type: - var_name = slv_type.get_alias(pre) - - #Keep reference to the original type and name - scope_name = f'{key}{var_name}' - cls_dict[atype][scope_name] = val_type - - if conf.log_level <= 5: - conf.msg(f'rec: {var_name} {k} {pre} {val} {slv_type}') - - #Check to skip this item - #keep references even if null - pre = f'{atype}.{k}' #pre switch - if pre not in attr_dict: - attr_dict[pre] = {} - - if isinstance(val,Ref) and val.allow_set: - #its a var, skip it if it's already been skipped - current_skipped = [set(v) for v in skipped.values()] - if current_skipped and val.key in set.union(*current_skipped): - continue - - #Perform the check - if check_atr_f and not check_atr_f(pre,scope_name,val_type,check_kw): - if conf.log_level <= 5: - conf.msg(f'chk skip {scope_name} {k} {pre} {val}') - if pre not in skipped: - skipped[pre] = [] - - if isinstance(val,Ref) and val.allow_set: - #its a var - skipped[pre].append(f'{key}{val.key}') - else: - #not objective or settable, must be a obj/cond - skipped[pre].append(scope_name) - continue - - #if the value is a dictionary, unpack it with comp key - if val: - attr_dict[pre].update({scope_name:val}) - else: - if attr_dict[pre]: - continue #keep it! - else: - attr_dict[pre] = {} #reset it - - elif atype not in attr_dict or not attr_dict[atype]: - #print(f'unpacking {atype} {aval}') - attr_dict[atype] = {} - - #Dynamic Variables Add, following the skipped items - if check_dynamics: - dyn_refs = self.collect_dynamic_refs(confobj).copy() - #house keeping to organize special returns - - #TODO: generalize this with a function to update the attr dict serach result when changing components - out['dynamic_comps'] = dyn_comp = dyn_refs.pop('dynamic_comps',{}) - - #Check the dynamics for the system - if check_atr_f or any([v for v in skipped.values()]): - - skipd = set() - #check each group of dynamics - for pre,refs in dyn_refs.items(): - - if pre not in skipped: - skipped[pre] = [] - - if pre not in attr_dict: - attr_dict[pre] = {} #initalize dynamic group - - #eval each ref for inclusion - for var,ref in refs.items(): - - key_segs = var.split('.') - key = '' if len(key_segs) == 1 else '.'.join(key_segs[:-1]) - scoped_name = f'{var}' - conf = dyn_comp.get(key) - - is_ref = isinstance(ref,Ref) - if not is_ref: - conf.info(f'not ref {scoped_name}') - continue - - if is_ref and not ref.allow_set: - #adding unsettables (likely rates) - attr_dict[pre].update(**{var:ref}) - self.debug(f'set escape: {scoped_name} {ref}') - continue - - val_type = ref.comp - if check_atr_f and isinstance(var,str) and check_atr_f(pre,var,val_type,check_kw): - conf.msg(f'dynvar add {pre,var,val_type,skipd}') - attr_dict[pre].update(**{var:ref}) - else: - conf.msg(f'dynvar endskip {pre,var,val_type,skipd}') - if check_atr_f: #then it didn't checkout - skipped[pre].append(scope_name) - - else: - #There's no checks to be done, just add these - attr_dict.update(**dyn_refs) - else: - cpy = dflt_dynamics.copy() - cpy.pop('dynamic_comps',{}) - attr_dict.update(cpy) - - - - return out
- - - #Dynamics info refs -
-[docs] - def collect_dynamic_refs( - self, conf: "Configuration" = None, **kw - ) -> dict: - """collects the dynamics of the systems - 1. Time.integrate - 2. Dynamic Instances - """ - from engforge.dynamics import DynamicsMixin - if conf is None: - conf = self - dynamics = {k:{} for k in dflt_dynamics} - - for key, lvl, conf in conf.go_through_configurations(**kw): - # FIXME: add a check for the dynamics mixin, that isn't hacky - # BUG: importing dynamicsmixin resolves as different class in different modules, weird - # if "dynamicsmixin" not in str(conf.__class__.mro()).lower(): - # continue - if not isinstance(conf, DynamicsMixin) or not conf.is_dynamic: - continue - - sval = f'{key}.' if key else '' - scope = lambda d: {f'{sval}{k}':v for k,v in d.items()} - dynamics['dynamics.state'].update(scope(conf.Xt_ref)) - dynamics['dynamics.input'].update(scope(conf.Ut_ref)) - dynamics['dynamics.output'].update(scope(conf.Yt_ref)) - dynamics['dynamics.rate'].update(scope(conf.dXtdt_ref)) - dynamics['dynamic_comps'][key] = conf - - return dynamics
- - - -
-[docs] - def get_system_input_refs( - self, - strings=False, - numeric=True, - misc=False, - all=False, - boolean=False, - **kw, - ) -> dict: - """ - Get the references to system input based on the specified criteria. - - :param strings: Include system properties of string type. - :param numeric: Include system properties of numeric type (float, int). - :param misc: Include system properties of miscellaneous type. - :param all: Include all system properties regardless of type. - :param boolean: Include system properties of boolean type. - :param kw: Additional keyword arguments passed to recursive config loop - :return: A dictionary of system property references. - :rtype: dict - """ - from engforge.tabulation import SKIP_REF - refs = {} - for ckey, lvl, comp in self.go_through_configurations(**kw): - if comp is None: - continue - for p, atr in comp.input_fields().items(): - if p in SKIP_REF and not all: - continue - if all: - refs[(f"{ckey}." if ckey else "") + p] = Ref( - comp, p, False, True - ) - continue - elif atr.type: - ty = atr.type - if issubclass(ty, (bool)): - if not boolean: - continue # prevent catch at int type - refs[(f"{ckey}." if ckey else "") + p] = Ref( - comp, p, True, False - ) - elif issubclass(ty, (float, int)) and numeric: - refs[(f"{ckey}." if ckey else "") + p] = Ref( - comp, p, False, True - ) - elif issubclass(ty, (str)) and strings: - refs[(f"{ckey}." if ckey else "") + p] = Ref( - comp, p, False, True - ) - elif misc: - refs[(f"{ckey}." if ckey else "") + p] = Ref( - comp, p, False, True - ) - - return refs
-
- - -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/solver.html b/docs/_build/html/_modules/engforge/solver.html deleted file mode 100644 index 2785c56..0000000 --- a/docs/_build/html/_modules/engforge/solver.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - - - engforge.solver — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.solver

-"""solver defines a SolverMixin for use by System.
-
-Additionally the Solver attribute is defined to add complex behavior to a system as well as add constraints and transient integration.
-
-### A general Solver Run Will Look Like:
-0. run pre execute (signals=pre,both)
-1. add execution context with **kwargument for the signals. 
-2. parse signals here (through a new Signals.parse_rtkwargs(**kw)) which will non destructively parse the signals and return all the signal candiates which are put into an ProblemExec object that resets the signals after the run depending on the revert behavior
-3. the execute method will recieve this ProblemExec object where it can update the solver references / signals so that it can handle them per the signals api
-4. with self.execution_context(**kwargs) as ctx_exe: 
-    1. pre-update / signals
-    <FLEXIBLE_Exec>#self.execute(ctx_exe,**kwargs) 
-    2. post-update / signals
-    > signals will be reset after the execute per the api
-5. run post update
-6. exit condition check via problem context input
-"""
-
-import attrs
-import uuid
-import numpy
-import scipy.optimize as scopt
-from contextlib import contextmanager
-import copy
-import datetime
-
-# from engforge.dynamics import DynamicsMixin
-from engforge.properties import *
-from engforge.solveable import SolveableMixin
-from engforge.system_reference import *
-import pprint
-import itertools, collections
-import inspect
-
-SOLVER_OPTIONS = ["minimize"]#"root", "global", 
-from engforge.solver_utils import *
-from engforge.problem_context import *
-from engforge.attr_solver import Solver,SolverInstance
-import sys
-
-[docs] -class SolverLog(LoggingMixin): - pass
- - - -log = SolverLog() - - -# add to any SolvableMixin to allow solver use from its namespace -
-[docs] -class SolverMixin(SolveableMixin): - """A base class inherited by solveable items providing the ability to solve itself""" - - #TODO: implement constraint equality solver as root - - # Configuration Information - @property - def solved(self): - if self.last_context is None: - return False - elif self.last_context.data: - return True - return False - - # Replaces Tabulation Method - @solver_cached - def data_dict(self): - """records properties from the entire system, via system references cache""" - out = collections.OrderedDict() - sref = self.system_references() - for k, v in sref["attributes"].items(): - val = v.value() - if isinstance(val, TABLE_TYPES): - out[k] = val - else: - out[k] = numpy.nan - for k, v in sref["properties"].items(): - val = v.value() - if isinstance(val, TABLE_TYPES): - out[k] = val - else: - out[k] = numpy.nan - return out - - #Official Solver Interface -
-[docs] - def solver_vars(self,check_dynamics=True,addable=None,**kwargs): - """applies the default combo filter, and your keyword arguments to the collect_solver_refs to test the ref / vars creations - - parses `add_vars` in kwargs to append to the collected solver vars - :param add_vars: can be a str, a list or a dictionary of variables: solver_instance kwargs. If a str or list the variable will be added with positive only constraints. If a dictionary is chosen, it can have keys as parameters, and itself have a subdictionary with keys: min / max, where each respective value is placed in the constraints list, which may be a callable(sys,prob) or numeric. If nothing is specified the default is min=0,max=None, ie positive only. - """ - from engforge.solver import combo_filter - - out = self.collect_solver_refs(check_atr_f=combo_filter,check_kw=kwargs,check_dynamics=check_dynamics) - - base_const = {'min':0,'max':None} #positive only - - #get add_vars and add to attributes - if addable and ( addvar:= kwargs.get('add_vars',[])): - matches = [] - if addvar: - - #handle csv, listify string - if isinstance(addvar,str): - addvar = addvar.split(',') - - #handle dictionary - added = set(()) - avars = list(addable['attributes'].keys()) - for av in addvar: #list/dict-keys - matches = set(fnmatch.filter(avars,av)) - #Lookup Constraints if input is a dictionary - if isinstance(addvar,dict) and isinstance(addvar[av],dict): - const = base_const.copy() - const.update(addvar[av]) - elif isinstance(addvar,dict): - raise ValueError(f'dictionary must have a subdictionary for {av}') - else: - const = base_const.copy() - - #for each match we add the variable - for mtch in matches: - if mtch in added: - continue #add only once - else: - added.add(mtch) - - if self.log_level < 5: - self.msg(f'adding {mtch} to solver vars') - #add constraint values and type/instance - ref = addable['attributes'][mtch].copy() - mtch_type = Solver.declare_var(mtch) #type - #bounds - mtch_type.constraints[0]['value'] = const['min'] - mtch_type.constraints[1]['value'] = const['max'] - #instance - mtch_inst = SolverInstance(mtch_type,self) - #attach - out['attrs']['solver.var'][mtch] = ref - out['type']['solver'][mtch] = mtch_inst - - return out
- - - -
-[docs] - def post_run_callback(self, **kwargs): - """user callback for when run is complete""" - pass
- - -
-[docs] - def pre_run_callback(self, **kwargs): - """user callback for when run is beginning""" - pass
- - -
-[docs] - def run(self, **kwargs): - """the steady state run the solver for the system. It will run the system with the input vars and return the system with the results. Dynamics systems will be run so they are in a steady state nearest their initial position.""" - - if 'opt_fail' not in kwargs: - kwargs['opt_fail'] = False - - with ProblemExec(self,kwargs,level_name='run') as pbx: - #problem context removes slv/args from kwargs - return self._iterate_input_matrix(self.eval, return_results=True,**kwargs)
- - - -
-[docs] - def run_internal_systems(self, sys_kw=None): - """runs internal systems with potentially scoped kwargs""" - # Pre Execute Which Sets Fields And PRE Signals - from engforge.system import System - - # Record any changed state in components here, important for iterators - if isinstance(self, System): - self.system_references(recache=True) - - # System Solver Loop - for key, comp in self.internal_systems().items(): - if hasattr(comp,'_solver_override') and comp._solver_override: - if sys_kw and key in sys_kw: - sys_kw_comp = sys_kw[key] - else: - sys_kw_comp = {} - - # Systems solve cycle - if isinstance(comp, System): # should always be true - self.info(f"solving {key} with {sys_kw_comp}") - comp.eval(**sys_kw_comp)
- - - # Single Point Flow -
-[docs] - def eval( - self, Xo=None,eval_kw: dict = None, sys_kw: dict = None,cb=None, **kw - ): - """Evaluates the system with pre/post execute methodology - :param kw: kwargs come from `sys_kw` input in run ect. - :param cb: an optional callback taking the system as an argument of the form (self,eval_kw,sys_kw,**kw) - """ - - # Transeint - from engforge.system import System - if kw.pop('refresh_references',True) and isinstance(self, System): - #recache is important for iterators #TODO: only with iterable comps - self.system_references(recache=True) - - #default behavior of system is to accept non-optimal results but describe the behavior anyways - if 'opt_fail' not in kw: - kw['opt_fail'] = False - - - self.debug(f"running with kw:{kw}") - - #execute with problem context and execute signals - with ProblemExec(self,kw,level_name='eval',eval_kw=eval_kw, sys_kw=sys_kw,post_callback=cb,Xnew=Xo) as pbx: - out = self.execute(**kw) - pbx.exit_to_level(level='eval',revert=False) - - if self.log_level >= 20: - sys.stdout.write('.') - - return out
- - -
-[docs] - def execute(self,**kw): - """Solves the system's system of constraints and integrates transients if any exist - - Override this function for custom solving functions, and call `solver` to use default solver functionality. - - :returns: the result of this function is returned from solver() - """ - # steady state - dflt = dict()#obj=None, cons=True, X0=None, dXdt=0) - dflt.update(kw) - return self.solver(**dflt)
- - - # TODO: add global optimization search for objective addin, via a new `search_optimization` method. - - # TODO: code options for transient integration -
-[docs] - def solver( - self, enter_refresh=True,save_on_exit=True,**kw - ): - """ - runs the system solver using the current system state and modifying it. This is the default solver for the system, and it is recommended to add additional options or methods via the execute method. - - - - :param obj: the objective function to minimize, by default will minimize the sum of the squares of the residuals. Objective function should be a function(system,Xs,Xt) where Xs is the system state and Xt is the system transient state. The objective function will be argmin(X)|(1+custom_objective)*residual_RSS when `add_obj` is True in kw otherwise argmin(X)|custom_objective with constraints on the system as balances instead of first objective being included. - :param cons: the constraints to be used in the solver, by default will use the system's constraints will be enabled when True. If a dictionary is passed the solver will use the dictionary as the constraints in addition to system constraints. These can be individually disabled by key=None in the dictionary. - - :param X0: the initial guess for the solver, by default will use the current system state. If a dictionary is passed the solver will use the dictionary as the initial guess in addition to the system state. - :param dXdt: can be 0 to indicate steady-state, or None to not run the transient constraints. Otherwise a partial dictionary of vars for the dynamics rates can be given, those not given will be assumed steady state or 0. - - :param kw: additional options for the solver, such as the solver_option, or the solver method options. Described below - :param combos: a csv str or list of combos to include, including wildcards. the default means all combos will be run unless ign_combos or only combos alters behavior. The initial selection of combos is made by matching any case with the full name of the combo, or a parial name with a wildcard(s) in the combo name Ignore and only combos will further filter the selection. Wildcards / queries per fnmatch - :param ign_combos: a list of combo vars to ignore. - :param only_combos: a list of combo vars to include exclusively. - :param add_var: a csv str or variables to include, including wildcards. the default means all combos will be run unless ign_combos or only combos alters behavior. The initial selection of combos is made by matching any case with the full name of the combo, or a parial name with a wildcard(s) in the combo name Ignore and only combos will further filter the selection. Wildcards / queries per fnmatch - :param ign_var: a list of combo vars to ignore. - :param only_var: a list of combo vars to include exclusively. - :param add_obj: a flag to add the objective to the system constraints, by default will add the objective to the system constraints. If False the objective will be the only constraint. - :param only_active: default True, will only look at active variables objectives and constraints - :param activate: default None, a list of solver vars to activate - :param deactivate: default None, a list of solver vars to deactivate (if not activated above) - """ - - #to your liking sir - opts = {} #TODO: add defaults - opts.update(kw) #your custom args! - - #use problem execution context - self.debug(f'starting solver: {opts}') - - with ProblemExec(self,opts,level_name='sys_slvr',enter_refresh=enter_refresh,save_on_exit=save_on_exit) as pbx: - - #Use Solver Context to Solve - out = pbx.solve_min(**opts) - has_ans = 'ans' in out - #depending on the solver success, failure or no solution, we can exit the solver - if has_ans and out['ans'] and out['ans'].success: - #this is where you want to be! <<< - pbx.set_ref_values(out['Xans']) - pbx.exit_to_level('sys_slvr',False) - - elif has_ans and out['ans'] is None: - #deterministic input based case for updates / signals - self.debug(f'exiting solver with no solution {out}') - pbx.exit_with_state() - - else: - #handle failure options - if pbx.opt_fail: - - #if log.log_level < 15: - pbx.warning(f'Optimization Failed: {pbx.sys_refs} | {pbx.constraints}') - - #if log.log_level < 5: - pbx.debug(f'{pbx.__dict__}') - - ve = f"Solver failed to converge: {out['ans']}" - raise ValueError(ve) - - if pbx.fail_revert: - pbx.exit_and_revert() - else: - pbx.exit_with_state() - #close context - - #return output - return out
-
- - - - - - - - - - - - - - -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/solver_utils.html b/docs/_build/html/_modules/engforge/solver_utils.html deleted file mode 100644 index b85beac..0000000 --- a/docs/_build/html/_modules/engforge/solver_utils.html +++ /dev/null @@ -1,840 +0,0 @@ - - - - - - engforge.solver_utils — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.solver_utils

-from engforge.system_reference import *
-from engforge.logging import LoggingMixin
-#from engforge.execution_context import *
-
-import fnmatch
-
-
-[docs] -class SolverUtilLog(LoggingMixin): pass
- -log = SolverUtilLog() - -# Objective functions & Utilities -
-[docs] -def f_lin_min(system,prob, Xref, Yref,weights=None, *args, **kw): - """ - Creates an anonymous function with stored references to system, Yref, weights, that returns a scipy optimize friendly function of (x, Xref, *a, **kw) x which corresponds to the order of Xref dicts, and the other inputs are up to application. - - :param system: the system object - :param Xref: a dictionary of reference values for X - :param Yref: a dictionary of reference values for Y - :param weights: optional weights for Yref - :param args: additional positional arguments - :param kw: additional keyword arguments - - :return: the anonymous function - """ - from engforge.problem_context import ProblemExec - - #TODO: move these to problem context!!! - mult_pos = kw.pop("mult_pos", 1) - exp_pos = kw.pop("exp_pos", 1) - mult_neg = kw.pop("mult_neg", 1) - exp_neg = kw.pop("exp_neg", 1) - gam = norm_base = kw.pop("norm_base", 1) - inputs = [mult_neg,exp_neg,mult_pos,exp_pos,gam,norm_base] - is_lin = all(v==1 for v in inputs) - - solver_ref = system.collect_solver_refs() - solver_types = solver_ref.get('type',{}).get('solver',{}) - base_dict = {'system':system,'Yref':Yref,'weights':weights,'args':args,'kw':kw} - xkey = "_".join(Xref.keys()) - ykey = "_".join(Yref.keys()) - alias_name = kw.pop("alias_name", f'min_X_{xkey}_Y_[{ykey}]') - - vars = list(Xref.keys()) # static x_basis - yvar = list(Yref.keys()) - weights = weights if weights is not None else np.ones(len(Yref)) - - def f(x, *rt_a,**rt_kw): - # anonymous function - - Xnext = {p:xi for p, xi in zip(vars, x)} - - if rt_a or rt_kw: - slv_info = base_dict.copy() - slv_info.update({'rt_a':rt_a,'kw':rt_kw}) - else: - slv_info = base_dict - - #with revert_X(system,Xref,Xnext=Xnext): - #this will run all signals and updates selected in outer context - with ProblemExec(system,{},Xnew=Xnext,ctx_fail_new=True) as exc: - grp = (yvar, weights) - vals,pos,neg = [],[],[] - for p,n in zip(*grp): - ty = solver_types.get(p,None) - if ty is None or not hasattr(ty.solver,'kind') or ty.solver.kind == 'min': - arry = pos - elif ty.solver.kind == 'max': - arry = neg - else: - system.warning(f'non minmax obj: {p} {ty.solver.kind}') - - ref = Yref[p] - val = eval_ref(ref,system,prob) * n - arry.append( val ) - vals.append( val ) - - if not is_lin: - ps = mult_pos*np.array( pos )**exp_pos - #Min-Max Logic - if neg: - ns = mult_neg*np.array( neg )**exp_neg - ns = np.sum(ns) - out= np.sum(ps)**gam - np.sum(ns)**gam - else: - out = mult_pos*np.sum(ps)**gam - - if system.log_level < 5: - system.debug(f'obj {alias_name}: {x} -> {vals}') - - return out # n sized normal residual vector - else: - #the faster linear case - if neg: - return np.sum(np.array( pos )) - np.sum(np.array( neg )) - else: - return np.sum(np.array( pos )) - - f.__name__ = f'min_Y_{"_".join(Yref.keys())}_X_{"_".join(Xref.keys())}]' - - return f
- - -# signature in solve: refmin_solve(system,system,Xref) -
-[docs] -def objectify(function,system,Xrefs,prob=None,*args,**kwargs): - """converts a function f(system,slv_info:dict) into a function that safely changes states to the desired values and then runs the function. A function is returend as f(x,*args,**kw)""" - from engforge.problem_context import ProblemExec - base_dict = dict(system=system,Xrefs=Xrefs,args=args,**kwargs) - lvl_name = f'obj_{str(function.__name__.split("<function")[0])}' - alias_name = kwargs.pop("alias_name",lvl_name) - - prob = prob - - #hello anonymous function - def f_obj(x,*rt_args,**rt_kwargs): - new_state = {p: x[i] for i, p in enumerate(Xrefs)} - #Enter existing problem context - with ProblemExec(system,{},Xnew=new_state,ctx_fail_new=True,level_name=lvl_name) as exc: - updtinfo = base_dict.copy() - updtinfo.update(x=x,rt_args=rt_args, **rt_kwargs) - prob = locals().get('prob',updtinfo) - - out= function(system,prob) - if system.log_level <= 10: - system.debug(f'obj {alias_name}: {x} -> {out}') - return out - - if system.log_level < 3: - system.msg(f'obj setup {function} - > {f_obj}') - system.msg(inspect.getsource(function)) - - fo = lambda x,*a,**kw: f_obj(x,prob,*a,**kw) - fo.__name__ =f'OBJ_{alias_name}' - return fo
- - -
-[docs] -def secondary_obj( - obj_f, system,Xrefs,normalize=None,base_func=f_lin_min,*args,**kwargs -): - """modifies an objective function with a secondary function that is only considered when the primary function is minimized.""" - from engforge.problem_context import ProblemExec - vars = list(Xrefs.keys()) # static x_basis - base_dict = dict(system=system,args=args,Xrefs=Xrefs,**kwargs) - lvl_name = f'{obj_f.__name__}_scndry' - alias_name = kwargs.pop("alias_name", lvl_name) - - def f(x,*rt_args,**rt_kwargs): - - new_state = {p: x[i] for i, p in enumerate(Xrefs)} - base_call = base_func(system, Xrefs, normalize) - #with revert_X(system, Xrefs,Xnext=new_state) as x_prev: - - #Enter existing problem context - with ProblemExec(system,{},Xnew=new_state,ctx_fail_new=True,level_name=lvl_name) as exc: - A = base_call(x) - solver_info = base_dict.copy() - solver_info.update(x=x,Xrefs=Xrefs,normalize=normalize,rt_args=rt_args, **rt_kwargs) - - out = A * (1 + obj_f(system, solver_info)) - if system.log_level < 5: - system.msg(f'obj {alias_name}: {x} -> {out}') - return out - - if system.log_level < 18: - system.debug(f'secondary setup {obj_f} - > {f}') - system.debug(inspect.getsource(function)) - - return f
- - -
-[docs] -def ref_to_val_constraint(system,ctx,Xrefs,var_ref,kind,val,contype='ineq',return_ref=False,*args,**kwargs): - """takes a var reference and a value and returns a function that can be used as a constraint for min/max cases. The function will be a function of the system and the info dictionary. The function will return the difference between the var value and the value. - """ - info = ctx - #info = {'system':system,'Xrefs':Xrefs,'var_ref':var_ref,'kind':kind,'val':val,'args':args,'kwargs':kwargs} - p = var_ref - if isinstance(val,Ref): - if kind == 'min': - fun = lambda system,info: p.value(system,info) - val.value(system,info) - else: - fun = lambda system,info: val.value(system,info) - p.value(system,info) - fun.__name__ = f'REF{val.comp}.{kind}.{p.key}' - ref = Ref(val.comp,fun) - #Function Case - elif callable(val): - #print('ref to val con', val,kind,p) - if kind == 'min': - fun = lambda system,info: p.value(system,info) - val(system,info) - else: - fun = lambda system,info: val(system,info) - p.value(system,info) - fun.__name__ = f'REF.{kind}.{val.__name__}' - ref = Ref(p.comp,fun) #comp shouldn't matter - elif isinstance(val,(int,float)): - if kind == 'min': - fun = lambda system,info: p.value(system,info) - val - else: - fun = lambda system,info: val - p.value(system,info) - fun.__name__ = f'REF.{kind}.{val}' - ref = Ref(p.comp,fun) #comp shouldn't matter - else: - raise ValueError(f"bad constraint value: {val}") - - if return_ref: - return ref - - #Make Objective - return create_constraint(system,Xrefs,contype,ref,*args,**kwargs)
- - -
-[docs] -def create_constraint( - system,Xref, contype: str, ref, con_args=None,*args, **kwargs -): - """creates a constraint with bounded solver input from a constraint definition in dictionary with type and value. If value is a function it will be evaluated with the extra arguments provided. If var is None, then the constraint is assumed to be not in reference to the system x vars, otherwise lookups are made to that var. - - Creates F(x_solver:array) such that the current vars of system are reverted to after the function has returned, which is used directly by SciPy's optimize.minimize - - """ - assert contype in ( - "eq", - "ineq", - ), f"bad constraint type: {contype}" - - if system.log_level < 5: - system.debug(f'create constraint {contype} {ref} {args} {kwargs}| {con_args}') - - # its a function - _fun = lambda *args,**kw: ref.value(*args,**kw) - _fun.__name__ = f'const_{contype}_{ref.comp.classname}_{ref.key}' - fun = objectify(_fun,system,Xref,*args,**kwargs) - cons = {"type": contype, "fun": fun} - if con_args: - cons['args'] = con_args - return cons
- - -#TODO: integrate / merge with ProblemExec (all cmted out) -# def misc_to_ref(system,val,*args,**kwargs): -# """takes a var reference and a value and returns a function that can be used as a constraint for min/max cases. The function will be a function of the system and the info dictionary. The function will return the difference between the var value and the value. -# """ -# if isinstance(val,Ref): -# #fun = lambda *a,**kw:val.value() -# ref = Ref(val.comp,val) -# #Function Case -# elif callable(val): -# fun = lambda system,info: val(system,info) -# fun.__name__ = val.__name__ -# ref = Ref(None,fun) #comp shouldn't matter -# elif isinstance(val,(int,float)): -# fun = lambda system,info: val -# fun.__name__ = f'const_{str(val)}' -# ref = Ref(None,fun) #comp shouldn't matter -# else: -# raise ValueError(f"bad constraint value: {val}") -# -# return ref - - -# Reference Jacobean Calculation -#TODO: hessian ect... -# def calcJacobean( -# sys, Yrefs: dict, Xrefs: dict, X0: dict = None, pct=0.001, diff=0.0001 -# ): -# """ -# returns the jacobiean by modifying X' <= X*pct + diff and recording the differences. When abs(x) < pct x' = x*1.1 + diff. -# -# jacobean will be ordered by Xrefs/Yrefs, so use ordered dict to keep order -# """ -# -# if X0 is None: -# X0 = refset_get(Xrefs) -# -# assert len(Xrefs) == len(X0) -# assert len(Yrefs) >= 1 -# -# with sys.revert_X(refs=Xrefs): #TODO: replace with context manager -# #initalize here -# refset_input(Xrefs, X0) -# -# rows = [] -# dxs = [] -# Fbase = refset_get(Yrefs) -# for k, v in Xrefs.items(): -# x = v.value()#TODO: add context manager,sys -# if not isinstance(x, (float, int)): -# sys.warning(f"var: {k} is not numeric {x}, skpping") -# continue -# -# if abs(x) > pct: -# new_x = x * (1 + pct) + diff -# else: -# new_x = x * (1.1) + diff -# dx = new_x - x -# #print(dx, new_x, x) -# dxs.append(dx) -# -# v.set_value(new_x) # set delta -# sys.pre_execute() -# -# F_ = refset_get(Yrefs) -# Fmod = [(F_[k] - fb) / dx for k, fb in Fbase.items()] -# -# rows.append(Fmod) -# v.set_value(x) # reset value -# -# return np.column_stack(rows) - - -#TODO: integrate / merge with ProblemExec (all below) -
-[docs] -def refmin_solve( - system, - prob, - Xref: dict, - Yref: dict, - Xo=None, - weights: np.array = None, - ffunc=f_lin_min, - **kw, -): - """minimize the difference between two dictionaries of refernces, x references are changed in place, y will be solved to zero, options ensue for cases where the solution is not ideal - - :param Xref: dictionary of references to the x values, or independents - :param Yref: dictionary of references to the value of objectives to be minimized - :param Xo: initial guess for the x values as a list against Xref order, or a dictionary - :param weights: a dictionary of values to weights the x values by, list also ok as long as same length and order as Xref - :param reset: if the solution fails, reset the x values to their original state, if true will reset the x values to their original state on failure overiding doset. - :param doset: if the solution is successful, set the x values to the solution by default, otherwise follows reset, if not successful reset is checked first, then doset - """ - vars = list(Xref.keys()) # static x_basis - - # The above code is a Python script that includes a TODO comment indicating - # that x-normalization needs to be incorporated into the code. The code itself - # is not shown, but it likely involves some operations on a variable or data - # structure named "x" that require normalization. The TODO comment serves as a - # reminder for the developer to implement this functionality at a later time. - #TODO: incorporate x-normilization - norm_x,weights = handle_normalize(weights,Xref,Yref) - - # make objective function - Fc = ffunc(system,prob,Xref,Yref,weights) - Fc.__name__ = ffunc.__name__ - - if Xo is None: - Xo = [Xref[p].value() for p in vars] - - elif isinstance(Xo, dict): - Xo = [Xo[p] for p in vars] - - # TODO: IO for jacobean and state estimations (complex as function definition, requires learning) - system.debug(f'minimize! {Fc.__name__,Xo,vars,kw}') - #kw.pop('prob',None) - kw.pop('info',None) #info added from context constraints - ans = sciopt.minimize(Fc, Xo, **kw) - return ans
- - -
-[docs] -def handle_normalize(norm,Xref,Yref): - vars = list(Xref.keys()) # static x_basis - if norm is None: - normX = np.ones(len(vars)) - normY = np.ones(len(Yref)) - elif isinstance(norm, (list, tuple, np.ndarray)): - assert len(norm) == len(vars), "bad length-X norm input" - normX = np.array(norm) - normY = np.ones(len(Yref)) #default to 1 - elif isinstance(norm, (dict)): - normX = np.array([norm[p] if p in norm else 1 for p in vars]) - normY = np.array([norm[p] if p in norm else 1 for p in Yref]) - - return normX,normY
- - - - -#Parsing Utilities -
-[docs] -def arg_var_compare(var,seq): - if '*' in seq: - return fnmatch.fnmatch(var,seq) - else: - return var == seq
- - -
-[docs] -def str_list_f(out:list,sep=','): - if isinstance(out,str): - out = out.split(sep) - return out
- - -
-[docs] -def ext_str_list(extra_kw,key,default=None): - if key in extra_kw: - out = extra_kw[key] - return str_list_f(out) - else: - out = default - return out
- - -SLVR_SCOPE_PARM = ['solver.eq','solver.ineq','solver.var','solver.obj','time.var','time.rate','dynamics.state','dynamics.rate'] - -
-[docs] -def combo_filter(attr_name,var_name, solver_inst, extra_kw,combos=None)->bool: - #TODO: allow solver_inst to be None for dyn-classes - #proceed to filter active items if vars / combos inputs is '*' select all, otherwise discard if not active - #corresondes to problem_context.slv_dflt_options - if extra_kw is None: - extra_kw = {} - - outa = True - if extra_kw.get('only_active',True): - - outa = filt_active(var_name,solver_inst,extra_kw=extra_kw,dflt=False) - if not outa: - log.msg(f'filt not active: {var_name:>10} {attr_name:>15}| C:{False}\tV:{False}\tA:{False}\tO:{False}') - return False - - both_match = extra_kw.get('both_match',True) - #Otherwise look at the combo filter, its its false return that - outc = filter_combos(var_name,solver_inst, extra_kw,combos) - outp = None - - #if the combo filter didn't explicitly fail, check the var filter - if (outc and both_match) or (not outc and not both_match): - outp = filter_vals(var_name,solver_inst, extra_kw) - if log.log_level <=2: - log.msg(f'both match? {var_name:>20}| {outp} {outc}') - - if both_match: - outr = all((outp,outc)) - else: - outr = any((outp,outc)) - else: - if log.log_level <=2: - log.msg(f'initial match: {var_name:>20}| {outc}') - outr = outc - - fin = bool(outr) and outa - - if not fin: - log.debug(f'filter: {var_name:>20} {attr_name:>15}| C:{outc}\tV:{outp}\tA:{outa}\tO:{fin}') - elif fin: - log.debug(f'filter: {var_name:>20} {attr_name:>15}| C:{outc}\tV:{outp}\tA:{outa}\tO:{fin}| {combos}') - - return fin
- - -#filters return true for items they want to remove -
-[docs] -def filter_combos(var,inst,extra_kw=None,combos_in=None): - from engforge.attr_solver import SolverInstance - from engforge.attr_dynamics import IntegratorInstance - from engforge.attr_signals import SignalInstance - #not considered - - if log.log_level <= 2: - log.info(f'checking combos: {var} {inst} {extra_kw} {combos_in}') - - #gather combos either given or not - if combos_in is None and not isinstance(inst,(SolverInstance,IntegratorInstance,SignalInstance)): - return True - elif combos_in: - combos = combos_in - else: - combos = str_list_f(getattr(inst,'combos', 'default')) - - #parse extra kwargs - groups = ext_str_list(extra_kw,'combos','') - bm = extra_kw.get('both_match',True) - if groups is None: - return bm if bm is True else None - - igngrp = ext_str_list(extra_kw,'ign_combos',None) - onlygrp = ext_str_list(extra_kw,'only_combos',None) - - if not combos: - log.info(f'no combos for {var} {combos} {groups}') - return None #no combos to filter to match, its permanent - - #check values, and return on first match - for var in combos: - initial_match = [grp for grp in groups if arg_var_compare(var,grp)] - if not any(initial_match): - if log.log_level < 3: - log.msg(f'skip {var}: nothing ') - continue #not even - - if onlygrp and not any(arg_var_compare(var,grp) for grp in onlygrp): - if log.log_level < 3: - log.msg(f'skip {var} not in {onlygrp}') - continue - - if igngrp and any(arg_var_compare(var,grp) for grp in igngrp): - if log.log_level < 3: - log.msg(f'skip {var} in {igngrp}') - continue - - return True #you've passed all the filters and found a match - - return False #no matches, return false
- - -
-[docs] -def filter_vals(var,inst,extra_kw=None): - from engforge.attr_solver import SolverInstance - from engforge.attr_dynamics import IntegratorInstance - from engforge.attr_signals import SignalInstance - from engforge.dynamics import DynamicsMixin - - #add_vars = ext_str_list(extra_kw,'add_vars',None) - groups = ext_str_list(extra_kw,'slv_vars','') - if groups is None: - return True #no var filter! - - igngrp = ext_str_list(extra_kw,'ign_vars',None) - onlygrp = ext_str_list(extra_kw,'only_vars',None) - - if log.log_level <= 2: - log.info(f'checking vals: {var} {inst} {extra_kw}') - - #vars not considered - if not isinstance(inst,(SolverInstance,IntegratorInstance,SignalInstance,DynamicsMixin)): - return True - - #add vars overrides all other filters - #NOTE: add_vars is for variables that aren't defined already, slv_vars is for variables that are defined - # if add_vars: - # if any([arg_var_compare(var,avar) for avar in add_vars]): - # if log.log_level < 3: - # log.msg(f'adding solver var') - # return True - - #check values, and filters - initial_match = [grp for grp in groups if arg_var_compare(var,grp)] - if log.log_level < 2: - log.msg(f'initial match: {var} in {initial_match}') - - if not any(initial_match): - if log.log_level < 3: - log.msg(f'skip {var}: nothing') - return False - if onlygrp and not any(arg_var_compare(var,grp) for grp in onlygrp): - if log.log_level < 3: - log.msg(f'skip {var} not in {onlygrp}') - return False - if igngrp and any(arg_var_compare(var,grp) for grp in igngrp): - if log.log_level < 3: - log.msg(f'skip {var} in {igngrp}') - return False - return True
- - -
-[docs] -def filt_active(var,inst,extra_kw=None,dflt=False): - from engforge.attr_solver import SolverInstance - from engforge.attr_dynamics import IntegratorInstance - from engforge.attr_signals import SignalInstance - - #not considered - if not isinstance(inst,(SolverInstance,IntegratorInstance,SignalInstance)): - return True - - activate = ext_str_list(extra_kw,'activate',[]) - deactivate = ext_str_list(extra_kw,'deactivate',[]) - - act = inst.is_active(dflt) #default is inclusion boolean - - #check for possibilities of activation - if not act and not activate: - if log.log_level < 3: - log.msg(f'skip {var}: not active') - return False #shortcut - if activate and any(arg_var_compare(var,grp) for grp in activate): - if log.log_level < 3: - log.msg(f'{var} activated!') - return True - if deactivate and any(arg_var_compare(var,grp) for grp in deactivate): - if log.log_level < 3: - log.msg(f'{var} deactivated!') - return False - log.msg(f'{var} is active={act}!') - return act
- - - - - - - - - - - -# def solve_root( -# self, Xref, Yref, Xreset, vars, output=None, fail=True, **kw -# ): -# """ -# Solve the root problem using the given vars. -# -# :param Xref: The reference input values. -# :param Yref: The reference output values. -# :param Xreset: The reset input values. -# :param vars: The list of var names. -# :param output: The output dictionary to store the results. (default: None) -# :param fail: Flag indicating whether to raise an exception if the solver doesn't converge. (default: True) -# :param kw: Additional keyword arguments. -# :return: The output dictionary containing the results. -# :rtype: dict -# """ -# if output is None: -# output = { -# "Xstart": Xreset, -# "vars": vars, -# "Xans": None, -# "success": None, -# } -# -# assert len(Xref) == len(Yref), "Xref and Xreset must have the same length" -# -# self._ans = refroot_solve(self, Xref, Yref, ret_ans=True, **kw) -# output["ans"] = self._ans -# if self._ans.success: -# # Set Values -# Xa = {p: self._ans.x[i] for i, p in enumerate(vars)} -# output["Xans"] = Xa -# Ref.refset_input(Xref, Xa) -# self.pre_execute() -# self._converged = True -# output["success"] = True -# else: -# Ref.refset_input(Xref, Xreset) -# self.pre_execute() -# self._converged = False -# if fail: -# raise Exception(f"solver didnt converge: {self._ans}") -# output["success"] = False -# -# return output - - - - - - - - - -#### TODO: solve equillibrium case first using root solver for tough problems -# # make anonymous function -# def f_lin_slv(system, Xref: dict, Yref: dict, normalize=None,slv_info=None): -# vars = list(Xref.keys()) # static x_basis -# yvar = list(Yref.keys()) -# def f(x): # anonymous function -# # set state -# for p, xi in zip(vars, x): -# Xref[p].set_value(xi) -# print(Xref,Yref) -# grp = (yvar, x, normalize) -# vals = [eval_ref(Yref[p],system,slv_info) / n for p, x, n in zip(*grp)] -# return vals # n sized normal residual vector -# -# return f -# -# def refroot_solve( -# system, -# Xref: dict, -# Yref: dict, -# Xo=None, -# normalize: np.array = None, -# reset=True, -# doset=True, -# fail=True, -# ret_ans=False, -# ffunc=f_lin_slv, -# **kw, -# ): -# """find the input X to ensure the difference between two dictionaries of refernces, x references are changed in place, y will be solved to zero, options ensue for cases where the solution is not ideal -# -# :param Xref: dictionary of references to the x values -# :param Yref: dictionary of references to the y values -# :param Xo: initial guess for the x values as a list against Xref order, or a dictionary -# :param normalize: a dictionary of values to normalize the x values by, list also ok as long as same length and order as Xref -# :param reset: if the solution fails, reset the x values to their original state, if true will reset the x values to their original state on failure overiding doset. -# :param doset: if the solution is successful, set the x values to the solution by default, otherwise follows reset, if not successful reset is checked first, then doset -# """ -# vars = list(Xref.keys()) # static x_basis -# if normalize is None: -# normalize = np.ones(len(vars)) -# elif isinstance(normalize, (list, tuple, np.ndarray)): -# assert len(normalize) == len(vars), "bad length normalize" -# elif isinstance(normalize, (dict)): -# normalize = np.array([normalize[p] for p in vars]) -# -# # make objective function -# f = ffunc(system, Xref, Yref, normalize) -# -# # get state -# if reset: -# x_pre = refset_get(Xref) # record before changing -# -# if Xo is None: -# Xo = [Xref[p].value() for p in vars] -# -# elif isinstance(Xo, dict): -# Xo = [Xo[p] for p in vars] -# -# # solve -# ans = sciopt.root(f, Xo, **kw) -# -# return process_ans(ans,vars,Xref,x_pre,doset,reset,fail,ret_ans) -# -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/system.html b/docs/_build/html/_modules/engforge/system.html deleted file mode 100644 index 0ebbec7..0000000 --- a/docs/_build/html/_modules/engforge/system.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - engforge.system — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.system

-"""A System is a Configuration that orchestrates dataflow between components, as well as solving systems of equations in the presense of limits, as well as formatting results of each Component into reporting ready dataframe. System's solver behavior is inspired by NASA's numerical propulsion simulation system (NPSS) to solve systems of inequalities in complex systems.
-
-Component or other subsystems are added to a System class with `Slots`:
-    ```
-    class CustomSystem(System):
-        slot_name = Slot.define(Component,ComponentSubclass,System)
-    ```
-
-Component's data flow is established via `SignalS` that are defined:
-    ```
-    class CustomSystem(System):
-        signal_name = Signal.define(source_attr_or_property, target_attr)
-        control_signal = Signal.define(source_attr_or_property, target_attr,control_with='system.attr or slot.attr`)
-    ```
-    - source_attr: can reference a locally defined slot attribute (a la attr's fields) or any locally defined slot system property
-    - target_attr: must be a locally defined slot attribute or system attribute.
-
-update description to include solver
-
-A system calculates its state upon calling `System.run()`. This executes `pre_execute()` first which will directly update any attributes based on their `Signal` definition between `Slot` components. Once convergence is reached target_attr's are updated in `post_execute()` for cyclic SignalS.
-
-If the system encounters a subsystem in its solver routine, the subsystem is evald() and its results used as static in that iteration,ie it isn't included in the system level dependents if cyclic references are found.
-
-
-The solver uses the root or cobla scipy optimizer results on quick references to internal component references. Upon solving the system
-
-SignalS can be limited with constrains via `min or max` values on `NumericProperty` which can be numeric values (int or float) or functions taking one argument of the component it is defined on. Additionally signals may take arguments of `min` or `max` which are numeric values or callbacks which take the system instance as an argument.
-"""
-import attrs
-
-from engforge.properties import *
-from engforge.logging import LoggingMixin
-from engforge.configuration import Configuration, forge
-from engforge.components import SolveableInterface
-from engforge.solver import SolverMixin
-from engforge.attr_plotting import PlottingMixin
-from engforge.dynamics import GlobalDynamics
-
-import copy
-import collections
-import typing
-import numpy
-
-
-# make a module logger
-
-[docs] -class SystemsLog(LoggingMixin): - pass
- - - -log = SystemsLog() - -#NOTE: solver must come before solvable interface since it overrides certain methods -
-[docs] -@forge -class System(SolverMixin, SolveableInterface, PlottingMixin,GlobalDynamics): - """A system defines SlotS for Components, and data flow between them using SignalS - - The system records all attribues to its subcomponents via system_references with scoped keys to references to set or get attributes, as well as observe system properties. These are cached upon first access in an instance. - - The table is made up of these system references, allowing low overhead recording of systems with many variables. - - When solving by default the run(revert=True) call will revert the system state to what it was before the system began. - """ - - #default to nothing - dynamic_input_vars: list = attrs.field(factory=list) - dynamic_state_vars: list = attrs.field(factory=list) - dynamic_output_vars: list = attrs.field(factory=list) - - - _anything_changed_ = True - _solver_override: bool = False #this comp will run with run_internal_systems when True, otherwise it resolves to global solver behavior, also prevents the solver from reaching into this system - - - # Properties! - @system_property - def converged(self) -> int: - if self.last_context is None: - return None - return self.last_context.converged - - @system_property - def run_id(self) -> int: - if self.last_context is None: - return None - return self.last_context.problem_id - -
-[docs] - @classmethod - def subclasses(cls, out=None): - """ - return all subclasses of components, including their subclasses - :param out: out is to pass when the middle of a recursive operation, do not use it! - """ - - # init the set by default - if out is None: - out = set() - - for cls in cls.__subclasses__(): - out.add(cls) - cls.subclasses(out) - - return out
- - -
-[docs] - def clone(self): - """returns a clone of this system, often used to iterate the system without affecting the input values at the last convergence step.""" - return copy.deepcopy(self)
- - - @property - def identity(self): - if self.run_id: - return f"{self.name}_{self.run_id}" - else: - return f"{self.name}" - - @property - def _anything_changed(self): - """looks at internal components as well as flag for anything chagned.""" - if self._anything_changed_: - return True - elif any([c.anything_changed for k, c in self.comp_references().items()]): - return True - return False - - @_anything_changed.setter - def _anything_changed(self, inpt): - """allows default functionality with new property system""" - self.mark_all_comps_changed(inpt) - -
-[docs] - def mark_all_comps_changed(self,inpt:bool): - """mark all components as changed, useful for forcing a re-run of the system, or for marking data as saved""" - self._anything_changed_ = inpt - for k, c in self.comp_references().items(): - c._anything_changed = inpt
-
- -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/system_reference.html b/docs/_build/html/_modules/engforge/system_reference.html deleted file mode 100644 index ae8d9b1..0000000 --- a/docs/_build/html/_modules/engforge/system_reference.html +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - engforge.system_reference — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.system_reference

-"""Module to define the Ref class and utility methods for working with it.
-
-Ref's are designed to create adhoc links between the systems & components of the system, and their properties. This is useful for creating optimization problems, and for creating dynamic links between the state and properties of the system. Care must be used on the component objects changing of state, the recommened procedure is to copy your base system to prevent hysterisis and other issues, then push/pop X values through the optimization methods and change state upon success
-
-Ref.component can be a Component,System or dictionary for referencing via keyword. Ref.key can be a string or a callable, if callable the ref will be evaluated as the result of the callable (allow_set=False), this renders the component unused, and disables the ability to set the value of the reference.
-"""
-import attrs
-import inspect
-import numpy as np
-import collections
-import scipy.optimize as sciopt
-from contextlib import contextmanager
-from engforge.properties import *
-import copy
-
-
-[docs] -class RefLog(LoggingMixin): - pass
- - - -log = RefLog() - - -
-[docs] -def refset_input(refs, delta_dict,chk=True,fail=True,warn=True): - """change a set of refs with a dictionary of values. If chk is True k will be checked for membership in refs""" - for k, v in delta_dict.items(): - memb = k in refs - if not chk or memb: - refs[k].set_value(v) - elif fail and chk and not memb: - raise KeyError(f"key {k} not in refs {refs.keys()}") - elif warn and chk and not memb: - log.warning(f"key {k} not in refs {refs.keys()}")
- - - -
-[docs] -def refset_get(refs,*args,**kw): - out = {} - for k in refs: - try: - out[k] = refs[k].value(*args,**kw) - except Exception as e: - rf = refs[k] - log.error(e,f'issue with ref: {rf}|{rf.key}|{rf.comp}') - - return out
- - - -# def f_root(ResRef: collections.OrderedDict, norm: dict = None): -# residual = [v.value() / (norm[k] if norm else 1) for k, v in ResRef.items()] -# res = np.array(residual) -# return res -# -# -# def f_min(ResRef: collections.OrderedDict, norm: dict = None): -# res = [v.value() / (norm[k] if norm else 1) for k, v in ResRef.items()] -# ans = np.linalg.norm(res, 2) -# -# if ans < 1: -# return ans**0.5 -# return ans - - -
-[docs] -def eval_ref(canidate,*args,**kw): - #print(f'eval_ref {canidate,args,kw}') - if isinstance(canidate, Ref): - return canidate.value(*args,**kw) - elif callable(canidate): - o = canidate(*args,**kw) - return o - return canidate
- - -
-[docs] -def scale_val(val, mult=None, bias=None, power=None)->float: - if any((mult,bias,power)): - if power is not None: - val = val ** power - if mult is not None: - val = mult * val - if bias is not None: - val = bias + val - return val
- - - -
-[docs] -def maybe_ref(can,astype=None,mult=None,bias=None,power=None,*args,**kw): - """returns the value of a ref if it is a ref, otherwise returns the value""" - #print(f'maybe {can,astype}') - #print(can,astype,mult,bias,power,args,kw) - if isinstance(can,Ref): - val = can.value(*args,**kw) - return scale_val(val,mult,bias,power) - elif astype and isinstance(can,astype): - ref = can.as_ref_dict() #TODO: optimize this - return scale_val(ref.value(*args,**kw),mult,bias,power) - return can
- - -
-[docs] -def maybe_attr_inst(can,astype=None): - """returns the ref if is one otherwise convert it, otherwise returns the value""" - if isinstance(can,Ref): - return can - elif astype and isinstance(can,astype): - return astype.backref.handle_instance(can) - return can
- - - -#Important State Preservation -#TODO: check for hidden X dependents / circular references ect. -#TODO: make global storage for Ref's based on the comp,key pair. This -
-[docs] -class Ref: - """A way to create portable references to system's and their component's properties, ref can also take a key to a zero argument function which will be evald. This is useful for creating an adhoc optimization problems dynamically between variables. However use must be carefully controlled to avoid circular references, and understanding the safe use of the refset_input and refset_get methods (changing state on actual system). - - A dictionary can be used as a component, and the key will be used to access the value in the dictionary. - - The key can be a callable of (*args,**kw) only in which case Ref.value(*args,**kw) will take input, and the ref will be evaluated as the result of the callable (allow_set=False), this renders the component unused, and disables the ability to set the value of the reference. - - The ability to set this ref with another on key input allows for creating a reference that is identical to another reference except for the component provided if it is not None. - """ - - __slots__ = [ - "comp", - "key", - "use_call", - "use_dict", - "allow_set", - "eval_f", - "key_override", - '_value_eval', - '_log_func', - 'hxd', - '_name' - ] - comp: "TabulationMixin" - key: str - use_call: bool - use_dict: bool - allow_set: bool - eval_f: callable - key_override: bool - _value_eval: callable - _log_func: callable - - def __init__(self, comp, key, use_call=True, allow_set=True, eval_f=None): - self.set(comp, key, use_call, allow_set, eval_f) - - def set(self, comp, key, use_call=True, allow_set=True, eval_f=None): - - #key can be a ref, in which case this ref will be identical to the other ref except for the component provided if it is not None - if isinstance(key,Ref): - self.__dict__.update(key.__dict__) - if comp is not None: - self.comp = comp - return #a monkey patch - - self.comp = comp - if isinstance(self.comp, dict): - self.use_dict = True - self._name = 'dict' - else: - self.use_dict = False - - self.key_override = False - if callable(key): - self.key_override = True - self.key = key #this should take have signature f(system,slv_info) - self.use_call = False - self.allow_set = False - self.eval_f = eval_f - self._name = 'callable' - else: - self.key = key - self.use_call = use_call - self.allow_set = allow_set - self.eval_f = eval_f - if not self.use_dict: - self._name = self.comp.classname - - if not hasattr(self, '_name'): - self._name = "NULL" - - self.hxd = str(hex(id(self)))[-6:] - - self.setup_calls() - -
-[docs] - def setup_calls(self): - """caches anonymous functions for value and logging speedup""" - if self.comp and isinstance(self.comp,LoggingMixin) and self.comp.log_level <= 2: - self._log_func = lambda val: self.comp.msg(f"REF[get] {str(self):<50} -> {val}") - else: - self._log_func = None - - if self.key_override: - self._value_eval = lambda *a,**kw: self.key(*a,**kw) - else: - #do not cross reference vars! - if self.use_dict: - p = lambda *a,**kw: self.comp.get(self.key) - elif self.key in self.comp.__dict__: - p = lambda *a,**kw: self.comp.__dict__[self.key] - else: - p = lambda *a,**kw: getattr(self.comp, self.key) - - if self.eval_f: - g = lambda *a,**kw: self.eval_f(p(*a,**kw)) - else: - g = p - - self._value_eval = g
- - - -
-[docs] - def copy(self, **changes): - """copy the reference, and make changes to the copy""" - if "key" not in changes: - changes["key"] = self.key - if "comp" not in changes: - changes["comp"] = self.comp - cy = copy.copy(self) - cy.set(**changes) - return cy
- - - def value(self,*args,**kw): - if log.log_level <= 10: - try: - o = self._value_eval(*args,**kw) - if self._log_func: - self._log_func(o) - return o - except Exception as e: - log.error(e,f'issue with ref: {self}|{self.key}|{self.comp}') - else: - o = self._value_eval(*args,**kw) - if self._log_func: - self._log_func(o) - return o - - def set_value(self, val): - if self.allow_set: - if self.value() != val: #this increases perf. by reducing writes - if self.comp and self.comp.log_level < 10: - self.comp.msg(f"REF[set] {self} <- {val}") - return setattr(self.comp, self.key, val) - else: - raise Exception(f"not allowed to set value on {self.key}") - - def __str__(self) -> str: - if self.use_dict: - return f"REF[{self.hxd}][DICT.{self.key}]" - if self.key_override: - return f"REF[{self.hxd}][{self._name}.{self.key.__name__}]" - return f"REF[{self.hxd}][{self._name}.{self.key}]" - - def __repr__(self) -> str: - if self.key_override: - return f"REF[{self.hxd}][{self._name}.{self.key.__name__}]" - return f"REF[{self.hxd}][{self._name}.{self.key}]" - - # Utilty Methods - refset_get = refset_get - refset_input = refset_input
- - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/tabulation.html b/docs/_build/html/_modules/engforge/tabulation.html deleted file mode 100644 index cc51b04..0000000 --- a/docs/_build/html/_modules/engforge/tabulation.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - - - engforge.tabulation — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.tabulation

-"""Tabulation Module:
-
-Incrementally records attrs input values and system_properties per save_data() call.
-
-save_data() is called after item.eval() is called.
-"""
-
-from contextlib import contextmanager
-import attr
-
-from engforge.common import inst_vectorize, chunks
-
-# from engforge.configuration import Configuration, forge
-from engforge.solveable import SolveableMixin
-from engforge.logging import LoggingMixin
-from engforge.dataframe import DataframeMixin
-from engforge.typing import *
-from engforge.properties import *
-from typing import Callable
-
-import numpy
-import pandas
-import os
-import collections
-import uuid
-
-
-[docs] -class TableLog(LoggingMixin): - pass
- -log = TableLog() - -SKIP_REF = ["run_id", "converged", "name", "index",'converged'] - - - - -
-[docs] -class TabulationMixin(SolveableMixin, DataframeMixin): - """In which we define a class that can enable tabulation""" - - # Super Special Tabulating Index - #index = 0 # Not an attr on purpose, we want pandas to provide the index - - # override per class: - _skip_table_vars: list = None - _skip_plot_vars: list - - # Cached and private - #_table: dict = None - _anything_changed: bool - _always_save_data = False - - @property - def anything_changed(self): - """use the on_setattr method to determine if anything changed, - also assume that stat_tab could change without input changes""" - if not hasattr(self, "_anything_changed"): - self._anything_changed = True - - if self._anything_changed or self.always_save_data: - if self.log_level <= 5: - self.msg( - f"change: {self._anything_changed}| always: {self.always_save_data}" - ) - return True - return False - - @property - def last_context(self): - """Returns the last context""" - raise NotImplemented('this should be implemented in the solvable class') - - @solver_cached - def dataframe(self): - if hasattr(self,'last_context') and hasattr(self.last_context, "dataframe"): - return self.last_context.dataframe - return pandas.DataFrame([]) - - @property - def plotable_variables(self): - """Checks columns for ones that only contain numeric types or haven't been explicitly skipped""" - if self.dataframe is not None: - check_type = lambda key: all( - [isinstance(v, NUMERIC_TYPES) for v in self.dataframe[key]] - ) - check_non_mono = lambda key: len(set(self.dataframe[key])) > 1 - - return [ - var - for var in self.dataframe.columns - if var.lower() not in self.skip_plot_vars - and check_type(var) - and check_non_mono(var) - ] - return [] - - # Properties & Attribues - def print_info(self): - print(f"INFO: {self.name} | {self.identity}") - print("#" * 80) - for key, value in sorted(self.data_dict.items(), key=lambda kv: kv[0]): - print(f"{key:>40} | {value}") - - @property - def data_dict(self): - """this is what is captured and used in each row of the dataframe / table""" - #NOTE: Solver class overrides this with full system references - out = collections.OrderedDict() - sref = self.internal_references() - for k, v in sref["attributes"].items(): - if k in self.attr_raw_keys: - out[k] = v.value() - for k, v in sref["properties"].items(): - out[k] = v.value() - return out - - @instance_cached - def attr_raw_keys(self) -> list: - good = set(self.table_fields()) - return [k for k in attr.fields_dict(self.__class__).keys() if k in good] - - def set_attr(self, **kwargs): - assert set(kwargs).issubset(set(self.attr_raw_keys)) - # TODO: support subcomponents via slots lookup - for k, v in kwargs.items(): - setattr(self, k, v) - - @instance_cached - def always_save_data(self): - """Checks if any properties are stochastic (random)""" - return self._always_save_data - - @solver_cached - def table_dict(self): - # We use __get__ to emulate the property, we could call regularly from self but this is more straightforward - return { - k.lower(): obj.__get__(self) - for k, obj in self.system_properties_def.items() - } - - @solver_cached - def system_properties(self): - # We use __get__ to emulate the property, we could call regularly from self but this is more straightforward - tabulated_properties = [ - obj.__get__(self) for k, obj in self.system_properties_def.items() - ] - return tabulated_properties - - @instance_cached - def system_properties_labels(self) -> list: - """Returns the labels from table properties""" - class_dict = self.__class__.__dict__ - tabulated_properties = [ - obj.label.lower() for k, obj in self.system_properties_def.items() - ] - return tabulated_properties - - @instance_cached - def system_properties_types(self) -> list: - """Returns the types from table properties""" - class_dict = self.__class__.__dict__ - tabulated_properties = [ - obj.return_type for k, obj in self.system_properties_def.items() - ] - return tabulated_properties - - @instance_cached - def system_properties_keys(self) -> list: - """Returns the table property keys""" - tabulated_properties = [ - k for k, obj in self.system_properties_def.items() - ] - return tabulated_properties - - @instance_cached - def system_properties_description(self) -> list: - """returns system_property descriptions if they exist""" - class_dict = self.__class__.__dict__ - tabulated_properties = [ - obj.desc for k, obj in self.system_properties_def.items() - ] - return tabulated_properties - - @classmethod - def cls_all_property_labels(cls): - return [ - obj.label for k, obj in cls.system_properties_classdef().items() - ] - - @classmethod - def cls_all_property_keys(cls): - return [k for k, obj in cls.system_properties_classdef().items()] - - @classmethod - def cls_all_attrs_fields(cls): - return attr.fields_dict(cls) - - @solver_cached - def system_properties_def(self): - """Combine other classes table properties into this one, in the case of subclassed system_properties as a property that is cached""" - return self.__class__.system_properties_classdef() - -
-[docs] - @classmethod - def system_properties_classdef(cls, recache=False): - """Combine other parent-classes table properties into this one, in the case of subclassed system_properties""" - from engforge.tabulation import TabulationMixin - - # Use a cache for deep recursion - if not recache and hasattr(cls, "_{cls.__name__}_system_properties"): - res = getattr(cls, "_{cls.__name__}_system_properties") - if res is not None: - return res - - # otherwise make the cache - __system_properties = {} - for k, obj in cls.__dict__.items(): - if isinstance(obj, system_property): - __system_properties[k] = obj - - # - mrl = cls.mro() - inx_comp = mrl.index(TabulationMixin) - - # Ensures everything is includes Tabulation Functionality - mrvs = mrl[1:inx_comp] - - for mrv in mrvs: - # Remove anything not in the user code - log.msg(f"adding system properties from {mrv.__name__}") - if ( - issubclass(mrv, TabulationMixin) - # and "engforge" not in mrv.__module__ - ): - for k, obj in mrv.__dict__.items(): - if k in SKIP_REF: - continue - if k not in __system_properties and isinstance( - obj, system_property - ): # Precedent - # Assumes our instance has assumed this table property - prop = getattr(cls, k, None) - if prop and isinstance(prop, system_property): - __system_properties[k] = prop - log.msg( - f"adding system property {mrv.__name__}.{k}" - ) - - setattr(cls, "_{cls.__name__}_system_properties", __system_properties) - - return __system_properties
- - - @classmethod - def pre_compile(cls): - cls._anything_changed = True # set default on class - if any( - [ - v.stochastic - for k, v in cls.system_properties_classdef(True).items() - ] - ): - log.info(f"setting always save on {cls.__name__}") - cls._always_save_data = True - - @property - def system_id(self) -> str: - """returns an instance unique id based on id(self)""" - idd = id(self) - return f"{self.classname}.{idd}"
- - -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/engforge/typing.html b/docs/_build/html/_modules/engforge/typing.html deleted file mode 100644 index ab1b48f..0000000 --- a/docs/_build/html/_modules/engforge/typing.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - engforge.typing — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -

Source code for engforge.typing

-"""
-
-"""
-import pandas, attr, numpy
-from engforge.properties import *
-import attrs
-
-# import matplotlib.pyplot as plt
-pandas.set_option("use_inf_as_na", True)
-
-# Type Checking
-NUMERIC_TYPES = (float, int, numpy.int64, numpy.float64)
-NUMERIC_NAN_TYPES = (float, int, type(None), numpy.int64, numpy.float64)
-STR_TYPES = (str, numpy.string_)
-TABLE_TYPES = (int, float, str, type(None), numpy.int64, numpy.float64)
-
-
-# TODO: add min / max args & attrs boilerplate
-
-[docs] -def NUMERIC_VALIDATOR(): - return attr.validators.instance_of(NUMERIC_TYPES)
- - - -
-[docs] -def NUMERIC_NAN_VALIDATOR(): - return attr.validators.instance_of(NUMERIC_NAN_TYPES)
- - - -
-[docs] -def STR_VALIDATOR(): - return attr.validators.instance_of(STR_TYPES)
- - - -ATTR_VALIDATOR_TYPES = ( - attr.validators._AndValidator, - attr.validators._InstanceOfValidator, - attr.validators._MatchesReValidator, - attr.validators._ProvidesValidator, - attr.validators._OptionalValidator, - attr.validators._InValidator, - attr.validators._IsCallableValidator, - attr.validators._DeepIterable, - attr.validators._DeepMapping, -) - -TAB_VALIDATOR_TYPE = ( - attr.validators._InstanceOfValidator -) # our validators should require a type i think, at least for tabulation - - -# Improved Attrs Creation Fields -
-[docs] -def Options(*choices, **kwargs): - """creates an attrs field with validated choices on init and setattr - :param choices: a list of choices that are validated on input, the first becoming the default unless it is passed in kwargs - :param kwargs: keyword args passed to attrs field""" - assert choices, f"must have some choices!" - assert "type" not in kwargs, "options type set is str" - assert set([type(c) for c in choices]) == set((str,)), "choices must be str" - assert "on_setattr" not in kwargs - - validators = [attrs.validators.in_(choices)] - - # Merge Validators - if "validators" in kwargs: - in_validators = kwargs.pop("validators") - if isinstance(in_validators, list): - validators.extend(in_validators) - elif isinstance(in_validators, attr.validators._ValidatorType): - validators.append(in_validators) - else: - raise ValueError(f"bad validator {in_validators}") - - # Default - if "default" in kwargs: - default = kwargs.pop("default") - assert type(default) is str - else: - default = choices[0] - - on_setattr = [attrs.setters.validate] - - # Create The Attr! - a = attrs.field( - default=default, - type=str, - validator=validators, - on_setattr=on_setattr, - **kwargs, - ) - return a
- - - -# def Numeric #TODO with min/max that is enforced in solver! -
- -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/_modules/index.html b/docs/_build/html/_modules/index.html deleted file mode 100644 index 48caf16..0000000 --- a/docs/_build/html/_modules/index.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - Overview: module code — engforge 1.0 documentation - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.analysis.Analysis.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.analysis.Analysis.rst.txt deleted file mode 100644 index 1a505c4..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.analysis.Analysis.rst.txt +++ /dev/null @@ -1,133 +0,0 @@ -engforge.analysis.Analysis -========================== - -.. currentmodule:: engforge.analysis - -.. autoclass:: Analysis - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Analysis.add_fields - ~Analysis.change_all_log_lvl - ~Analysis.check_ref_slot_type - ~Analysis.cls_all_attrs_fields - ~Analysis.cls_all_property_keys - ~Analysis.cls_all_property_labels - ~Analysis.cls_compile - ~Analysis.collect_all_attributes - ~Analysis.collect_comp_refs - ~Analysis.collect_dynamic_refs - ~Analysis.collect_inst_attributes - ~Analysis.collect_post_update_refs - ~Analysis.collect_solver_refs - ~Analysis.collect_update_refs - ~Analysis.comp_references - ~Analysis.compile_classes - ~Analysis.copy_config_at_state - ~Analysis.critical - ~Analysis.debug - ~Analysis.difference - ~Analysis.error - ~Analysis.extract_message - ~Analysis.filter - ~Analysis.format_columns - ~Analysis.get_system_input_refs - ~Analysis.go_through_configurations - ~Analysis.info - ~Analysis.input_attrs - ~Analysis.input_fields - ~Analysis.installSTDLogger - ~Analysis.internal_components - ~Analysis.internal_configurations - ~Analysis.internal_references - ~Analysis.internal_systems - ~Analysis.internal_tabulations - ~Analysis.locate - ~Analysis.locate_ref - ~Analysis.make_plots - ~Analysis.message_with_identiy - ~Analysis.msg - ~Analysis.numeric_fields - ~Analysis.parent_configurations_cls - ~Analysis.parse_run_kwargs - ~Analysis.parse_simulation_input - ~Analysis.plot_attributes - ~Analysis.post_process - ~Analysis.post_update - ~Analysis.pre_compile - ~Analysis.print_info - ~Analysis.report_results - ~Analysis.resetLog - ~Analysis.resetSystemLogs - ~Analysis.run - ~Analysis.set_attr - ~Analysis.setattrs - ~Analysis.signals_attributes - ~Analysis.slack_notification - ~Analysis.slot_refs - ~Analysis.slots_attributes - ~Analysis.smart_split_dataframe - ~Analysis.solvers_attributes - ~Analysis.subclasses - ~Analysis.subcls_compile - ~Analysis.system_properties_classdef - ~Analysis.system_references - ~Analysis.table_fields - ~Analysis.trace_attributes - ~Analysis.transients_attributes - ~Analysis.update - ~Analysis.validate_class - ~Analysis.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Analysis.anything_changed - ~Analysis.as_dict - ~Analysis.attrs_fields - ~Analysis.classname - ~Analysis.data_dict - ~Analysis.dataframe - ~Analysis.dataframe_constants - ~Analysis.dataframe_variants - ~Analysis.displayname - ~Analysis.filename - ~Analysis.identity - ~Analysis.input_as_dict - ~Analysis.last_context - ~Analysis.log_fmt - ~Analysis.log_level - ~Analysis.log_on - ~Analysis.log_silo - ~Analysis.logger - ~Analysis.numeric_as_dict - ~Analysis.numeric_hash - ~Analysis.plotable_variables - ~Analysis.skip_plot_vars - ~Analysis.slack_webhook_url - ~Analysis.stored_plots - ~Analysis.system_id - ~Analysis.unique_hash - ~Analysis.uploaded - ~Analysis.system - ~Analysis.table_reporters - ~Analysis.plot_reporters - ~Analysis.show_plots - ~Analysis.name - ~Analysis.parent - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.analysis.make_reporter_check.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.analysis.make_reporter_check.rst.txt deleted file mode 100644 index 940d0dd..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.analysis.make_reporter_check.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.analysis.make\_reporter\_check -======================================= - -.. currentmodule:: engforge.analysis - -.. autofunction:: make_reporter_check \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.analysis.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.analysis.rst.txt deleted file mode 100644 index 40506dc..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.analysis.rst.txt +++ /dev/null @@ -1,40 +0,0 @@ -engforge.analysis -================= - -.. automodule:: engforge.analysis - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - make_reporter_check - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - Analysis - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.IntegratorInstance.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.IntegratorInstance.rst.txt deleted file mode 100644 index 8fadd49..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.IntegratorInstance.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ -engforge.attr\_dynamics.IntegratorInstance -========================================== - -.. currentmodule:: engforge.attr_dynamics - -.. autoclass:: IntegratorInstance - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~IntegratorInstance.as_ref_dict - ~IntegratorInstance.compile - ~IntegratorInstance.get_alias - ~IntegratorInstance.is_active - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~IntegratorInstance.system - ~IntegratorInstance.solver - ~IntegratorInstance.var_ref - ~IntegratorInstance.rate_ref - ~IntegratorInstance.active - ~IntegratorInstance.classname - ~IntegratorInstance.combos - ~IntegratorInstance.constraint_refs - ~IntegratorInstance.constraints - ~IntegratorInstance.current_rate - ~IntegratorInstance.integrated - ~IntegratorInstance.normalize - ~IntegratorInstance.rate - ~IntegratorInstance.rates - ~IntegratorInstance.slvtype - ~IntegratorInstance.var - ~IntegratorInstance.class_attr - ~IntegratorInstance.backref - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.TRANSIENT.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.TRANSIENT.rst.txt deleted file mode 100644 index 3534c5c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.TRANSIENT.rst.txt +++ /dev/null @@ -1,77 +0,0 @@ -engforge.attr\_dynamics.TRANSIENT -================================= - -.. currentmodule:: engforge.attr_dynamics - -.. autoclass:: TRANSIENT - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~TRANSIENT.add_var_constraint - ~TRANSIENT.class_validate - ~TRANSIENT.collect_attr_inst - ~TRANSIENT.collect_cls - ~TRANSIENT.configure_for_system - ~TRANSIENT.configure_instance - ~TRANSIENT.constraint_exists - ~TRANSIENT.create_instance - ~TRANSIENT.define - ~TRANSIENT.define_validate - ~TRANSIENT.evolve - ~TRANSIENT.from_counting_attr - ~TRANSIENT.handle_instance - ~TRANSIENT.integrate - ~TRANSIENT.make_attribute - ~TRANSIENT.make_factory - ~TRANSIENT.process_combos - ~TRANSIENT.subclasses - ~TRANSIENT.unpack_atrs - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~TRANSIENT.name - ~TRANSIENT.default - ~TRANSIENT.validator - ~TRANSIENT.repr - ~TRANSIENT.eq - ~TRANSIENT.eq_key - ~TRANSIENT.order - ~TRANSIENT.order_key - ~TRANSIENT.hash - ~TRANSIENT.init - ~TRANSIENT.metadata - ~TRANSIENT.type - ~TRANSIENT.converter - ~TRANSIENT.kw_only - ~TRANSIENT.inherited - ~TRANSIENT.on_setattr - ~TRANSIENT.alias - ~TRANSIENT.allow_constraint_override - ~TRANSIENT.attr_prefix - ~TRANSIENT.default_options - ~TRANSIENT.none_ok - ~TRANSIENT.template_class - ~TRANSIENT.mode - ~TRANSIENT.var - ~TRANSIENT.rate - ~TRANSIENT.constraints - ~TRANSIENT.config_cls - ~TRANSIENT.active - ~TRANSIENT.combos - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.Time.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.Time.rst.txt deleted file mode 100644 index 042e844..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.Time.rst.txt +++ /dev/null @@ -1,77 +0,0 @@ -engforge.attr\_dynamics.Time -============================ - -.. currentmodule:: engforge.attr_dynamics - -.. autoclass:: Time - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Time.add_var_constraint - ~Time.class_validate - ~Time.collect_attr_inst - ~Time.collect_cls - ~Time.configure_for_system - ~Time.configure_instance - ~Time.constraint_exists - ~Time.create_instance - ~Time.define - ~Time.define_validate - ~Time.evolve - ~Time.from_counting_attr - ~Time.handle_instance - ~Time.integrate - ~Time.make_attribute - ~Time.make_factory - ~Time.process_combos - ~Time.subclasses - ~Time.unpack_atrs - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Time.name - ~Time.default - ~Time.validator - ~Time.repr - ~Time.eq - ~Time.eq_key - ~Time.order - ~Time.order_key - ~Time.hash - ~Time.init - ~Time.metadata - ~Time.type - ~Time.converter - ~Time.kw_only - ~Time.inherited - ~Time.on_setattr - ~Time.alias - ~Time.allow_constraint_override - ~Time.attr_prefix - ~Time.default_options - ~Time.none_ok - ~Time.template_class - ~Time.mode - ~Time.var - ~Time.rate - ~Time.constraints - ~Time.config_cls - ~Time.active - ~Time.combos - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.rst.txt deleted file mode 100644 index 7c2d0bc..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_dynamics.rst.txt +++ /dev/null @@ -1,34 +0,0 @@ -engforge.attr\_dynamics -======================= - -.. automodule:: engforge.attr_dynamics - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - IntegratorInstance - TRANSIENT - Time - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PLOT.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PLOT.rst.txt deleted file mode 100644 index 6c19b73..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PLOT.rst.txt +++ /dev/null @@ -1,85 +0,0 @@ -engforge.attr\_plotting.Plot -============================ - -.. currentmodule:: engforge.attr_plotting - -.. autoclass:: Plot - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Plot.class_validate - ~Plot.collect_attr_inst - ~Plot.collect_cls - ~Plot.configure_for_system - ~Plot.configure_instance - ~Plot.create_instance - ~Plot.define - ~Plot.define_validate - ~Plot.evolve - ~Plot.from_counting_attr - ~Plot.handle_instance - ~Plot.make_attribute - ~Plot.make_factory - ~Plot.plot_extra - ~Plot.plot_vars - ~Plot.process_combos - ~Plot.subclasses - ~Plot.unpack_atrs - ~Plot.validate_plot_args - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Plot.name - ~Plot.default - ~Plot.validator - ~Plot.repr - ~Plot.eq - ~Plot.eq_key - ~Plot.order - ~Plot.order_key - ~Plot.hash - ~Plot.init - ~Plot.metadata - ~Plot.type - ~Plot.converter - ~Plot.kw_only - ~Plot.inherited - ~Plot.on_setattr - ~Plot.alias - ~Plot.attr_prefix - ~Plot.cls_vars - ~Plot.default_options - ~Plot.none_ok - ~Plot.std_fields - ~Plot.template_class - ~Plot.title - ~Plot.type_var_options - ~Plot.types - ~Plot.kind - ~Plot.x - ~Plot.y - ~Plot.hue - ~Plot.col - ~Plot.row - ~Plot.plot_func - ~Plot.plot_args - ~Plot.config_cls - ~Plot.active - ~Plot.combos - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotBase.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotBase.rst.txt deleted file mode 100644 index e1748ba..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotBase.rst.txt +++ /dev/null @@ -1,75 +0,0 @@ -engforge.attr\_plotting.PlotBase -================================ - -.. currentmodule:: engforge.attr_plotting - -.. autoclass:: PlotBase - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PlotBase.class_validate - ~PlotBase.collect_attr_inst - ~PlotBase.collect_cls - ~PlotBase.configure_for_system - ~PlotBase.configure_instance - ~PlotBase.create_instance - ~PlotBase.define - ~PlotBase.define_validate - ~PlotBase.evolve - ~PlotBase.from_counting_attr - ~PlotBase.handle_instance - ~PlotBase.make_attribute - ~PlotBase.make_factory - ~PlotBase.plot_extra - ~PlotBase.plot_vars - ~PlotBase.process_combos - ~PlotBase.subclasses - ~PlotBase.unpack_atrs - ~PlotBase.validate_plot_args - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PlotBase.name - ~PlotBase.default - ~PlotBase.validator - ~PlotBase.repr - ~PlotBase.eq - ~PlotBase.eq_key - ~PlotBase.order - ~PlotBase.order_key - ~PlotBase.hash - ~PlotBase.init - ~PlotBase.metadata - ~PlotBase.type - ~PlotBase.converter - ~PlotBase.kw_only - ~PlotBase.inherited - ~PlotBase.on_setattr - ~PlotBase.alias - ~PlotBase.attr_prefix - ~PlotBase.cls_vars - ~PlotBase.default_options - ~PlotBase.none_ok - ~PlotBase.template_class - ~PlotBase.title - ~PlotBase.config_cls - ~PlotBase.kind - ~PlotBase.active - ~PlotBase.combos - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotInstance.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotInstance.rst.txt deleted file mode 100644 index d50d6ae..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotInstance.rst.txt +++ /dev/null @@ -1,44 +0,0 @@ -engforge.attr\_plotting.PlotInstance -==================================== - -.. currentmodule:: engforge.attr_plotting - -.. autoclass:: PlotInstance - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PlotInstance.as_ref_dict - ~PlotInstance.compile - ~PlotInstance.get_alias - ~PlotInstance.is_active - ~PlotInstance.plot - ~PlotInstance.process_fig - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PlotInstance.active - ~PlotInstance.classname - ~PlotInstance.combos - ~PlotInstance.identity - ~PlotInstance.refs - ~PlotInstance.plot_cls - ~PlotInstance.system - ~PlotInstance.class_attr - ~PlotInstance.backref - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotLog.rst.txt deleted file mode 100644 index aa4c74a..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlotLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.attr\_plotting.PlotLog -=============================== - -.. currentmodule:: engforge.attr_plotting - -.. autoclass:: PlotLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PlotLog.add_fields - ~PlotLog.change_all_log_lvl - ~PlotLog.critical - ~PlotLog.debug - ~PlotLog.error - ~PlotLog.extract_message - ~PlotLog.filter - ~PlotLog.info - ~PlotLog.installSTDLogger - ~PlotLog.message_with_identiy - ~PlotLog.msg - ~PlotLog.resetLog - ~PlotLog.resetSystemLogs - ~PlotLog.slack_notification - ~PlotLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PlotLog.identity - ~PlotLog.log_fmt - ~PlotLog.log_level - ~PlotLog.log_on - ~PlotLog.logger - ~PlotLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlottingMixin.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlottingMixin.rst.txt deleted file mode 100644 index 811b3dd..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.PlottingMixin.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -engforge.attr\_plotting.PlottingMixin -===================================== - -.. currentmodule:: engforge.attr_plotting - -.. autoclass:: PlottingMixin - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PlottingMixin.make_plots - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PlottingMixin.plots - ~PlottingMixin.stored_plots - ~PlottingMixin.traces - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.Trace.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.Trace.rst.txt deleted file mode 100644 index cad2d94..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.Trace.rst.txt +++ /dev/null @@ -1,87 +0,0 @@ -engforge.attr\_plotting.Trace -============================= - -.. currentmodule:: engforge.attr_plotting - -.. autoclass:: Trace - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Trace.class_validate - ~Trace.collect_attr_inst - ~Trace.collect_cls - ~Trace.configure_for_system - ~Trace.configure_instance - ~Trace.create_instance - ~Trace.define - ~Trace.define_validate - ~Trace.evolve - ~Trace.from_counting_attr - ~Trace.handle_instance - ~Trace.make_attribute - ~Trace.make_factory - ~Trace.plot_extra - ~Trace.plot_vars - ~Trace.process_combos - ~Trace.subclasses - ~Trace.unpack_atrs - ~Trace.valid_non_vars - ~Trace.valid_vars_options - ~Trace.validate_plot_args - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Trace.name - ~Trace.default - ~Trace.validator - ~Trace.repr - ~Trace.eq - ~Trace.eq_key - ~Trace.order - ~Trace.order_key - ~Trace.hash - ~Trace.init - ~Trace.metadata - ~Trace.type - ~Trace.converter - ~Trace.kw_only - ~Trace.inherited - ~Trace.on_setattr - ~Trace.alias - ~Trace.all_options - ~Trace.always - ~Trace.attr_prefix - ~Trace.cls_vars - ~Trace.default_options - ~Trace.none_ok - ~Trace.template_class - ~Trace.title - ~Trace.type_options - ~Trace.type_var_options - ~Trace.types - ~Trace.y2 - ~Trace.y - ~Trace.x - ~Trace.plot_args - ~Trace.extra_args - ~Trace.config_cls - ~Trace.kind - ~Trace.active - ~Trace.combos - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.TraceInstance.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.TraceInstance.rst.txt deleted file mode 100644 index 2be3988..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.TraceInstance.rst.txt +++ /dev/null @@ -1,45 +0,0 @@ -engforge.attr\_plotting.TraceInstance -===================================== - -.. currentmodule:: engforge.attr_plotting - -.. autoclass:: TraceInstance - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~TraceInstance.as_ref_dict - ~TraceInstance.compile - ~TraceInstance.get_alias - ~TraceInstance.is_active - ~TraceInstance.plot - ~TraceInstance.plot_extra - ~TraceInstance.process_fig - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~TraceInstance.active - ~TraceInstance.classname - ~TraceInstance.combos - ~TraceInstance.identity - ~TraceInstance.refs - ~TraceInstance.plot_cls - ~TraceInstance.system - ~TraceInstance.class_attr - ~TraceInstance.backref - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_ctx.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_ctx.rst.txt deleted file mode 100644 index a71663f..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_ctx.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.attr\_plotting.conv\_ctx -================================= - -.. currentmodule:: engforge.attr_plotting - -.. autofunction:: conv_ctx \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_maps.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_maps.rst.txt deleted file mode 100644 index 5976995..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_maps.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.attr\_plotting.conv\_maps -================================== - -.. currentmodule:: engforge.attr_plotting - -.. autofunction:: conv_maps \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_theme.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_theme.rst.txt deleted file mode 100644 index 36a824a..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.conv_theme.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.attr\_plotting.conv\_theme -=================================== - -.. currentmodule:: engforge.attr_plotting - -.. autofunction:: conv_theme \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.install_seaborn.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.install_seaborn.rst.txt deleted file mode 100644 index 042c0fb..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.install_seaborn.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.attr\_plotting.install\_seaborn -======================================== - -.. currentmodule:: engforge.attr_plotting - -.. autofunction:: install_seaborn \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.rst.txt deleted file mode 100644 index 9d08358..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ -engforge.attr\_plotting -======================= - -.. automodule:: engforge.attr_plotting - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - conv_ctx - conv_maps - conv_theme - install_seaborn - save_all_figures_to_pdf - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - PLOT - Plot - PlotBase - PlotInstance - PlotLog - PlottingMixin - Trace - TraceInstance - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.save_all_figures_to_pdf.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.save_all_figures_to_pdf.rst.txt deleted file mode 100644 index 6d61811..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_plotting.save_all_figures_to_pdf.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.attr\_plotting.save\_all\_figures\_to\_pdf -=================================================== - -.. currentmodule:: engforge.attr_plotting - -.. autofunction:: save_all_figures_to_pdf \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_signals.Signal.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_signals.Signal.rst.txt deleted file mode 100644 index e34df7e..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_signals.Signal.rst.txt +++ /dev/null @@ -1,72 +0,0 @@ -engforge.attr\_signals.Signal -============================= - -.. currentmodule:: engforge.attr_signals - -.. autoclass:: Signal - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Signal.class_validate - ~Signal.collect_attr_inst - ~Signal.collect_cls - ~Signal.configure_for_system - ~Signal.configure_instance - ~Signal.create_instance - ~Signal.define - ~Signal.define_validate - ~Signal.evolve - ~Signal.from_counting_attr - ~Signal.handle_instance - ~Signal.make_attribute - ~Signal.make_factory - ~Signal.process_combos - ~Signal.subclasses - ~Signal.unpack_atrs - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Signal.name - ~Signal.default - ~Signal.validator - ~Signal.repr - ~Signal.eq - ~Signal.eq_key - ~Signal.order - ~Signal.order_key - ~Signal.hash - ~Signal.init - ~Signal.metadata - ~Signal.type - ~Signal.converter - ~Signal.kw_only - ~Signal.inherited - ~Signal.on_setattr - ~Signal.alias - ~Signal.attr_prefix - ~Signal.default_options - ~Signal.none_ok - ~Signal.template_class - ~Signal.mode - ~Signal.target - ~Signal.source - ~Signal.config_cls - ~Signal.active - ~Signal.combos - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_signals.SignalInstance.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_signals.SignalInstance.rst.txt deleted file mode 100644 index 23a623d..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_signals.SignalInstance.rst.txt +++ /dev/null @@ -1,44 +0,0 @@ -engforge.attr\_signals.SignalInstance -===================================== - -.. currentmodule:: engforge.attr_signals - -.. autoclass:: SignalInstance - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SignalInstance.apply - ~SignalInstance.as_ref_dict - ~SignalInstance.compile - ~SignalInstance.get_alias - ~SignalInstance.is_active - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SignalInstance.active - ~SignalInstance.classname - ~SignalInstance.combos - ~SignalInstance.mode - ~SignalInstance.system - ~SignalInstance.signal - ~SignalInstance.target - ~SignalInstance.source - ~SignalInstance.class_attr - ~SignalInstance.backref - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_signals.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_signals.rst.txt deleted file mode 100644 index 5015c40..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_signals.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -engforge.attr\_signals -====================== - -.. automodule:: engforge.attr_signals - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - Signal - SignalInstance - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_slots.Slot.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_slots.Slot.rst.txt deleted file mode 100644 index e61d0da..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_slots.Slot.rst.txt +++ /dev/null @@ -1,77 +0,0 @@ -engforge.attr\_slots.Slot -========================= - -.. currentmodule:: engforge.attr_slots - -.. autoclass:: Slot - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Slot.class_validate - ~Slot.collect_attr_inst - ~Slot.collect_cls - ~Slot.configure_for_system - ~Slot.configure_instance - ~Slot.create_instance - ~Slot.define - ~Slot.define_iterator - ~Slot.define_validate - ~Slot.evolve - ~Slot.from_counting_attr - ~Slot.handle_instance - ~Slot.make_accepted - ~Slot.make_attribute - ~Slot.make_factory - ~Slot.process_combos - ~Slot.subclasses - ~Slot.unpack_atrs - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Slot.name - ~Slot.default - ~Slot.validator - ~Slot.repr - ~Slot.eq - ~Slot.eq_key - ~Slot.order - ~Slot.order_key - ~Slot.hash - ~Slot.init - ~Slot.metadata - ~Slot.type - ~Slot.converter - ~Slot.kw_only - ~Slot.inherited - ~Slot.on_setattr - ~Slot.alias - ~Slot.attr_prefix - ~Slot.default_ok - ~Slot.default_options - ~Slot.dflt_kw - ~Slot.instance_class - ~Slot.none_ok - ~Slot.template_class - ~Slot.accepted - ~Slot.config_cls - ~Slot.is_iter - ~Slot.wide - ~Slot.active - ~Slot.combos - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_slots.SlotLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_slots.SlotLog.rst.txt deleted file mode 100644 index 54da7af..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_slots.SlotLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.attr\_slots.SlotLog -============================ - -.. currentmodule:: engforge.attr_slots - -.. autoclass:: SlotLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SlotLog.add_fields - ~SlotLog.change_all_log_lvl - ~SlotLog.critical - ~SlotLog.debug - ~SlotLog.error - ~SlotLog.extract_message - ~SlotLog.filter - ~SlotLog.info - ~SlotLog.installSTDLogger - ~SlotLog.message_with_identiy - ~SlotLog.msg - ~SlotLog.resetLog - ~SlotLog.resetSystemLogs - ~SlotLog.slack_notification - ~SlotLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SlotLog.identity - ~SlotLog.log_fmt - ~SlotLog.log_level - ~SlotLog.log_on - ~SlotLog.logger - ~SlotLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_slots.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_slots.rst.txt deleted file mode 100644 index 5bae2e4..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_slots.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -engforge.attr\_slots -==================== - -.. automodule:: engforge.attr_slots - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - Slot - SlotLog - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_solver.AttrSolverLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_solver.AttrSolverLog.rst.txt deleted file mode 100644 index c90c836..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_solver.AttrSolverLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.attr\_solver.AttrSolverLog -=================================== - -.. currentmodule:: engforge.attr_solver - -.. autoclass:: AttrSolverLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~AttrSolverLog.add_fields - ~AttrSolverLog.change_all_log_lvl - ~AttrSolverLog.critical - ~AttrSolverLog.debug - ~AttrSolverLog.error - ~AttrSolverLog.extract_message - ~AttrSolverLog.filter - ~AttrSolverLog.info - ~AttrSolverLog.installSTDLogger - ~AttrSolverLog.message_with_identiy - ~AttrSolverLog.msg - ~AttrSolverLog.resetLog - ~AttrSolverLog.resetSystemLogs - ~AttrSolverLog.slack_notification - ~AttrSolverLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~AttrSolverLog.identity - ~AttrSolverLog.log_fmt - ~AttrSolverLog.log_level - ~AttrSolverLog.log_on - ~AttrSolverLog.logger - ~AttrSolverLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_solver.Solver.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_solver.Solver.rst.txt deleted file mode 100644 index 2d9b6fb..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_solver.Solver.rst.txt +++ /dev/null @@ -1,85 +0,0 @@ -engforge.attr\_solver.Solver -============================ - -.. currentmodule:: engforge.attr_solver - -.. autoclass:: Solver - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Solver.add_var_constraint - ~Solver.class_validate - ~Solver.collect_attr_inst - ~Solver.collect_cls - ~Solver.con_eq - ~Solver.con_ineq - ~Solver.configure_for_system - ~Solver.configure_instance - ~Solver.constraint_equality - ~Solver.constraint_exists - ~Solver.constraint_inequality - ~Solver.create_instance - ~Solver.declare_var - ~Solver.define_validate - ~Solver.evolve - ~Solver.from_counting_attr - ~Solver.handle_instance - ~Solver.make_attribute - ~Solver.make_factory - ~Solver.obj - ~Solver.objective - ~Solver.process_combos - ~Solver.subclasses - ~Solver.unpack_atrs - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Solver.name - ~Solver.default - ~Solver.validator - ~Solver.repr - ~Solver.eq - ~Solver.eq_key - ~Solver.order - ~Solver.order_key - ~Solver.hash - ~Solver.init - ~Solver.metadata - ~Solver.type - ~Solver.converter - ~Solver.kw_only - ~Solver.inherited - ~Solver.on_setattr - ~Solver.alias - ~Solver.allow_constraint_override - ~Solver.attr_prefix - ~Solver.combos - ~Solver.default_options - ~Solver.define - ~Solver.lhs - ~Solver.none_ok - ~Solver.rhs - ~Solver.template_class - ~Solver.var - ~Solver.slvtype - ~Solver.constraints - ~Solver.normalize - ~Solver.active - ~Solver.config_cls - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_solver.SolverInstance.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_solver.SolverInstance.rst.txt deleted file mode 100644 index 43a4ac8..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_solver.SolverInstance.rst.txt +++ /dev/null @@ -1,48 +0,0 @@ -engforge.attr\_solver.SolverInstance -==================================== - -.. currentmodule:: engforge.attr_solver - -.. autoclass:: SolverInstance - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SolverInstance.as_ref_dict - ~SolverInstance.compile - ~SolverInstance.get_alias - ~SolverInstance.is_active - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SolverInstance.active - ~SolverInstance.classname - ~SolverInstance.combos - ~SolverInstance.constraints - ~SolverInstance.normalize - ~SolverInstance.slvtype - ~SolverInstance.system - ~SolverInstance.solver - ~SolverInstance.obj - ~SolverInstance.var - ~SolverInstance.lhs - ~SolverInstance.rhs - ~SolverInstance.const_f - ~SolverInstance.class_attr - ~SolverInstance.backref - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attr_solver.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attr_solver.rst.txt deleted file mode 100644 index 42fef93..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attr_solver.rst.txt +++ /dev/null @@ -1,34 +0,0 @@ -engforge.attr\_solver -===================== - -.. automodule:: engforge.attr_solver - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - AttrSolverLog - Solver - SolverInstance - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.attributes.ATTRLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attributes.ATTRLog.rst.txt deleted file mode 100644 index 23117c3..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attributes.ATTRLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.attributes.ATTRLog -=========================== - -.. currentmodule:: engforge.attributes - -.. autoclass:: ATTRLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ATTRLog.add_fields - ~ATTRLog.change_all_log_lvl - ~ATTRLog.critical - ~ATTRLog.debug - ~ATTRLog.error - ~ATTRLog.extract_message - ~ATTRLog.filter - ~ATTRLog.info - ~ATTRLog.installSTDLogger - ~ATTRLog.message_with_identiy - ~ATTRLog.msg - ~ATTRLog.resetLog - ~ATTRLog.resetSystemLogs - ~ATTRLog.slack_notification - ~ATTRLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ATTRLog.identity - ~ATTRLog.log_fmt - ~ATTRLog.log_level - ~ATTRLog.log_on - ~ATTRLog.logger - ~ATTRLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attributes.ATTR_BASE.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attributes.ATTR_BASE.rst.txt deleted file mode 100644 index de29d1c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attributes.ATTR_BASE.rst.txt +++ /dev/null @@ -1,69 +0,0 @@ -engforge.attributes.ATTR\_BASE -============================== - -.. currentmodule:: engforge.attributes - -.. autoclass:: ATTR_BASE - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ATTR_BASE.class_validate - ~ATTR_BASE.collect_attr_inst - ~ATTR_BASE.collect_cls - ~ATTR_BASE.configure_for_system - ~ATTR_BASE.configure_instance - ~ATTR_BASE.create_instance - ~ATTR_BASE.define - ~ATTR_BASE.define_validate - ~ATTR_BASE.evolve - ~ATTR_BASE.from_counting_attr - ~ATTR_BASE.handle_instance - ~ATTR_BASE.make_attribute - ~ATTR_BASE.make_factory - ~ATTR_BASE.process_combos - ~ATTR_BASE.subclasses - ~ATTR_BASE.unpack_atrs - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ATTR_BASE.name - ~ATTR_BASE.default - ~ATTR_BASE.validator - ~ATTR_BASE.repr - ~ATTR_BASE.eq - ~ATTR_BASE.eq_key - ~ATTR_BASE.order - ~ATTR_BASE.order_key - ~ATTR_BASE.hash - ~ATTR_BASE.init - ~ATTR_BASE.metadata - ~ATTR_BASE.type - ~ATTR_BASE.converter - ~ATTR_BASE.kw_only - ~ATTR_BASE.inherited - ~ATTR_BASE.on_setattr - ~ATTR_BASE.alias - ~ATTR_BASE.attr_prefix - ~ATTR_BASE.default_options - ~ATTR_BASE.none_ok - ~ATTR_BASE.template_class - ~ATTR_BASE.config_cls - ~ATTR_BASE.active - ~ATTR_BASE.combos - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attributes.AttributeInstance.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attributes.AttributeInstance.rst.txt deleted file mode 100644 index 1906bdb..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attributes.AttributeInstance.rst.txt +++ /dev/null @@ -1,39 +0,0 @@ -engforge.attributes.AttributeInstance -===================================== - -.. currentmodule:: engforge.attributes - -.. autoclass:: AttributeInstance - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~AttributeInstance.as_ref_dict - ~AttributeInstance.compile - ~AttributeInstance.get_alias - ~AttributeInstance.is_active - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~AttributeInstance.active - ~AttributeInstance.classname - ~AttributeInstance.combos - ~AttributeInstance.class_attr - ~AttributeInstance.system - ~AttributeInstance.backref - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.attributes.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.attributes.rst.txt deleted file mode 100644 index fef17e8..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.attributes.rst.txt +++ /dev/null @@ -1,34 +0,0 @@ -engforge.attributes -=================== - -.. automodule:: engforge.attributes - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - ATTRLog - ATTR_BASE - AttributeInstance - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.common.ForgeLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.common.ForgeLog.rst.txt deleted file mode 100644 index 0231c97..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.common.ForgeLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.common.ForgeLog -======================== - -.. currentmodule:: engforge.common - -.. autoclass:: ForgeLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ForgeLog.add_fields - ~ForgeLog.change_all_log_lvl - ~ForgeLog.critical - ~ForgeLog.debug - ~ForgeLog.error - ~ForgeLog.extract_message - ~ForgeLog.filter - ~ForgeLog.info - ~ForgeLog.installSTDLogger - ~ForgeLog.message_with_identiy - ~ForgeLog.msg - ~ForgeLog.resetLog - ~ForgeLog.resetSystemLogs - ~ForgeLog.slack_notification - ~ForgeLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ForgeLog.identity - ~ForgeLog.log_fmt - ~ForgeLog.log_level - ~ForgeLog.log_on - ~ForgeLog.logger - ~ForgeLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.common.chunks.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.common.chunks.rst.txt deleted file mode 100644 index 732ba27..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.common.chunks.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.common.chunks -====================== - -.. currentmodule:: engforge.common - -.. autofunction:: chunks \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.common.get_size.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.common.get_size.rst.txt deleted file mode 100644 index 530a2c9..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.common.get_size.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.common.get\_size -========================= - -.. currentmodule:: engforge.common - -.. autofunction:: get_size \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.common.inst_vectorize.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.common.inst_vectorize.rst.txt deleted file mode 100644 index 8a25e56..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.common.inst_vectorize.rst.txt +++ /dev/null @@ -1,24 +0,0 @@ -engforge.common.inst\_vectorize -=============================== - -.. currentmodule:: engforge.common - -.. autoclass:: inst_vectorize - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.common.is_ec2_instance.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.common.is_ec2_instance.rst.txt deleted file mode 100644 index c39a2a0..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.common.is_ec2_instance.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.common.is\_ec2\_instance -================================= - -.. currentmodule:: engforge.common - -.. autofunction:: is_ec2_instance \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.common.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.common.rst.txt deleted file mode 100644 index 6afc397..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.common.rst.txt +++ /dev/null @@ -1,43 +0,0 @@ -engforge.common -=============== - -.. automodule:: engforge.common - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - chunks - get_size - is_ec2_instance - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - ForgeLog - inst_vectorize - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentDict.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentDict.rst.txt deleted file mode 100644 index 7ce6676..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentDict.rst.txt +++ /dev/null @@ -1,189 +0,0 @@ -engforge.component\_collections.ComponentDict -============================================= - -.. currentmodule:: engforge.component_collections - -.. autoclass:: ComponentDict - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ComponentDict.add_fields - ~ComponentDict.change_all_log_lvl - ~ComponentDict.check_ref_slot_type - ~ComponentDict.clear - ~ComponentDict.cls_all_attrs_fields - ~ComponentDict.cls_all_property_keys - ~ComponentDict.cls_all_property_labels - ~ComponentDict.cls_compile - ~ComponentDict.collect_all_attributes - ~ComponentDict.collect_comp_refs - ~ComponentDict.collect_dynamic_refs - ~ComponentDict.collect_inst_attributes - ~ComponentDict.collect_post_update_refs - ~ComponentDict.collect_solver_refs - ~ComponentDict.collect_update_refs - ~ComponentDict.comp_references - ~ComponentDict.compile_classes - ~ComponentDict.copy - ~ComponentDict.copy_config_at_state - ~ComponentDict.create_dynamic_matricies - ~ComponentDict.create_feedthrough_matrix - ~ComponentDict.create_input_matrix - ~ComponentDict.create_output_constants - ~ComponentDict.create_output_matrix - ~ComponentDict.create_state_constants - ~ComponentDict.create_state_matrix - ~ComponentDict.critical - ~ComponentDict.debug - ~ComponentDict.determine_nearest_stationary_state - ~ComponentDict.difference - ~ComponentDict.error - ~ComponentDict.extract_message - ~ComponentDict.filter - ~ComponentDict.format_columns - ~ComponentDict.fromkeys - ~ComponentDict.get - ~ComponentDict.get_system_input_refs - ~ComponentDict.go_through_configurations - ~ComponentDict.info - ~ComponentDict.input_attrs - ~ComponentDict.input_fields - ~ComponentDict.installSTDLogger - ~ComponentDict.internal_components - ~ComponentDict.internal_configurations - ~ComponentDict.internal_references - ~ComponentDict.internal_systems - ~ComponentDict.internal_tabulations - ~ComponentDict.items - ~ComponentDict.keys - ~ComponentDict.linear_output - ~ComponentDict.linear_step - ~ComponentDict.locate - ~ComponentDict.locate_ref - ~ComponentDict.message_with_identiy - ~ComponentDict.msg - ~ComponentDict.nonlinear_output - ~ComponentDict.nonlinear_step - ~ComponentDict.numeric_fields - ~ComponentDict.parent_configurations_cls - ~ComponentDict.parse_run_kwargs - ~ComponentDict.parse_simulation_input - ~ComponentDict.plot_attributes - ~ComponentDict.pop - ~ComponentDict.popitem - ~ComponentDict.post_update - ~ComponentDict.pre_compile - ~ComponentDict.print_info - ~ComponentDict.rate - ~ComponentDict.rate_linear - ~ComponentDict.rate_nonlinear - ~ComponentDict.ref_dXdt - ~ComponentDict.reset - ~ComponentDict.resetLog - ~ComponentDict.resetSystemLogs - ~ComponentDict.set_attr - ~ComponentDict.set_time - ~ComponentDict.setattrs - ~ComponentDict.setdefault - ~ComponentDict.signals_attributes - ~ComponentDict.slack_notification - ~ComponentDict.slot_refs - ~ComponentDict.slots_attributes - ~ComponentDict.smart_split_dataframe - ~ComponentDict.solvers_attributes - ~ComponentDict.step - ~ComponentDict.subclasses - ~ComponentDict.subcls_compile - ~ComponentDict.system_properties_classdef - ~ComponentDict.system_references - ~ComponentDict.table_fields - ~ComponentDict.trace_attributes - ~ComponentDict.transients_attributes - ~ComponentDict.update - ~ComponentDict.update_dynamics - ~ComponentDict.update_feedthrough - ~ComponentDict.update_input - ~ComponentDict.update_output_constants - ~ComponentDict.update_output_matrix - ~ComponentDict.update_state - ~ComponentDict.update_state_constants - ~ComponentDict.validate_class - ~ComponentDict.values - ~ComponentDict.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ComponentDict.Ut_ref - ~ComponentDict.Xt_ref - ~ComponentDict.Yt_ref - ~ComponentDict.anything_changed - ~ComponentDict.as_dict - ~ComponentDict.attrs_fields - ~ComponentDict.classname - ~ComponentDict.current - ~ComponentDict.dXtdt_ref - ~ComponentDict.data_dict - ~ComponentDict.dataframe_constants - ~ComponentDict.dataframe_variants - ~ComponentDict.displayname - ~ComponentDict.dynamic_A - ~ComponentDict.dynamic_B - ~ComponentDict.dynamic_C - ~ComponentDict.dynamic_D - ~ComponentDict.dynamic_F - ~ComponentDict.dynamic_K - ~ComponentDict.dynamic_input - ~ComponentDict.dynamic_input_vars - ~ComponentDict.dynamic_output - ~ComponentDict.dynamic_output_vars - ~ComponentDict.dynamic_state - ~ComponentDict.dynamic_state_vars - ~ComponentDict.filename - ~ComponentDict.identity - ~ComponentDict.input_as_dict - ~ComponentDict.last_context - ~ComponentDict.log_fmt - ~ComponentDict.log_level - ~ComponentDict.log_on - ~ComponentDict.log_silo - ~ComponentDict.logger - ~ComponentDict.nonlinear - ~ComponentDict.numeric_as_dict - ~ComponentDict.numeric_hash - ~ComponentDict.plotable_variables - ~ComponentDict.skip_plot_vars - ~ComponentDict.slack_webhook_url - ~ComponentDict.static_A - ~ComponentDict.static_B - ~ComponentDict.static_C - ~ComponentDict.static_D - ~ComponentDict.static_F - ~ComponentDict.static_K - ~ComponentDict.system_id - ~ComponentDict.time - ~ComponentDict.unique_hash - ~ComponentDict.update_interval - ~ComponentDict.wide - ~ComponentDict.component_type - ~ComponentDict.data - ~ComponentDict.current_item - ~ComponentDict.parent - ~ComponentDict.name - ~ComponentDict.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentIter.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentIter.rst.txt deleted file mode 100644 index dbc5113..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentIter.rst.txt +++ /dev/null @@ -1,178 +0,0 @@ -engforge.component\_collections.ComponentIter -============================================= - -.. currentmodule:: engforge.component_collections - -.. autoclass:: ComponentIter - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ComponentIter.add_fields - ~ComponentIter.change_all_log_lvl - ~ComponentIter.check_ref_slot_type - ~ComponentIter.cls_all_attrs_fields - ~ComponentIter.cls_all_property_keys - ~ComponentIter.cls_all_property_labels - ~ComponentIter.cls_compile - ~ComponentIter.collect_all_attributes - ~ComponentIter.collect_comp_refs - ~ComponentIter.collect_dynamic_refs - ~ComponentIter.collect_inst_attributes - ~ComponentIter.collect_post_update_refs - ~ComponentIter.collect_solver_refs - ~ComponentIter.collect_update_refs - ~ComponentIter.comp_references - ~ComponentIter.compile_classes - ~ComponentIter.copy_config_at_state - ~ComponentIter.create_dynamic_matricies - ~ComponentIter.create_feedthrough_matrix - ~ComponentIter.create_input_matrix - ~ComponentIter.create_output_constants - ~ComponentIter.create_output_matrix - ~ComponentIter.create_state_constants - ~ComponentIter.create_state_matrix - ~ComponentIter.critical - ~ComponentIter.debug - ~ComponentIter.determine_nearest_stationary_state - ~ComponentIter.difference - ~ComponentIter.error - ~ComponentIter.extract_message - ~ComponentIter.filter - ~ComponentIter.format_columns - ~ComponentIter.get_system_input_refs - ~ComponentIter.go_through_configurations - ~ComponentIter.info - ~ComponentIter.input_attrs - ~ComponentIter.input_fields - ~ComponentIter.installSTDLogger - ~ComponentIter.internal_components - ~ComponentIter.internal_configurations - ~ComponentIter.internal_references - ~ComponentIter.internal_systems - ~ComponentIter.internal_tabulations - ~ComponentIter.linear_output - ~ComponentIter.linear_step - ~ComponentIter.locate - ~ComponentIter.locate_ref - ~ComponentIter.message_with_identiy - ~ComponentIter.msg - ~ComponentIter.nonlinear_output - ~ComponentIter.nonlinear_step - ~ComponentIter.numeric_fields - ~ComponentIter.parent_configurations_cls - ~ComponentIter.parse_run_kwargs - ~ComponentIter.parse_simulation_input - ~ComponentIter.plot_attributes - ~ComponentIter.post_update - ~ComponentIter.pre_compile - ~ComponentIter.print_info - ~ComponentIter.rate - ~ComponentIter.rate_linear - ~ComponentIter.rate_nonlinear - ~ComponentIter.ref_dXdt - ~ComponentIter.reset - ~ComponentIter.resetLog - ~ComponentIter.resetSystemLogs - ~ComponentIter.set_attr - ~ComponentIter.set_time - ~ComponentIter.setattrs - ~ComponentIter.signals_attributes - ~ComponentIter.slack_notification - ~ComponentIter.slot_refs - ~ComponentIter.slots_attributes - ~ComponentIter.smart_split_dataframe - ~ComponentIter.solvers_attributes - ~ComponentIter.step - ~ComponentIter.subclasses - ~ComponentIter.subcls_compile - ~ComponentIter.system_properties_classdef - ~ComponentIter.system_references - ~ComponentIter.table_fields - ~ComponentIter.trace_attributes - ~ComponentIter.transients_attributes - ~ComponentIter.update - ~ComponentIter.update_dynamics - ~ComponentIter.update_feedthrough - ~ComponentIter.update_input - ~ComponentIter.update_output_constants - ~ComponentIter.update_output_matrix - ~ComponentIter.update_state - ~ComponentIter.update_state_constants - ~ComponentIter.validate_class - ~ComponentIter.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ComponentIter.Ut_ref - ~ComponentIter.Xt_ref - ~ComponentIter.Yt_ref - ~ComponentIter.anything_changed - ~ComponentIter.as_dict - ~ComponentIter.attrs_fields - ~ComponentIter.classname - ~ComponentIter.current - ~ComponentIter.dXtdt_ref - ~ComponentIter.data_dict - ~ComponentIter.dataframe_constants - ~ComponentIter.dataframe_variants - ~ComponentIter.displayname - ~ComponentIter.dynamic_A - ~ComponentIter.dynamic_B - ~ComponentIter.dynamic_C - ~ComponentIter.dynamic_D - ~ComponentIter.dynamic_F - ~ComponentIter.dynamic_K - ~ComponentIter.dynamic_input - ~ComponentIter.dynamic_input_vars - ~ComponentIter.dynamic_output - ~ComponentIter.dynamic_output_vars - ~ComponentIter.dynamic_state - ~ComponentIter.dynamic_state_vars - ~ComponentIter.filename - ~ComponentIter.identity - ~ComponentIter.input_as_dict - ~ComponentIter.last_context - ~ComponentIter.log_fmt - ~ComponentIter.log_level - ~ComponentIter.log_on - ~ComponentIter.log_silo - ~ComponentIter.logger - ~ComponentIter.nonlinear - ~ComponentIter.numeric_as_dict - ~ComponentIter.numeric_hash - ~ComponentIter.plotable_variables - ~ComponentIter.skip_plot_vars - ~ComponentIter.slack_webhook_url - ~ComponentIter.static_A - ~ComponentIter.static_B - ~ComponentIter.static_C - ~ComponentIter.static_D - ~ComponentIter.static_F - ~ComponentIter.static_K - ~ComponentIter.system_id - ~ComponentIter.time - ~ComponentIter.unique_hash - ~ComponentIter.update_interval - ~ComponentIter.wide - ~ComponentIter.data - ~ComponentIter.current_item - ~ComponentIter.parent - ~ComponentIter.name - ~ComponentIter.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentIterator.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentIterator.rst.txt deleted file mode 100644 index 7c56d14..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.component_collections.ComponentIterator.rst.txt +++ /dev/null @@ -1,190 +0,0 @@ -engforge.component\_collections.ComponentIterator -================================================= - -.. currentmodule:: engforge.component_collections - -.. autoclass:: ComponentIterator - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ComponentIterator.add_fields - ~ComponentIterator.append - ~ComponentIterator.change_all_log_lvl - ~ComponentIterator.check_ref_slot_type - ~ComponentIterator.clear - ~ComponentIterator.cls_all_attrs_fields - ~ComponentIterator.cls_all_property_keys - ~ComponentIterator.cls_all_property_labels - ~ComponentIterator.cls_compile - ~ComponentIterator.collect_all_attributes - ~ComponentIterator.collect_comp_refs - ~ComponentIterator.collect_dynamic_refs - ~ComponentIterator.collect_inst_attributes - ~ComponentIterator.collect_post_update_refs - ~ComponentIterator.collect_solver_refs - ~ComponentIterator.collect_update_refs - ~ComponentIterator.comp_references - ~ComponentIterator.compile_classes - ~ComponentIterator.copy - ~ComponentIterator.copy_config_at_state - ~ComponentIterator.count - ~ComponentIterator.create_dynamic_matricies - ~ComponentIterator.create_feedthrough_matrix - ~ComponentIterator.create_input_matrix - ~ComponentIterator.create_output_constants - ~ComponentIterator.create_output_matrix - ~ComponentIterator.create_state_constants - ~ComponentIterator.create_state_matrix - ~ComponentIterator.critical - ~ComponentIterator.debug - ~ComponentIterator.determine_nearest_stationary_state - ~ComponentIterator.difference - ~ComponentIterator.error - ~ComponentIterator.extend - ~ComponentIterator.extract_message - ~ComponentIterator.filter - ~ComponentIterator.format_columns - ~ComponentIterator.get_system_input_refs - ~ComponentIterator.go_through_configurations - ~ComponentIterator.index - ~ComponentIterator.info - ~ComponentIterator.input_attrs - ~ComponentIterator.input_fields - ~ComponentIterator.insert - ~ComponentIterator.installSTDLogger - ~ComponentIterator.internal_components - ~ComponentIterator.internal_configurations - ~ComponentIterator.internal_references - ~ComponentIterator.internal_systems - ~ComponentIterator.internal_tabulations - ~ComponentIterator.linear_output - ~ComponentIterator.linear_step - ~ComponentIterator.locate - ~ComponentIterator.locate_ref - ~ComponentIterator.message_with_identiy - ~ComponentIterator.msg - ~ComponentIterator.nonlinear_output - ~ComponentIterator.nonlinear_step - ~ComponentIterator.numeric_fields - ~ComponentIterator.parent_configurations_cls - ~ComponentIterator.parse_run_kwargs - ~ComponentIterator.parse_simulation_input - ~ComponentIterator.plot_attributes - ~ComponentIterator.pop - ~ComponentIterator.post_update - ~ComponentIterator.pre_compile - ~ComponentIterator.print_info - ~ComponentIterator.rate - ~ComponentIterator.rate_linear - ~ComponentIterator.rate_nonlinear - ~ComponentIterator.ref_dXdt - ~ComponentIterator.remove - ~ComponentIterator.reset - ~ComponentIterator.resetLog - ~ComponentIterator.resetSystemLogs - ~ComponentIterator.reverse - ~ComponentIterator.set_attr - ~ComponentIterator.set_time - ~ComponentIterator.setattrs - ~ComponentIterator.signals_attributes - ~ComponentIterator.slack_notification - ~ComponentIterator.slot_refs - ~ComponentIterator.slots_attributes - ~ComponentIterator.smart_split_dataframe - ~ComponentIterator.solvers_attributes - ~ComponentIterator.sort - ~ComponentIterator.step - ~ComponentIterator.subclasses - ~ComponentIterator.subcls_compile - ~ComponentIterator.system_properties_classdef - ~ComponentIterator.system_references - ~ComponentIterator.table_fields - ~ComponentIterator.trace_attributes - ~ComponentIterator.transients_attributes - ~ComponentIterator.update - ~ComponentIterator.update_dynamics - ~ComponentIterator.update_feedthrough - ~ComponentIterator.update_input - ~ComponentIterator.update_output_constants - ~ComponentIterator.update_output_matrix - ~ComponentIterator.update_state - ~ComponentIterator.update_state_constants - ~ComponentIterator.validate_class - ~ComponentIterator.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ComponentIterator.Ut_ref - ~ComponentIterator.Xt_ref - ~ComponentIterator.Yt_ref - ~ComponentIterator.anything_changed - ~ComponentIterator.as_dict - ~ComponentIterator.attrs_fields - ~ComponentIterator.classname - ~ComponentIterator.current - ~ComponentIterator.dXtdt_ref - ~ComponentIterator.data_dict - ~ComponentIterator.dataframe_constants - ~ComponentIterator.dataframe_variants - ~ComponentIterator.displayname - ~ComponentIterator.dynamic_A - ~ComponentIterator.dynamic_B - ~ComponentIterator.dynamic_C - ~ComponentIterator.dynamic_D - ~ComponentIterator.dynamic_F - ~ComponentIterator.dynamic_K - ~ComponentIterator.dynamic_input - ~ComponentIterator.dynamic_input_vars - ~ComponentIterator.dynamic_output - ~ComponentIterator.dynamic_output_vars - ~ComponentIterator.dynamic_state - ~ComponentIterator.dynamic_state_vars - ~ComponentIterator.filename - ~ComponentIterator.identity - ~ComponentIterator.input_as_dict - ~ComponentIterator.last_context - ~ComponentIterator.log_fmt - ~ComponentIterator.log_level - ~ComponentIterator.log_on - ~ComponentIterator.log_silo - ~ComponentIterator.logger - ~ComponentIterator.nonlinear - ~ComponentIterator.numeric_as_dict - ~ComponentIterator.numeric_hash - ~ComponentIterator.plotable_variables - ~ComponentIterator.skip_plot_vars - ~ComponentIterator.slack_webhook_url - ~ComponentIterator.static_A - ~ComponentIterator.static_B - ~ComponentIterator.static_C - ~ComponentIterator.static_D - ~ComponentIterator.static_F - ~ComponentIterator.static_K - ~ComponentIterator.system_id - ~ComponentIterator.time - ~ComponentIterator.unique_hash - ~ComponentIterator.update_interval - ~ComponentIterator.wide - ~ComponentIterator.component_type - ~ComponentIterator.data - ~ComponentIterator.current_item - ~ComponentIterator.parent - ~ComponentIterator.name - ~ComponentIterator.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.component_collections.check_comp_type.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.component_collections.check_comp_type.rst.txt deleted file mode 100644 index 804ccc6..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.component_collections.check_comp_type.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.component\_collections.check\_comp\_type -================================================= - -.. currentmodule:: engforge.component_collections - -.. autofunction:: check_comp_type \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.component_collections.iter_tkn.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.component_collections.iter_tkn.rst.txt deleted file mode 100644 index b54632e..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.component_collections.iter_tkn.rst.txt +++ /dev/null @@ -1,24 +0,0 @@ -engforge.component\_collections.iter\_tkn -========================================= - -.. currentmodule:: engforge.component_collections - -.. autoclass:: iter_tkn - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.component_collections.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.component_collections.rst.txt deleted file mode 100644 index 10a8b1c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.component_collections.rst.txt +++ /dev/null @@ -1,43 +0,0 @@ -engforge.component\_collections -=============================== - -.. automodule:: engforge.component_collections - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - check_comp_type - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - ComponentDict - ComponentIter - ComponentIterator - iter_tkn - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.components.Component.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.components.Component.rst.txt deleted file mode 100644 index 2a9f61b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.components.Component.rst.txt +++ /dev/null @@ -1,173 +0,0 @@ -engforge.components.Component -============================= - -.. currentmodule:: engforge.components - -.. autoclass:: Component - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Component.add_fields - ~Component.change_all_log_lvl - ~Component.check_ref_slot_type - ~Component.cls_all_attrs_fields - ~Component.cls_all_property_keys - ~Component.cls_all_property_labels - ~Component.cls_compile - ~Component.collect_all_attributes - ~Component.collect_comp_refs - ~Component.collect_dynamic_refs - ~Component.collect_inst_attributes - ~Component.collect_post_update_refs - ~Component.collect_solver_refs - ~Component.collect_update_refs - ~Component.comp_references - ~Component.compile_classes - ~Component.copy_config_at_state - ~Component.create_dynamic_matricies - ~Component.create_feedthrough_matrix - ~Component.create_input_matrix - ~Component.create_output_constants - ~Component.create_output_matrix - ~Component.create_state_constants - ~Component.create_state_matrix - ~Component.critical - ~Component.debug - ~Component.determine_nearest_stationary_state - ~Component.difference - ~Component.error - ~Component.extract_message - ~Component.filter - ~Component.format_columns - ~Component.get_system_input_refs - ~Component.go_through_configurations - ~Component.info - ~Component.input_attrs - ~Component.input_fields - ~Component.installSTDLogger - ~Component.internal_components - ~Component.internal_configurations - ~Component.internal_references - ~Component.internal_systems - ~Component.internal_tabulations - ~Component.linear_output - ~Component.linear_step - ~Component.locate - ~Component.locate_ref - ~Component.message_with_identiy - ~Component.msg - ~Component.nonlinear_output - ~Component.nonlinear_step - ~Component.numeric_fields - ~Component.parent_configurations_cls - ~Component.parse_run_kwargs - ~Component.parse_simulation_input - ~Component.plot_attributes - ~Component.post_update - ~Component.pre_compile - ~Component.print_info - ~Component.rate - ~Component.rate_linear - ~Component.rate_nonlinear - ~Component.ref_dXdt - ~Component.resetLog - ~Component.resetSystemLogs - ~Component.set_attr - ~Component.set_time - ~Component.setattrs - ~Component.signals_attributes - ~Component.slack_notification - ~Component.slot_refs - ~Component.slots_attributes - ~Component.smart_split_dataframe - ~Component.solvers_attributes - ~Component.step - ~Component.subclasses - ~Component.subcls_compile - ~Component.system_properties_classdef - ~Component.system_references - ~Component.table_fields - ~Component.trace_attributes - ~Component.transients_attributes - ~Component.update - ~Component.update_dynamics - ~Component.update_feedthrough - ~Component.update_input - ~Component.update_output_constants - ~Component.update_output_matrix - ~Component.update_state - ~Component.update_state_constants - ~Component.validate_class - ~Component.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Component.Ut_ref - ~Component.Xt_ref - ~Component.Yt_ref - ~Component.anything_changed - ~Component.as_dict - ~Component.attrs_fields - ~Component.classname - ~Component.dXtdt_ref - ~Component.data_dict - ~Component.dataframe_constants - ~Component.dataframe_variants - ~Component.displayname - ~Component.dynamic_A - ~Component.dynamic_B - ~Component.dynamic_C - ~Component.dynamic_D - ~Component.dynamic_F - ~Component.dynamic_K - ~Component.dynamic_input - ~Component.dynamic_input_vars - ~Component.dynamic_output - ~Component.dynamic_output_vars - ~Component.dynamic_state - ~Component.dynamic_state_vars - ~Component.filename - ~Component.identity - ~Component.input_as_dict - ~Component.last_context - ~Component.log_fmt - ~Component.log_level - ~Component.log_on - ~Component.log_silo - ~Component.logger - ~Component.nonlinear - ~Component.numeric_as_dict - ~Component.numeric_hash - ~Component.plotable_variables - ~Component.skip_plot_vars - ~Component.slack_webhook_url - ~Component.static_A - ~Component.static_B - ~Component.static_C - ~Component.static_D - ~Component.static_F - ~Component.static_K - ~Component.system_id - ~Component.time - ~Component.unique_hash - ~Component.update_interval - ~Component.parent - ~Component.name - ~Component.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.components.SolveableInterface.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.components.SolveableInterface.rst.txt deleted file mode 100644 index 5090092..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.components.SolveableInterface.rst.txt +++ /dev/null @@ -1,123 +0,0 @@ -engforge.components.SolveableInterface -====================================== - -.. currentmodule:: engforge.components - -.. autoclass:: SolveableInterface - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SolveableInterface.add_fields - ~SolveableInterface.change_all_log_lvl - ~SolveableInterface.check_ref_slot_type - ~SolveableInterface.cls_all_attrs_fields - ~SolveableInterface.cls_all_property_keys - ~SolveableInterface.cls_all_property_labels - ~SolveableInterface.cls_compile - ~SolveableInterface.collect_all_attributes - ~SolveableInterface.collect_comp_refs - ~SolveableInterface.collect_dynamic_refs - ~SolveableInterface.collect_inst_attributes - ~SolveableInterface.collect_post_update_refs - ~SolveableInterface.collect_solver_refs - ~SolveableInterface.collect_update_refs - ~SolveableInterface.comp_references - ~SolveableInterface.compile_classes - ~SolveableInterface.copy_config_at_state - ~SolveableInterface.critical - ~SolveableInterface.debug - ~SolveableInterface.difference - ~SolveableInterface.error - ~SolveableInterface.extract_message - ~SolveableInterface.filter - ~SolveableInterface.format_columns - ~SolveableInterface.get_system_input_refs - ~SolveableInterface.go_through_configurations - ~SolveableInterface.info - ~SolveableInterface.input_attrs - ~SolveableInterface.input_fields - ~SolveableInterface.installSTDLogger - ~SolveableInterface.internal_components - ~SolveableInterface.internal_configurations - ~SolveableInterface.internal_references - ~SolveableInterface.internal_systems - ~SolveableInterface.internal_tabulations - ~SolveableInterface.locate - ~SolveableInterface.locate_ref - ~SolveableInterface.message_with_identiy - ~SolveableInterface.msg - ~SolveableInterface.numeric_fields - ~SolveableInterface.parent_configurations_cls - ~SolveableInterface.parse_run_kwargs - ~SolveableInterface.parse_simulation_input - ~SolveableInterface.plot_attributes - ~SolveableInterface.post_update - ~SolveableInterface.pre_compile - ~SolveableInterface.print_info - ~SolveableInterface.resetLog - ~SolveableInterface.resetSystemLogs - ~SolveableInterface.set_attr - ~SolveableInterface.setattrs - ~SolveableInterface.signals_attributes - ~SolveableInterface.slack_notification - ~SolveableInterface.slot_refs - ~SolveableInterface.slots_attributes - ~SolveableInterface.smart_split_dataframe - ~SolveableInterface.solvers_attributes - ~SolveableInterface.subclasses - ~SolveableInterface.subcls_compile - ~SolveableInterface.system_properties_classdef - ~SolveableInterface.system_references - ~SolveableInterface.table_fields - ~SolveableInterface.trace_attributes - ~SolveableInterface.transients_attributes - ~SolveableInterface.update - ~SolveableInterface.validate_class - ~SolveableInterface.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SolveableInterface.anything_changed - ~SolveableInterface.as_dict - ~SolveableInterface.attrs_fields - ~SolveableInterface.classname - ~SolveableInterface.data_dict - ~SolveableInterface.dataframe_constants - ~SolveableInterface.dataframe_variants - ~SolveableInterface.displayname - ~SolveableInterface.filename - ~SolveableInterface.identity - ~SolveableInterface.input_as_dict - ~SolveableInterface.last_context - ~SolveableInterface.log_fmt - ~SolveableInterface.log_level - ~SolveableInterface.log_on - ~SolveableInterface.log_silo - ~SolveableInterface.logger - ~SolveableInterface.numeric_as_dict - ~SolveableInterface.numeric_hash - ~SolveableInterface.plotable_variables - ~SolveableInterface.skip_plot_vars - ~SolveableInterface.slack_webhook_url - ~SolveableInterface.system_id - ~SolveableInterface.unique_hash - ~SolveableInterface.parent - ~SolveableInterface.name - ~SolveableInterface.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.components.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.components.rst.txt deleted file mode 100644 index 5bbfe66..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.components.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -engforge.components -=================== - -.. automodule:: engforge.components - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - Component - SolveableInterface - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.configuration.ConfigLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.configuration.ConfigLog.rst.txt deleted file mode 100644 index 36ebe4e..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.configuration.ConfigLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.configuration.ConfigLog -================================ - -.. currentmodule:: engforge.configuration - -.. autoclass:: ConfigLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ConfigLog.add_fields - ~ConfigLog.change_all_log_lvl - ~ConfigLog.critical - ~ConfigLog.debug - ~ConfigLog.error - ~ConfigLog.extract_message - ~ConfigLog.filter - ~ConfigLog.info - ~ConfigLog.installSTDLogger - ~ConfigLog.message_with_identiy - ~ConfigLog.msg - ~ConfigLog.resetLog - ~ConfigLog.resetSystemLogs - ~ConfigLog.slack_notification - ~ConfigLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ConfigLog.identity - ~ConfigLog.log_fmt - ~ConfigLog.log_level - ~ConfigLog.log_on - ~ConfigLog.logger - ~ConfigLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.configuration.Configuration.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.configuration.Configuration.rst.txt deleted file mode 100644 index c871179..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.configuration.Configuration.rst.txt +++ /dev/null @@ -1,87 +0,0 @@ -engforge.configuration.Configuration -==================================== - -.. currentmodule:: engforge.configuration - -.. autoclass:: Configuration - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Configuration.add_fields - ~Configuration.change_all_log_lvl - ~Configuration.check_ref_slot_type - ~Configuration.cls_compile - ~Configuration.collect_all_attributes - ~Configuration.collect_inst_attributes - ~Configuration.compile_classes - ~Configuration.copy_config_at_state - ~Configuration.critical - ~Configuration.debug - ~Configuration.difference - ~Configuration.error - ~Configuration.extract_message - ~Configuration.filter - ~Configuration.go_through_configurations - ~Configuration.info - ~Configuration.input_attrs - ~Configuration.input_fields - ~Configuration.installSTDLogger - ~Configuration.internal_configurations - ~Configuration.message_with_identiy - ~Configuration.msg - ~Configuration.numeric_fields - ~Configuration.parent_configurations_cls - ~Configuration.plot_attributes - ~Configuration.pre_compile - ~Configuration.resetLog - ~Configuration.resetSystemLogs - ~Configuration.setattrs - ~Configuration.signals_attributes - ~Configuration.slack_notification - ~Configuration.slot_refs - ~Configuration.slots_attributes - ~Configuration.solvers_attributes - ~Configuration.subclasses - ~Configuration.subcls_compile - ~Configuration.table_fields - ~Configuration.trace_attributes - ~Configuration.transients_attributes - ~Configuration.validate_class - ~Configuration.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Configuration.as_dict - ~Configuration.attrs_fields - ~Configuration.classname - ~Configuration.displayname - ~Configuration.filename - ~Configuration.identity - ~Configuration.input_as_dict - ~Configuration.log_fmt - ~Configuration.log_level - ~Configuration.log_on - ~Configuration.log_silo - ~Configuration.logger - ~Configuration.numeric_as_dict - ~Configuration.numeric_hash - ~Configuration.slack_webhook_url - ~Configuration.unique_hash - ~Configuration.name - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.configuration.comp_transform.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.configuration.comp_transform.rst.txt deleted file mode 100644 index 30890ba..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.configuration.comp_transform.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.configuration.comp\_transform -====================================== - -.. currentmodule:: engforge.configuration - -.. autofunction:: comp_transform \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.configuration.conv_nms.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.configuration.conv_nms.rst.txt deleted file mode 100644 index c22080b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.configuration.conv_nms.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.configuration.conv\_nms -================================ - -.. currentmodule:: engforge.configuration - -.. autofunction:: conv_nms \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.configuration.forge.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.configuration.forge.rst.txt deleted file mode 100644 index fade198..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.configuration.forge.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.configuration.forge -============================ - -.. currentmodule:: engforge.configuration - -.. autofunction:: forge \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.configuration.meta.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.configuration.meta.rst.txt deleted file mode 100644 index a3cfbea..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.configuration.meta.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.configuration.meta -=========================== - -.. currentmodule:: engforge.configuration - -.. autofunction:: meta \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.configuration.name_generator.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.configuration.name_generator.rst.txt deleted file mode 100644 index 3be6b1c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.configuration.name_generator.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.configuration.name\_generator -====================================== - -.. currentmodule:: engforge.configuration - -.. autofunction:: name_generator \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.configuration.property_changed.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.configuration.property_changed.rst.txt deleted file mode 100644 index 2f77d40..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.configuration.property_changed.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.configuration.property\_changed -======================================== - -.. currentmodule:: engforge.configuration - -.. autofunction:: property_changed \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.configuration.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.configuration.rst.txt deleted file mode 100644 index de573f2..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.configuration.rst.txt +++ /dev/null @@ -1,47 +0,0 @@ -engforge.configuration -====================== - -.. automodule:: engforge.configuration - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - comp_transform - conv_nms - forge - meta - name_generator - property_changed - signals_slots_handler - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - ConfigLog - Configuration - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.configuration.signals_slots_handler.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.configuration.signals_slots_handler.rst.txt deleted file mode 100644 index 3dca73d..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.configuration.signals_slots_handler.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.configuration.signals\_slots\_handler -============================================== - -.. currentmodule:: engforge.configuration - -.. autofunction:: signals_slots_handler \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dataframe.DataFrameLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dataframe.DataFrameLog.rst.txt deleted file mode 100644 index 7b1a837..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dataframe.DataFrameLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.dataframe.DataFrameLog -=============================== - -.. currentmodule:: engforge.dataframe - -.. autoclass:: DataFrameLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~DataFrameLog.add_fields - ~DataFrameLog.change_all_log_lvl - ~DataFrameLog.critical - ~DataFrameLog.debug - ~DataFrameLog.error - ~DataFrameLog.extract_message - ~DataFrameLog.filter - ~DataFrameLog.info - ~DataFrameLog.installSTDLogger - ~DataFrameLog.message_with_identiy - ~DataFrameLog.msg - ~DataFrameLog.resetLog - ~DataFrameLog.resetSystemLogs - ~DataFrameLog.slack_notification - ~DataFrameLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~DataFrameLog.identity - ~DataFrameLog.log_fmt - ~DataFrameLog.log_level - ~DataFrameLog.log_on - ~DataFrameLog.logger - ~DataFrameLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dataframe.DataframeMixin.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dataframe.DataframeMixin.rst.txt deleted file mode 100644 index 74d4d15..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dataframe.DataframeMixin.rst.txt +++ /dev/null @@ -1,35 +0,0 @@ -engforge.dataframe.DataframeMixin -================================= - -.. currentmodule:: engforge.dataframe - -.. autoclass:: DataframeMixin - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~DataframeMixin.format_columns - ~DataframeMixin.smart_split_dataframe - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~DataframeMixin.dataframe - ~DataframeMixin.dataframe_constants - ~DataframeMixin.dataframe_variants - ~DataframeMixin.skip_plot_vars - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dataframe.dataframe_prop.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dataframe.dataframe_prop.rst.txt deleted file mode 100644 index e7aac4c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dataframe.dataframe_prop.rst.txt +++ /dev/null @@ -1,34 +0,0 @@ -engforge.dataframe.dataframe\_prop -================================== - -.. currentmodule:: engforge.dataframe - -.. autoclass:: dataframe_prop - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~dataframe_prop.deleter - ~dataframe_prop.get_func_return - ~dataframe_prop.getter - ~dataframe_prop.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~dataframe_prop.must_return - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dataframe.dataframe_property.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dataframe.dataframe_property.rst.txt deleted file mode 100644 index d8ef32b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dataframe.dataframe_property.rst.txt +++ /dev/null @@ -1,34 +0,0 @@ -engforge.dataframe.dataframe\_property -====================================== - -.. currentmodule:: engforge.dataframe - -.. autoclass:: dataframe_property - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~dataframe_property.deleter - ~dataframe_property.get_func_return - ~dataframe_property.getter - ~dataframe_property.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~dataframe_property.must_return - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dataframe.determine_split.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dataframe.determine_split.rst.txt deleted file mode 100644 index 5363351..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dataframe.determine_split.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.dataframe.determine\_split -=================================== - -.. currentmodule:: engforge.dataframe - -.. autofunction:: determine_split \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dataframe.df_prop.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dataframe.df_prop.rst.txt deleted file mode 100644 index 89cbe82..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dataframe.df_prop.rst.txt +++ /dev/null @@ -1,34 +0,0 @@ -engforge.dataframe.df\_prop -=========================== - -.. currentmodule:: engforge.dataframe - -.. autoclass:: df_prop - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~df_prop.deleter - ~df_prop.get_func_return - ~df_prop.getter - ~df_prop.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~df_prop.must_return - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dataframe.is_uniform.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dataframe.is_uniform.rst.txt deleted file mode 100644 index 53326fd..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dataframe.is_uniform.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.dataframe.is\_uniform -============================== - -.. currentmodule:: engforge.dataframe - -.. autofunction:: is_uniform \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dataframe.key_func.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dataframe.key_func.rst.txt deleted file mode 100644 index e830d7d..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dataframe.key_func.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.dataframe.key\_func -============================ - -.. currentmodule:: engforge.dataframe - -.. autofunction:: key_func \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dataframe.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dataframe.rst.txt deleted file mode 100644 index 584aa25..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dataframe.rst.txt +++ /dev/null @@ -1,47 +0,0 @@ -engforge.dataframe -================== - -.. automodule:: engforge.dataframe - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - determine_split - is_uniform - key_func - split_dataframe - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - DataFrameLog - DataframeMixin - dataframe_prop - dataframe_property - df_prop - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.dataframe.split_dataframe.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dataframe.split_dataframe.rst.txt deleted file mode 100644 index 3cbd79b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dataframe.split_dataframe.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.dataframe.split\_dataframe -=================================== - -.. currentmodule:: engforge.dataframe - -.. autofunction:: split_dataframe \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.DBConnection.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.DBConnection.rst.txt deleted file mode 100644 index 38d3f9b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.DBConnection.rst.txt +++ /dev/null @@ -1,69 +0,0 @@ -engforge.datastores.data.DBConnection -===================================== - -.. currentmodule:: engforge.datastores.data - -.. autoclass:: DBConnection - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~DBConnection.add_fields - ~DBConnection.change_all_log_lvl - ~DBConnection.cleanup_sessions - ~DBConnection.configure - ~DBConnection.critical - ~DBConnection.debug - ~DBConnection.ensure_database_exists - ~DBConnection.error - ~DBConnection.extract_message - ~DBConnection.filter - ~DBConnection.info - ~DBConnection.installSTDLogger - ~DBConnection.message_with_identiy - ~DBConnection.msg - ~DBConnection.rebuild_database - ~DBConnection.resetLog - ~DBConnection.resetSystemLogs - ~DBConnection.session_scope - ~DBConnection.slack_notification - ~DBConnection.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~DBConnection.Session - ~DBConnection.connect_args - ~DBConnection.connection_string - ~DBConnection.dbname - ~DBConnection.echo - ~DBConnection.engine - ~DBConnection.host - ~DBConnection.identity - ~DBConnection.log_fmt - ~DBConnection.log_level - ~DBConnection.log_on - ~DBConnection.logger - ~DBConnection.max_overflow - ~DBConnection.passd - ~DBConnection.pool_size - ~DBConnection.port - ~DBConnection.scopefunc - ~DBConnection.session_factory - ~DBConnection.slack_webhook_url - ~DBConnection.user - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.DiskCacheStore.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.DiskCacheStore.rst.txt deleted file mode 100644 index 0579f82..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.DiskCacheStore.rst.txt +++ /dev/null @@ -1,64 +0,0 @@ -engforge.datastores.data.DiskCacheStore -======================================= - -.. currentmodule:: engforge.datastores.data - -.. autoclass:: DiskCacheStore - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~DiskCacheStore.add_fields - ~DiskCacheStore.change_all_log_lvl - ~DiskCacheStore.critical - ~DiskCacheStore.debug - ~DiskCacheStore.error - ~DiskCacheStore.expire - ~DiskCacheStore.extract_message - ~DiskCacheStore.filter - ~DiskCacheStore.get - ~DiskCacheStore.info - ~DiskCacheStore.installSTDLogger - ~DiskCacheStore.message_with_identiy - ~DiskCacheStore.msg - ~DiskCacheStore.resetLog - ~DiskCacheStore.resetSystemLogs - ~DiskCacheStore.set - ~DiskCacheStore.slack_notification - ~DiskCacheStore.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~DiskCacheStore.alt_path - ~DiskCacheStore.cache - ~DiskCacheStore.cache_init_kwargs - ~DiskCacheStore.cache_root - ~DiskCacheStore.current_keys - ~DiskCacheStore.expire_threshold - ~DiskCacheStore.identity - ~DiskCacheStore.last_expire - ~DiskCacheStore.log_fmt - ~DiskCacheStore.log_level - ~DiskCacheStore.log_on - ~DiskCacheStore.logger - ~DiskCacheStore.retries - ~DiskCacheStore.size_limit - ~DiskCacheStore.slack_webhook_url - ~DiskCacheStore.sleep_time - ~DiskCacheStore.timeout - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_array.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_array.rst.txt deleted file mode 100644 index c693e12..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_array.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.datastores.data.addapt\_numpy\_array -============================================= - -.. currentmodule:: engforge.datastores.data - -.. autofunction:: addapt_numpy_array \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_float32.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_float32.rst.txt deleted file mode 100644 index 8a897ec..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_float32.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.datastores.data.addapt\_numpy\_float32 -=============================================== - -.. currentmodule:: engforge.datastores.data - -.. autofunction:: addapt_numpy_float32 \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_float64.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_float64.rst.txt deleted file mode 100644 index 262310b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_float64.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.datastores.data.addapt\_numpy\_float64 -=============================================== - -.. currentmodule:: engforge.datastores.data - -.. autofunction:: addapt_numpy_float64 \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_int32.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_int32.rst.txt deleted file mode 100644 index 24756fb..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_int32.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.datastores.data.addapt\_numpy\_int32 -============================================= - -.. currentmodule:: engforge.datastores.data - -.. autofunction:: addapt_numpy_int32 \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_int64.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_int64.rst.txt deleted file mode 100644 index 41e13fd..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.addapt_numpy_int64.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.datastores.data.addapt\_numpy\_int64 -============================================= - -.. currentmodule:: engforge.datastores.data - -.. autofunction:: addapt_numpy_int64 \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_direct.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_direct.rst.txt deleted file mode 100644 index 98dc313..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_direct.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.datastores.data.autocorrelation\_direct -================================================ - -.. currentmodule:: engforge.datastores.data - -.. autofunction:: autocorrelation_direct \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_fft.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_fft.rst.txt deleted file mode 100644 index 17a5258..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_fft.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.datastores.data.autocorrelation\_fft -============================================= - -.. currentmodule:: engforge.datastores.data - -.. autofunction:: autocorrelation_fft \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_numpy.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_numpy.rst.txt deleted file mode 100644 index 3f7f95c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.autocorrelation_numpy.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.datastores.data.autocorrelation\_numpy -=============================================== - -.. currentmodule:: engforge.datastores.data - -.. autofunction:: autocorrelation_numpy \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.nan_to_null.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.nan_to_null.rst.txt deleted file mode 100644 index f7b6907..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.nan_to_null.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.datastores.data.nan\_to\_null -====================================== - -.. currentmodule:: engforge.datastores.data - -.. autofunction:: nan_to_null \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.data.rst.txt deleted file mode 100644 index 5f49fe5..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.data.rst.txt +++ /dev/null @@ -1,49 +0,0 @@ -engforge.datastores.data -======================== - -.. automodule:: engforge.datastores.data - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - addapt_numpy_array - addapt_numpy_float32 - addapt_numpy_float64 - addapt_numpy_int32 - addapt_numpy_int64 - autocorrelation_direct - autocorrelation_fft - autocorrelation_numpy - nan_to_null - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - DBConnection - DiskCacheStore - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.datastores.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.datastores.rst.txt deleted file mode 100644 index 3b9e80c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.datastores.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -engforge.datastores -=================== - -.. automodule:: engforge.datastores - - - - - - - - - - - - - - - - - - - -.. autosummary:: - :toctree: - :template: custom-module-template.rst - :recursive: - - data - gdocs - reporting - secrets - diff --git a/docs/_build/html/_sources/_autosummary/engforge.dynamics.DynamicsMixin.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dynamics.DynamicsMixin.rst.txt deleted file mode 100644 index 7fafead..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dynamics.DynamicsMixin.rst.txt +++ /dev/null @@ -1,161 +0,0 @@ -engforge.dynamics.DynamicsMixin -=============================== - -.. currentmodule:: engforge.dynamics - -.. autoclass:: DynamicsMixin - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~DynamicsMixin.add_fields - ~DynamicsMixin.change_all_log_lvl - ~DynamicsMixin.check_ref_slot_type - ~DynamicsMixin.cls_compile - ~DynamicsMixin.collect_all_attributes - ~DynamicsMixin.collect_comp_refs - ~DynamicsMixin.collect_dynamic_refs - ~DynamicsMixin.collect_inst_attributes - ~DynamicsMixin.collect_post_update_refs - ~DynamicsMixin.collect_solver_refs - ~DynamicsMixin.collect_update_refs - ~DynamicsMixin.comp_references - ~DynamicsMixin.compile_classes - ~DynamicsMixin.copy_config_at_state - ~DynamicsMixin.create_dynamic_matricies - ~DynamicsMixin.create_feedthrough_matrix - ~DynamicsMixin.create_input_matrix - ~DynamicsMixin.create_output_constants - ~DynamicsMixin.create_output_matrix - ~DynamicsMixin.create_state_constants - ~DynamicsMixin.create_state_matrix - ~DynamicsMixin.critical - ~DynamicsMixin.debug - ~DynamicsMixin.determine_nearest_stationary_state - ~DynamicsMixin.difference - ~DynamicsMixin.error - ~DynamicsMixin.extract_message - ~DynamicsMixin.filter - ~DynamicsMixin.get_system_input_refs - ~DynamicsMixin.go_through_configurations - ~DynamicsMixin.info - ~DynamicsMixin.input_attrs - ~DynamicsMixin.input_fields - ~DynamicsMixin.installSTDLogger - ~DynamicsMixin.internal_components - ~DynamicsMixin.internal_configurations - ~DynamicsMixin.internal_references - ~DynamicsMixin.internal_systems - ~DynamicsMixin.internal_tabulations - ~DynamicsMixin.linear_output - ~DynamicsMixin.linear_step - ~DynamicsMixin.locate - ~DynamicsMixin.locate_ref - ~DynamicsMixin.message_with_identiy - ~DynamicsMixin.msg - ~DynamicsMixin.nonlinear_output - ~DynamicsMixin.nonlinear_step - ~DynamicsMixin.numeric_fields - ~DynamicsMixin.parent_configurations_cls - ~DynamicsMixin.parse_run_kwargs - ~DynamicsMixin.parse_simulation_input - ~DynamicsMixin.plot_attributes - ~DynamicsMixin.post_update - ~DynamicsMixin.pre_compile - ~DynamicsMixin.rate - ~DynamicsMixin.rate_linear - ~DynamicsMixin.rate_nonlinear - ~DynamicsMixin.ref_dXdt - ~DynamicsMixin.resetLog - ~DynamicsMixin.resetSystemLogs - ~DynamicsMixin.set_time - ~DynamicsMixin.setattrs - ~DynamicsMixin.signals_attributes - ~DynamicsMixin.slack_notification - ~DynamicsMixin.slot_refs - ~DynamicsMixin.slots_attributes - ~DynamicsMixin.solvers_attributes - ~DynamicsMixin.step - ~DynamicsMixin.subclasses - ~DynamicsMixin.subcls_compile - ~DynamicsMixin.system_references - ~DynamicsMixin.table_fields - ~DynamicsMixin.trace_attributes - ~DynamicsMixin.transients_attributes - ~DynamicsMixin.update - ~DynamicsMixin.update_dynamics - ~DynamicsMixin.update_feedthrough - ~DynamicsMixin.update_input - ~DynamicsMixin.update_output_constants - ~DynamicsMixin.update_output_matrix - ~DynamicsMixin.update_state - ~DynamicsMixin.update_state_constants - ~DynamicsMixin.validate_class - ~DynamicsMixin.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~DynamicsMixin.Ut_ref - ~DynamicsMixin.Xt_ref - ~DynamicsMixin.Yt_ref - ~DynamicsMixin.as_dict - ~DynamicsMixin.attrs_fields - ~DynamicsMixin.cache_dXdt - ~DynamicsMixin.classname - ~DynamicsMixin.dXtdt_ref - ~DynamicsMixin.displayname - ~DynamicsMixin.dynamic_A - ~DynamicsMixin.dynamic_B - ~DynamicsMixin.dynamic_C - ~DynamicsMixin.dynamic_D - ~DynamicsMixin.dynamic_F - ~DynamicsMixin.dynamic_K - ~DynamicsMixin.dynamic_input - ~DynamicsMixin.dynamic_input_size - ~DynamicsMixin.dynamic_input_vars - ~DynamicsMixin.dynamic_output - ~DynamicsMixin.dynamic_output_size - ~DynamicsMixin.dynamic_output_vars - ~DynamicsMixin.dynamic_state - ~DynamicsMixin.dynamic_state_size - ~DynamicsMixin.dynamic_state_vars - ~DynamicsMixin.filename - ~DynamicsMixin.identity - ~DynamicsMixin.input_as_dict - ~DynamicsMixin.is_dynamic - ~DynamicsMixin.log_fmt - ~DynamicsMixin.log_level - ~DynamicsMixin.log_on - ~DynamicsMixin.log_silo - ~DynamicsMixin.logger - ~DynamicsMixin.nonlinear - ~DynamicsMixin.numeric_as_dict - ~DynamicsMixin.numeric_hash - ~DynamicsMixin.slack_webhook_url - ~DynamicsMixin.static_A - ~DynamicsMixin.static_B - ~DynamicsMixin.static_C - ~DynamicsMixin.static_D - ~DynamicsMixin.static_F - ~DynamicsMixin.static_K - ~DynamicsMixin.time - ~DynamicsMixin.unique_hash - ~DynamicsMixin.update_interval - ~DynamicsMixin.name - ~DynamicsMixin.parent - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dynamics.GlobalDynamics.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dynamics.GlobalDynamics.rst.txt deleted file mode 100644 index d6df7f5..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dynamics.GlobalDynamics.rst.txt +++ /dev/null @@ -1,159 +0,0 @@ -engforge.dynamics.GlobalDynamics -================================ - -.. currentmodule:: engforge.dynamics - -.. autoclass:: GlobalDynamics - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~GlobalDynamics.add_fields - ~GlobalDynamics.change_all_log_lvl - ~GlobalDynamics.check_ref_slot_type - ~GlobalDynamics.cls_compile - ~GlobalDynamics.collect_all_attributes - ~GlobalDynamics.collect_comp_refs - ~GlobalDynamics.collect_dynamic_refs - ~GlobalDynamics.collect_inst_attributes - ~GlobalDynamics.collect_post_update_refs - ~GlobalDynamics.collect_solver_refs - ~GlobalDynamics.collect_update_refs - ~GlobalDynamics.comp_references - ~GlobalDynamics.compile_classes - ~GlobalDynamics.copy_config_at_state - ~GlobalDynamics.create_dynamic_matricies - ~GlobalDynamics.create_feedthrough_matrix - ~GlobalDynamics.create_input_matrix - ~GlobalDynamics.create_output_constants - ~GlobalDynamics.create_output_matrix - ~GlobalDynamics.create_state_constants - ~GlobalDynamics.create_state_matrix - ~GlobalDynamics.critical - ~GlobalDynamics.debug - ~GlobalDynamics.determine_nearest_stationary_state - ~GlobalDynamics.difference - ~GlobalDynamics.error - ~GlobalDynamics.extract_message - ~GlobalDynamics.filter - ~GlobalDynamics.get_system_input_refs - ~GlobalDynamics.go_through_configurations - ~GlobalDynamics.info - ~GlobalDynamics.input_attrs - ~GlobalDynamics.input_fields - ~GlobalDynamics.installSTDLogger - ~GlobalDynamics.internal_components - ~GlobalDynamics.internal_configurations - ~GlobalDynamics.internal_references - ~GlobalDynamics.internal_systems - ~GlobalDynamics.internal_tabulations - ~GlobalDynamics.linear_output - ~GlobalDynamics.linear_step - ~GlobalDynamics.locate - ~GlobalDynamics.locate_ref - ~GlobalDynamics.message_with_identiy - ~GlobalDynamics.msg - ~GlobalDynamics.nonlinear_output - ~GlobalDynamics.nonlinear_step - ~GlobalDynamics.numeric_fields - ~GlobalDynamics.parent_configurations_cls - ~GlobalDynamics.parse_run_kwargs - ~GlobalDynamics.parse_simulation_input - ~GlobalDynamics.plot_attributes - ~GlobalDynamics.post_update - ~GlobalDynamics.pre_compile - ~GlobalDynamics.rate - ~GlobalDynamics.rate_linear - ~GlobalDynamics.rate_nonlinear - ~GlobalDynamics.ref_dXdt - ~GlobalDynamics.resetLog - ~GlobalDynamics.resetSystemLogs - ~GlobalDynamics.set_time - ~GlobalDynamics.setattrs - ~GlobalDynamics.setup_global_dynamics - ~GlobalDynamics.signals_attributes - ~GlobalDynamics.sim_matrix - ~GlobalDynamics.simulate - ~GlobalDynamics.slack_notification - ~GlobalDynamics.slot_refs - ~GlobalDynamics.slots_attributes - ~GlobalDynamics.solvers_attributes - ~GlobalDynamics.step - ~GlobalDynamics.subclasses - ~GlobalDynamics.subcls_compile - ~GlobalDynamics.system_references - ~GlobalDynamics.table_fields - ~GlobalDynamics.trace_attributes - ~GlobalDynamics.transients_attributes - ~GlobalDynamics.update - ~GlobalDynamics.update_dynamics - ~GlobalDynamics.update_feedthrough - ~GlobalDynamics.update_input - ~GlobalDynamics.update_output_constants - ~GlobalDynamics.update_output_matrix - ~GlobalDynamics.update_state - ~GlobalDynamics.update_state_constants - ~GlobalDynamics.validate_class - ~GlobalDynamics.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~GlobalDynamics.Ut_ref - ~GlobalDynamics.Xt_ref - ~GlobalDynamics.Yt_ref - ~GlobalDynamics.as_dict - ~GlobalDynamics.attrs_fields - ~GlobalDynamics.classname - ~GlobalDynamics.dXtdt_ref - ~GlobalDynamics.displayname - ~GlobalDynamics.dynamic_A - ~GlobalDynamics.dynamic_B - ~GlobalDynamics.dynamic_C - ~GlobalDynamics.dynamic_D - ~GlobalDynamics.dynamic_F - ~GlobalDynamics.dynamic_K - ~GlobalDynamics.dynamic_input - ~GlobalDynamics.dynamic_input_vars - ~GlobalDynamics.dynamic_output - ~GlobalDynamics.dynamic_output_vars - ~GlobalDynamics.dynamic_state - ~GlobalDynamics.dynamic_state_vars - ~GlobalDynamics.filename - ~GlobalDynamics.identity - ~GlobalDynamics.input_as_dict - ~GlobalDynamics.log_fmt - ~GlobalDynamics.log_level - ~GlobalDynamics.log_on - ~GlobalDynamics.log_silo - ~GlobalDynamics.logger - ~GlobalDynamics.nonlinear - ~GlobalDynamics.numeric_as_dict - ~GlobalDynamics.numeric_hash - ~GlobalDynamics.slack_webhook_url - ~GlobalDynamics.static_A - ~GlobalDynamics.static_B - ~GlobalDynamics.static_C - ~GlobalDynamics.static_D - ~GlobalDynamics.static_F - ~GlobalDynamics.static_K - ~GlobalDynamics.time - ~GlobalDynamics.unique_hash - ~GlobalDynamics.update_interval - ~GlobalDynamics.name - ~GlobalDynamics.parent - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dynamics.INDEX_MAP.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dynamics.INDEX_MAP.rst.txt deleted file mode 100644 index 9b9b2b1..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dynamics.INDEX_MAP.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -engforge.dynamics.INDEX\_MAP -============================ - -.. currentmodule:: engforge.dynamics - -.. autoclass:: INDEX_MAP - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~INDEX_MAP.get - ~INDEX_MAP.indify - ~INDEX_MAP.remap_indexes_to - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~INDEX_MAP.oppo - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.dynamics.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dynamics.rst.txt deleted file mode 100644 index 8d56ff7..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dynamics.rst.txt +++ /dev/null @@ -1,42 +0,0 @@ -engforge.dynamics -================= - -.. automodule:: engforge.dynamics - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - valid_mtx - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - DynamicsMixin - GlobalDynamics - INDEX_MAP - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.dynamics.valid_mtx.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.dynamics.valid_mtx.rst.txt deleted file mode 100644 index 821ea9a..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.dynamics.valid_mtx.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.dynamics.valid\_mtx -============================ - -.. currentmodule:: engforge.dynamics - -.. autofunction:: valid_mtx \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.CostLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.costs.CostLog.rst.txt deleted file mode 100644 index d7c3ea9..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.CostLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.eng.costs.CostLog -========================== - -.. currentmodule:: engforge.eng.costs - -.. autoclass:: CostLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~CostLog.add_fields - ~CostLog.change_all_log_lvl - ~CostLog.critical - ~CostLog.debug - ~CostLog.error - ~CostLog.extract_message - ~CostLog.filter - ~CostLog.info - ~CostLog.installSTDLogger - ~CostLog.message_with_identiy - ~CostLog.msg - ~CostLog.resetLog - ~CostLog.resetSystemLogs - ~CostLog.slack_notification - ~CostLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~CostLog.identity - ~CostLog.log_fmt - ~CostLog.log_level - ~CostLog.log_on - ~CostLog.logger - ~CostLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.CostModel.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.costs.CostModel.rst.txt deleted file mode 100644 index 74cab26..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.CostModel.rst.txt +++ /dev/null @@ -1,144 +0,0 @@ -engforge.eng.costs.CostModel -============================ - -.. currentmodule:: engforge.eng.costs - -.. autoclass:: CostModel - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~CostModel.add_fields - ~CostModel.all_categories - ~CostModel.calculate_item_cost - ~CostModel.change_all_log_lvl - ~CostModel.check_ref_slot_type - ~CostModel.class_cost_properties - ~CostModel.cls_all_attrs_fields - ~CostModel.cls_all_property_keys - ~CostModel.cls_all_property_labels - ~CostModel.cls_compile - ~CostModel.collect_all_attributes - ~CostModel.collect_comp_refs - ~CostModel.collect_dynamic_refs - ~CostModel.collect_inst_attributes - ~CostModel.collect_post_update_refs - ~CostModel.collect_solver_refs - ~CostModel.collect_update_refs - ~CostModel.comp_references - ~CostModel.compile_classes - ~CostModel.copy_config_at_state - ~CostModel.cost_categories_at_term - ~CostModel.costs_at_term - ~CostModel.critical - ~CostModel.custom_cost - ~CostModel.debug - ~CostModel.default_cost - ~CostModel.dict_itemized_costs - ~CostModel.difference - ~CostModel.error - ~CostModel.extract_message - ~CostModel.filter - ~CostModel.format_columns - ~CostModel.get_system_input_refs - ~CostModel.go_through_configurations - ~CostModel.info - ~CostModel.input_attrs - ~CostModel.input_fields - ~CostModel.installSTDLogger - ~CostModel.internal_components - ~CostModel.internal_configurations - ~CostModel.internal_references - ~CostModel.internal_systems - ~CostModel.internal_tabulations - ~CostModel.locate - ~CostModel.locate_ref - ~CostModel.message_with_identiy - ~CostModel.msg - ~CostModel.numeric_fields - ~CostModel.parent_configurations_cls - ~CostModel.parse_run_kwargs - ~CostModel.parse_simulation_input - ~CostModel.plot_attributes - ~CostModel.post_update - ~CostModel.pre_compile - ~CostModel.print_info - ~CostModel.resetLog - ~CostModel.resetSystemLogs - ~CostModel.reset_cls_costs - ~CostModel.set_attr - ~CostModel.set_default_costs - ~CostModel.setattrs - ~CostModel.signals_attributes - ~CostModel.slack_notification - ~CostModel.slot_refs - ~CostModel.slots_attributes - ~CostModel.smart_split_dataframe - ~CostModel.solvers_attributes - ~CostModel.sub_costs - ~CostModel.subclasses - ~CostModel.subcls_compile - ~CostModel.sum_costs - ~CostModel.system_properties_classdef - ~CostModel.system_references - ~CostModel.table_fields - ~CostModel.trace_attributes - ~CostModel.transients_attributes - ~CostModel.update - ~CostModel.update_dflt_costs - ~CostModel.validate_class - ~CostModel.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~CostModel.anything_changed - ~CostModel.as_dict - ~CostModel.attrs_fields - ~CostModel.classname - ~CostModel.combine_cost - ~CostModel.cost_categories - ~CostModel.cost_properties - ~CostModel.data_dict - ~CostModel.dataframe_constants - ~CostModel.dataframe_variants - ~CostModel.displayname - ~CostModel.filename - ~CostModel.future_costs - ~CostModel.identity - ~CostModel.input_as_dict - ~CostModel.item_cost - ~CostModel.itemized_costs - ~CostModel.last_context - ~CostModel.log_fmt - ~CostModel.log_level - ~CostModel.log_on - ~CostModel.log_silo - ~CostModel.logger - ~CostModel.numeric_as_dict - ~CostModel.numeric_hash - ~CostModel.plotable_variables - ~CostModel.skip_plot_vars - ~CostModel.slack_webhook_url - ~CostModel.sub_items_cost - ~CostModel.system_id - ~CostModel.unique_hash - ~CostModel.cost_per_item - ~CostModel.name - ~CostModel.parent - ~CostModel.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.Economics.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.costs.Economics.rst.txt deleted file mode 100644 index 301e025..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.Economics.rst.txt +++ /dev/null @@ -1,190 +0,0 @@ -engforge.eng.costs.Economics -============================ - -.. currentmodule:: engforge.eng.costs - -.. autoclass:: Economics - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Economics.add_fields - ~Economics.calculate_costs - ~Economics.calculate_production - ~Economics.change_all_log_lvl - ~Economics.check_ref_slot_type - ~Economics.cls_all_attrs_fields - ~Economics.cls_all_property_keys - ~Economics.cls_all_property_labels - ~Economics.cls_compile - ~Economics.collect_all_attributes - ~Economics.collect_comp_refs - ~Economics.collect_dynamic_refs - ~Economics.collect_inst_attributes - ~Economics.collect_post_update_refs - ~Economics.collect_solver_refs - ~Economics.collect_update_refs - ~Economics.comp_references - ~Economics.compile_classes - ~Economics.copy_config_at_state - ~Economics.create_dynamic_matricies - ~Economics.create_feedthrough_matrix - ~Economics.create_input_matrix - ~Economics.create_output_constants - ~Economics.create_output_matrix - ~Economics.create_state_constants - ~Economics.create_state_matrix - ~Economics.critical - ~Economics.debug - ~Economics.determine_nearest_stationary_state - ~Economics.difference - ~Economics.error - ~Economics.extract_message - ~Economics.filter - ~Economics.format_columns - ~Economics.get_prop - ~Economics.get_system_input_refs - ~Economics.go_through_configurations - ~Economics.info - ~Economics.input_attrs - ~Economics.input_fields - ~Economics.installSTDLogger - ~Economics.internal_components - ~Economics.internal_configurations - ~Economics.internal_references - ~Economics.internal_systems - ~Economics.internal_tabulations - ~Economics.linear_output - ~Economics.linear_step - ~Economics.locate - ~Economics.locate_ref - ~Economics.message_with_identiy - ~Economics.msg - ~Economics.nonlinear_output - ~Economics.nonlinear_step - ~Economics.numeric_fields - ~Economics.parent_configurations_cls - ~Economics.parse_run_kwargs - ~Economics.parse_simulation_input - ~Economics.plot_attributes - ~Economics.post_update - ~Economics.pre_compile - ~Economics.print_info - ~Economics.rate - ~Economics.rate_linear - ~Economics.rate_nonlinear - ~Economics.ref_dXdt - ~Economics.resetLog - ~Economics.resetSystemLogs - ~Economics.set_attr - ~Economics.set_time - ~Economics.setattrs - ~Economics.signals_attributes - ~Economics.slack_notification - ~Economics.slot_refs - ~Economics.slots_attributes - ~Economics.smart_split_dataframe - ~Economics.solvers_attributes - ~Economics.step - ~Economics.subclasses - ~Economics.subcls_compile - ~Economics.sum_cost_references - ~Economics.sum_references - ~Economics.sum_term_fgen - ~Economics.system_properties_classdef - ~Economics.system_references - ~Economics.table_fields - ~Economics.term_fgen - ~Economics.trace_attributes - ~Economics.transients_attributes - ~Economics.update - ~Economics.update_dynamics - ~Economics.update_feedthrough - ~Economics.update_input - ~Economics.update_output_constants - ~Economics.update_output_matrix - ~Economics.update_state - ~Economics.update_state_constants - ~Economics.validate_class - ~Economics.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Economics.Ut_ref - ~Economics.Xt_ref - ~Economics.Yt_ref - ~Economics.anything_changed - ~Economics.as_dict - ~Economics.attrs_fields - ~Economics.classname - ~Economics.combine_cost - ~Economics.cost_references - ~Economics.dXtdt_ref - ~Economics.data_dict - ~Economics.dataframe_constants - ~Economics.dataframe_variants - ~Economics.displayname - ~Economics.dynamic_A - ~Economics.dynamic_B - ~Economics.dynamic_C - ~Economics.dynamic_D - ~Economics.dynamic_F - ~Economics.dynamic_K - ~Economics.dynamic_input - ~Economics.dynamic_input_vars - ~Economics.dynamic_output - ~Economics.dynamic_output_vars - ~Economics.dynamic_state - ~Economics.dynamic_state_vars - ~Economics.filename - ~Economics.identity - ~Economics.input_as_dict - ~Economics.last_context - ~Economics.lifecycle_dataframe - ~Economics.lifecycle_output - ~Economics.log_fmt - ~Economics.log_level - ~Economics.log_on - ~Economics.log_silo - ~Economics.logger - ~Economics.nonlinear - ~Economics.numeric_as_dict - ~Economics.numeric_hash - ~Economics.output - ~Economics.plotable_variables - ~Economics.skip_plot_vars - ~Economics.slack_webhook_url - ~Economics.static_A - ~Economics.static_B - ~Economics.static_C - ~Economics.static_D - ~Economics.static_F - ~Economics.static_K - ~Economics.system_id - ~Economics.time - ~Economics.unique_hash - ~Economics.update_interval - ~Economics.term_length - ~Economics.discount_rate - ~Economics.fixed_output - ~Economics.output_type - ~Economics.terms_per_year - ~Economics.parent - ~Economics.name - ~Economics.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.cost_property.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.costs.cost_property.rst.txt deleted file mode 100644 index 0b0601c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.cost_property.rst.txt +++ /dev/null @@ -1,41 +0,0 @@ -engforge.eng.costs.cost\_property -================================= - -.. currentmodule:: engforge.eng.costs - -.. autoclass:: cost_property - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~cost_property.apply_at_term - ~cost_property.deleter - ~cost_property.get_func_return - ~cost_property.getter - ~cost_property.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~cost_property.cost_categories - ~cost_property.desc - ~cost_property.label - ~cost_property.must_return - ~cost_property.return_type - ~cost_property.stochastic - ~cost_property.term_mode - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.eval_slot_cost.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.costs.eval_slot_cost.rst.txt deleted file mode 100644 index da41421..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.eval_slot_cost.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.costs.eval\_slot\_cost -=================================== - -.. currentmodule:: engforge.eng.costs - -.. autofunction:: eval_slot_cost \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.gend.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.costs.gend.rst.txt deleted file mode 100644 index 1bb3743..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.gend.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.costs.gend -======================= - -.. currentmodule:: engforge.eng.costs - -.. autofunction:: gend \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.costs.rst.txt deleted file mode 100644 index 2eb2e2a..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.costs.rst.txt +++ /dev/null @@ -1,44 +0,0 @@ -engforge.eng.costs -================== - -.. automodule:: engforge.eng.costs - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - eval_slot_cost - gend - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - CostLog - CostModel - Economics - cost_property - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Air.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Air.rst.txt deleted file mode 100644 index 3252be5..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Air.rst.txt +++ /dev/null @@ -1,183 +0,0 @@ -engforge.eng.fluid\_material.Air -================================ - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: Air - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Air.add_fields - ~Air.change_all_log_lvl - ~Air.check_ref_slot_type - ~Air.cls_all_attrs_fields - ~Air.cls_all_property_keys - ~Air.cls_all_property_labels - ~Air.cls_compile - ~Air.collect_all_attributes - ~Air.collect_comp_refs - ~Air.collect_dynamic_refs - ~Air.collect_inst_attributes - ~Air.collect_post_update_refs - ~Air.collect_solver_refs - ~Air.collect_update_refs - ~Air.comp_references - ~Air.compile_classes - ~Air.copy_config_at_state - ~Air.create_dynamic_matricies - ~Air.create_feedthrough_matrix - ~Air.create_input_matrix - ~Air.create_output_constants - ~Air.create_output_matrix - ~Air.create_state_constants - ~Air.create_state_matrix - ~Air.critical - ~Air.debug - ~Air.determine_nearest_stationary_state - ~Air.difference - ~Air.error - ~Air.extract_message - ~Air.filter - ~Air.format_columns - ~Air.get_system_input_refs - ~Air.go_through_configurations - ~Air.info - ~Air.input_attrs - ~Air.input_fields - ~Air.installSTDLogger - ~Air.internal_components - ~Air.internal_configurations - ~Air.internal_references - ~Air.internal_systems - ~Air.internal_tabulations - ~Air.linear_output - ~Air.linear_step - ~Air.locate - ~Air.locate_ref - ~Air.message_with_identiy - ~Air.msg - ~Air.nonlinear_output - ~Air.nonlinear_step - ~Air.numeric_fields - ~Air.parent_configurations_cls - ~Air.parse_run_kwargs - ~Air.parse_simulation_input - ~Air.plot_attributes - ~Air.post_update - ~Air.pre_compile - ~Air.print_info - ~Air.rate - ~Air.rate_linear - ~Air.rate_nonlinear - ~Air.ref_dXdt - ~Air.resetLog - ~Air.resetSystemLogs - ~Air.set_attr - ~Air.set_time - ~Air.setattrs - ~Air.signals_attributes - ~Air.slack_notification - ~Air.slot_refs - ~Air.slots_attributes - ~Air.smart_split_dataframe - ~Air.solvers_attributes - ~Air.step - ~Air.subclasses - ~Air.subcls_compile - ~Air.system_properties_classdef - ~Air.system_references - ~Air.table_fields - ~Air.trace_attributes - ~Air.transients_attributes - ~Air.update - ~Air.update_dynamics - ~Air.update_feedthrough - ~Air.update_input - ~Air.update_output_constants - ~Air.update_output_matrix - ~Air.update_state - ~Air.update_state_constants - ~Air.validate_class - ~Air.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Air.Psat - ~Air.Tsat - ~Air.Ut_ref - ~Air.Xt_ref - ~Air.Yt_ref - ~Air.anything_changed - ~Air.as_dict - ~Air.attrs_fields - ~Air.classname - ~Air.dXtdt_ref - ~Air.data_dict - ~Air.dataframe_constants - ~Air.dataframe_variants - ~Air.density - ~Air.displayname - ~Air.dynamic_A - ~Air.dynamic_B - ~Air.dynamic_C - ~Air.dynamic_D - ~Air.dynamic_F - ~Air.dynamic_K - ~Air.dynamic_input - ~Air.dynamic_input_vars - ~Air.dynamic_output - ~Air.dynamic_output_vars - ~Air.dynamic_state - ~Air.dynamic_state_vars - ~Air.enthalpy - ~Air.filename - ~Air.identity - ~Air.input_as_dict - ~Air.last_context - ~Air.log_fmt - ~Air.log_level - ~Air.log_on - ~Air.log_silo - ~Air.logger - ~Air.material - ~Air.nonlinear - ~Air.numeric_as_dict - ~Air.numeric_hash - ~Air.plotable_variables - ~Air.skip_plot_vars - ~Air.slack_webhook_url - ~Air.specific_heat - ~Air.state - ~Air.static_A - ~Air.static_B - ~Air.static_C - ~Air.static_D - ~Air.static_F - ~Air.static_K - ~Air.surface_tension - ~Air.system_id - ~Air.thermal_conductivity - ~Air.time - ~Air.unique_hash - ~Air.update_interval - ~Air.viscosity - ~Air.parent - ~Air.name - ~Air.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.AirWaterMix.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.AirWaterMix.rst.txt deleted file mode 100644 index d5210e6..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.AirWaterMix.rst.txt +++ /dev/null @@ -1,189 +0,0 @@ -engforge.eng.fluid\_material.AirWaterMix -======================================== - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: AirWaterMix - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~AirWaterMix.add_fields - ~AirWaterMix.change_all_log_lvl - ~AirWaterMix.check_ref_slot_type - ~AirWaterMix.cls_all_attrs_fields - ~AirWaterMix.cls_all_property_keys - ~AirWaterMix.cls_all_property_labels - ~AirWaterMix.cls_compile - ~AirWaterMix.collect_all_attributes - ~AirWaterMix.collect_comp_refs - ~AirWaterMix.collect_dynamic_refs - ~AirWaterMix.collect_inst_attributes - ~AirWaterMix.collect_post_update_refs - ~AirWaterMix.collect_solver_refs - ~AirWaterMix.collect_update_refs - ~AirWaterMix.comp_references - ~AirWaterMix.compile_classes - ~AirWaterMix.copy_config_at_state - ~AirWaterMix.create_dynamic_matricies - ~AirWaterMix.create_feedthrough_matrix - ~AirWaterMix.create_input_matrix - ~AirWaterMix.create_output_constants - ~AirWaterMix.create_output_matrix - ~AirWaterMix.create_state_constants - ~AirWaterMix.create_state_matrix - ~AirWaterMix.critical - ~AirWaterMix.debug - ~AirWaterMix.determine_nearest_stationary_state - ~AirWaterMix.difference - ~AirWaterMix.error - ~AirWaterMix.extract_message - ~AirWaterMix.filter - ~AirWaterMix.format_columns - ~AirWaterMix.get_system_input_refs - ~AirWaterMix.go_through_configurations - ~AirWaterMix.info - ~AirWaterMix.input_attrs - ~AirWaterMix.input_fields - ~AirWaterMix.installSTDLogger - ~AirWaterMix.internal_components - ~AirWaterMix.internal_configurations - ~AirWaterMix.internal_references - ~AirWaterMix.internal_systems - ~AirWaterMix.internal_tabulations - ~AirWaterMix.linear_output - ~AirWaterMix.linear_step - ~AirWaterMix.locate - ~AirWaterMix.locate_ref - ~AirWaterMix.message_with_identiy - ~AirWaterMix.msg - ~AirWaterMix.nonlinear_output - ~AirWaterMix.nonlinear_step - ~AirWaterMix.numeric_fields - ~AirWaterMix.parent_configurations_cls - ~AirWaterMix.parse_run_kwargs - ~AirWaterMix.parse_simulation_input - ~AirWaterMix.plot_attributes - ~AirWaterMix.post_update - ~AirWaterMix.pre_compile - ~AirWaterMix.print_info - ~AirWaterMix.rate - ~AirWaterMix.rate_linear - ~AirWaterMix.rate_nonlinear - ~AirWaterMix.ref_dXdt - ~AirWaterMix.resetLog - ~AirWaterMix.resetSystemLogs - ~AirWaterMix.set_attr - ~AirWaterMix.set_time - ~AirWaterMix.setattrs - ~AirWaterMix.setup - ~AirWaterMix.signals_attributes - ~AirWaterMix.slack_notification - ~AirWaterMix.slot_refs - ~AirWaterMix.slots_attributes - ~AirWaterMix.smart_split_dataframe - ~AirWaterMix.solvers_attributes - ~AirWaterMix.step - ~AirWaterMix.subclasses - ~AirWaterMix.subcls_compile - ~AirWaterMix.system_properties_classdef - ~AirWaterMix.system_references - ~AirWaterMix.table_fields - ~AirWaterMix.trace_attributes - ~AirWaterMix.transients_attributes - ~AirWaterMix.update - ~AirWaterMix.update_dynamics - ~AirWaterMix.update_feedthrough - ~AirWaterMix.update_input - ~AirWaterMix.update_mass_ratios - ~AirWaterMix.update_output_constants - ~AirWaterMix.update_output_matrix - ~AirWaterMix.update_state - ~AirWaterMix.update_state_constants - ~AirWaterMix.validate_class - ~AirWaterMix.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~AirWaterMix.Mmass1 - ~AirWaterMix.Mmass2 - ~AirWaterMix.Psat - ~AirWaterMix.Tsat - ~AirWaterMix.Ut_ref - ~AirWaterMix.Xt_ref - ~AirWaterMix.Yt_ref - ~AirWaterMix.anything_changed - ~AirWaterMix.as_dict - ~AirWaterMix.attrs_fields - ~AirWaterMix.classname - ~AirWaterMix.dXtdt_ref - ~AirWaterMix.data_dict - ~AirWaterMix.dataframe_constants - ~AirWaterMix.dataframe_variants - ~AirWaterMix.density - ~AirWaterMix.displayname - ~AirWaterMix.dynamic_A - ~AirWaterMix.dynamic_B - ~AirWaterMix.dynamic_C - ~AirWaterMix.dynamic_D - ~AirWaterMix.dynamic_F - ~AirWaterMix.dynamic_K - ~AirWaterMix.dynamic_input - ~AirWaterMix.dynamic_input_vars - ~AirWaterMix.dynamic_output - ~AirWaterMix.dynamic_output_vars - ~AirWaterMix.dynamic_state - ~AirWaterMix.dynamic_state_vars - ~AirWaterMix.enthalpy - ~AirWaterMix.filename - ~AirWaterMix.identity - ~AirWaterMix.input_as_dict - ~AirWaterMix.last_context - ~AirWaterMix.log_fmt - ~AirWaterMix.log_level - ~AirWaterMix.log_on - ~AirWaterMix.log_silo - ~AirWaterMix.logger - ~AirWaterMix.materail2 - ~AirWaterMix.material - ~AirWaterMix.material1 - ~AirWaterMix.nonlinear - ~AirWaterMix.numeric_as_dict - ~AirWaterMix.numeric_hash - ~AirWaterMix.plotable_variables - ~AirWaterMix.skip_plot_vars - ~AirWaterMix.slack_webhook_url - ~AirWaterMix.specific_heat - ~AirWaterMix.state - ~AirWaterMix.static_A - ~AirWaterMix.static_B - ~AirWaterMix.static_C - ~AirWaterMix.static_D - ~AirWaterMix.static_F - ~AirWaterMix.static_K - ~AirWaterMix.surface_tension - ~AirWaterMix.system_id - ~AirWaterMix.thermal_conductivity - ~AirWaterMix.time - ~AirWaterMix.unique_hash - ~AirWaterMix.update_interval - ~AirWaterMix.viscosity - ~AirWaterMix.parent - ~AirWaterMix.name - ~AirWaterMix.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.CoolPropMaterial.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.CoolPropMaterial.rst.txt deleted file mode 100644 index 637a56b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.CoolPropMaterial.rst.txt +++ /dev/null @@ -1,183 +0,0 @@ -engforge.eng.fluid\_material.CoolPropMaterial -============================================= - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: CoolPropMaterial - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~CoolPropMaterial.add_fields - ~CoolPropMaterial.change_all_log_lvl - ~CoolPropMaterial.check_ref_slot_type - ~CoolPropMaterial.cls_all_attrs_fields - ~CoolPropMaterial.cls_all_property_keys - ~CoolPropMaterial.cls_all_property_labels - ~CoolPropMaterial.cls_compile - ~CoolPropMaterial.collect_all_attributes - ~CoolPropMaterial.collect_comp_refs - ~CoolPropMaterial.collect_dynamic_refs - ~CoolPropMaterial.collect_inst_attributes - ~CoolPropMaterial.collect_post_update_refs - ~CoolPropMaterial.collect_solver_refs - ~CoolPropMaterial.collect_update_refs - ~CoolPropMaterial.comp_references - ~CoolPropMaterial.compile_classes - ~CoolPropMaterial.copy_config_at_state - ~CoolPropMaterial.create_dynamic_matricies - ~CoolPropMaterial.create_feedthrough_matrix - ~CoolPropMaterial.create_input_matrix - ~CoolPropMaterial.create_output_constants - ~CoolPropMaterial.create_output_matrix - ~CoolPropMaterial.create_state_constants - ~CoolPropMaterial.create_state_matrix - ~CoolPropMaterial.critical - ~CoolPropMaterial.debug - ~CoolPropMaterial.determine_nearest_stationary_state - ~CoolPropMaterial.difference - ~CoolPropMaterial.error - ~CoolPropMaterial.extract_message - ~CoolPropMaterial.filter - ~CoolPropMaterial.format_columns - ~CoolPropMaterial.get_system_input_refs - ~CoolPropMaterial.go_through_configurations - ~CoolPropMaterial.info - ~CoolPropMaterial.input_attrs - ~CoolPropMaterial.input_fields - ~CoolPropMaterial.installSTDLogger - ~CoolPropMaterial.internal_components - ~CoolPropMaterial.internal_configurations - ~CoolPropMaterial.internal_references - ~CoolPropMaterial.internal_systems - ~CoolPropMaterial.internal_tabulations - ~CoolPropMaterial.linear_output - ~CoolPropMaterial.linear_step - ~CoolPropMaterial.locate - ~CoolPropMaterial.locate_ref - ~CoolPropMaterial.message_with_identiy - ~CoolPropMaterial.msg - ~CoolPropMaterial.nonlinear_output - ~CoolPropMaterial.nonlinear_step - ~CoolPropMaterial.numeric_fields - ~CoolPropMaterial.parent_configurations_cls - ~CoolPropMaterial.parse_run_kwargs - ~CoolPropMaterial.parse_simulation_input - ~CoolPropMaterial.plot_attributes - ~CoolPropMaterial.post_update - ~CoolPropMaterial.pre_compile - ~CoolPropMaterial.print_info - ~CoolPropMaterial.rate - ~CoolPropMaterial.rate_linear - ~CoolPropMaterial.rate_nonlinear - ~CoolPropMaterial.ref_dXdt - ~CoolPropMaterial.resetLog - ~CoolPropMaterial.resetSystemLogs - ~CoolPropMaterial.set_attr - ~CoolPropMaterial.set_time - ~CoolPropMaterial.setattrs - ~CoolPropMaterial.signals_attributes - ~CoolPropMaterial.slack_notification - ~CoolPropMaterial.slot_refs - ~CoolPropMaterial.slots_attributes - ~CoolPropMaterial.smart_split_dataframe - ~CoolPropMaterial.solvers_attributes - ~CoolPropMaterial.step - ~CoolPropMaterial.subclasses - ~CoolPropMaterial.subcls_compile - ~CoolPropMaterial.system_properties_classdef - ~CoolPropMaterial.system_references - ~CoolPropMaterial.table_fields - ~CoolPropMaterial.trace_attributes - ~CoolPropMaterial.transients_attributes - ~CoolPropMaterial.update - ~CoolPropMaterial.update_dynamics - ~CoolPropMaterial.update_feedthrough - ~CoolPropMaterial.update_input - ~CoolPropMaterial.update_output_constants - ~CoolPropMaterial.update_output_matrix - ~CoolPropMaterial.update_state - ~CoolPropMaterial.update_state_constants - ~CoolPropMaterial.validate_class - ~CoolPropMaterial.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~CoolPropMaterial.Psat - ~CoolPropMaterial.Tsat - ~CoolPropMaterial.Ut_ref - ~CoolPropMaterial.Xt_ref - ~CoolPropMaterial.Yt_ref - ~CoolPropMaterial.anything_changed - ~CoolPropMaterial.as_dict - ~CoolPropMaterial.attrs_fields - ~CoolPropMaterial.classname - ~CoolPropMaterial.dXtdt_ref - ~CoolPropMaterial.data_dict - ~CoolPropMaterial.dataframe_constants - ~CoolPropMaterial.dataframe_variants - ~CoolPropMaterial.density - ~CoolPropMaterial.displayname - ~CoolPropMaterial.dynamic_A - ~CoolPropMaterial.dynamic_B - ~CoolPropMaterial.dynamic_C - ~CoolPropMaterial.dynamic_D - ~CoolPropMaterial.dynamic_F - ~CoolPropMaterial.dynamic_K - ~CoolPropMaterial.dynamic_input - ~CoolPropMaterial.dynamic_input_vars - ~CoolPropMaterial.dynamic_output - ~CoolPropMaterial.dynamic_output_vars - ~CoolPropMaterial.dynamic_state - ~CoolPropMaterial.dynamic_state_vars - ~CoolPropMaterial.enthalpy - ~CoolPropMaterial.filename - ~CoolPropMaterial.identity - ~CoolPropMaterial.input_as_dict - ~CoolPropMaterial.last_context - ~CoolPropMaterial.log_fmt - ~CoolPropMaterial.log_level - ~CoolPropMaterial.log_on - ~CoolPropMaterial.log_silo - ~CoolPropMaterial.logger - ~CoolPropMaterial.nonlinear - ~CoolPropMaterial.numeric_as_dict - ~CoolPropMaterial.numeric_hash - ~CoolPropMaterial.plotable_variables - ~CoolPropMaterial.skip_plot_vars - ~CoolPropMaterial.slack_webhook_url - ~CoolPropMaterial.specific_heat - ~CoolPropMaterial.state - ~CoolPropMaterial.static_A - ~CoolPropMaterial.static_B - ~CoolPropMaterial.static_C - ~CoolPropMaterial.static_D - ~CoolPropMaterial.static_F - ~CoolPropMaterial.static_K - ~CoolPropMaterial.surface_tension - ~CoolPropMaterial.system_id - ~CoolPropMaterial.thermal_conductivity - ~CoolPropMaterial.time - ~CoolPropMaterial.unique_hash - ~CoolPropMaterial.update_interval - ~CoolPropMaterial.viscosity - ~CoolPropMaterial.material - ~CoolPropMaterial.parent - ~CoolPropMaterial.name - ~CoolPropMaterial.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.CoolPropMixture.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.CoolPropMixture.rst.txt deleted file mode 100644 index a8cfd8e..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.CoolPropMixture.rst.txt +++ /dev/null @@ -1,189 +0,0 @@ -engforge.eng.fluid\_material.CoolPropMixture -============================================ - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: CoolPropMixture - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~CoolPropMixture.add_fields - ~CoolPropMixture.change_all_log_lvl - ~CoolPropMixture.check_ref_slot_type - ~CoolPropMixture.cls_all_attrs_fields - ~CoolPropMixture.cls_all_property_keys - ~CoolPropMixture.cls_all_property_labels - ~CoolPropMixture.cls_compile - ~CoolPropMixture.collect_all_attributes - ~CoolPropMixture.collect_comp_refs - ~CoolPropMixture.collect_dynamic_refs - ~CoolPropMixture.collect_inst_attributes - ~CoolPropMixture.collect_post_update_refs - ~CoolPropMixture.collect_solver_refs - ~CoolPropMixture.collect_update_refs - ~CoolPropMixture.comp_references - ~CoolPropMixture.compile_classes - ~CoolPropMixture.copy_config_at_state - ~CoolPropMixture.create_dynamic_matricies - ~CoolPropMixture.create_feedthrough_matrix - ~CoolPropMixture.create_input_matrix - ~CoolPropMixture.create_output_constants - ~CoolPropMixture.create_output_matrix - ~CoolPropMixture.create_state_constants - ~CoolPropMixture.create_state_matrix - ~CoolPropMixture.critical - ~CoolPropMixture.debug - ~CoolPropMixture.determine_nearest_stationary_state - ~CoolPropMixture.difference - ~CoolPropMixture.error - ~CoolPropMixture.extract_message - ~CoolPropMixture.filter - ~CoolPropMixture.format_columns - ~CoolPropMixture.get_system_input_refs - ~CoolPropMixture.go_through_configurations - ~CoolPropMixture.info - ~CoolPropMixture.input_attrs - ~CoolPropMixture.input_fields - ~CoolPropMixture.installSTDLogger - ~CoolPropMixture.internal_components - ~CoolPropMixture.internal_configurations - ~CoolPropMixture.internal_references - ~CoolPropMixture.internal_systems - ~CoolPropMixture.internal_tabulations - ~CoolPropMixture.linear_output - ~CoolPropMixture.linear_step - ~CoolPropMixture.locate - ~CoolPropMixture.locate_ref - ~CoolPropMixture.message_with_identiy - ~CoolPropMixture.msg - ~CoolPropMixture.nonlinear_output - ~CoolPropMixture.nonlinear_step - ~CoolPropMixture.numeric_fields - ~CoolPropMixture.parent_configurations_cls - ~CoolPropMixture.parse_run_kwargs - ~CoolPropMixture.parse_simulation_input - ~CoolPropMixture.plot_attributes - ~CoolPropMixture.post_update - ~CoolPropMixture.pre_compile - ~CoolPropMixture.print_info - ~CoolPropMixture.rate - ~CoolPropMixture.rate_linear - ~CoolPropMixture.rate_nonlinear - ~CoolPropMixture.ref_dXdt - ~CoolPropMixture.resetLog - ~CoolPropMixture.resetSystemLogs - ~CoolPropMixture.set_attr - ~CoolPropMixture.set_time - ~CoolPropMixture.setattrs - ~CoolPropMixture.setup - ~CoolPropMixture.signals_attributes - ~CoolPropMixture.slack_notification - ~CoolPropMixture.slot_refs - ~CoolPropMixture.slots_attributes - ~CoolPropMixture.smart_split_dataframe - ~CoolPropMixture.solvers_attributes - ~CoolPropMixture.step - ~CoolPropMixture.subclasses - ~CoolPropMixture.subcls_compile - ~CoolPropMixture.system_properties_classdef - ~CoolPropMixture.system_references - ~CoolPropMixture.table_fields - ~CoolPropMixture.trace_attributes - ~CoolPropMixture.transients_attributes - ~CoolPropMixture.update - ~CoolPropMixture.update_dynamics - ~CoolPropMixture.update_feedthrough - ~CoolPropMixture.update_input - ~CoolPropMixture.update_mass_ratios - ~CoolPropMixture.update_output_constants - ~CoolPropMixture.update_output_matrix - ~CoolPropMixture.update_state - ~CoolPropMixture.update_state_constants - ~CoolPropMixture.validate_class - ~CoolPropMixture.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~CoolPropMixture.Mmass1 - ~CoolPropMixture.Mmass2 - ~CoolPropMixture.Psat - ~CoolPropMixture.Tsat - ~CoolPropMixture.Ut_ref - ~CoolPropMixture.Xt_ref - ~CoolPropMixture.Yt_ref - ~CoolPropMixture.anything_changed - ~CoolPropMixture.as_dict - ~CoolPropMixture.attrs_fields - ~CoolPropMixture.classname - ~CoolPropMixture.dXtdt_ref - ~CoolPropMixture.data_dict - ~CoolPropMixture.dataframe_constants - ~CoolPropMixture.dataframe_variants - ~CoolPropMixture.density - ~CoolPropMixture.displayname - ~CoolPropMixture.dynamic_A - ~CoolPropMixture.dynamic_B - ~CoolPropMixture.dynamic_C - ~CoolPropMixture.dynamic_D - ~CoolPropMixture.dynamic_F - ~CoolPropMixture.dynamic_K - ~CoolPropMixture.dynamic_input - ~CoolPropMixture.dynamic_input_vars - ~CoolPropMixture.dynamic_output - ~CoolPropMixture.dynamic_output_vars - ~CoolPropMixture.dynamic_state - ~CoolPropMixture.dynamic_state_vars - ~CoolPropMixture.enthalpy - ~CoolPropMixture.filename - ~CoolPropMixture.identity - ~CoolPropMixture.input_as_dict - ~CoolPropMixture.last_context - ~CoolPropMixture.log_fmt - ~CoolPropMixture.log_level - ~CoolPropMixture.log_on - ~CoolPropMixture.log_silo - ~CoolPropMixture.logger - ~CoolPropMixture.materail2 - ~CoolPropMixture.material - ~CoolPropMixture.material1 - ~CoolPropMixture.nonlinear - ~CoolPropMixture.numeric_as_dict - ~CoolPropMixture.numeric_hash - ~CoolPropMixture.plotable_variables - ~CoolPropMixture.skip_plot_vars - ~CoolPropMixture.slack_webhook_url - ~CoolPropMixture.specific_heat - ~CoolPropMixture.state - ~CoolPropMixture.static_A - ~CoolPropMixture.static_B - ~CoolPropMixture.static_C - ~CoolPropMixture.static_D - ~CoolPropMixture.static_F - ~CoolPropMixture.static_K - ~CoolPropMixture.surface_tension - ~CoolPropMixture.system_id - ~CoolPropMixture.thermal_conductivity - ~CoolPropMixture.time - ~CoolPropMixture.unique_hash - ~CoolPropMixture.update_interval - ~CoolPropMixture.viscosity - ~CoolPropMixture.parent - ~CoolPropMixture.name - ~CoolPropMixture.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.FluidMaterial.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.FluidMaterial.rst.txt deleted file mode 100644 index ab06b81..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.FluidMaterial.rst.txt +++ /dev/null @@ -1,176 +0,0 @@ -engforge.eng.fluid\_material.FluidMaterial -========================================== - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: FluidMaterial - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~FluidMaterial.add_fields - ~FluidMaterial.change_all_log_lvl - ~FluidMaterial.check_ref_slot_type - ~FluidMaterial.cls_all_attrs_fields - ~FluidMaterial.cls_all_property_keys - ~FluidMaterial.cls_all_property_labels - ~FluidMaterial.cls_compile - ~FluidMaterial.collect_all_attributes - ~FluidMaterial.collect_comp_refs - ~FluidMaterial.collect_dynamic_refs - ~FluidMaterial.collect_inst_attributes - ~FluidMaterial.collect_post_update_refs - ~FluidMaterial.collect_solver_refs - ~FluidMaterial.collect_update_refs - ~FluidMaterial.comp_references - ~FluidMaterial.compile_classes - ~FluidMaterial.copy_config_at_state - ~FluidMaterial.create_dynamic_matricies - ~FluidMaterial.create_feedthrough_matrix - ~FluidMaterial.create_input_matrix - ~FluidMaterial.create_output_constants - ~FluidMaterial.create_output_matrix - ~FluidMaterial.create_state_constants - ~FluidMaterial.create_state_matrix - ~FluidMaterial.critical - ~FluidMaterial.debug - ~FluidMaterial.determine_nearest_stationary_state - ~FluidMaterial.difference - ~FluidMaterial.error - ~FluidMaterial.extract_message - ~FluidMaterial.filter - ~FluidMaterial.format_columns - ~FluidMaterial.get_system_input_refs - ~FluidMaterial.go_through_configurations - ~FluidMaterial.info - ~FluidMaterial.input_attrs - ~FluidMaterial.input_fields - ~FluidMaterial.installSTDLogger - ~FluidMaterial.internal_components - ~FluidMaterial.internal_configurations - ~FluidMaterial.internal_references - ~FluidMaterial.internal_systems - ~FluidMaterial.internal_tabulations - ~FluidMaterial.linear_output - ~FluidMaterial.linear_step - ~FluidMaterial.locate - ~FluidMaterial.locate_ref - ~FluidMaterial.message_with_identiy - ~FluidMaterial.msg - ~FluidMaterial.nonlinear_output - ~FluidMaterial.nonlinear_step - ~FluidMaterial.numeric_fields - ~FluidMaterial.parent_configurations_cls - ~FluidMaterial.parse_run_kwargs - ~FluidMaterial.parse_simulation_input - ~FluidMaterial.plot_attributes - ~FluidMaterial.post_update - ~FluidMaterial.pre_compile - ~FluidMaterial.print_info - ~FluidMaterial.rate - ~FluidMaterial.rate_linear - ~FluidMaterial.rate_nonlinear - ~FluidMaterial.ref_dXdt - ~FluidMaterial.resetLog - ~FluidMaterial.resetSystemLogs - ~FluidMaterial.set_attr - ~FluidMaterial.set_time - ~FluidMaterial.setattrs - ~FluidMaterial.signals_attributes - ~FluidMaterial.slack_notification - ~FluidMaterial.slot_refs - ~FluidMaterial.slots_attributes - ~FluidMaterial.smart_split_dataframe - ~FluidMaterial.solvers_attributes - ~FluidMaterial.step - ~FluidMaterial.subclasses - ~FluidMaterial.subcls_compile - ~FluidMaterial.system_properties_classdef - ~FluidMaterial.system_references - ~FluidMaterial.table_fields - ~FluidMaterial.trace_attributes - ~FluidMaterial.transients_attributes - ~FluidMaterial.update - ~FluidMaterial.update_dynamics - ~FluidMaterial.update_feedthrough - ~FluidMaterial.update_input - ~FluidMaterial.update_output_constants - ~FluidMaterial.update_output_matrix - ~FluidMaterial.update_state - ~FluidMaterial.update_state_constants - ~FluidMaterial.validate_class - ~FluidMaterial.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~FluidMaterial.Ut_ref - ~FluidMaterial.Xt_ref - ~FluidMaterial.Yt_ref - ~FluidMaterial.anything_changed - ~FluidMaterial.as_dict - ~FluidMaterial.attrs_fields - ~FluidMaterial.classname - ~FluidMaterial.dXtdt_ref - ~FluidMaterial.data_dict - ~FluidMaterial.dataframe_constants - ~FluidMaterial.dataframe_variants - ~FluidMaterial.density - ~FluidMaterial.displayname - ~FluidMaterial.dynamic_A - ~FluidMaterial.dynamic_B - ~FluidMaterial.dynamic_C - ~FluidMaterial.dynamic_D - ~FluidMaterial.dynamic_F - ~FluidMaterial.dynamic_K - ~FluidMaterial.dynamic_input - ~FluidMaterial.dynamic_input_vars - ~FluidMaterial.dynamic_output - ~FluidMaterial.dynamic_output_vars - ~FluidMaterial.dynamic_state - ~FluidMaterial.dynamic_state_vars - ~FluidMaterial.filename - ~FluidMaterial.identity - ~FluidMaterial.input_as_dict - ~FluidMaterial.last_context - ~FluidMaterial.log_fmt - ~FluidMaterial.log_level - ~FluidMaterial.log_on - ~FluidMaterial.log_silo - ~FluidMaterial.logger - ~FluidMaterial.nonlinear - ~FluidMaterial.numeric_as_dict - ~FluidMaterial.numeric_hash - ~FluidMaterial.plotable_variables - ~FluidMaterial.skip_plot_vars - ~FluidMaterial.slack_webhook_url - ~FluidMaterial.static_A - ~FluidMaterial.static_B - ~FluidMaterial.static_C - ~FluidMaterial.static_D - ~FluidMaterial.static_F - ~FluidMaterial.static_K - ~FluidMaterial.surface_tension - ~FluidMaterial.system_id - ~FluidMaterial.time - ~FluidMaterial.unique_hash - ~FluidMaterial.update_interval - ~FluidMaterial.viscosity - ~FluidMaterial.parent - ~FluidMaterial.name - ~FluidMaterial.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Hydrogen.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Hydrogen.rst.txt deleted file mode 100644 index 3d54340..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Hydrogen.rst.txt +++ /dev/null @@ -1,183 +0,0 @@ -engforge.eng.fluid\_material.Hydrogen -===================================== - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: Hydrogen - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Hydrogen.add_fields - ~Hydrogen.change_all_log_lvl - ~Hydrogen.check_ref_slot_type - ~Hydrogen.cls_all_attrs_fields - ~Hydrogen.cls_all_property_keys - ~Hydrogen.cls_all_property_labels - ~Hydrogen.cls_compile - ~Hydrogen.collect_all_attributes - ~Hydrogen.collect_comp_refs - ~Hydrogen.collect_dynamic_refs - ~Hydrogen.collect_inst_attributes - ~Hydrogen.collect_post_update_refs - ~Hydrogen.collect_solver_refs - ~Hydrogen.collect_update_refs - ~Hydrogen.comp_references - ~Hydrogen.compile_classes - ~Hydrogen.copy_config_at_state - ~Hydrogen.create_dynamic_matricies - ~Hydrogen.create_feedthrough_matrix - ~Hydrogen.create_input_matrix - ~Hydrogen.create_output_constants - ~Hydrogen.create_output_matrix - ~Hydrogen.create_state_constants - ~Hydrogen.create_state_matrix - ~Hydrogen.critical - ~Hydrogen.debug - ~Hydrogen.determine_nearest_stationary_state - ~Hydrogen.difference - ~Hydrogen.error - ~Hydrogen.extract_message - ~Hydrogen.filter - ~Hydrogen.format_columns - ~Hydrogen.get_system_input_refs - ~Hydrogen.go_through_configurations - ~Hydrogen.info - ~Hydrogen.input_attrs - ~Hydrogen.input_fields - ~Hydrogen.installSTDLogger - ~Hydrogen.internal_components - ~Hydrogen.internal_configurations - ~Hydrogen.internal_references - ~Hydrogen.internal_systems - ~Hydrogen.internal_tabulations - ~Hydrogen.linear_output - ~Hydrogen.linear_step - ~Hydrogen.locate - ~Hydrogen.locate_ref - ~Hydrogen.message_with_identiy - ~Hydrogen.msg - ~Hydrogen.nonlinear_output - ~Hydrogen.nonlinear_step - ~Hydrogen.numeric_fields - ~Hydrogen.parent_configurations_cls - ~Hydrogen.parse_run_kwargs - ~Hydrogen.parse_simulation_input - ~Hydrogen.plot_attributes - ~Hydrogen.post_update - ~Hydrogen.pre_compile - ~Hydrogen.print_info - ~Hydrogen.rate - ~Hydrogen.rate_linear - ~Hydrogen.rate_nonlinear - ~Hydrogen.ref_dXdt - ~Hydrogen.resetLog - ~Hydrogen.resetSystemLogs - ~Hydrogen.set_attr - ~Hydrogen.set_time - ~Hydrogen.setattrs - ~Hydrogen.signals_attributes - ~Hydrogen.slack_notification - ~Hydrogen.slot_refs - ~Hydrogen.slots_attributes - ~Hydrogen.smart_split_dataframe - ~Hydrogen.solvers_attributes - ~Hydrogen.step - ~Hydrogen.subclasses - ~Hydrogen.subcls_compile - ~Hydrogen.system_properties_classdef - ~Hydrogen.system_references - ~Hydrogen.table_fields - ~Hydrogen.trace_attributes - ~Hydrogen.transients_attributes - ~Hydrogen.update - ~Hydrogen.update_dynamics - ~Hydrogen.update_feedthrough - ~Hydrogen.update_input - ~Hydrogen.update_output_constants - ~Hydrogen.update_output_matrix - ~Hydrogen.update_state - ~Hydrogen.update_state_constants - ~Hydrogen.validate_class - ~Hydrogen.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Hydrogen.Psat - ~Hydrogen.Tsat - ~Hydrogen.Ut_ref - ~Hydrogen.Xt_ref - ~Hydrogen.Yt_ref - ~Hydrogen.anything_changed - ~Hydrogen.as_dict - ~Hydrogen.attrs_fields - ~Hydrogen.classname - ~Hydrogen.dXtdt_ref - ~Hydrogen.data_dict - ~Hydrogen.dataframe_constants - ~Hydrogen.dataframe_variants - ~Hydrogen.density - ~Hydrogen.displayname - ~Hydrogen.dynamic_A - ~Hydrogen.dynamic_B - ~Hydrogen.dynamic_C - ~Hydrogen.dynamic_D - ~Hydrogen.dynamic_F - ~Hydrogen.dynamic_K - ~Hydrogen.dynamic_input - ~Hydrogen.dynamic_input_vars - ~Hydrogen.dynamic_output - ~Hydrogen.dynamic_output_vars - ~Hydrogen.dynamic_state - ~Hydrogen.dynamic_state_vars - ~Hydrogen.enthalpy - ~Hydrogen.filename - ~Hydrogen.identity - ~Hydrogen.input_as_dict - ~Hydrogen.last_context - ~Hydrogen.log_fmt - ~Hydrogen.log_level - ~Hydrogen.log_on - ~Hydrogen.log_silo - ~Hydrogen.logger - ~Hydrogen.material - ~Hydrogen.nonlinear - ~Hydrogen.numeric_as_dict - ~Hydrogen.numeric_hash - ~Hydrogen.plotable_variables - ~Hydrogen.skip_plot_vars - ~Hydrogen.slack_webhook_url - ~Hydrogen.specific_heat - ~Hydrogen.state - ~Hydrogen.static_A - ~Hydrogen.static_B - ~Hydrogen.static_C - ~Hydrogen.static_D - ~Hydrogen.static_F - ~Hydrogen.static_K - ~Hydrogen.surface_tension - ~Hydrogen.system_id - ~Hydrogen.thermal_conductivity - ~Hydrogen.time - ~Hydrogen.unique_hash - ~Hydrogen.update_interval - ~Hydrogen.viscosity - ~Hydrogen.parent - ~Hydrogen.name - ~Hydrogen.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealAir.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealAir.rst.txt deleted file mode 100644 index a2baf64..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealAir.rst.txt +++ /dev/null @@ -1,177 +0,0 @@ -engforge.eng.fluid\_material.IdealAir -===================================== - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: IdealAir - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~IdealAir.add_fields - ~IdealAir.change_all_log_lvl - ~IdealAir.check_ref_slot_type - ~IdealAir.cls_all_attrs_fields - ~IdealAir.cls_all_property_keys - ~IdealAir.cls_all_property_labels - ~IdealAir.cls_compile - ~IdealAir.collect_all_attributes - ~IdealAir.collect_comp_refs - ~IdealAir.collect_dynamic_refs - ~IdealAir.collect_inst_attributes - ~IdealAir.collect_post_update_refs - ~IdealAir.collect_solver_refs - ~IdealAir.collect_update_refs - ~IdealAir.comp_references - ~IdealAir.compile_classes - ~IdealAir.copy_config_at_state - ~IdealAir.create_dynamic_matricies - ~IdealAir.create_feedthrough_matrix - ~IdealAir.create_input_matrix - ~IdealAir.create_output_constants - ~IdealAir.create_output_matrix - ~IdealAir.create_state_constants - ~IdealAir.create_state_matrix - ~IdealAir.critical - ~IdealAir.debug - ~IdealAir.determine_nearest_stationary_state - ~IdealAir.difference - ~IdealAir.error - ~IdealAir.extract_message - ~IdealAir.filter - ~IdealAir.format_columns - ~IdealAir.get_system_input_refs - ~IdealAir.go_through_configurations - ~IdealAir.info - ~IdealAir.input_attrs - ~IdealAir.input_fields - ~IdealAir.installSTDLogger - ~IdealAir.internal_components - ~IdealAir.internal_configurations - ~IdealAir.internal_references - ~IdealAir.internal_systems - ~IdealAir.internal_tabulations - ~IdealAir.linear_output - ~IdealAir.linear_step - ~IdealAir.locate - ~IdealAir.locate_ref - ~IdealAir.message_with_identiy - ~IdealAir.msg - ~IdealAir.nonlinear_output - ~IdealAir.nonlinear_step - ~IdealAir.numeric_fields - ~IdealAir.parent_configurations_cls - ~IdealAir.parse_run_kwargs - ~IdealAir.parse_simulation_input - ~IdealAir.plot_attributes - ~IdealAir.post_update - ~IdealAir.pre_compile - ~IdealAir.print_info - ~IdealAir.rate - ~IdealAir.rate_linear - ~IdealAir.rate_nonlinear - ~IdealAir.ref_dXdt - ~IdealAir.resetLog - ~IdealAir.resetSystemLogs - ~IdealAir.set_attr - ~IdealAir.set_time - ~IdealAir.setattrs - ~IdealAir.signals_attributes - ~IdealAir.slack_notification - ~IdealAir.slot_refs - ~IdealAir.slots_attributes - ~IdealAir.smart_split_dataframe - ~IdealAir.solvers_attributes - ~IdealAir.step - ~IdealAir.subclasses - ~IdealAir.subcls_compile - ~IdealAir.system_properties_classdef - ~IdealAir.system_references - ~IdealAir.table_fields - ~IdealAir.trace_attributes - ~IdealAir.transients_attributes - ~IdealAir.update - ~IdealAir.update_dynamics - ~IdealAir.update_feedthrough - ~IdealAir.update_input - ~IdealAir.update_output_constants - ~IdealAir.update_output_matrix - ~IdealAir.update_state - ~IdealAir.update_state_constants - ~IdealAir.validate_class - ~IdealAir.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~IdealAir.Ut_ref - ~IdealAir.Xt_ref - ~IdealAir.Yt_ref - ~IdealAir.anything_changed - ~IdealAir.as_dict - ~IdealAir.attrs_fields - ~IdealAir.classname - ~IdealAir.dXtdt_ref - ~IdealAir.data_dict - ~IdealAir.dataframe_constants - ~IdealAir.dataframe_variants - ~IdealAir.density - ~IdealAir.displayname - ~IdealAir.dynamic_A - ~IdealAir.dynamic_B - ~IdealAir.dynamic_C - ~IdealAir.dynamic_D - ~IdealAir.dynamic_F - ~IdealAir.dynamic_K - ~IdealAir.dynamic_input - ~IdealAir.dynamic_input_vars - ~IdealAir.dynamic_output - ~IdealAir.dynamic_output_vars - ~IdealAir.dynamic_state - ~IdealAir.dynamic_state_vars - ~IdealAir.filename - ~IdealAir.gas_constant - ~IdealAir.identity - ~IdealAir.input_as_dict - ~IdealAir.last_context - ~IdealAir.log_fmt - ~IdealAir.log_level - ~IdealAir.log_on - ~IdealAir.log_silo - ~IdealAir.logger - ~IdealAir.nonlinear - ~IdealAir.numeric_as_dict - ~IdealAir.numeric_hash - ~IdealAir.plotable_variables - ~IdealAir.skip_plot_vars - ~IdealAir.slack_webhook_url - ~IdealAir.static_A - ~IdealAir.static_B - ~IdealAir.static_C - ~IdealAir.static_D - ~IdealAir.static_F - ~IdealAir.static_K - ~IdealAir.surface_tension - ~IdealAir.system_id - ~IdealAir.time - ~IdealAir.unique_hash - ~IdealAir.update_interval - ~IdealAir.viscosity - ~IdealAir.parent - ~IdealAir.name - ~IdealAir.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealGas.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealGas.rst.txt deleted file mode 100644 index 84fec9f..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealGas.rst.txt +++ /dev/null @@ -1,176 +0,0 @@ -engforge.eng.fluid\_material.IdealGas -===================================== - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: IdealGas - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~IdealGas.add_fields - ~IdealGas.change_all_log_lvl - ~IdealGas.check_ref_slot_type - ~IdealGas.cls_all_attrs_fields - ~IdealGas.cls_all_property_keys - ~IdealGas.cls_all_property_labels - ~IdealGas.cls_compile - ~IdealGas.collect_all_attributes - ~IdealGas.collect_comp_refs - ~IdealGas.collect_dynamic_refs - ~IdealGas.collect_inst_attributes - ~IdealGas.collect_post_update_refs - ~IdealGas.collect_solver_refs - ~IdealGas.collect_update_refs - ~IdealGas.comp_references - ~IdealGas.compile_classes - ~IdealGas.copy_config_at_state - ~IdealGas.create_dynamic_matricies - ~IdealGas.create_feedthrough_matrix - ~IdealGas.create_input_matrix - ~IdealGas.create_output_constants - ~IdealGas.create_output_matrix - ~IdealGas.create_state_constants - ~IdealGas.create_state_matrix - ~IdealGas.critical - ~IdealGas.debug - ~IdealGas.determine_nearest_stationary_state - ~IdealGas.difference - ~IdealGas.error - ~IdealGas.extract_message - ~IdealGas.filter - ~IdealGas.format_columns - ~IdealGas.get_system_input_refs - ~IdealGas.go_through_configurations - ~IdealGas.info - ~IdealGas.input_attrs - ~IdealGas.input_fields - ~IdealGas.installSTDLogger - ~IdealGas.internal_components - ~IdealGas.internal_configurations - ~IdealGas.internal_references - ~IdealGas.internal_systems - ~IdealGas.internal_tabulations - ~IdealGas.linear_output - ~IdealGas.linear_step - ~IdealGas.locate - ~IdealGas.locate_ref - ~IdealGas.message_with_identiy - ~IdealGas.msg - ~IdealGas.nonlinear_output - ~IdealGas.nonlinear_step - ~IdealGas.numeric_fields - ~IdealGas.parent_configurations_cls - ~IdealGas.parse_run_kwargs - ~IdealGas.parse_simulation_input - ~IdealGas.plot_attributes - ~IdealGas.post_update - ~IdealGas.pre_compile - ~IdealGas.print_info - ~IdealGas.rate - ~IdealGas.rate_linear - ~IdealGas.rate_nonlinear - ~IdealGas.ref_dXdt - ~IdealGas.resetLog - ~IdealGas.resetSystemLogs - ~IdealGas.set_attr - ~IdealGas.set_time - ~IdealGas.setattrs - ~IdealGas.signals_attributes - ~IdealGas.slack_notification - ~IdealGas.slot_refs - ~IdealGas.slots_attributes - ~IdealGas.smart_split_dataframe - ~IdealGas.solvers_attributes - ~IdealGas.step - ~IdealGas.subclasses - ~IdealGas.subcls_compile - ~IdealGas.system_properties_classdef - ~IdealGas.system_references - ~IdealGas.table_fields - ~IdealGas.trace_attributes - ~IdealGas.transients_attributes - ~IdealGas.update - ~IdealGas.update_dynamics - ~IdealGas.update_feedthrough - ~IdealGas.update_input - ~IdealGas.update_output_constants - ~IdealGas.update_output_matrix - ~IdealGas.update_state - ~IdealGas.update_state_constants - ~IdealGas.validate_class - ~IdealGas.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~IdealGas.Ut_ref - ~IdealGas.Xt_ref - ~IdealGas.Yt_ref - ~IdealGas.anything_changed - ~IdealGas.as_dict - ~IdealGas.attrs_fields - ~IdealGas.classname - ~IdealGas.dXtdt_ref - ~IdealGas.data_dict - ~IdealGas.dataframe_constants - ~IdealGas.dataframe_variants - ~IdealGas.density - ~IdealGas.displayname - ~IdealGas.dynamic_A - ~IdealGas.dynamic_B - ~IdealGas.dynamic_C - ~IdealGas.dynamic_D - ~IdealGas.dynamic_F - ~IdealGas.dynamic_K - ~IdealGas.dynamic_input - ~IdealGas.dynamic_input_vars - ~IdealGas.dynamic_output - ~IdealGas.dynamic_output_vars - ~IdealGas.dynamic_state - ~IdealGas.dynamic_state_vars - ~IdealGas.filename - ~IdealGas.identity - ~IdealGas.input_as_dict - ~IdealGas.last_context - ~IdealGas.log_fmt - ~IdealGas.log_level - ~IdealGas.log_on - ~IdealGas.log_silo - ~IdealGas.logger - ~IdealGas.nonlinear - ~IdealGas.numeric_as_dict - ~IdealGas.numeric_hash - ~IdealGas.plotable_variables - ~IdealGas.skip_plot_vars - ~IdealGas.slack_webhook_url - ~IdealGas.static_A - ~IdealGas.static_B - ~IdealGas.static_C - ~IdealGas.static_D - ~IdealGas.static_F - ~IdealGas.static_K - ~IdealGas.surface_tension - ~IdealGas.system_id - ~IdealGas.time - ~IdealGas.unique_hash - ~IdealGas.update_interval - ~IdealGas.viscosity - ~IdealGas.parent - ~IdealGas.name - ~IdealGas.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealH2.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealH2.rst.txt deleted file mode 100644 index 6a75679..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealH2.rst.txt +++ /dev/null @@ -1,177 +0,0 @@ -engforge.eng.fluid\_material.IdealH2 -==================================== - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: IdealH2 - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~IdealH2.add_fields - ~IdealH2.change_all_log_lvl - ~IdealH2.check_ref_slot_type - ~IdealH2.cls_all_attrs_fields - ~IdealH2.cls_all_property_keys - ~IdealH2.cls_all_property_labels - ~IdealH2.cls_compile - ~IdealH2.collect_all_attributes - ~IdealH2.collect_comp_refs - ~IdealH2.collect_dynamic_refs - ~IdealH2.collect_inst_attributes - ~IdealH2.collect_post_update_refs - ~IdealH2.collect_solver_refs - ~IdealH2.collect_update_refs - ~IdealH2.comp_references - ~IdealH2.compile_classes - ~IdealH2.copy_config_at_state - ~IdealH2.create_dynamic_matricies - ~IdealH2.create_feedthrough_matrix - ~IdealH2.create_input_matrix - ~IdealH2.create_output_constants - ~IdealH2.create_output_matrix - ~IdealH2.create_state_constants - ~IdealH2.create_state_matrix - ~IdealH2.critical - ~IdealH2.debug - ~IdealH2.determine_nearest_stationary_state - ~IdealH2.difference - ~IdealH2.error - ~IdealH2.extract_message - ~IdealH2.filter - ~IdealH2.format_columns - ~IdealH2.get_system_input_refs - ~IdealH2.go_through_configurations - ~IdealH2.info - ~IdealH2.input_attrs - ~IdealH2.input_fields - ~IdealH2.installSTDLogger - ~IdealH2.internal_components - ~IdealH2.internal_configurations - ~IdealH2.internal_references - ~IdealH2.internal_systems - ~IdealH2.internal_tabulations - ~IdealH2.linear_output - ~IdealH2.linear_step - ~IdealH2.locate - ~IdealH2.locate_ref - ~IdealH2.message_with_identiy - ~IdealH2.msg - ~IdealH2.nonlinear_output - ~IdealH2.nonlinear_step - ~IdealH2.numeric_fields - ~IdealH2.parent_configurations_cls - ~IdealH2.parse_run_kwargs - ~IdealH2.parse_simulation_input - ~IdealH2.plot_attributes - ~IdealH2.post_update - ~IdealH2.pre_compile - ~IdealH2.print_info - ~IdealH2.rate - ~IdealH2.rate_linear - ~IdealH2.rate_nonlinear - ~IdealH2.ref_dXdt - ~IdealH2.resetLog - ~IdealH2.resetSystemLogs - ~IdealH2.set_attr - ~IdealH2.set_time - ~IdealH2.setattrs - ~IdealH2.signals_attributes - ~IdealH2.slack_notification - ~IdealH2.slot_refs - ~IdealH2.slots_attributes - ~IdealH2.smart_split_dataframe - ~IdealH2.solvers_attributes - ~IdealH2.step - ~IdealH2.subclasses - ~IdealH2.subcls_compile - ~IdealH2.system_properties_classdef - ~IdealH2.system_references - ~IdealH2.table_fields - ~IdealH2.trace_attributes - ~IdealH2.transients_attributes - ~IdealH2.update - ~IdealH2.update_dynamics - ~IdealH2.update_feedthrough - ~IdealH2.update_input - ~IdealH2.update_output_constants - ~IdealH2.update_output_matrix - ~IdealH2.update_state - ~IdealH2.update_state_constants - ~IdealH2.validate_class - ~IdealH2.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~IdealH2.Ut_ref - ~IdealH2.Xt_ref - ~IdealH2.Yt_ref - ~IdealH2.anything_changed - ~IdealH2.as_dict - ~IdealH2.attrs_fields - ~IdealH2.classname - ~IdealH2.dXtdt_ref - ~IdealH2.data_dict - ~IdealH2.dataframe_constants - ~IdealH2.dataframe_variants - ~IdealH2.density - ~IdealH2.displayname - ~IdealH2.dynamic_A - ~IdealH2.dynamic_B - ~IdealH2.dynamic_C - ~IdealH2.dynamic_D - ~IdealH2.dynamic_F - ~IdealH2.dynamic_K - ~IdealH2.dynamic_input - ~IdealH2.dynamic_input_vars - ~IdealH2.dynamic_output - ~IdealH2.dynamic_output_vars - ~IdealH2.dynamic_state - ~IdealH2.dynamic_state_vars - ~IdealH2.filename - ~IdealH2.gas_constant - ~IdealH2.identity - ~IdealH2.input_as_dict - ~IdealH2.last_context - ~IdealH2.log_fmt - ~IdealH2.log_level - ~IdealH2.log_on - ~IdealH2.log_silo - ~IdealH2.logger - ~IdealH2.nonlinear - ~IdealH2.numeric_as_dict - ~IdealH2.numeric_hash - ~IdealH2.plotable_variables - ~IdealH2.skip_plot_vars - ~IdealH2.slack_webhook_url - ~IdealH2.static_A - ~IdealH2.static_B - ~IdealH2.static_C - ~IdealH2.static_D - ~IdealH2.static_F - ~IdealH2.static_K - ~IdealH2.surface_tension - ~IdealH2.system_id - ~IdealH2.time - ~IdealH2.unique_hash - ~IdealH2.update_interval - ~IdealH2.viscosity - ~IdealH2.parent - ~IdealH2.name - ~IdealH2.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealOxygen.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealOxygen.rst.txt deleted file mode 100644 index 40e0755..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealOxygen.rst.txt +++ /dev/null @@ -1,177 +0,0 @@ -engforge.eng.fluid\_material.IdealOxygen -======================================== - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: IdealOxygen - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~IdealOxygen.add_fields - ~IdealOxygen.change_all_log_lvl - ~IdealOxygen.check_ref_slot_type - ~IdealOxygen.cls_all_attrs_fields - ~IdealOxygen.cls_all_property_keys - ~IdealOxygen.cls_all_property_labels - ~IdealOxygen.cls_compile - ~IdealOxygen.collect_all_attributes - ~IdealOxygen.collect_comp_refs - ~IdealOxygen.collect_dynamic_refs - ~IdealOxygen.collect_inst_attributes - ~IdealOxygen.collect_post_update_refs - ~IdealOxygen.collect_solver_refs - ~IdealOxygen.collect_update_refs - ~IdealOxygen.comp_references - ~IdealOxygen.compile_classes - ~IdealOxygen.copy_config_at_state - ~IdealOxygen.create_dynamic_matricies - ~IdealOxygen.create_feedthrough_matrix - ~IdealOxygen.create_input_matrix - ~IdealOxygen.create_output_constants - ~IdealOxygen.create_output_matrix - ~IdealOxygen.create_state_constants - ~IdealOxygen.create_state_matrix - ~IdealOxygen.critical - ~IdealOxygen.debug - ~IdealOxygen.determine_nearest_stationary_state - ~IdealOxygen.difference - ~IdealOxygen.error - ~IdealOxygen.extract_message - ~IdealOxygen.filter - ~IdealOxygen.format_columns - ~IdealOxygen.get_system_input_refs - ~IdealOxygen.go_through_configurations - ~IdealOxygen.info - ~IdealOxygen.input_attrs - ~IdealOxygen.input_fields - ~IdealOxygen.installSTDLogger - ~IdealOxygen.internal_components - ~IdealOxygen.internal_configurations - ~IdealOxygen.internal_references - ~IdealOxygen.internal_systems - ~IdealOxygen.internal_tabulations - ~IdealOxygen.linear_output - ~IdealOxygen.linear_step - ~IdealOxygen.locate - ~IdealOxygen.locate_ref - ~IdealOxygen.message_with_identiy - ~IdealOxygen.msg - ~IdealOxygen.nonlinear_output - ~IdealOxygen.nonlinear_step - ~IdealOxygen.numeric_fields - ~IdealOxygen.parent_configurations_cls - ~IdealOxygen.parse_run_kwargs - ~IdealOxygen.parse_simulation_input - ~IdealOxygen.plot_attributes - ~IdealOxygen.post_update - ~IdealOxygen.pre_compile - ~IdealOxygen.print_info - ~IdealOxygen.rate - ~IdealOxygen.rate_linear - ~IdealOxygen.rate_nonlinear - ~IdealOxygen.ref_dXdt - ~IdealOxygen.resetLog - ~IdealOxygen.resetSystemLogs - ~IdealOxygen.set_attr - ~IdealOxygen.set_time - ~IdealOxygen.setattrs - ~IdealOxygen.signals_attributes - ~IdealOxygen.slack_notification - ~IdealOxygen.slot_refs - ~IdealOxygen.slots_attributes - ~IdealOxygen.smart_split_dataframe - ~IdealOxygen.solvers_attributes - ~IdealOxygen.step - ~IdealOxygen.subclasses - ~IdealOxygen.subcls_compile - ~IdealOxygen.system_properties_classdef - ~IdealOxygen.system_references - ~IdealOxygen.table_fields - ~IdealOxygen.trace_attributes - ~IdealOxygen.transients_attributes - ~IdealOxygen.update - ~IdealOxygen.update_dynamics - ~IdealOxygen.update_feedthrough - ~IdealOxygen.update_input - ~IdealOxygen.update_output_constants - ~IdealOxygen.update_output_matrix - ~IdealOxygen.update_state - ~IdealOxygen.update_state_constants - ~IdealOxygen.validate_class - ~IdealOxygen.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~IdealOxygen.Ut_ref - ~IdealOxygen.Xt_ref - ~IdealOxygen.Yt_ref - ~IdealOxygen.anything_changed - ~IdealOxygen.as_dict - ~IdealOxygen.attrs_fields - ~IdealOxygen.classname - ~IdealOxygen.dXtdt_ref - ~IdealOxygen.data_dict - ~IdealOxygen.dataframe_constants - ~IdealOxygen.dataframe_variants - ~IdealOxygen.density - ~IdealOxygen.displayname - ~IdealOxygen.dynamic_A - ~IdealOxygen.dynamic_B - ~IdealOxygen.dynamic_C - ~IdealOxygen.dynamic_D - ~IdealOxygen.dynamic_F - ~IdealOxygen.dynamic_K - ~IdealOxygen.dynamic_input - ~IdealOxygen.dynamic_input_vars - ~IdealOxygen.dynamic_output - ~IdealOxygen.dynamic_output_vars - ~IdealOxygen.dynamic_state - ~IdealOxygen.dynamic_state_vars - ~IdealOxygen.filename - ~IdealOxygen.gas_constant - ~IdealOxygen.identity - ~IdealOxygen.input_as_dict - ~IdealOxygen.last_context - ~IdealOxygen.log_fmt - ~IdealOxygen.log_level - ~IdealOxygen.log_on - ~IdealOxygen.log_silo - ~IdealOxygen.logger - ~IdealOxygen.nonlinear - ~IdealOxygen.numeric_as_dict - ~IdealOxygen.numeric_hash - ~IdealOxygen.plotable_variables - ~IdealOxygen.skip_plot_vars - ~IdealOxygen.slack_webhook_url - ~IdealOxygen.static_A - ~IdealOxygen.static_B - ~IdealOxygen.static_C - ~IdealOxygen.static_D - ~IdealOxygen.static_F - ~IdealOxygen.static_K - ~IdealOxygen.surface_tension - ~IdealOxygen.system_id - ~IdealOxygen.time - ~IdealOxygen.unique_hash - ~IdealOxygen.update_interval - ~IdealOxygen.viscosity - ~IdealOxygen.parent - ~IdealOxygen.name - ~IdealOxygen.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealSteam.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealSteam.rst.txt deleted file mode 100644 index 25daaa7..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.IdealSteam.rst.txt +++ /dev/null @@ -1,177 +0,0 @@ -engforge.eng.fluid\_material.IdealSteam -======================================= - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: IdealSteam - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~IdealSteam.add_fields - ~IdealSteam.change_all_log_lvl - ~IdealSteam.check_ref_slot_type - ~IdealSteam.cls_all_attrs_fields - ~IdealSteam.cls_all_property_keys - ~IdealSteam.cls_all_property_labels - ~IdealSteam.cls_compile - ~IdealSteam.collect_all_attributes - ~IdealSteam.collect_comp_refs - ~IdealSteam.collect_dynamic_refs - ~IdealSteam.collect_inst_attributes - ~IdealSteam.collect_post_update_refs - ~IdealSteam.collect_solver_refs - ~IdealSteam.collect_update_refs - ~IdealSteam.comp_references - ~IdealSteam.compile_classes - ~IdealSteam.copy_config_at_state - ~IdealSteam.create_dynamic_matricies - ~IdealSteam.create_feedthrough_matrix - ~IdealSteam.create_input_matrix - ~IdealSteam.create_output_constants - ~IdealSteam.create_output_matrix - ~IdealSteam.create_state_constants - ~IdealSteam.create_state_matrix - ~IdealSteam.critical - ~IdealSteam.debug - ~IdealSteam.determine_nearest_stationary_state - ~IdealSteam.difference - ~IdealSteam.error - ~IdealSteam.extract_message - ~IdealSteam.filter - ~IdealSteam.format_columns - ~IdealSteam.get_system_input_refs - ~IdealSteam.go_through_configurations - ~IdealSteam.info - ~IdealSteam.input_attrs - ~IdealSteam.input_fields - ~IdealSteam.installSTDLogger - ~IdealSteam.internal_components - ~IdealSteam.internal_configurations - ~IdealSteam.internal_references - ~IdealSteam.internal_systems - ~IdealSteam.internal_tabulations - ~IdealSteam.linear_output - ~IdealSteam.linear_step - ~IdealSteam.locate - ~IdealSteam.locate_ref - ~IdealSteam.message_with_identiy - ~IdealSteam.msg - ~IdealSteam.nonlinear_output - ~IdealSteam.nonlinear_step - ~IdealSteam.numeric_fields - ~IdealSteam.parent_configurations_cls - ~IdealSteam.parse_run_kwargs - ~IdealSteam.parse_simulation_input - ~IdealSteam.plot_attributes - ~IdealSteam.post_update - ~IdealSteam.pre_compile - ~IdealSteam.print_info - ~IdealSteam.rate - ~IdealSteam.rate_linear - ~IdealSteam.rate_nonlinear - ~IdealSteam.ref_dXdt - ~IdealSteam.resetLog - ~IdealSteam.resetSystemLogs - ~IdealSteam.set_attr - ~IdealSteam.set_time - ~IdealSteam.setattrs - ~IdealSteam.signals_attributes - ~IdealSteam.slack_notification - ~IdealSteam.slot_refs - ~IdealSteam.slots_attributes - ~IdealSteam.smart_split_dataframe - ~IdealSteam.solvers_attributes - ~IdealSteam.step - ~IdealSteam.subclasses - ~IdealSteam.subcls_compile - ~IdealSteam.system_properties_classdef - ~IdealSteam.system_references - ~IdealSteam.table_fields - ~IdealSteam.trace_attributes - ~IdealSteam.transients_attributes - ~IdealSteam.update - ~IdealSteam.update_dynamics - ~IdealSteam.update_feedthrough - ~IdealSteam.update_input - ~IdealSteam.update_output_constants - ~IdealSteam.update_output_matrix - ~IdealSteam.update_state - ~IdealSteam.update_state_constants - ~IdealSteam.validate_class - ~IdealSteam.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~IdealSteam.Ut_ref - ~IdealSteam.Xt_ref - ~IdealSteam.Yt_ref - ~IdealSteam.anything_changed - ~IdealSteam.as_dict - ~IdealSteam.attrs_fields - ~IdealSteam.classname - ~IdealSteam.dXtdt_ref - ~IdealSteam.data_dict - ~IdealSteam.dataframe_constants - ~IdealSteam.dataframe_variants - ~IdealSteam.density - ~IdealSteam.displayname - ~IdealSteam.dynamic_A - ~IdealSteam.dynamic_B - ~IdealSteam.dynamic_C - ~IdealSteam.dynamic_D - ~IdealSteam.dynamic_F - ~IdealSteam.dynamic_K - ~IdealSteam.dynamic_input - ~IdealSteam.dynamic_input_vars - ~IdealSteam.dynamic_output - ~IdealSteam.dynamic_output_vars - ~IdealSteam.dynamic_state - ~IdealSteam.dynamic_state_vars - ~IdealSteam.filename - ~IdealSteam.gas_constant - ~IdealSteam.identity - ~IdealSteam.input_as_dict - ~IdealSteam.last_context - ~IdealSteam.log_fmt - ~IdealSteam.log_level - ~IdealSteam.log_on - ~IdealSteam.log_silo - ~IdealSteam.logger - ~IdealSteam.nonlinear - ~IdealSteam.numeric_as_dict - ~IdealSteam.numeric_hash - ~IdealSteam.plotable_variables - ~IdealSteam.skip_plot_vars - ~IdealSteam.slack_webhook_url - ~IdealSteam.static_A - ~IdealSteam.static_B - ~IdealSteam.static_C - ~IdealSteam.static_D - ~IdealSteam.static_F - ~IdealSteam.static_K - ~IdealSteam.surface_tension - ~IdealSteam.system_id - ~IdealSteam.time - ~IdealSteam.unique_hash - ~IdealSteam.update_interval - ~IdealSteam.viscosity - ~IdealSteam.parent - ~IdealSteam.name - ~IdealSteam.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Oxygen.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Oxygen.rst.txt deleted file mode 100644 index 5380347..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Oxygen.rst.txt +++ /dev/null @@ -1,183 +0,0 @@ -engforge.eng.fluid\_material.Oxygen -=================================== - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: Oxygen - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Oxygen.add_fields - ~Oxygen.change_all_log_lvl - ~Oxygen.check_ref_slot_type - ~Oxygen.cls_all_attrs_fields - ~Oxygen.cls_all_property_keys - ~Oxygen.cls_all_property_labels - ~Oxygen.cls_compile - ~Oxygen.collect_all_attributes - ~Oxygen.collect_comp_refs - ~Oxygen.collect_dynamic_refs - ~Oxygen.collect_inst_attributes - ~Oxygen.collect_post_update_refs - ~Oxygen.collect_solver_refs - ~Oxygen.collect_update_refs - ~Oxygen.comp_references - ~Oxygen.compile_classes - ~Oxygen.copy_config_at_state - ~Oxygen.create_dynamic_matricies - ~Oxygen.create_feedthrough_matrix - ~Oxygen.create_input_matrix - ~Oxygen.create_output_constants - ~Oxygen.create_output_matrix - ~Oxygen.create_state_constants - ~Oxygen.create_state_matrix - ~Oxygen.critical - ~Oxygen.debug - ~Oxygen.determine_nearest_stationary_state - ~Oxygen.difference - ~Oxygen.error - ~Oxygen.extract_message - ~Oxygen.filter - ~Oxygen.format_columns - ~Oxygen.get_system_input_refs - ~Oxygen.go_through_configurations - ~Oxygen.info - ~Oxygen.input_attrs - ~Oxygen.input_fields - ~Oxygen.installSTDLogger - ~Oxygen.internal_components - ~Oxygen.internal_configurations - ~Oxygen.internal_references - ~Oxygen.internal_systems - ~Oxygen.internal_tabulations - ~Oxygen.linear_output - ~Oxygen.linear_step - ~Oxygen.locate - ~Oxygen.locate_ref - ~Oxygen.message_with_identiy - ~Oxygen.msg - ~Oxygen.nonlinear_output - ~Oxygen.nonlinear_step - ~Oxygen.numeric_fields - ~Oxygen.parent_configurations_cls - ~Oxygen.parse_run_kwargs - ~Oxygen.parse_simulation_input - ~Oxygen.plot_attributes - ~Oxygen.post_update - ~Oxygen.pre_compile - ~Oxygen.print_info - ~Oxygen.rate - ~Oxygen.rate_linear - ~Oxygen.rate_nonlinear - ~Oxygen.ref_dXdt - ~Oxygen.resetLog - ~Oxygen.resetSystemLogs - ~Oxygen.set_attr - ~Oxygen.set_time - ~Oxygen.setattrs - ~Oxygen.signals_attributes - ~Oxygen.slack_notification - ~Oxygen.slot_refs - ~Oxygen.slots_attributes - ~Oxygen.smart_split_dataframe - ~Oxygen.solvers_attributes - ~Oxygen.step - ~Oxygen.subclasses - ~Oxygen.subcls_compile - ~Oxygen.system_properties_classdef - ~Oxygen.system_references - ~Oxygen.table_fields - ~Oxygen.trace_attributes - ~Oxygen.transients_attributes - ~Oxygen.update - ~Oxygen.update_dynamics - ~Oxygen.update_feedthrough - ~Oxygen.update_input - ~Oxygen.update_output_constants - ~Oxygen.update_output_matrix - ~Oxygen.update_state - ~Oxygen.update_state_constants - ~Oxygen.validate_class - ~Oxygen.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Oxygen.Psat - ~Oxygen.Tsat - ~Oxygen.Ut_ref - ~Oxygen.Xt_ref - ~Oxygen.Yt_ref - ~Oxygen.anything_changed - ~Oxygen.as_dict - ~Oxygen.attrs_fields - ~Oxygen.classname - ~Oxygen.dXtdt_ref - ~Oxygen.data_dict - ~Oxygen.dataframe_constants - ~Oxygen.dataframe_variants - ~Oxygen.density - ~Oxygen.displayname - ~Oxygen.dynamic_A - ~Oxygen.dynamic_B - ~Oxygen.dynamic_C - ~Oxygen.dynamic_D - ~Oxygen.dynamic_F - ~Oxygen.dynamic_K - ~Oxygen.dynamic_input - ~Oxygen.dynamic_input_vars - ~Oxygen.dynamic_output - ~Oxygen.dynamic_output_vars - ~Oxygen.dynamic_state - ~Oxygen.dynamic_state_vars - ~Oxygen.enthalpy - ~Oxygen.filename - ~Oxygen.identity - ~Oxygen.input_as_dict - ~Oxygen.last_context - ~Oxygen.log_fmt - ~Oxygen.log_level - ~Oxygen.log_on - ~Oxygen.log_silo - ~Oxygen.logger - ~Oxygen.material - ~Oxygen.nonlinear - ~Oxygen.numeric_as_dict - ~Oxygen.numeric_hash - ~Oxygen.plotable_variables - ~Oxygen.skip_plot_vars - ~Oxygen.slack_webhook_url - ~Oxygen.specific_heat - ~Oxygen.state - ~Oxygen.static_A - ~Oxygen.static_B - ~Oxygen.static_C - ~Oxygen.static_D - ~Oxygen.static_F - ~Oxygen.static_K - ~Oxygen.surface_tension - ~Oxygen.system_id - ~Oxygen.thermal_conductivity - ~Oxygen.time - ~Oxygen.unique_hash - ~Oxygen.update_interval - ~Oxygen.viscosity - ~Oxygen.parent - ~Oxygen.name - ~Oxygen.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.SeaWater.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.SeaWater.rst.txt deleted file mode 100644 index 27eb8f2..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.SeaWater.rst.txt +++ /dev/null @@ -1,183 +0,0 @@ -engforge.eng.fluid\_material.SeaWater -===================================== - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: SeaWater - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SeaWater.add_fields - ~SeaWater.change_all_log_lvl - ~SeaWater.check_ref_slot_type - ~SeaWater.cls_all_attrs_fields - ~SeaWater.cls_all_property_keys - ~SeaWater.cls_all_property_labels - ~SeaWater.cls_compile - ~SeaWater.collect_all_attributes - ~SeaWater.collect_comp_refs - ~SeaWater.collect_dynamic_refs - ~SeaWater.collect_inst_attributes - ~SeaWater.collect_post_update_refs - ~SeaWater.collect_solver_refs - ~SeaWater.collect_update_refs - ~SeaWater.comp_references - ~SeaWater.compile_classes - ~SeaWater.copy_config_at_state - ~SeaWater.create_dynamic_matricies - ~SeaWater.create_feedthrough_matrix - ~SeaWater.create_input_matrix - ~SeaWater.create_output_constants - ~SeaWater.create_output_matrix - ~SeaWater.create_state_constants - ~SeaWater.create_state_matrix - ~SeaWater.critical - ~SeaWater.debug - ~SeaWater.determine_nearest_stationary_state - ~SeaWater.difference - ~SeaWater.error - ~SeaWater.extract_message - ~SeaWater.filter - ~SeaWater.format_columns - ~SeaWater.get_system_input_refs - ~SeaWater.go_through_configurations - ~SeaWater.info - ~SeaWater.input_attrs - ~SeaWater.input_fields - ~SeaWater.installSTDLogger - ~SeaWater.internal_components - ~SeaWater.internal_configurations - ~SeaWater.internal_references - ~SeaWater.internal_systems - ~SeaWater.internal_tabulations - ~SeaWater.linear_output - ~SeaWater.linear_step - ~SeaWater.locate - ~SeaWater.locate_ref - ~SeaWater.message_with_identiy - ~SeaWater.msg - ~SeaWater.nonlinear_output - ~SeaWater.nonlinear_step - ~SeaWater.numeric_fields - ~SeaWater.parent_configurations_cls - ~SeaWater.parse_run_kwargs - ~SeaWater.parse_simulation_input - ~SeaWater.plot_attributes - ~SeaWater.post_update - ~SeaWater.pre_compile - ~SeaWater.print_info - ~SeaWater.rate - ~SeaWater.rate_linear - ~SeaWater.rate_nonlinear - ~SeaWater.ref_dXdt - ~SeaWater.resetLog - ~SeaWater.resetSystemLogs - ~SeaWater.set_attr - ~SeaWater.set_time - ~SeaWater.setattrs - ~SeaWater.signals_attributes - ~SeaWater.slack_notification - ~SeaWater.slot_refs - ~SeaWater.slots_attributes - ~SeaWater.smart_split_dataframe - ~SeaWater.solvers_attributes - ~SeaWater.step - ~SeaWater.subclasses - ~SeaWater.subcls_compile - ~SeaWater.system_properties_classdef - ~SeaWater.system_references - ~SeaWater.table_fields - ~SeaWater.trace_attributes - ~SeaWater.transients_attributes - ~SeaWater.update - ~SeaWater.update_dynamics - ~SeaWater.update_feedthrough - ~SeaWater.update_input - ~SeaWater.update_output_constants - ~SeaWater.update_output_matrix - ~SeaWater.update_state - ~SeaWater.update_state_constants - ~SeaWater.validate_class - ~SeaWater.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SeaWater.Psat - ~SeaWater.Tsat - ~SeaWater.Ut_ref - ~SeaWater.Xt_ref - ~SeaWater.Yt_ref - ~SeaWater.anything_changed - ~SeaWater.as_dict - ~SeaWater.attrs_fields - ~SeaWater.classname - ~SeaWater.dXtdt_ref - ~SeaWater.data_dict - ~SeaWater.dataframe_constants - ~SeaWater.dataframe_variants - ~SeaWater.density - ~SeaWater.displayname - ~SeaWater.dynamic_A - ~SeaWater.dynamic_B - ~SeaWater.dynamic_C - ~SeaWater.dynamic_D - ~SeaWater.dynamic_F - ~SeaWater.dynamic_K - ~SeaWater.dynamic_input - ~SeaWater.dynamic_input_vars - ~SeaWater.dynamic_output - ~SeaWater.dynamic_output_vars - ~SeaWater.dynamic_state - ~SeaWater.dynamic_state_vars - ~SeaWater.enthalpy - ~SeaWater.filename - ~SeaWater.identity - ~SeaWater.input_as_dict - ~SeaWater.last_context - ~SeaWater.log_fmt - ~SeaWater.log_level - ~SeaWater.log_on - ~SeaWater.log_silo - ~SeaWater.logger - ~SeaWater.material - ~SeaWater.nonlinear - ~SeaWater.numeric_as_dict - ~SeaWater.numeric_hash - ~SeaWater.plotable_variables - ~SeaWater.skip_plot_vars - ~SeaWater.slack_webhook_url - ~SeaWater.specific_heat - ~SeaWater.state - ~SeaWater.static_A - ~SeaWater.static_B - ~SeaWater.static_C - ~SeaWater.static_D - ~SeaWater.static_F - ~SeaWater.static_K - ~SeaWater.surface_tension - ~SeaWater.system_id - ~SeaWater.thermal_conductivity - ~SeaWater.time - ~SeaWater.unique_hash - ~SeaWater.update_interval - ~SeaWater.viscosity - ~SeaWater.parent - ~SeaWater.name - ~SeaWater.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Steam.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Steam.rst.txt deleted file mode 100644 index 66946b6..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Steam.rst.txt +++ /dev/null @@ -1,183 +0,0 @@ -engforge.eng.fluid\_material.Steam -================================== - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: Steam - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Steam.add_fields - ~Steam.change_all_log_lvl - ~Steam.check_ref_slot_type - ~Steam.cls_all_attrs_fields - ~Steam.cls_all_property_keys - ~Steam.cls_all_property_labels - ~Steam.cls_compile - ~Steam.collect_all_attributes - ~Steam.collect_comp_refs - ~Steam.collect_dynamic_refs - ~Steam.collect_inst_attributes - ~Steam.collect_post_update_refs - ~Steam.collect_solver_refs - ~Steam.collect_update_refs - ~Steam.comp_references - ~Steam.compile_classes - ~Steam.copy_config_at_state - ~Steam.create_dynamic_matricies - ~Steam.create_feedthrough_matrix - ~Steam.create_input_matrix - ~Steam.create_output_constants - ~Steam.create_output_matrix - ~Steam.create_state_constants - ~Steam.create_state_matrix - ~Steam.critical - ~Steam.debug - ~Steam.determine_nearest_stationary_state - ~Steam.difference - ~Steam.error - ~Steam.extract_message - ~Steam.filter - ~Steam.format_columns - ~Steam.get_system_input_refs - ~Steam.go_through_configurations - ~Steam.info - ~Steam.input_attrs - ~Steam.input_fields - ~Steam.installSTDLogger - ~Steam.internal_components - ~Steam.internal_configurations - ~Steam.internal_references - ~Steam.internal_systems - ~Steam.internal_tabulations - ~Steam.linear_output - ~Steam.linear_step - ~Steam.locate - ~Steam.locate_ref - ~Steam.message_with_identiy - ~Steam.msg - ~Steam.nonlinear_output - ~Steam.nonlinear_step - ~Steam.numeric_fields - ~Steam.parent_configurations_cls - ~Steam.parse_run_kwargs - ~Steam.parse_simulation_input - ~Steam.plot_attributes - ~Steam.post_update - ~Steam.pre_compile - ~Steam.print_info - ~Steam.rate - ~Steam.rate_linear - ~Steam.rate_nonlinear - ~Steam.ref_dXdt - ~Steam.resetLog - ~Steam.resetSystemLogs - ~Steam.set_attr - ~Steam.set_time - ~Steam.setattrs - ~Steam.signals_attributes - ~Steam.slack_notification - ~Steam.slot_refs - ~Steam.slots_attributes - ~Steam.smart_split_dataframe - ~Steam.solvers_attributes - ~Steam.step - ~Steam.subclasses - ~Steam.subcls_compile - ~Steam.system_properties_classdef - ~Steam.system_references - ~Steam.table_fields - ~Steam.trace_attributes - ~Steam.transients_attributes - ~Steam.update - ~Steam.update_dynamics - ~Steam.update_feedthrough - ~Steam.update_input - ~Steam.update_output_constants - ~Steam.update_output_matrix - ~Steam.update_state - ~Steam.update_state_constants - ~Steam.validate_class - ~Steam.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Steam.Psat - ~Steam.Tsat - ~Steam.Ut_ref - ~Steam.Xt_ref - ~Steam.Yt_ref - ~Steam.anything_changed - ~Steam.as_dict - ~Steam.attrs_fields - ~Steam.classname - ~Steam.dXtdt_ref - ~Steam.data_dict - ~Steam.dataframe_constants - ~Steam.dataframe_variants - ~Steam.density - ~Steam.displayname - ~Steam.dynamic_A - ~Steam.dynamic_B - ~Steam.dynamic_C - ~Steam.dynamic_D - ~Steam.dynamic_F - ~Steam.dynamic_K - ~Steam.dynamic_input - ~Steam.dynamic_input_vars - ~Steam.dynamic_output - ~Steam.dynamic_output_vars - ~Steam.dynamic_state - ~Steam.dynamic_state_vars - ~Steam.enthalpy - ~Steam.filename - ~Steam.identity - ~Steam.input_as_dict - ~Steam.last_context - ~Steam.log_fmt - ~Steam.log_level - ~Steam.log_on - ~Steam.log_silo - ~Steam.logger - ~Steam.material - ~Steam.nonlinear - ~Steam.numeric_as_dict - ~Steam.numeric_hash - ~Steam.plotable_variables - ~Steam.skip_plot_vars - ~Steam.slack_webhook_url - ~Steam.specific_heat - ~Steam.state - ~Steam.static_A - ~Steam.static_B - ~Steam.static_C - ~Steam.static_D - ~Steam.static_F - ~Steam.static_K - ~Steam.surface_tension - ~Steam.system_id - ~Steam.thermal_conductivity - ~Steam.time - ~Steam.unique_hash - ~Steam.update_interval - ~Steam.viscosity - ~Steam.parent - ~Steam.name - ~Steam.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Water.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Water.rst.txt deleted file mode 100644 index 4b69caf..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.Water.rst.txt +++ /dev/null @@ -1,183 +0,0 @@ -engforge.eng.fluid\_material.Water -================================== - -.. currentmodule:: engforge.eng.fluid_material - -.. autoclass:: Water - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Water.add_fields - ~Water.change_all_log_lvl - ~Water.check_ref_slot_type - ~Water.cls_all_attrs_fields - ~Water.cls_all_property_keys - ~Water.cls_all_property_labels - ~Water.cls_compile - ~Water.collect_all_attributes - ~Water.collect_comp_refs - ~Water.collect_dynamic_refs - ~Water.collect_inst_attributes - ~Water.collect_post_update_refs - ~Water.collect_solver_refs - ~Water.collect_update_refs - ~Water.comp_references - ~Water.compile_classes - ~Water.copy_config_at_state - ~Water.create_dynamic_matricies - ~Water.create_feedthrough_matrix - ~Water.create_input_matrix - ~Water.create_output_constants - ~Water.create_output_matrix - ~Water.create_state_constants - ~Water.create_state_matrix - ~Water.critical - ~Water.debug - ~Water.determine_nearest_stationary_state - ~Water.difference - ~Water.error - ~Water.extract_message - ~Water.filter - ~Water.format_columns - ~Water.get_system_input_refs - ~Water.go_through_configurations - ~Water.info - ~Water.input_attrs - ~Water.input_fields - ~Water.installSTDLogger - ~Water.internal_components - ~Water.internal_configurations - ~Water.internal_references - ~Water.internal_systems - ~Water.internal_tabulations - ~Water.linear_output - ~Water.linear_step - ~Water.locate - ~Water.locate_ref - ~Water.message_with_identiy - ~Water.msg - ~Water.nonlinear_output - ~Water.nonlinear_step - ~Water.numeric_fields - ~Water.parent_configurations_cls - ~Water.parse_run_kwargs - ~Water.parse_simulation_input - ~Water.plot_attributes - ~Water.post_update - ~Water.pre_compile - ~Water.print_info - ~Water.rate - ~Water.rate_linear - ~Water.rate_nonlinear - ~Water.ref_dXdt - ~Water.resetLog - ~Water.resetSystemLogs - ~Water.set_attr - ~Water.set_time - ~Water.setattrs - ~Water.signals_attributes - ~Water.slack_notification - ~Water.slot_refs - ~Water.slots_attributes - ~Water.smart_split_dataframe - ~Water.solvers_attributes - ~Water.step - ~Water.subclasses - ~Water.subcls_compile - ~Water.system_properties_classdef - ~Water.system_references - ~Water.table_fields - ~Water.trace_attributes - ~Water.transients_attributes - ~Water.update - ~Water.update_dynamics - ~Water.update_feedthrough - ~Water.update_input - ~Water.update_output_constants - ~Water.update_output_matrix - ~Water.update_state - ~Water.update_state_constants - ~Water.validate_class - ~Water.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Water.Psat - ~Water.Tsat - ~Water.Ut_ref - ~Water.Xt_ref - ~Water.Yt_ref - ~Water.anything_changed - ~Water.as_dict - ~Water.attrs_fields - ~Water.classname - ~Water.dXtdt_ref - ~Water.data_dict - ~Water.dataframe_constants - ~Water.dataframe_variants - ~Water.density - ~Water.displayname - ~Water.dynamic_A - ~Water.dynamic_B - ~Water.dynamic_C - ~Water.dynamic_D - ~Water.dynamic_F - ~Water.dynamic_K - ~Water.dynamic_input - ~Water.dynamic_input_vars - ~Water.dynamic_output - ~Water.dynamic_output_vars - ~Water.dynamic_state - ~Water.dynamic_state_vars - ~Water.enthalpy - ~Water.filename - ~Water.identity - ~Water.input_as_dict - ~Water.last_context - ~Water.log_fmt - ~Water.log_level - ~Water.log_on - ~Water.log_silo - ~Water.logger - ~Water.material - ~Water.nonlinear - ~Water.numeric_as_dict - ~Water.numeric_hash - ~Water.plotable_variables - ~Water.skip_plot_vars - ~Water.slack_webhook_url - ~Water.specific_heat - ~Water.state - ~Water.static_A - ~Water.static_B - ~Water.static_C - ~Water.static_D - ~Water.static_F - ~Water.static_K - ~Water.surface_tension - ~Water.system_id - ~Water.thermal_conductivity - ~Water.time - ~Water.unique_hash - ~Water.update_interval - ~Water.viscosity - ~Water.parent - ~Water.name - ~Water.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.rst.txt deleted file mode 100644 index 9225d4b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.fluid_material.rst.txt +++ /dev/null @@ -1,46 +0,0 @@ -engforge.eng.fluid\_material -============================ - -.. automodule:: engforge.eng.fluid_material - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - Air - AirWaterMix - CoolPropMaterial - CoolPropMixture - FluidMaterial - Hydrogen - IdealAir - IdealGas - IdealH2 - IdealOxygen - IdealSteam - Oxygen - SeaWater - Steam - Water - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Circle.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Circle.rst.txt deleted file mode 100644 index 1d682f5..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Circle.rst.txt +++ /dev/null @@ -1,113 +0,0 @@ -engforge.eng.geometry.Circle -============================ - -.. currentmodule:: engforge.eng.geometry - -.. autoclass:: Circle - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Circle.add_fields - ~Circle.add_prediction_record - ~Circle.calculate_stress - ~Circle.change_all_log_lvl - ~Circle.check_and_retrain - ~Circle.check_out_of_domain - ~Circle.check_ref_slot_type - ~Circle.cls_compile - ~Circle.collect_all_attributes - ~Circle.collect_inst_attributes - ~Circle.compile_classes - ~Circle.copy_config_at_state - ~Circle.critical - ~Circle.debug - ~Circle.difference - ~Circle.display_results - ~Circle.error - ~Circle.estimate_stress - ~Circle.extract_message - ~Circle.filter - ~Circle.go_through_configurations - ~Circle.info - ~Circle.input_attrs - ~Circle.input_fields - ~Circle.installSTDLogger - ~Circle.internal_configurations - ~Circle.message_with_identiy - ~Circle.msg - ~Circle.numeric_fields - ~Circle.observe_and_predict - ~Circle.parent_configurations_cls - ~Circle.plot_attributes - ~Circle.plot_mesh - ~Circle.pre_compile - ~Circle.prediction_dataframe - ~Circle.prediction_weights - ~Circle.resetLog - ~Circle.resetSystemLogs - ~Circle.score_data - ~Circle.setattrs - ~Circle.signals_attributes - ~Circle.slack_notification - ~Circle.slot_refs - ~Circle.slots_attributes - ~Circle.solvers_attributes - ~Circle.subclasses - ~Circle.subcls_compile - ~Circle.table_fields - ~Circle.trace_attributes - ~Circle.train_compare - ~Circle.training_callback - ~Circle.transients_attributes - ~Circle.validate_class - ~Circle.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Circle.A - ~Circle.Ao - ~Circle.Ixx - ~Circle.Iyy - ~Circle.J - ~Circle.as_dict - ~Circle.attrs_fields - ~Circle.basis - ~Circle.classname - ~Circle.displayname - ~Circle.filename - ~Circle.identity - ~Circle.input_as_dict - ~Circle.log_fmt - ~Circle.log_level - ~Circle.log_on - ~Circle.log_silo - ~Circle.logger - ~Circle.numeric_as_dict - ~Circle.numeric_hash - ~Circle.prediction_goal_error - ~Circle.prediction_records - ~Circle.slack_webhook_url - ~Circle.train_window - ~Circle.trained - ~Circle.unique_hash - ~Circle.x_bounds - ~Circle.y_bounds - ~Circle.d - ~Circle.name - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.GeometryLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.GeometryLog.rst.txt deleted file mode 100644 index e6dd0d6..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.GeometryLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.eng.geometry.GeometryLog -================================= - -.. currentmodule:: engforge.eng.geometry - -.. autoclass:: GeometryLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~GeometryLog.add_fields - ~GeometryLog.change_all_log_lvl - ~GeometryLog.critical - ~GeometryLog.debug - ~GeometryLog.error - ~GeometryLog.extract_message - ~GeometryLog.filter - ~GeometryLog.info - ~GeometryLog.installSTDLogger - ~GeometryLog.message_with_identiy - ~GeometryLog.msg - ~GeometryLog.resetLog - ~GeometryLog.resetSystemLogs - ~GeometryLog.slack_notification - ~GeometryLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~GeometryLog.identity - ~GeometryLog.log_fmt - ~GeometryLog.log_level - ~GeometryLog.log_on - ~GeometryLog.logger - ~GeometryLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.HollowCircle.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.HollowCircle.rst.txt deleted file mode 100644 index a2482f6..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.HollowCircle.rst.txt +++ /dev/null @@ -1,115 +0,0 @@ -engforge.eng.geometry.HollowCircle -================================== - -.. currentmodule:: engforge.eng.geometry - -.. autoclass:: HollowCircle - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~HollowCircle.add_fields - ~HollowCircle.add_prediction_record - ~HollowCircle.calculate_stress - ~HollowCircle.change_all_log_lvl - ~HollowCircle.check_and_retrain - ~HollowCircle.check_out_of_domain - ~HollowCircle.check_ref_slot_type - ~HollowCircle.cls_compile - ~HollowCircle.collect_all_attributes - ~HollowCircle.collect_inst_attributes - ~HollowCircle.compile_classes - ~HollowCircle.copy_config_at_state - ~HollowCircle.critical - ~HollowCircle.debug - ~HollowCircle.difference - ~HollowCircle.display_results - ~HollowCircle.error - ~HollowCircle.estimate_stress - ~HollowCircle.extract_message - ~HollowCircle.filter - ~HollowCircle.go_through_configurations - ~HollowCircle.info - ~HollowCircle.input_attrs - ~HollowCircle.input_fields - ~HollowCircle.installSTDLogger - ~HollowCircle.internal_configurations - ~HollowCircle.message_with_identiy - ~HollowCircle.msg - ~HollowCircle.numeric_fields - ~HollowCircle.observe_and_predict - ~HollowCircle.parent_configurations_cls - ~HollowCircle.plot_attributes - ~HollowCircle.plot_mesh - ~HollowCircle.pre_compile - ~HollowCircle.prediction_dataframe - ~HollowCircle.prediction_weights - ~HollowCircle.resetLog - ~HollowCircle.resetSystemLogs - ~HollowCircle.score_data - ~HollowCircle.setattrs - ~HollowCircle.signals_attributes - ~HollowCircle.slack_notification - ~HollowCircle.slot_refs - ~HollowCircle.slots_attributes - ~HollowCircle.solvers_attributes - ~HollowCircle.subclasses - ~HollowCircle.subcls_compile - ~HollowCircle.table_fields - ~HollowCircle.trace_attributes - ~HollowCircle.train_compare - ~HollowCircle.training_callback - ~HollowCircle.transients_attributes - ~HollowCircle.validate_class - ~HollowCircle.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~HollowCircle.A - ~HollowCircle.Ao - ~HollowCircle.Ixx - ~HollowCircle.Iyy - ~HollowCircle.J - ~HollowCircle.as_dict - ~HollowCircle.attrs_fields - ~HollowCircle.basis - ~HollowCircle.classname - ~HollowCircle.di - ~HollowCircle.displayname - ~HollowCircle.filename - ~HollowCircle.identity - ~HollowCircle.input_as_dict - ~HollowCircle.log_fmt - ~HollowCircle.log_level - ~HollowCircle.log_on - ~HollowCircle.log_silo - ~HollowCircle.logger - ~HollowCircle.numeric_as_dict - ~HollowCircle.numeric_hash - ~HollowCircle.prediction_goal_error - ~HollowCircle.prediction_records - ~HollowCircle.slack_webhook_url - ~HollowCircle.train_window - ~HollowCircle.trained - ~HollowCircle.unique_hash - ~HollowCircle.x_bounds - ~HollowCircle.y_bounds - ~HollowCircle.d - ~HollowCircle.t - ~HollowCircle.name - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.ParametricSpline.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.ParametricSpline.rst.txt deleted file mode 100644 index 8d6bc5d..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.ParametricSpline.rst.txt +++ /dev/null @@ -1,34 +0,0 @@ -engforge.eng.geometry.ParametricSpline -====================================== - -.. currentmodule:: engforge.eng.geometry - -.. autoclass:: ParametricSpline - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ParametricSpline.coords - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ParametricSpline.a0 - ~ParametricSpline.a1 - ~ParametricSpline.a2 - ~ParametricSpline.a3 - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Profile2D.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Profile2D.rst.txt deleted file mode 100644 index 57234c0..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Profile2D.rst.txt +++ /dev/null @@ -1,112 +0,0 @@ -engforge.eng.geometry.Profile2D -=============================== - -.. currentmodule:: engforge.eng.geometry - -.. autoclass:: Profile2D - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Profile2D.add_fields - ~Profile2D.add_prediction_record - ~Profile2D.calculate_stress - ~Profile2D.change_all_log_lvl - ~Profile2D.check_and_retrain - ~Profile2D.check_out_of_domain - ~Profile2D.check_ref_slot_type - ~Profile2D.cls_compile - ~Profile2D.collect_all_attributes - ~Profile2D.collect_inst_attributes - ~Profile2D.compile_classes - ~Profile2D.copy_config_at_state - ~Profile2D.critical - ~Profile2D.debug - ~Profile2D.difference - ~Profile2D.display_results - ~Profile2D.error - ~Profile2D.estimate_stress - ~Profile2D.extract_message - ~Profile2D.filter - ~Profile2D.go_through_configurations - ~Profile2D.info - ~Profile2D.input_attrs - ~Profile2D.input_fields - ~Profile2D.installSTDLogger - ~Profile2D.internal_configurations - ~Profile2D.message_with_identiy - ~Profile2D.msg - ~Profile2D.numeric_fields - ~Profile2D.observe_and_predict - ~Profile2D.parent_configurations_cls - ~Profile2D.plot_attributes - ~Profile2D.plot_mesh - ~Profile2D.pre_compile - ~Profile2D.prediction_dataframe - ~Profile2D.prediction_weights - ~Profile2D.resetLog - ~Profile2D.resetSystemLogs - ~Profile2D.score_data - ~Profile2D.setattrs - ~Profile2D.signals_attributes - ~Profile2D.slack_notification - ~Profile2D.slot_refs - ~Profile2D.slots_attributes - ~Profile2D.solvers_attributes - ~Profile2D.subclasses - ~Profile2D.subcls_compile - ~Profile2D.table_fields - ~Profile2D.trace_attributes - ~Profile2D.train_compare - ~Profile2D.training_callback - ~Profile2D.transients_attributes - ~Profile2D.validate_class - ~Profile2D.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Profile2D.A - ~Profile2D.Ao - ~Profile2D.Ixx - ~Profile2D.Iyy - ~Profile2D.J - ~Profile2D.as_dict - ~Profile2D.attrs_fields - ~Profile2D.basis - ~Profile2D.classname - ~Profile2D.displayname - ~Profile2D.filename - ~Profile2D.identity - ~Profile2D.input_as_dict - ~Profile2D.log_fmt - ~Profile2D.log_level - ~Profile2D.log_on - ~Profile2D.log_silo - ~Profile2D.logger - ~Profile2D.numeric_as_dict - ~Profile2D.numeric_hash - ~Profile2D.prediction_goal_error - ~Profile2D.prediction_records - ~Profile2D.slack_webhook_url - ~Profile2D.train_window - ~Profile2D.trained - ~Profile2D.unique_hash - ~Profile2D.x_bounds - ~Profile2D.y_bounds - ~Profile2D.name - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Rectangle.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Rectangle.rst.txt deleted file mode 100644 index 1ae1fb2..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Rectangle.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.geometry.Rectangle -=============================== - -.. currentmodule:: engforge.eng.geometry - -.. autoclass:: Rectangle - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Rectangle.add_fields - ~Rectangle.add_prediction_record - ~Rectangle.calculate_stress - ~Rectangle.change_all_log_lvl - ~Rectangle.check_and_retrain - ~Rectangle.check_out_of_domain - ~Rectangle.check_ref_slot_type - ~Rectangle.cls_compile - ~Rectangle.collect_all_attributes - ~Rectangle.collect_inst_attributes - ~Rectangle.compile_classes - ~Rectangle.copy_config_at_state - ~Rectangle.critical - ~Rectangle.debug - ~Rectangle.difference - ~Rectangle.display_results - ~Rectangle.error - ~Rectangle.estimate_stress - ~Rectangle.extract_message - ~Rectangle.filter - ~Rectangle.go_through_configurations - ~Rectangle.info - ~Rectangle.input_attrs - ~Rectangle.input_fields - ~Rectangle.installSTDLogger - ~Rectangle.internal_configurations - ~Rectangle.message_with_identiy - ~Rectangle.msg - ~Rectangle.numeric_fields - ~Rectangle.observe_and_predict - ~Rectangle.parent_configurations_cls - ~Rectangle.plot_attributes - ~Rectangle.plot_mesh - ~Rectangle.pre_compile - ~Rectangle.prediction_dataframe - ~Rectangle.prediction_weights - ~Rectangle.resetLog - ~Rectangle.resetSystemLogs - ~Rectangle.score_data - ~Rectangle.setattrs - ~Rectangle.signals_attributes - ~Rectangle.slack_notification - ~Rectangle.slot_refs - ~Rectangle.slots_attributes - ~Rectangle.solvers_attributes - ~Rectangle.subclasses - ~Rectangle.subcls_compile - ~Rectangle.table_fields - ~Rectangle.trace_attributes - ~Rectangle.train_compare - ~Rectangle.training_callback - ~Rectangle.transients_attributes - ~Rectangle.validate_class - ~Rectangle.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Rectangle.A - ~Rectangle.Ao - ~Rectangle.Ixx - ~Rectangle.Iyy - ~Rectangle.J - ~Rectangle.as_dict - ~Rectangle.attrs_fields - ~Rectangle.basis - ~Rectangle.classname - ~Rectangle.displayname - ~Rectangle.filename - ~Rectangle.identity - ~Rectangle.input_as_dict - ~Rectangle.log_fmt - ~Rectangle.log_level - ~Rectangle.log_on - ~Rectangle.log_silo - ~Rectangle.logger - ~Rectangle.numeric_as_dict - ~Rectangle.numeric_hash - ~Rectangle.prediction_goal_error - ~Rectangle.prediction_records - ~Rectangle.slack_webhook_url - ~Rectangle.train_window - ~Rectangle.trained - ~Rectangle.unique_hash - ~Rectangle.x_bounds - ~Rectangle.y_bounds - ~Rectangle.b - ~Rectangle.h - ~Rectangle.name - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.ShapelySection.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.ShapelySection.rst.txt deleted file mode 100644 index 8111462..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.ShapelySection.rst.txt +++ /dev/null @@ -1,150 +0,0 @@ -engforge.eng.geometry.ShapelySection -==================================== - -.. currentmodule:: engforge.eng.geometry - -.. autoclass:: ShapelySection - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ShapelySection.add_fields - ~ShapelySection.add_prediction_record - ~ShapelySection.basis_expand - ~ShapelySection.calculate_bounds - ~ShapelySection.calculate_mesh_size - ~ShapelySection.calculate_stress - ~ShapelySection.change_all_log_lvl - ~ShapelySection.check_and_retrain - ~ShapelySection.check_out_of_domain - ~ShapelySection.check_ref_slot_type - ~ShapelySection.check_symmetric - ~ShapelySection.cls_compile - ~ShapelySection.collect_all_attributes - ~ShapelySection.collect_inst_attributes - ~ShapelySection.compile_classes - ~ShapelySection.copy_config_at_state - ~ShapelySection.critical - ~ShapelySection.debug - ~ShapelySection.determine_failure_front - ~ShapelySection.determine_failure_stress - ~ShapelySection.difference - ~ShapelySection.display_results - ~ShapelySection.error - ~ShapelySection.estimate_failure - ~ShapelySection.estimate_stress - ~ShapelySection.extract_message - ~ShapelySection.fail_frac_criteria - ~ShapelySection.fail_learning - ~ShapelySection.filter - ~ShapelySection.from_cache - ~ShapelySection.go_through_configurations - ~ShapelySection.hash_id - ~ShapelySection.info - ~ShapelySection.init_with_material - ~ShapelySection.input_attrs - ~ShapelySection.input_fields - ~ShapelySection.installSTDLogger - ~ShapelySection.internal_configurations - ~ShapelySection.mesh_section - ~ShapelySection.message_with_identiy - ~ShapelySection.msg - ~ShapelySection.numeric_fields - ~ShapelySection.observe_and_predict - ~ShapelySection.parent_configurations_cls - ~ShapelySection.plot_attributes - ~ShapelySection.plot_mesh - ~ShapelySection.pre_compile - ~ShapelySection.prediction_dataframe - ~ShapelySection.prediction_weights - ~ShapelySection.random_force_input - ~ShapelySection.record_stress - ~ShapelySection.resetLog - ~ShapelySection.resetSystemLogs - ~ShapelySection.reset_prediction - ~ShapelySection.score_data - ~ShapelySection.setattrs - ~ShapelySection.signals_attributes - ~ShapelySection.slack_notification - ~ShapelySection.slot_refs - ~ShapelySection.slots_attributes - ~ShapelySection.solve_fail - ~ShapelySection.solvers_attributes - ~ShapelySection.subclasses - ~ShapelySection.subcls_compile - ~ShapelySection.table_fields - ~ShapelySection.trace_attributes - ~ShapelySection.train_compare - ~ShapelySection.train_until_valid - ~ShapelySection.training_callback - ~ShapelySection.transients_attributes - ~ShapelySection.validate_class - ~ShapelySection.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ShapelySection.A - ~ShapelySection.Ao - ~ShapelySection.Ixx - ~ShapelySection.Ixy - ~ShapelySection.Iyy - ~ShapelySection.J - ~ShapelySection.as_dict - ~ShapelySection.attrs_fields - ~ShapelySection.basis - ~ShapelySection.cache_name - ~ShapelySection.cache_path - ~ShapelySection.classname - ~ShapelySection.displayname - ~ShapelySection.filename - ~ShapelySection.identity - ~ShapelySection.input_as_dict - ~ShapelySection.log_fmt - ~ShapelySection.log_level - ~ShapelySection.log_on - ~ShapelySection.log_silo - ~ShapelySection.logger - ~ShapelySection.max_margin - ~ShapelySection.max_rec_parm - ~ShapelySection.mesh_size - ~ShapelySection.meta_name - ~ShapelySection.meta_path - ~ShapelySection.min_mesh_area - ~ShapelySection.near_margin - ~ShapelySection.numeric_as_dict - ~ShapelySection.numeric_hash - ~ShapelySection.prediction_goal_error - ~ShapelySection.prediction_records - ~ShapelySection.save_threshold - ~ShapelySection.section_cache - ~ShapelySection.slack_webhook_url - ~ShapelySection.train_window - ~ShapelySection.trained - ~ShapelySection.unique_hash - ~ShapelySection.x_bounds - ~ShapelySection.y_bounds - ~ShapelySection.name - ~ShapelySection.shape - ~ShapelySection.coarse - ~ShapelySection.min_mesh_angle - ~ShapelySection.min_mesh_size - ~ShapelySection.goal_elements - ~ShapelySection.material - ~ShapelySection.prediction - ~ShapelySection.max_records - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Triangle.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Triangle.rst.txt deleted file mode 100644 index 2274da2..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.Triangle.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.geometry.Triangle -============================== - -.. currentmodule:: engforge.eng.geometry - -.. autoclass:: Triangle - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Triangle.add_fields - ~Triangle.add_prediction_record - ~Triangle.calculate_stress - ~Triangle.change_all_log_lvl - ~Triangle.check_and_retrain - ~Triangle.check_out_of_domain - ~Triangle.check_ref_slot_type - ~Triangle.cls_compile - ~Triangle.collect_all_attributes - ~Triangle.collect_inst_attributes - ~Triangle.compile_classes - ~Triangle.copy_config_at_state - ~Triangle.critical - ~Triangle.debug - ~Triangle.difference - ~Triangle.display_results - ~Triangle.error - ~Triangle.estimate_stress - ~Triangle.extract_message - ~Triangle.filter - ~Triangle.go_through_configurations - ~Triangle.info - ~Triangle.input_attrs - ~Triangle.input_fields - ~Triangle.installSTDLogger - ~Triangle.internal_configurations - ~Triangle.message_with_identiy - ~Triangle.msg - ~Triangle.numeric_fields - ~Triangle.observe_and_predict - ~Triangle.parent_configurations_cls - ~Triangle.plot_attributes - ~Triangle.plot_mesh - ~Triangle.pre_compile - ~Triangle.prediction_dataframe - ~Triangle.prediction_weights - ~Triangle.resetLog - ~Triangle.resetSystemLogs - ~Triangle.score_data - ~Triangle.setattrs - ~Triangle.signals_attributes - ~Triangle.slack_notification - ~Triangle.slot_refs - ~Triangle.slots_attributes - ~Triangle.solvers_attributes - ~Triangle.subclasses - ~Triangle.subcls_compile - ~Triangle.table_fields - ~Triangle.trace_attributes - ~Triangle.train_compare - ~Triangle.training_callback - ~Triangle.transients_attributes - ~Triangle.validate_class - ~Triangle.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Triangle.A - ~Triangle.Ao - ~Triangle.Ixx - ~Triangle.Iyy - ~Triangle.J - ~Triangle.as_dict - ~Triangle.attrs_fields - ~Triangle.basis - ~Triangle.classname - ~Triangle.displayname - ~Triangle.filename - ~Triangle.identity - ~Triangle.input_as_dict - ~Triangle.log_fmt - ~Triangle.log_level - ~Triangle.log_on - ~Triangle.log_silo - ~Triangle.logger - ~Triangle.numeric_as_dict - ~Triangle.numeric_hash - ~Triangle.prediction_goal_error - ~Triangle.prediction_records - ~Triangle.slack_webhook_url - ~Triangle.train_window - ~Triangle.trained - ~Triangle.unique_hash - ~Triangle.x_bounds - ~Triangle.y_bounds - ~Triangle.b - ~Triangle.h - ~Triangle.name - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.calculate_stress.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.calculate_stress.rst.txt deleted file mode 100644 index 4a468e2..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.calculate_stress.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.geometry.calculate\_stress -======================================= - -.. currentmodule:: engforge.eng.geometry - -.. autofunction:: calculate_stress \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.conver_np.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.conver_np.rst.txt deleted file mode 100644 index 2c49994..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.conver_np.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.geometry.conver\_np -================================ - -.. currentmodule:: engforge.eng.geometry - -.. autofunction:: conver_np \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.get_mesh_size.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.get_mesh_size.rst.txt deleted file mode 100644 index 8621f43..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.get_mesh_size.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.geometry.get\_mesh\_size -===================================== - -.. currentmodule:: engforge.eng.geometry - -.. autofunction:: get_mesh_size \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.rst.txt deleted file mode 100644 index 4368835..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.geometry.rst.txt +++ /dev/null @@ -1,49 +0,0 @@ -engforge.eng.geometry -===================== - -.. automodule:: engforge.eng.geometry - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - calculate_stress - conver_np - get_mesh_size - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - Circle - GeometryLog - HollowCircle - ParametricSpline - Profile2D - Rectangle - ShapelySection - Triangle - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.FlowInput.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.FlowInput.rst.txt deleted file mode 100644 index 786777b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.FlowInput.rst.txt +++ /dev/null @@ -1,183 +0,0 @@ -engforge.eng.pipes.FlowInput -============================ - -.. currentmodule:: engforge.eng.pipes - -.. autoclass:: FlowInput - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~FlowInput.add_fields - ~FlowInput.add_segment - ~FlowInput.change_all_log_lvl - ~FlowInput.check_ref_slot_type - ~FlowInput.cls_all_attrs_fields - ~FlowInput.cls_all_property_keys - ~FlowInput.cls_all_property_labels - ~FlowInput.cls_compile - ~FlowInput.collect_all_attributes - ~FlowInput.collect_comp_refs - ~FlowInput.collect_dynamic_refs - ~FlowInput.collect_inst_attributes - ~FlowInput.collect_post_update_refs - ~FlowInput.collect_solver_refs - ~FlowInput.collect_update_refs - ~FlowInput.comp_references - ~FlowInput.compile_classes - ~FlowInput.copy_config_at_state - ~FlowInput.create_dynamic_matricies - ~FlowInput.create_feedthrough_matrix - ~FlowInput.create_input_matrix - ~FlowInput.create_output_constants - ~FlowInput.create_output_matrix - ~FlowInput.create_state_constants - ~FlowInput.create_state_matrix - ~FlowInput.critical - ~FlowInput.debug - ~FlowInput.determine_nearest_stationary_state - ~FlowInput.difference - ~FlowInput.error - ~FlowInput.extract_message - ~FlowInput.filter - ~FlowInput.format_columns - ~FlowInput.get_system_input_refs - ~FlowInput.go_through_configurations - ~FlowInput.info - ~FlowInput.input_attrs - ~FlowInput.input_fields - ~FlowInput.installSTDLogger - ~FlowInput.internal_components - ~FlowInput.internal_configurations - ~FlowInput.internal_references - ~FlowInput.internal_systems - ~FlowInput.internal_tabulations - ~FlowInput.linear_output - ~FlowInput.linear_step - ~FlowInput.locate - ~FlowInput.locate_ref - ~FlowInput.message_with_identiy - ~FlowInput.msg - ~FlowInput.nonlinear_output - ~FlowInput.nonlinear_step - ~FlowInput.numeric_fields - ~FlowInput.parent_configurations_cls - ~FlowInput.parse_run_kwargs - ~FlowInput.parse_simulation_input - ~FlowInput.plot_attributes - ~FlowInput.post_update - ~FlowInput.pre_compile - ~FlowInput.print_info - ~FlowInput.rate - ~FlowInput.rate_linear - ~FlowInput.rate_nonlinear - ~FlowInput.ref_dXdt - ~FlowInput.resetLog - ~FlowInput.resetSystemLogs - ~FlowInput.set_attr - ~FlowInput.set_time - ~FlowInput.setattrs - ~FlowInput.signals_attributes - ~FlowInput.slack_notification - ~FlowInput.slot_refs - ~FlowInput.slots_attributes - ~FlowInput.smart_split_dataframe - ~FlowInput.solvers_attributes - ~FlowInput.step - ~FlowInput.subclasses - ~FlowInput.subcls_compile - ~FlowInput.system_properties_classdef - ~FlowInput.system_references - ~FlowInput.table_fields - ~FlowInput.trace_attributes - ~FlowInput.transients_attributes - ~FlowInput.update - ~FlowInput.update_dynamics - ~FlowInput.update_feedthrough - ~FlowInput.update_input - ~FlowInput.update_output_constants - ~FlowInput.update_output_matrix - ~FlowInput.update_state - ~FlowInput.update_state_constants - ~FlowInput.validate_class - ~FlowInput.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~FlowInput.Ut_ref - ~FlowInput.Xt_ref - ~FlowInput.Yt_ref - ~FlowInput.anything_changed - ~FlowInput.as_dict - ~FlowInput.attrs_fields - ~FlowInput.classname - ~FlowInput.dP_f - ~FlowInput.dP_p - ~FlowInput.dP_tot - ~FlowInput.dXtdt_ref - ~FlowInput.data_dict - ~FlowInput.dataframe_constants - ~FlowInput.dataframe_variants - ~FlowInput.displayname - ~FlowInput.dynamic_A - ~FlowInput.dynamic_B - ~FlowInput.dynamic_C - ~FlowInput.dynamic_D - ~FlowInput.dynamic_F - ~FlowInput.dynamic_K - ~FlowInput.dynamic_input - ~FlowInput.dynamic_input_vars - ~FlowInput.dynamic_output - ~FlowInput.dynamic_output_vars - ~FlowInput.dynamic_state - ~FlowInput.dynamic_state_vars - ~FlowInput.filename - ~FlowInput.identity - ~FlowInput.input_as_dict - ~FlowInput.last_context - ~FlowInput.log_fmt - ~FlowInput.log_level - ~FlowInput.log_on - ~FlowInput.log_silo - ~FlowInput.logger - ~FlowInput.nonlinear - ~FlowInput.numeric_as_dict - ~FlowInput.numeric_hash - ~FlowInput.plotable_variables - ~FlowInput.segments - ~FlowInput.skip_plot_vars - ~FlowInput.slack_webhook_url - ~FlowInput.static_A - ~FlowInput.static_B - ~FlowInput.static_C - ~FlowInput.static_D - ~FlowInput.static_F - ~FlowInput.static_K - ~FlowInput.sum_of_flows - ~FlowInput.system_id - ~FlowInput.time - ~FlowInput.unique_hash - ~FlowInput.update_interval - ~FlowInput.flow_in - ~FlowInput.x - ~FlowInput.y - ~FlowInput.z - ~FlowInput.parent - ~FlowInput.name - ~FlowInput.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.FlowNode.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.FlowNode.rst.txt deleted file mode 100644 index 39dd850..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.FlowNode.rst.txt +++ /dev/null @@ -1,182 +0,0 @@ -engforge.eng.pipes.FlowNode -=========================== - -.. currentmodule:: engforge.eng.pipes - -.. autoclass:: FlowNode - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~FlowNode.add_fields - ~FlowNode.add_segment - ~FlowNode.change_all_log_lvl - ~FlowNode.check_ref_slot_type - ~FlowNode.cls_all_attrs_fields - ~FlowNode.cls_all_property_keys - ~FlowNode.cls_all_property_labels - ~FlowNode.cls_compile - ~FlowNode.collect_all_attributes - ~FlowNode.collect_comp_refs - ~FlowNode.collect_dynamic_refs - ~FlowNode.collect_inst_attributes - ~FlowNode.collect_post_update_refs - ~FlowNode.collect_solver_refs - ~FlowNode.collect_update_refs - ~FlowNode.comp_references - ~FlowNode.compile_classes - ~FlowNode.copy_config_at_state - ~FlowNode.create_dynamic_matricies - ~FlowNode.create_feedthrough_matrix - ~FlowNode.create_input_matrix - ~FlowNode.create_output_constants - ~FlowNode.create_output_matrix - ~FlowNode.create_state_constants - ~FlowNode.create_state_matrix - ~FlowNode.critical - ~FlowNode.debug - ~FlowNode.determine_nearest_stationary_state - ~FlowNode.difference - ~FlowNode.error - ~FlowNode.extract_message - ~FlowNode.filter - ~FlowNode.format_columns - ~FlowNode.get_system_input_refs - ~FlowNode.go_through_configurations - ~FlowNode.info - ~FlowNode.input_attrs - ~FlowNode.input_fields - ~FlowNode.installSTDLogger - ~FlowNode.internal_components - ~FlowNode.internal_configurations - ~FlowNode.internal_references - ~FlowNode.internal_systems - ~FlowNode.internal_tabulations - ~FlowNode.linear_output - ~FlowNode.linear_step - ~FlowNode.locate - ~FlowNode.locate_ref - ~FlowNode.message_with_identiy - ~FlowNode.msg - ~FlowNode.nonlinear_output - ~FlowNode.nonlinear_step - ~FlowNode.numeric_fields - ~FlowNode.parent_configurations_cls - ~FlowNode.parse_run_kwargs - ~FlowNode.parse_simulation_input - ~FlowNode.plot_attributes - ~FlowNode.post_update - ~FlowNode.pre_compile - ~FlowNode.print_info - ~FlowNode.rate - ~FlowNode.rate_linear - ~FlowNode.rate_nonlinear - ~FlowNode.ref_dXdt - ~FlowNode.resetLog - ~FlowNode.resetSystemLogs - ~FlowNode.set_attr - ~FlowNode.set_time - ~FlowNode.setattrs - ~FlowNode.signals_attributes - ~FlowNode.slack_notification - ~FlowNode.slot_refs - ~FlowNode.slots_attributes - ~FlowNode.smart_split_dataframe - ~FlowNode.solvers_attributes - ~FlowNode.step - ~FlowNode.subclasses - ~FlowNode.subcls_compile - ~FlowNode.system_properties_classdef - ~FlowNode.system_references - ~FlowNode.table_fields - ~FlowNode.trace_attributes - ~FlowNode.transients_attributes - ~FlowNode.update - ~FlowNode.update_dynamics - ~FlowNode.update_feedthrough - ~FlowNode.update_input - ~FlowNode.update_output_constants - ~FlowNode.update_output_matrix - ~FlowNode.update_state - ~FlowNode.update_state_constants - ~FlowNode.validate_class - ~FlowNode.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~FlowNode.Ut_ref - ~FlowNode.Xt_ref - ~FlowNode.Yt_ref - ~FlowNode.anything_changed - ~FlowNode.as_dict - ~FlowNode.attrs_fields - ~FlowNode.classname - ~FlowNode.dP_f - ~FlowNode.dP_p - ~FlowNode.dP_tot - ~FlowNode.dXtdt_ref - ~FlowNode.data_dict - ~FlowNode.dataframe_constants - ~FlowNode.dataframe_variants - ~FlowNode.displayname - ~FlowNode.dynamic_A - ~FlowNode.dynamic_B - ~FlowNode.dynamic_C - ~FlowNode.dynamic_D - ~FlowNode.dynamic_F - ~FlowNode.dynamic_K - ~FlowNode.dynamic_input - ~FlowNode.dynamic_input_vars - ~FlowNode.dynamic_output - ~FlowNode.dynamic_output_vars - ~FlowNode.dynamic_state - ~FlowNode.dynamic_state_vars - ~FlowNode.filename - ~FlowNode.identity - ~FlowNode.input_as_dict - ~FlowNode.last_context - ~FlowNode.log_fmt - ~FlowNode.log_level - ~FlowNode.log_on - ~FlowNode.log_silo - ~FlowNode.logger - ~FlowNode.nonlinear - ~FlowNode.numeric_as_dict - ~FlowNode.numeric_hash - ~FlowNode.plotable_variables - ~FlowNode.segments - ~FlowNode.skip_plot_vars - ~FlowNode.slack_webhook_url - ~FlowNode.static_A - ~FlowNode.static_B - ~FlowNode.static_C - ~FlowNode.static_D - ~FlowNode.static_F - ~FlowNode.static_K - ~FlowNode.sum_of_flows - ~FlowNode.system_id - ~FlowNode.time - ~FlowNode.unique_hash - ~FlowNode.update_interval - ~FlowNode.x - ~FlowNode.y - ~FlowNode.z - ~FlowNode.parent - ~FlowNode.name - ~FlowNode.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.Pipe.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.Pipe.rst.txt deleted file mode 100644 index 56e8ff1..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.Pipe.rst.txt +++ /dev/null @@ -1,204 +0,0 @@ -engforge.eng.pipes.Pipe -======================= - -.. currentmodule:: engforge.eng.pipes - -.. autoclass:: Pipe - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Pipe.add_fields - ~Pipe.change_all_log_lvl - ~Pipe.check_ref_slot_type - ~Pipe.cls_all_attrs_fields - ~Pipe.cls_all_property_keys - ~Pipe.cls_all_property_labels - ~Pipe.cls_compile - ~Pipe.collect_all_attributes - ~Pipe.collect_comp_refs - ~Pipe.collect_dynamic_refs - ~Pipe.collect_inst_attributes - ~Pipe.collect_post_update_refs - ~Pipe.collect_solver_refs - ~Pipe.collect_update_refs - ~Pipe.comp_references - ~Pipe.compile_classes - ~Pipe.copy_config_at_state - ~Pipe.create_dynamic_matricies - ~Pipe.create_feedthrough_matrix - ~Pipe.create_input_matrix - ~Pipe.create_output_constants - ~Pipe.create_output_matrix - ~Pipe.create_state_constants - ~Pipe.create_state_matrix - ~Pipe.critical - ~Pipe.debug - ~Pipe.determine_nearest_stationary_state - ~Pipe.difference - ~Pipe.error - ~Pipe.extract_message - ~Pipe.filter - ~Pipe.format_columns - ~Pipe.get_system_input_refs - ~Pipe.go_through_configurations - ~Pipe.info - ~Pipe.input_attrs - ~Pipe.input_fields - ~Pipe.installSTDLogger - ~Pipe.internal_components - ~Pipe.internal_configurations - ~Pipe.internal_references - ~Pipe.internal_systems - ~Pipe.internal_tabulations - ~Pipe.linear_output - ~Pipe.linear_step - ~Pipe.locate - ~Pipe.locate_ref - ~Pipe.message_with_identiy - ~Pipe.msg - ~Pipe.nonlinear_output - ~Pipe.nonlinear_step - ~Pipe.numeric_fields - ~Pipe.parent_configurations_cls - ~Pipe.parse_run_kwargs - ~Pipe.parse_simulation_input - ~Pipe.plot_attributes - ~Pipe.post_update - ~Pipe.pre_compile - ~Pipe.print_info - ~Pipe.rate - ~Pipe.rate_linear - ~Pipe.rate_nonlinear - ~Pipe.ref_dXdt - ~Pipe.resetLog - ~Pipe.resetSystemLogs - ~Pipe.set_attr - ~Pipe.set_flow - ~Pipe.set_time - ~Pipe.setattrs - ~Pipe.signals_attributes - ~Pipe.slack_notification - ~Pipe.slot_refs - ~Pipe.slots_attributes - ~Pipe.smart_split_dataframe - ~Pipe.solvers_attributes - ~Pipe.step - ~Pipe.subclasses - ~Pipe.subcls_compile - ~Pipe.system_properties_classdef - ~Pipe.system_references - ~Pipe.table_fields - ~Pipe.trace_attributes - ~Pipe.transients_attributes - ~Pipe.update - ~Pipe.update_dynamics - ~Pipe.update_feedthrough - ~Pipe.update_input - ~Pipe.update_output_constants - ~Pipe.update_output_matrix - ~Pipe.update_state - ~Pipe.update_state_constants - ~Pipe.validate_class - ~Pipe.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Pipe.A - ~Pipe.C - ~Pipe.Fvec - ~Pipe.Kpipe - ~Pipe.L - ~Pipe.Lhz - ~Pipe.Lx - ~Pipe.Ly - ~Pipe.Lz - ~Pipe.Mf - ~Pipe.P - ~Pipe.Q - ~Pipe.T - ~Pipe.Ut_ref - ~Pipe.Xt_ref - ~Pipe.Yt_ref - ~Pipe.anything_changed - ~Pipe.as_dict - ~Pipe.attrs_fields - ~Pipe.classname - ~Pipe.dP_f - ~Pipe.dP_p - ~Pipe.dP_tot - ~Pipe.dXtdt_ref - ~Pipe.data_dict - ~Pipe.dataframe_constants - ~Pipe.dataframe_variants - ~Pipe.density - ~Pipe.displayname - ~Pipe.dynamic_A - ~Pipe.dynamic_B - ~Pipe.dynamic_C - ~Pipe.dynamic_D - ~Pipe.dynamic_F - ~Pipe.dynamic_K - ~Pipe.dynamic_input - ~Pipe.dynamic_input_vars - ~Pipe.dynamic_output - ~Pipe.dynamic_output_vars - ~Pipe.dynamic_state - ~Pipe.dynamic_state_vars - ~Pipe.enthalpy - ~Pipe.filename - ~Pipe.friction_factor - ~Pipe.identity - ~Pipe.inclination - ~Pipe.input_as_dict - ~Pipe.laminar_method - ~Pipe.last_context - ~Pipe.log_fmt - ~Pipe.log_level - ~Pipe.log_on - ~Pipe.log_silo - ~Pipe.logger - ~Pipe.nonlinear - ~Pipe.numeric_as_dict - ~Pipe.numeric_hash - ~Pipe.plotable_variables - ~Pipe.reynoldsNumber - ~Pipe.sign - ~Pipe.skip_plot_vars - ~Pipe.slack_webhook_url - ~Pipe.static_A - ~Pipe.static_B - ~Pipe.static_C - ~Pipe.static_D - ~Pipe.static_F - ~Pipe.static_K - ~Pipe.straight_method - ~Pipe.system_id - ~Pipe.time - ~Pipe.turbulent_method - ~Pipe.unique_hash - ~Pipe.update_interval - ~Pipe.viscosity - ~Pipe.roughness - ~Pipe.bend_radius - ~Pipe.D - ~Pipe.v - ~Pipe.parent - ~Pipe.name - ~Pipe.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeFitting.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeFitting.rst.txt deleted file mode 100644 index 3e94418..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeFitting.rst.txt +++ /dev/null @@ -1,196 +0,0 @@ -engforge.eng.pipes.PipeFitting -============================== - -.. currentmodule:: engforge.eng.pipes - -.. autoclass:: PipeFitting - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PipeFitting.add_fields - ~PipeFitting.add_segment - ~PipeFitting.change_all_log_lvl - ~PipeFitting.check_ref_slot_type - ~PipeFitting.cls_all_attrs_fields - ~PipeFitting.cls_all_property_keys - ~PipeFitting.cls_all_property_labels - ~PipeFitting.cls_compile - ~PipeFitting.collect_all_attributes - ~PipeFitting.collect_comp_refs - ~PipeFitting.collect_dynamic_refs - ~PipeFitting.collect_inst_attributes - ~PipeFitting.collect_post_update_refs - ~PipeFitting.collect_solver_refs - ~PipeFitting.collect_update_refs - ~PipeFitting.comp_references - ~PipeFitting.compile_classes - ~PipeFitting.copy_config_at_state - ~PipeFitting.create_dynamic_matricies - ~PipeFitting.create_feedthrough_matrix - ~PipeFitting.create_input_matrix - ~PipeFitting.create_output_constants - ~PipeFitting.create_output_matrix - ~PipeFitting.create_state_constants - ~PipeFitting.create_state_matrix - ~PipeFitting.critical - ~PipeFitting.debug - ~PipeFitting.determine_nearest_stationary_state - ~PipeFitting.difference - ~PipeFitting.error - ~PipeFitting.extract_message - ~PipeFitting.filter - ~PipeFitting.format_columns - ~PipeFitting.get_system_input_refs - ~PipeFitting.go_through_configurations - ~PipeFitting.info - ~PipeFitting.input_attrs - ~PipeFitting.input_fields - ~PipeFitting.installSTDLogger - ~PipeFitting.internal_components - ~PipeFitting.internal_configurations - ~PipeFitting.internal_references - ~PipeFitting.internal_systems - ~PipeFitting.internal_tabulations - ~PipeFitting.linear_output - ~PipeFitting.linear_step - ~PipeFitting.locate - ~PipeFitting.locate_ref - ~PipeFitting.message_with_identiy - ~PipeFitting.msg - ~PipeFitting.nonlinear_output - ~PipeFitting.nonlinear_step - ~PipeFitting.numeric_fields - ~PipeFitting.parent_configurations_cls - ~PipeFitting.parse_run_kwargs - ~PipeFitting.parse_simulation_input - ~PipeFitting.plot_attributes - ~PipeFitting.post_update - ~PipeFitting.pre_compile - ~PipeFitting.print_info - ~PipeFitting.rate - ~PipeFitting.rate_linear - ~PipeFitting.rate_nonlinear - ~PipeFitting.ref_dXdt - ~PipeFitting.resetLog - ~PipeFitting.resetSystemLogs - ~PipeFitting.set_attr - ~PipeFitting.set_flow - ~PipeFitting.set_time - ~PipeFitting.setattrs - ~PipeFitting.signals_attributes - ~PipeFitting.slack_notification - ~PipeFitting.slot_refs - ~PipeFitting.slots_attributes - ~PipeFitting.smart_split_dataframe - ~PipeFitting.solvers_attributes - ~PipeFitting.step - ~PipeFitting.subclasses - ~PipeFitting.subcls_compile - ~PipeFitting.system_properties_classdef - ~PipeFitting.system_references - ~PipeFitting.table_fields - ~PipeFitting.trace_attributes - ~PipeFitting.transients_attributes - ~PipeFitting.update - ~PipeFitting.update_dynamics - ~PipeFitting.update_feedthrough - ~PipeFitting.update_input - ~PipeFitting.update_output_constants - ~PipeFitting.update_output_matrix - ~PipeFitting.update_state - ~PipeFitting.update_state_constants - ~PipeFitting.validate_class - ~PipeFitting.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PipeFitting.A - ~PipeFitting.C - ~PipeFitting.Fvec - ~PipeFitting.Mf - ~PipeFitting.P - ~PipeFitting.Q - ~PipeFitting.T - ~PipeFitting.Ut_ref - ~PipeFitting.Xt_ref - ~PipeFitting.Yt_ref - ~PipeFitting.anything_changed - ~PipeFitting.as_dict - ~PipeFitting.attrs_fields - ~PipeFitting.classname - ~PipeFitting.dP_f - ~PipeFitting.dP_p - ~PipeFitting.dP_tot - ~PipeFitting.dXtdt_ref - ~PipeFitting.data_dict - ~PipeFitting.dataframe_constants - ~PipeFitting.dataframe_variants - ~PipeFitting.density - ~PipeFitting.displayname - ~PipeFitting.dynamic_A - ~PipeFitting.dynamic_B - ~PipeFitting.dynamic_C - ~PipeFitting.dynamic_D - ~PipeFitting.dynamic_F - ~PipeFitting.dynamic_K - ~PipeFitting.dynamic_input - ~PipeFitting.dynamic_input_vars - ~PipeFitting.dynamic_output - ~PipeFitting.dynamic_output_vars - ~PipeFitting.dynamic_state - ~PipeFitting.dynamic_state_vars - ~PipeFitting.enthalpy - ~PipeFitting.filename - ~PipeFitting.identity - ~PipeFitting.input_as_dict - ~PipeFitting.last_context - ~PipeFitting.log_fmt - ~PipeFitting.log_level - ~PipeFitting.log_on - ~PipeFitting.log_silo - ~PipeFitting.logger - ~PipeFitting.nonlinear - ~PipeFitting.numeric_as_dict - ~PipeFitting.numeric_hash - ~PipeFitting.plotable_variables - ~PipeFitting.reynoldsNumber - ~PipeFitting.segments - ~PipeFitting.skip_plot_vars - ~PipeFitting.slack_webhook_url - ~PipeFitting.static_A - ~PipeFitting.static_B - ~PipeFitting.static_C - ~PipeFitting.static_D - ~PipeFitting.static_F - ~PipeFitting.static_K - ~PipeFitting.sum_of_flows - ~PipeFitting.system_id - ~PipeFitting.time - ~PipeFitting.unique_hash - ~PipeFitting.update_interval - ~PipeFitting.viscosity - ~PipeFitting.x - ~PipeFitting.y - ~PipeFitting.z - ~PipeFitting.D - ~PipeFitting.v - ~PipeFitting.parent - ~PipeFitting.name - ~PipeFitting.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeFlow.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeFlow.rst.txt deleted file mode 100644 index 3ce035b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeFlow.rst.txt +++ /dev/null @@ -1,190 +0,0 @@ -engforge.eng.pipes.PipeFlow -=========================== - -.. currentmodule:: engforge.eng.pipes - -.. autoclass:: PipeFlow - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PipeFlow.add_fields - ~PipeFlow.change_all_log_lvl - ~PipeFlow.check_ref_slot_type - ~PipeFlow.cls_all_attrs_fields - ~PipeFlow.cls_all_property_keys - ~PipeFlow.cls_all_property_labels - ~PipeFlow.cls_compile - ~PipeFlow.collect_all_attributes - ~PipeFlow.collect_comp_refs - ~PipeFlow.collect_dynamic_refs - ~PipeFlow.collect_inst_attributes - ~PipeFlow.collect_post_update_refs - ~PipeFlow.collect_solver_refs - ~PipeFlow.collect_update_refs - ~PipeFlow.comp_references - ~PipeFlow.compile_classes - ~PipeFlow.copy_config_at_state - ~PipeFlow.create_dynamic_matricies - ~PipeFlow.create_feedthrough_matrix - ~PipeFlow.create_input_matrix - ~PipeFlow.create_output_constants - ~PipeFlow.create_output_matrix - ~PipeFlow.create_state_constants - ~PipeFlow.create_state_matrix - ~PipeFlow.critical - ~PipeFlow.debug - ~PipeFlow.determine_nearest_stationary_state - ~PipeFlow.difference - ~PipeFlow.error - ~PipeFlow.extract_message - ~PipeFlow.filter - ~PipeFlow.format_columns - ~PipeFlow.get_system_input_refs - ~PipeFlow.go_through_configurations - ~PipeFlow.info - ~PipeFlow.input_attrs - ~PipeFlow.input_fields - ~PipeFlow.installSTDLogger - ~PipeFlow.internal_components - ~PipeFlow.internal_configurations - ~PipeFlow.internal_references - ~PipeFlow.internal_systems - ~PipeFlow.internal_tabulations - ~PipeFlow.linear_output - ~PipeFlow.linear_step - ~PipeFlow.locate - ~PipeFlow.locate_ref - ~PipeFlow.message_with_identiy - ~PipeFlow.msg - ~PipeFlow.nonlinear_output - ~PipeFlow.nonlinear_step - ~PipeFlow.numeric_fields - ~PipeFlow.parent_configurations_cls - ~PipeFlow.parse_run_kwargs - ~PipeFlow.parse_simulation_input - ~PipeFlow.plot_attributes - ~PipeFlow.post_update - ~PipeFlow.pre_compile - ~PipeFlow.print_info - ~PipeFlow.rate - ~PipeFlow.rate_linear - ~PipeFlow.rate_nonlinear - ~PipeFlow.ref_dXdt - ~PipeFlow.resetLog - ~PipeFlow.resetSystemLogs - ~PipeFlow.set_attr - ~PipeFlow.set_flow - ~PipeFlow.set_time - ~PipeFlow.setattrs - ~PipeFlow.signals_attributes - ~PipeFlow.slack_notification - ~PipeFlow.slot_refs - ~PipeFlow.slots_attributes - ~PipeFlow.smart_split_dataframe - ~PipeFlow.solvers_attributes - ~PipeFlow.step - ~PipeFlow.subclasses - ~PipeFlow.subcls_compile - ~PipeFlow.system_properties_classdef - ~PipeFlow.system_references - ~PipeFlow.table_fields - ~PipeFlow.trace_attributes - ~PipeFlow.transients_attributes - ~PipeFlow.update - ~PipeFlow.update_dynamics - ~PipeFlow.update_feedthrough - ~PipeFlow.update_input - ~PipeFlow.update_output_constants - ~PipeFlow.update_output_matrix - ~PipeFlow.update_state - ~PipeFlow.update_state_constants - ~PipeFlow.validate_class - ~PipeFlow.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PipeFlow.A - ~PipeFlow.C - ~PipeFlow.Fvec - ~PipeFlow.Mf - ~PipeFlow.P - ~PipeFlow.Q - ~PipeFlow.T - ~PipeFlow.Ut_ref - ~PipeFlow.Xt_ref - ~PipeFlow.Yt_ref - ~PipeFlow.anything_changed - ~PipeFlow.as_dict - ~PipeFlow.attrs_fields - ~PipeFlow.classname - ~PipeFlow.dP_f - ~PipeFlow.dP_p - ~PipeFlow.dP_tot - ~PipeFlow.dXtdt_ref - ~PipeFlow.data_dict - ~PipeFlow.dataframe_constants - ~PipeFlow.dataframe_variants - ~PipeFlow.density - ~PipeFlow.displayname - ~PipeFlow.dynamic_A - ~PipeFlow.dynamic_B - ~PipeFlow.dynamic_C - ~PipeFlow.dynamic_D - ~PipeFlow.dynamic_F - ~PipeFlow.dynamic_K - ~PipeFlow.dynamic_input - ~PipeFlow.dynamic_input_vars - ~PipeFlow.dynamic_output - ~PipeFlow.dynamic_output_vars - ~PipeFlow.dynamic_state - ~PipeFlow.dynamic_state_vars - ~PipeFlow.enthalpy - ~PipeFlow.filename - ~PipeFlow.identity - ~PipeFlow.input_as_dict - ~PipeFlow.last_context - ~PipeFlow.log_fmt - ~PipeFlow.log_level - ~PipeFlow.log_on - ~PipeFlow.log_silo - ~PipeFlow.logger - ~PipeFlow.nonlinear - ~PipeFlow.numeric_as_dict - ~PipeFlow.numeric_hash - ~PipeFlow.plotable_variables - ~PipeFlow.reynoldsNumber - ~PipeFlow.skip_plot_vars - ~PipeFlow.slack_webhook_url - ~PipeFlow.static_A - ~PipeFlow.static_B - ~PipeFlow.static_C - ~PipeFlow.static_D - ~PipeFlow.static_F - ~PipeFlow.static_K - ~PipeFlow.system_id - ~PipeFlow.time - ~PipeFlow.unique_hash - ~PipeFlow.update_interval - ~PipeFlow.viscosity - ~PipeFlow.D - ~PipeFlow.v - ~PipeFlow.parent - ~PipeFlow.name - ~PipeFlow.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeLog.rst.txt deleted file mode 100644 index 999a8c3..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.eng.pipes.PipeLog -========================== - -.. currentmodule:: engforge.eng.pipes - -.. autoclass:: PipeLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PipeLog.add_fields - ~PipeLog.change_all_log_lvl - ~PipeLog.critical - ~PipeLog.debug - ~PipeLog.error - ~PipeLog.extract_message - ~PipeLog.filter - ~PipeLog.info - ~PipeLog.installSTDLogger - ~PipeLog.message_with_identiy - ~PipeLog.msg - ~PipeLog.resetLog - ~PipeLog.resetSystemLogs - ~PipeLog.slack_notification - ~PipeLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PipeLog.identity - ~PipeLog.log_fmt - ~PipeLog.log_level - ~PipeLog.log_on - ~PipeLog.logger - ~PipeLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeNode.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeNode.rst.txt deleted file mode 100644 index 1a5e8cf..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeNode.rst.txt +++ /dev/null @@ -1,179 +0,0 @@ -engforge.eng.pipes.PipeNode -=========================== - -.. currentmodule:: engforge.eng.pipes - -.. autoclass:: PipeNode - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PipeNode.add_fields - ~PipeNode.add_segment - ~PipeNode.change_all_log_lvl - ~PipeNode.check_ref_slot_type - ~PipeNode.cls_all_attrs_fields - ~PipeNode.cls_all_property_keys - ~PipeNode.cls_all_property_labels - ~PipeNode.cls_compile - ~PipeNode.collect_all_attributes - ~PipeNode.collect_comp_refs - ~PipeNode.collect_dynamic_refs - ~PipeNode.collect_inst_attributes - ~PipeNode.collect_post_update_refs - ~PipeNode.collect_solver_refs - ~PipeNode.collect_update_refs - ~PipeNode.comp_references - ~PipeNode.compile_classes - ~PipeNode.copy_config_at_state - ~PipeNode.create_dynamic_matricies - ~PipeNode.create_feedthrough_matrix - ~PipeNode.create_input_matrix - ~PipeNode.create_output_constants - ~PipeNode.create_output_matrix - ~PipeNode.create_state_constants - ~PipeNode.create_state_matrix - ~PipeNode.critical - ~PipeNode.debug - ~PipeNode.determine_nearest_stationary_state - ~PipeNode.difference - ~PipeNode.error - ~PipeNode.extract_message - ~PipeNode.filter - ~PipeNode.format_columns - ~PipeNode.get_system_input_refs - ~PipeNode.go_through_configurations - ~PipeNode.info - ~PipeNode.input_attrs - ~PipeNode.input_fields - ~PipeNode.installSTDLogger - ~PipeNode.internal_components - ~PipeNode.internal_configurations - ~PipeNode.internal_references - ~PipeNode.internal_systems - ~PipeNode.internal_tabulations - ~PipeNode.linear_output - ~PipeNode.linear_step - ~PipeNode.locate - ~PipeNode.locate_ref - ~PipeNode.message_with_identiy - ~PipeNode.msg - ~PipeNode.nonlinear_output - ~PipeNode.nonlinear_step - ~PipeNode.numeric_fields - ~PipeNode.parent_configurations_cls - ~PipeNode.parse_run_kwargs - ~PipeNode.parse_simulation_input - ~PipeNode.plot_attributes - ~PipeNode.post_update - ~PipeNode.pre_compile - ~PipeNode.print_info - ~PipeNode.rate - ~PipeNode.rate_linear - ~PipeNode.rate_nonlinear - ~PipeNode.ref_dXdt - ~PipeNode.resetLog - ~PipeNode.resetSystemLogs - ~PipeNode.set_attr - ~PipeNode.set_time - ~PipeNode.setattrs - ~PipeNode.signals_attributes - ~PipeNode.slack_notification - ~PipeNode.slot_refs - ~PipeNode.slots_attributes - ~PipeNode.smart_split_dataframe - ~PipeNode.solvers_attributes - ~PipeNode.step - ~PipeNode.subclasses - ~PipeNode.subcls_compile - ~PipeNode.system_properties_classdef - ~PipeNode.system_references - ~PipeNode.table_fields - ~PipeNode.trace_attributes - ~PipeNode.transients_attributes - ~PipeNode.update - ~PipeNode.update_dynamics - ~PipeNode.update_feedthrough - ~PipeNode.update_input - ~PipeNode.update_output_constants - ~PipeNode.update_output_matrix - ~PipeNode.update_state - ~PipeNode.update_state_constants - ~PipeNode.validate_class - ~PipeNode.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PipeNode.Ut_ref - ~PipeNode.Xt_ref - ~PipeNode.Yt_ref - ~PipeNode.anything_changed - ~PipeNode.as_dict - ~PipeNode.attrs_fields - ~PipeNode.classname - ~PipeNode.dXtdt_ref - ~PipeNode.data_dict - ~PipeNode.dataframe_constants - ~PipeNode.dataframe_variants - ~PipeNode.displayname - ~PipeNode.dynamic_A - ~PipeNode.dynamic_B - ~PipeNode.dynamic_C - ~PipeNode.dynamic_D - ~PipeNode.dynamic_F - ~PipeNode.dynamic_K - ~PipeNode.dynamic_input - ~PipeNode.dynamic_input_vars - ~PipeNode.dynamic_output - ~PipeNode.dynamic_output_vars - ~PipeNode.dynamic_state - ~PipeNode.dynamic_state_vars - ~PipeNode.filename - ~PipeNode.identity - ~PipeNode.input_as_dict - ~PipeNode.last_context - ~PipeNode.log_fmt - ~PipeNode.log_level - ~PipeNode.log_on - ~PipeNode.log_silo - ~PipeNode.logger - ~PipeNode.nonlinear - ~PipeNode.numeric_as_dict - ~PipeNode.numeric_hash - ~PipeNode.plotable_variables - ~PipeNode.segments - ~PipeNode.skip_plot_vars - ~PipeNode.slack_webhook_url - ~PipeNode.static_A - ~PipeNode.static_B - ~PipeNode.static_C - ~PipeNode.static_D - ~PipeNode.static_F - ~PipeNode.static_K - ~PipeNode.sum_of_flows - ~PipeNode.system_id - ~PipeNode.time - ~PipeNode.unique_hash - ~PipeNode.update_interval - ~PipeNode.x - ~PipeNode.y - ~PipeNode.z - ~PipeNode.parent - ~PipeNode.name - ~PipeNode.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeSystem.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeSystem.rst.txt deleted file mode 100644 index 6563532..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.PipeSystem.rst.txt +++ /dev/null @@ -1,199 +0,0 @@ -engforge.eng.pipes.PipeSystem -============================= - -.. currentmodule:: engforge.eng.pipes - -.. autoclass:: PipeSystem - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PipeSystem.add_fields - ~PipeSystem.add_to_graph - ~PipeSystem.assemble_solvers - ~PipeSystem.change_all_log_lvl - ~PipeSystem.check_ref_slot_type - ~PipeSystem.clone - ~PipeSystem.cls_all_attrs_fields - ~PipeSystem.cls_all_property_keys - ~PipeSystem.cls_all_property_labels - ~PipeSystem.cls_compile - ~PipeSystem.collect_all_attributes - ~PipeSystem.collect_comp_refs - ~PipeSystem.collect_dynamic_refs - ~PipeSystem.collect_inst_attributes - ~PipeSystem.collect_post_update_refs - ~PipeSystem.collect_solver_refs - ~PipeSystem.collect_update_refs - ~PipeSystem.comp_references - ~PipeSystem.compile_classes - ~PipeSystem.copy_config_at_state - ~PipeSystem.create_dynamic_matricies - ~PipeSystem.create_feedthrough_matrix - ~PipeSystem.create_graph_from_pipe_or_node - ~PipeSystem.create_input_matrix - ~PipeSystem.create_output_constants - ~PipeSystem.create_output_matrix - ~PipeSystem.create_state_constants - ~PipeSystem.create_state_matrix - ~PipeSystem.critical - ~PipeSystem.debug - ~PipeSystem.determine_nearest_stationary_state - ~PipeSystem.difference - ~PipeSystem.draw - ~PipeSystem.error - ~PipeSystem.eval - ~PipeSystem.execute - ~PipeSystem.extract_message - ~PipeSystem.filter - ~PipeSystem.format_columns - ~PipeSystem.get_system_input_refs - ~PipeSystem.go_through_configurations - ~PipeSystem.info - ~PipeSystem.input_attrs - ~PipeSystem.input_fields - ~PipeSystem.installSTDLogger - ~PipeSystem.internal_components - ~PipeSystem.internal_configurations - ~PipeSystem.internal_references - ~PipeSystem.internal_systems - ~PipeSystem.internal_tabulations - ~PipeSystem.linear_output - ~PipeSystem.linear_step - ~PipeSystem.locate - ~PipeSystem.locate_ref - ~PipeSystem.make_plots - ~PipeSystem.mark_all_comps_changed - ~PipeSystem.message_with_identiy - ~PipeSystem.msg - ~PipeSystem.nonlinear_output - ~PipeSystem.nonlinear_step - ~PipeSystem.numeric_fields - ~PipeSystem.parent_configurations_cls - ~PipeSystem.parse_run_kwargs - ~PipeSystem.parse_simulation_input - ~PipeSystem.plot_attributes - ~PipeSystem.post_run_callback - ~PipeSystem.post_update - ~PipeSystem.pre_compile - ~PipeSystem.pre_run_callback - ~PipeSystem.print_info - ~PipeSystem.rate - ~PipeSystem.rate_linear - ~PipeSystem.rate_nonlinear - ~PipeSystem.ref_dXdt - ~PipeSystem.resetLog - ~PipeSystem.resetSystemLogs - ~PipeSystem.run - ~PipeSystem.run_internal_systems - ~PipeSystem.set_attr - ~PipeSystem.set_time - ~PipeSystem.setattrs - ~PipeSystem.setup_global_dynamics - ~PipeSystem.signals_attributes - ~PipeSystem.sim_matrix - ~PipeSystem.simulate - ~PipeSystem.slack_notification - ~PipeSystem.slot_refs - ~PipeSystem.slots_attributes - ~PipeSystem.smart_split_dataframe - ~PipeSystem.solver - ~PipeSystem.solver_vars - ~PipeSystem.solvers_attributes - ~PipeSystem.step - ~PipeSystem.subclasses - ~PipeSystem.subcls_compile - ~PipeSystem.system_properties_classdef - ~PipeSystem.system_references - ~PipeSystem.table_fields - ~PipeSystem.trace_attributes - ~PipeSystem.transients_attributes - ~PipeSystem.update - ~PipeSystem.update_dynamics - ~PipeSystem.update_feedthrough - ~PipeSystem.update_input - ~PipeSystem.update_output_constants - ~PipeSystem.update_output_matrix - ~PipeSystem.update_state - ~PipeSystem.update_state_constants - ~PipeSystem.validate_class - ~PipeSystem.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PipeSystem.F_keyword_order - ~PipeSystem.Ut_ref - ~PipeSystem.Xt_ref - ~PipeSystem.Yt_ref - ~PipeSystem.anything_changed - ~PipeSystem.as_dict - ~PipeSystem.attrs_fields - ~PipeSystem.classname - ~PipeSystem.converged - ~PipeSystem.dXtdt_ref - ~PipeSystem.dataframe_constants - ~PipeSystem.dataframe_variants - ~PipeSystem.displayname - ~PipeSystem.dynamic_A - ~PipeSystem.dynamic_B - ~PipeSystem.dynamic_C - ~PipeSystem.dynamic_D - ~PipeSystem.dynamic_F - ~PipeSystem.dynamic_K - ~PipeSystem.dynamic_input - ~PipeSystem.dynamic_input_vars - ~PipeSystem.dynamic_output - ~PipeSystem.dynamic_output_vars - ~PipeSystem.dynamic_state - ~PipeSystem.dynamic_state_vars - ~PipeSystem.filename - ~PipeSystem.identity - ~PipeSystem.input_as_dict - ~PipeSystem.last_context - ~PipeSystem.log_fmt - ~PipeSystem.log_level - ~PipeSystem.log_on - ~PipeSystem.log_silo - ~PipeSystem.logger - ~PipeSystem.nodes - ~PipeSystem.nonlinear - ~PipeSystem.numeric_as_dict - ~PipeSystem.numeric_hash - ~PipeSystem.pipes - ~PipeSystem.plotable_variables - ~PipeSystem.run_id - ~PipeSystem.skip_plot_vars - ~PipeSystem.slack_webhook_url - ~PipeSystem.solved - ~PipeSystem.static_A - ~PipeSystem.static_B - ~PipeSystem.static_C - ~PipeSystem.static_D - ~PipeSystem.static_F - ~PipeSystem.static_K - ~PipeSystem.stored_plots - ~PipeSystem.system_id - ~PipeSystem.time - ~PipeSystem.unique_hash - ~PipeSystem.update_interval - ~PipeSystem.graph - ~PipeSystem.items - ~PipeSystem.parent - ~PipeSystem.name - ~PipeSystem.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.Pump.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.Pump.rst.txt deleted file mode 100644 index e56af55..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.Pump.rst.txt +++ /dev/null @@ -1,178 +0,0 @@ -engforge.eng.pipes.Pump -======================= - -.. currentmodule:: engforge.eng.pipes - -.. autoclass:: Pump - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Pump.add_fields - ~Pump.change_all_log_lvl - ~Pump.check_ref_slot_type - ~Pump.cls_all_attrs_fields - ~Pump.cls_all_property_keys - ~Pump.cls_all_property_labels - ~Pump.cls_compile - ~Pump.collect_all_attributes - ~Pump.collect_comp_refs - ~Pump.collect_dynamic_refs - ~Pump.collect_inst_attributes - ~Pump.collect_post_update_refs - ~Pump.collect_solver_refs - ~Pump.collect_update_refs - ~Pump.comp_references - ~Pump.compile_classes - ~Pump.copy_config_at_state - ~Pump.create_dynamic_matricies - ~Pump.create_feedthrough_matrix - ~Pump.create_input_matrix - ~Pump.create_output_constants - ~Pump.create_output_matrix - ~Pump.create_state_constants - ~Pump.create_state_matrix - ~Pump.critical - ~Pump.dPressure - ~Pump.debug - ~Pump.determine_nearest_stationary_state - ~Pump.difference - ~Pump.error - ~Pump.extract_message - ~Pump.filter - ~Pump.format_columns - ~Pump.get_system_input_refs - ~Pump.go_through_configurations - ~Pump.info - ~Pump.input_attrs - ~Pump.input_fields - ~Pump.installSTDLogger - ~Pump.internal_components - ~Pump.internal_configurations - ~Pump.internal_references - ~Pump.internal_systems - ~Pump.internal_tabulations - ~Pump.linear_output - ~Pump.linear_step - ~Pump.locate - ~Pump.locate_ref - ~Pump.message_with_identiy - ~Pump.msg - ~Pump.nonlinear_output - ~Pump.nonlinear_step - ~Pump.numeric_fields - ~Pump.parent_configurations_cls - ~Pump.parse_run_kwargs - ~Pump.parse_simulation_input - ~Pump.plot_attributes - ~Pump.post_update - ~Pump.power - ~Pump.pre_compile - ~Pump.print_info - ~Pump.rate - ~Pump.rate_linear - ~Pump.rate_nonlinear - ~Pump.ref_dXdt - ~Pump.resetLog - ~Pump.resetSystemLogs - ~Pump.set_attr - ~Pump.set_time - ~Pump.setattrs - ~Pump.signals_attributes - ~Pump.slack_notification - ~Pump.slot_refs - ~Pump.slots_attributes - ~Pump.smart_split_dataframe - ~Pump.solvers_attributes - ~Pump.step - ~Pump.subclasses - ~Pump.subcls_compile - ~Pump.system_properties_classdef - ~Pump.system_references - ~Pump.table_fields - ~Pump.trace_attributes - ~Pump.transients_attributes - ~Pump.update - ~Pump.update_dynamics - ~Pump.update_feedthrough - ~Pump.update_input - ~Pump.update_output_constants - ~Pump.update_output_matrix - ~Pump.update_state - ~Pump.update_state_constants - ~Pump.validate_class - ~Pump.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Pump.Ut_ref - ~Pump.Xt_ref - ~Pump.Yt_ref - ~Pump.anything_changed - ~Pump.as_dict - ~Pump.attrs_fields - ~Pump.classname - ~Pump.dXtdt_ref - ~Pump.data_dict - ~Pump.dataframe_constants - ~Pump.dataframe_variants - ~Pump.design_flow_curve - ~Pump.displayname - ~Pump.dynamic_A - ~Pump.dynamic_B - ~Pump.dynamic_C - ~Pump.dynamic_D - ~Pump.dynamic_F - ~Pump.dynamic_K - ~Pump.dynamic_input - ~Pump.dynamic_input_vars - ~Pump.dynamic_output - ~Pump.dynamic_output_vars - ~Pump.dynamic_state - ~Pump.dynamic_state_vars - ~Pump.filename - ~Pump.identity - ~Pump.input_as_dict - ~Pump.last_context - ~Pump.log_fmt - ~Pump.log_level - ~Pump.log_on - ~Pump.log_silo - ~Pump.logger - ~Pump.nonlinear - ~Pump.numeric_as_dict - ~Pump.numeric_hash - ~Pump.plotable_variables - ~Pump.skip_plot_vars - ~Pump.slack_webhook_url - ~Pump.static_A - ~Pump.static_B - ~Pump.static_C - ~Pump.static_D - ~Pump.static_F - ~Pump.static_K - ~Pump.system_id - ~Pump.time - ~Pump.unique_hash - ~Pump.update_interval - ~Pump.max_flow - ~Pump.max_pressure - ~Pump.parent - ~Pump.name - ~Pump.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.rst.txt deleted file mode 100644 index 45182b4..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.pipes.rst.txt +++ /dev/null @@ -1,40 +0,0 @@ -engforge.eng.pipes -================== - -.. automodule:: engforge.eng.pipes - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - FlowInput - FlowNode - Pipe - PipeFitting - PipeFlow - PipeLog - PipeNode - PipeSystem - Pump - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.prediction.PredictionMixin.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.prediction.PredictionMixin.rst.txt deleted file mode 100644 index 2943bfd..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.prediction.PredictionMixin.rst.txt +++ /dev/null @@ -1,43 +0,0 @@ -engforge.eng.prediction.PredictionMixin -======================================= - -.. currentmodule:: engforge.eng.prediction - -.. autoclass:: PredictionMixin - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PredictionMixin.add_prediction_record - ~PredictionMixin.check_and_retrain - ~PredictionMixin.check_out_of_domain - ~PredictionMixin.observe_and_predict - ~PredictionMixin.prediction_dataframe - ~PredictionMixin.prediction_weights - ~PredictionMixin.score_data - ~PredictionMixin.train_compare - ~PredictionMixin.training_callback - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PredictionMixin.basis - ~PredictionMixin.prediction_goal_error - ~PredictionMixin.prediction_records - ~PredictionMixin.train_window - ~PredictionMixin.trained - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.prediction.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.prediction.rst.txt deleted file mode 100644 index 55c6878..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.prediction.rst.txt +++ /dev/null @@ -1,32 +0,0 @@ -engforge.eng.prediction -======================= - -.. automodule:: engforge.eng.prediction - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - PredictionMixin - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.rst.txt deleted file mode 100644 index 5f7fc09..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ -engforge.eng -============ - -.. automodule:: engforge.eng - - - - - - - - - - - - - - - - - - - -.. autosummary:: - :toctree: - :template: custom-module-template.rst - :recursive: - - costs - fluid_material - geometry - pipes - prediction - solid_materials - structure - structure_beams - thermodynamics - diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ANSI_4130.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ANSI_4130.rst.txt deleted file mode 100644 index ffd7b7d..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ANSI_4130.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.solid\_materials.ANSI\_4130 -======================================== - -.. currentmodule:: engforge.eng.solid_materials - -.. autoclass:: ANSI_4130 - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ANSI_4130.add_fields - ~ANSI_4130.change_all_log_lvl - ~ANSI_4130.check_ref_slot_type - ~ANSI_4130.cls_compile - ~ANSI_4130.collect_all_attributes - ~ANSI_4130.collect_inst_attributes - ~ANSI_4130.compile_classes - ~ANSI_4130.copy_config_at_state - ~ANSI_4130.critical - ~ANSI_4130.debug - ~ANSI_4130.difference - ~ANSI_4130.error - ~ANSI_4130.extract_message - ~ANSI_4130.filter - ~ANSI_4130.go_through_configurations - ~ANSI_4130.info - ~ANSI_4130.input_attrs - ~ANSI_4130.input_fields - ~ANSI_4130.installSTDLogger - ~ANSI_4130.internal_configurations - ~ANSI_4130.message_with_identiy - ~ANSI_4130.msg - ~ANSI_4130.numeric_fields - ~ANSI_4130.parent_configurations_cls - ~ANSI_4130.plot_attributes - ~ANSI_4130.pre_compile - ~ANSI_4130.resetLog - ~ANSI_4130.resetSystemLogs - ~ANSI_4130.setattrs - ~ANSI_4130.signals_attributes - ~ANSI_4130.slack_notification - ~ANSI_4130.slot_refs - ~ANSI_4130.slots_attributes - ~ANSI_4130.solvers_attributes - ~ANSI_4130.subclasses - ~ANSI_4130.subcls_compile - ~ANSI_4130.table_fields - ~ANSI_4130.trace_attributes - ~ANSI_4130.transients_attributes - ~ANSI_4130.validate_class - ~ANSI_4130.von_mises_stress_max - ~ANSI_4130.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ANSI_4130.E - ~ANSI_4130.G - ~ANSI_4130.allowable_stress - ~ANSI_4130.as_dict - ~ANSI_4130.attrs_fields - ~ANSI_4130.classname - ~ANSI_4130.color - ~ANSI_4130.displayname - ~ANSI_4130.filename - ~ANSI_4130.identity - ~ANSI_4130.input_as_dict - ~ANSI_4130.log_fmt - ~ANSI_4130.log_level - ~ANSI_4130.log_on - ~ANSI_4130.log_silo - ~ANSI_4130.logger - ~ANSI_4130.nu - ~ANSI_4130.numeric_as_dict - ~ANSI_4130.numeric_hash - ~ANSI_4130.rho - ~ANSI_4130.shear_modulus - ~ANSI_4130.slack_webhook_url - ~ANSI_4130.ultimate_stress - ~ANSI_4130.unique_hash - ~ANSI_4130.unique_id - ~ANSI_4130.yield_stress - ~ANSI_4130.name - ~ANSI_4130.density - ~ANSI_4130.elastic_modulus - ~ANSI_4130.yield_strength - ~ANSI_4130.tensile_strength_ultimate - ~ANSI_4130.poissons_ratio - ~ANSI_4130.melting_point - ~ANSI_4130.maxium_service_temp - ~ANSI_4130.thermal_conductivity - ~ANSI_4130.specific_heat - ~ANSI_4130.thermal_expansion - ~ANSI_4130.electrical_resistitivity - ~ANSI_4130.cost_per_kg - ~ANSI_4130.in_shear_modulus - ~ANSI_4130.hardness - ~ANSI_4130.izod - ~ANSI_4130.factor_of_saftey - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ANSI_4340.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ANSI_4340.rst.txt deleted file mode 100644 index 3fb91ab..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ANSI_4340.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.solid\_materials.ANSI\_4340 -======================================== - -.. currentmodule:: engforge.eng.solid_materials - -.. autoclass:: ANSI_4340 - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ANSI_4340.add_fields - ~ANSI_4340.change_all_log_lvl - ~ANSI_4340.check_ref_slot_type - ~ANSI_4340.cls_compile - ~ANSI_4340.collect_all_attributes - ~ANSI_4340.collect_inst_attributes - ~ANSI_4340.compile_classes - ~ANSI_4340.copy_config_at_state - ~ANSI_4340.critical - ~ANSI_4340.debug - ~ANSI_4340.difference - ~ANSI_4340.error - ~ANSI_4340.extract_message - ~ANSI_4340.filter - ~ANSI_4340.go_through_configurations - ~ANSI_4340.info - ~ANSI_4340.input_attrs - ~ANSI_4340.input_fields - ~ANSI_4340.installSTDLogger - ~ANSI_4340.internal_configurations - ~ANSI_4340.message_with_identiy - ~ANSI_4340.msg - ~ANSI_4340.numeric_fields - ~ANSI_4340.parent_configurations_cls - ~ANSI_4340.plot_attributes - ~ANSI_4340.pre_compile - ~ANSI_4340.resetLog - ~ANSI_4340.resetSystemLogs - ~ANSI_4340.setattrs - ~ANSI_4340.signals_attributes - ~ANSI_4340.slack_notification - ~ANSI_4340.slot_refs - ~ANSI_4340.slots_attributes - ~ANSI_4340.solvers_attributes - ~ANSI_4340.subclasses - ~ANSI_4340.subcls_compile - ~ANSI_4340.table_fields - ~ANSI_4340.trace_attributes - ~ANSI_4340.transients_attributes - ~ANSI_4340.validate_class - ~ANSI_4340.von_mises_stress_max - ~ANSI_4340.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ANSI_4340.E - ~ANSI_4340.G - ~ANSI_4340.allowable_stress - ~ANSI_4340.as_dict - ~ANSI_4340.attrs_fields - ~ANSI_4340.classname - ~ANSI_4340.color - ~ANSI_4340.displayname - ~ANSI_4340.filename - ~ANSI_4340.identity - ~ANSI_4340.input_as_dict - ~ANSI_4340.log_fmt - ~ANSI_4340.log_level - ~ANSI_4340.log_on - ~ANSI_4340.log_silo - ~ANSI_4340.logger - ~ANSI_4340.nu - ~ANSI_4340.numeric_as_dict - ~ANSI_4340.numeric_hash - ~ANSI_4340.rho - ~ANSI_4340.shear_modulus - ~ANSI_4340.slack_webhook_url - ~ANSI_4340.ultimate_stress - ~ANSI_4340.unique_hash - ~ANSI_4340.unique_id - ~ANSI_4340.yield_stress - ~ANSI_4340.name - ~ANSI_4340.density - ~ANSI_4340.elastic_modulus - ~ANSI_4340.yield_strength - ~ANSI_4340.tensile_strength_ultimate - ~ANSI_4340.poissons_ratio - ~ANSI_4340.melting_point - ~ANSI_4340.maxium_service_temp - ~ANSI_4340.thermal_conductivity - ~ANSI_4340.specific_heat - ~ANSI_4340.thermal_expansion - ~ANSI_4340.electrical_resistitivity - ~ANSI_4340.cost_per_kg - ~ANSI_4340.in_shear_modulus - ~ANSI_4340.hardness - ~ANSI_4340.izod - ~ANSI_4340.factor_of_saftey - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Aluminum.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Aluminum.rst.txt deleted file mode 100644 index fc80f75..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Aluminum.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.solid\_materials.Aluminum -====================================== - -.. currentmodule:: engforge.eng.solid_materials - -.. autoclass:: Aluminum - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Aluminum.add_fields - ~Aluminum.change_all_log_lvl - ~Aluminum.check_ref_slot_type - ~Aluminum.cls_compile - ~Aluminum.collect_all_attributes - ~Aluminum.collect_inst_attributes - ~Aluminum.compile_classes - ~Aluminum.copy_config_at_state - ~Aluminum.critical - ~Aluminum.debug - ~Aluminum.difference - ~Aluminum.error - ~Aluminum.extract_message - ~Aluminum.filter - ~Aluminum.go_through_configurations - ~Aluminum.info - ~Aluminum.input_attrs - ~Aluminum.input_fields - ~Aluminum.installSTDLogger - ~Aluminum.internal_configurations - ~Aluminum.message_with_identiy - ~Aluminum.msg - ~Aluminum.numeric_fields - ~Aluminum.parent_configurations_cls - ~Aluminum.plot_attributes - ~Aluminum.pre_compile - ~Aluminum.resetLog - ~Aluminum.resetSystemLogs - ~Aluminum.setattrs - ~Aluminum.signals_attributes - ~Aluminum.slack_notification - ~Aluminum.slot_refs - ~Aluminum.slots_attributes - ~Aluminum.solvers_attributes - ~Aluminum.subclasses - ~Aluminum.subcls_compile - ~Aluminum.table_fields - ~Aluminum.trace_attributes - ~Aluminum.transients_attributes - ~Aluminum.validate_class - ~Aluminum.von_mises_stress_max - ~Aluminum.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Aluminum.E - ~Aluminum.G - ~Aluminum.allowable_stress - ~Aluminum.as_dict - ~Aluminum.attrs_fields - ~Aluminum.classname - ~Aluminum.color - ~Aluminum.displayname - ~Aluminum.filename - ~Aluminum.identity - ~Aluminum.input_as_dict - ~Aluminum.log_fmt - ~Aluminum.log_level - ~Aluminum.log_on - ~Aluminum.log_silo - ~Aluminum.logger - ~Aluminum.nu - ~Aluminum.numeric_as_dict - ~Aluminum.numeric_hash - ~Aluminum.rho - ~Aluminum.shear_modulus - ~Aluminum.slack_webhook_url - ~Aluminum.ultimate_stress - ~Aluminum.unique_hash - ~Aluminum.unique_id - ~Aluminum.yield_stress - ~Aluminum.name - ~Aluminum.density - ~Aluminum.elastic_modulus - ~Aluminum.yield_strength - ~Aluminum.tensile_strength_ultimate - ~Aluminum.poissons_ratio - ~Aluminum.melting_point - ~Aluminum.maxium_service_temp - ~Aluminum.thermal_conductivity - ~Aluminum.specific_heat - ~Aluminum.thermal_expansion - ~Aluminum.electrical_resistitivity - ~Aluminum.cost_per_kg - ~Aluminum.in_shear_modulus - ~Aluminum.hardness - ~Aluminum.izod - ~Aluminum.factor_of_saftey - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.CarbonFiber.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.CarbonFiber.rst.txt deleted file mode 100644 index ea79d90..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.CarbonFiber.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.solid\_materials.CarbonFiber -========================================= - -.. currentmodule:: engforge.eng.solid_materials - -.. autoclass:: CarbonFiber - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~CarbonFiber.add_fields - ~CarbonFiber.change_all_log_lvl - ~CarbonFiber.check_ref_slot_type - ~CarbonFiber.cls_compile - ~CarbonFiber.collect_all_attributes - ~CarbonFiber.collect_inst_attributes - ~CarbonFiber.compile_classes - ~CarbonFiber.copy_config_at_state - ~CarbonFiber.critical - ~CarbonFiber.debug - ~CarbonFiber.difference - ~CarbonFiber.error - ~CarbonFiber.extract_message - ~CarbonFiber.filter - ~CarbonFiber.go_through_configurations - ~CarbonFiber.info - ~CarbonFiber.input_attrs - ~CarbonFiber.input_fields - ~CarbonFiber.installSTDLogger - ~CarbonFiber.internal_configurations - ~CarbonFiber.message_with_identiy - ~CarbonFiber.msg - ~CarbonFiber.numeric_fields - ~CarbonFiber.parent_configurations_cls - ~CarbonFiber.plot_attributes - ~CarbonFiber.pre_compile - ~CarbonFiber.resetLog - ~CarbonFiber.resetSystemLogs - ~CarbonFiber.setattrs - ~CarbonFiber.signals_attributes - ~CarbonFiber.slack_notification - ~CarbonFiber.slot_refs - ~CarbonFiber.slots_attributes - ~CarbonFiber.solvers_attributes - ~CarbonFiber.subclasses - ~CarbonFiber.subcls_compile - ~CarbonFiber.table_fields - ~CarbonFiber.trace_attributes - ~CarbonFiber.transients_attributes - ~CarbonFiber.validate_class - ~CarbonFiber.von_mises_stress_max - ~CarbonFiber.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~CarbonFiber.E - ~CarbonFiber.G - ~CarbonFiber.allowable_stress - ~CarbonFiber.as_dict - ~CarbonFiber.attrs_fields - ~CarbonFiber.classname - ~CarbonFiber.color - ~CarbonFiber.displayname - ~CarbonFiber.filename - ~CarbonFiber.identity - ~CarbonFiber.input_as_dict - ~CarbonFiber.log_fmt - ~CarbonFiber.log_level - ~CarbonFiber.log_on - ~CarbonFiber.log_silo - ~CarbonFiber.logger - ~CarbonFiber.nu - ~CarbonFiber.numeric_as_dict - ~CarbonFiber.numeric_hash - ~CarbonFiber.rho - ~CarbonFiber.shear_modulus - ~CarbonFiber.slack_webhook_url - ~CarbonFiber.ultimate_stress - ~CarbonFiber.unique_hash - ~CarbonFiber.unique_id - ~CarbonFiber.yield_stress - ~CarbonFiber.name - ~CarbonFiber.density - ~CarbonFiber.elastic_modulus - ~CarbonFiber.yield_strength - ~CarbonFiber.tensile_strength_ultimate - ~CarbonFiber.poissons_ratio - ~CarbonFiber.melting_point - ~CarbonFiber.maxium_service_temp - ~CarbonFiber.thermal_conductivity - ~CarbonFiber.specific_heat - ~CarbonFiber.thermal_expansion - ~CarbonFiber.electrical_resistitivity - ~CarbonFiber.cost_per_kg - ~CarbonFiber.in_shear_modulus - ~CarbonFiber.hardness - ~CarbonFiber.izod - ~CarbonFiber.factor_of_saftey - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Concrete.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Concrete.rst.txt deleted file mode 100644 index 2099d65..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Concrete.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.solid\_materials.Concrete -====================================== - -.. currentmodule:: engforge.eng.solid_materials - -.. autoclass:: Concrete - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Concrete.add_fields - ~Concrete.change_all_log_lvl - ~Concrete.check_ref_slot_type - ~Concrete.cls_compile - ~Concrete.collect_all_attributes - ~Concrete.collect_inst_attributes - ~Concrete.compile_classes - ~Concrete.copy_config_at_state - ~Concrete.critical - ~Concrete.debug - ~Concrete.difference - ~Concrete.error - ~Concrete.extract_message - ~Concrete.filter - ~Concrete.go_through_configurations - ~Concrete.info - ~Concrete.input_attrs - ~Concrete.input_fields - ~Concrete.installSTDLogger - ~Concrete.internal_configurations - ~Concrete.message_with_identiy - ~Concrete.msg - ~Concrete.numeric_fields - ~Concrete.parent_configurations_cls - ~Concrete.plot_attributes - ~Concrete.pre_compile - ~Concrete.resetLog - ~Concrete.resetSystemLogs - ~Concrete.setattrs - ~Concrete.signals_attributes - ~Concrete.slack_notification - ~Concrete.slot_refs - ~Concrete.slots_attributes - ~Concrete.solvers_attributes - ~Concrete.subclasses - ~Concrete.subcls_compile - ~Concrete.table_fields - ~Concrete.trace_attributes - ~Concrete.transients_attributes - ~Concrete.validate_class - ~Concrete.von_mises_stress_max - ~Concrete.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Concrete.E - ~Concrete.G - ~Concrete.allowable_stress - ~Concrete.as_dict - ~Concrete.attrs_fields - ~Concrete.classname - ~Concrete.color - ~Concrete.displayname - ~Concrete.filename - ~Concrete.identity - ~Concrete.input_as_dict - ~Concrete.log_fmt - ~Concrete.log_level - ~Concrete.log_on - ~Concrete.log_silo - ~Concrete.logger - ~Concrete.nu - ~Concrete.numeric_as_dict - ~Concrete.numeric_hash - ~Concrete.rho - ~Concrete.shear_modulus - ~Concrete.slack_webhook_url - ~Concrete.ultimate_stress - ~Concrete.unique_hash - ~Concrete.unique_id - ~Concrete.yield_stress - ~Concrete.name - ~Concrete.density - ~Concrete.elastic_modulus - ~Concrete.yield_strength - ~Concrete.tensile_strength_ultimate - ~Concrete.poissons_ratio - ~Concrete.melting_point - ~Concrete.maxium_service_temp - ~Concrete.thermal_conductivity - ~Concrete.specific_heat - ~Concrete.thermal_expansion - ~Concrete.electrical_resistitivity - ~Concrete.cost_per_kg - ~Concrete.in_shear_modulus - ~Concrete.hardness - ~Concrete.izod - ~Concrete.factor_of_saftey - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.DrySoil.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.DrySoil.rst.txt deleted file mode 100644 index 14726fa..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.DrySoil.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.solid\_materials.DrySoil -===================================== - -.. currentmodule:: engforge.eng.solid_materials - -.. autoclass:: DrySoil - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~DrySoil.add_fields - ~DrySoil.change_all_log_lvl - ~DrySoil.check_ref_slot_type - ~DrySoil.cls_compile - ~DrySoil.collect_all_attributes - ~DrySoil.collect_inst_attributes - ~DrySoil.compile_classes - ~DrySoil.copy_config_at_state - ~DrySoil.critical - ~DrySoil.debug - ~DrySoil.difference - ~DrySoil.error - ~DrySoil.extract_message - ~DrySoil.filter - ~DrySoil.go_through_configurations - ~DrySoil.info - ~DrySoil.input_attrs - ~DrySoil.input_fields - ~DrySoil.installSTDLogger - ~DrySoil.internal_configurations - ~DrySoil.message_with_identiy - ~DrySoil.msg - ~DrySoil.numeric_fields - ~DrySoil.parent_configurations_cls - ~DrySoil.plot_attributes - ~DrySoil.pre_compile - ~DrySoil.resetLog - ~DrySoil.resetSystemLogs - ~DrySoil.setattrs - ~DrySoil.signals_attributes - ~DrySoil.slack_notification - ~DrySoil.slot_refs - ~DrySoil.slots_attributes - ~DrySoil.solvers_attributes - ~DrySoil.subclasses - ~DrySoil.subcls_compile - ~DrySoil.table_fields - ~DrySoil.trace_attributes - ~DrySoil.transients_attributes - ~DrySoil.validate_class - ~DrySoil.von_mises_stress_max - ~DrySoil.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~DrySoil.E - ~DrySoil.G - ~DrySoil.allowable_stress - ~DrySoil.as_dict - ~DrySoil.attrs_fields - ~DrySoil.classname - ~DrySoil.color - ~DrySoil.displayname - ~DrySoil.filename - ~DrySoil.identity - ~DrySoil.input_as_dict - ~DrySoil.log_fmt - ~DrySoil.log_level - ~DrySoil.log_on - ~DrySoil.log_silo - ~DrySoil.logger - ~DrySoil.nu - ~DrySoil.numeric_as_dict - ~DrySoil.numeric_hash - ~DrySoil.rho - ~DrySoil.shear_modulus - ~DrySoil.slack_webhook_url - ~DrySoil.ultimate_stress - ~DrySoil.unique_hash - ~DrySoil.unique_id - ~DrySoil.yield_stress - ~DrySoil.name - ~DrySoil.density - ~DrySoil.elastic_modulus - ~DrySoil.yield_strength - ~DrySoil.tensile_strength_ultimate - ~DrySoil.poissons_ratio - ~DrySoil.melting_point - ~DrySoil.maxium_service_temp - ~DrySoil.thermal_conductivity - ~DrySoil.specific_heat - ~DrySoil.thermal_expansion - ~DrySoil.electrical_resistitivity - ~DrySoil.cost_per_kg - ~DrySoil.in_shear_modulus - ~DrySoil.hardness - ~DrySoil.izod - ~DrySoil.factor_of_saftey - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Rock.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Rock.rst.txt deleted file mode 100644 index 99337be..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Rock.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.solid\_materials.Rock -================================== - -.. currentmodule:: engforge.eng.solid_materials - -.. autoclass:: Rock - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Rock.add_fields - ~Rock.change_all_log_lvl - ~Rock.check_ref_slot_type - ~Rock.cls_compile - ~Rock.collect_all_attributes - ~Rock.collect_inst_attributes - ~Rock.compile_classes - ~Rock.copy_config_at_state - ~Rock.critical - ~Rock.debug - ~Rock.difference - ~Rock.error - ~Rock.extract_message - ~Rock.filter - ~Rock.go_through_configurations - ~Rock.info - ~Rock.input_attrs - ~Rock.input_fields - ~Rock.installSTDLogger - ~Rock.internal_configurations - ~Rock.message_with_identiy - ~Rock.msg - ~Rock.numeric_fields - ~Rock.parent_configurations_cls - ~Rock.plot_attributes - ~Rock.pre_compile - ~Rock.resetLog - ~Rock.resetSystemLogs - ~Rock.setattrs - ~Rock.signals_attributes - ~Rock.slack_notification - ~Rock.slot_refs - ~Rock.slots_attributes - ~Rock.solvers_attributes - ~Rock.subclasses - ~Rock.subcls_compile - ~Rock.table_fields - ~Rock.trace_attributes - ~Rock.transients_attributes - ~Rock.validate_class - ~Rock.von_mises_stress_max - ~Rock.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Rock.E - ~Rock.G - ~Rock.allowable_stress - ~Rock.as_dict - ~Rock.attrs_fields - ~Rock.classname - ~Rock.color - ~Rock.displayname - ~Rock.filename - ~Rock.identity - ~Rock.input_as_dict - ~Rock.log_fmt - ~Rock.log_level - ~Rock.log_on - ~Rock.log_silo - ~Rock.logger - ~Rock.nu - ~Rock.numeric_as_dict - ~Rock.numeric_hash - ~Rock.rho - ~Rock.shear_modulus - ~Rock.slack_webhook_url - ~Rock.ultimate_stress - ~Rock.unique_hash - ~Rock.unique_id - ~Rock.yield_stress - ~Rock.name - ~Rock.density - ~Rock.elastic_modulus - ~Rock.yield_strength - ~Rock.tensile_strength_ultimate - ~Rock.poissons_ratio - ~Rock.melting_point - ~Rock.maxium_service_temp - ~Rock.thermal_conductivity - ~Rock.specific_heat - ~Rock.thermal_expansion - ~Rock.electrical_resistitivity - ~Rock.cost_per_kg - ~Rock.in_shear_modulus - ~Rock.hardness - ~Rock.izod - ~Rock.factor_of_saftey - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Rubber.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Rubber.rst.txt deleted file mode 100644 index 55bf48b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.Rubber.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.solid\_materials.Rubber -==================================== - -.. currentmodule:: engforge.eng.solid_materials - -.. autoclass:: Rubber - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Rubber.add_fields - ~Rubber.change_all_log_lvl - ~Rubber.check_ref_slot_type - ~Rubber.cls_compile - ~Rubber.collect_all_attributes - ~Rubber.collect_inst_attributes - ~Rubber.compile_classes - ~Rubber.copy_config_at_state - ~Rubber.critical - ~Rubber.debug - ~Rubber.difference - ~Rubber.error - ~Rubber.extract_message - ~Rubber.filter - ~Rubber.go_through_configurations - ~Rubber.info - ~Rubber.input_attrs - ~Rubber.input_fields - ~Rubber.installSTDLogger - ~Rubber.internal_configurations - ~Rubber.message_with_identiy - ~Rubber.msg - ~Rubber.numeric_fields - ~Rubber.parent_configurations_cls - ~Rubber.plot_attributes - ~Rubber.pre_compile - ~Rubber.resetLog - ~Rubber.resetSystemLogs - ~Rubber.setattrs - ~Rubber.signals_attributes - ~Rubber.slack_notification - ~Rubber.slot_refs - ~Rubber.slots_attributes - ~Rubber.solvers_attributes - ~Rubber.subclasses - ~Rubber.subcls_compile - ~Rubber.table_fields - ~Rubber.trace_attributes - ~Rubber.transients_attributes - ~Rubber.validate_class - ~Rubber.von_mises_stress_max - ~Rubber.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Rubber.E - ~Rubber.G - ~Rubber.allowable_stress - ~Rubber.as_dict - ~Rubber.attrs_fields - ~Rubber.classname - ~Rubber.color - ~Rubber.displayname - ~Rubber.filename - ~Rubber.identity - ~Rubber.input_as_dict - ~Rubber.log_fmt - ~Rubber.log_level - ~Rubber.log_on - ~Rubber.log_silo - ~Rubber.logger - ~Rubber.nu - ~Rubber.numeric_as_dict - ~Rubber.numeric_hash - ~Rubber.rho - ~Rubber.shear_modulus - ~Rubber.slack_webhook_url - ~Rubber.ultimate_stress - ~Rubber.unique_hash - ~Rubber.unique_id - ~Rubber.yield_stress - ~Rubber.name - ~Rubber.density - ~Rubber.elastic_modulus - ~Rubber.yield_strength - ~Rubber.tensile_strength_ultimate - ~Rubber.poissons_ratio - ~Rubber.melting_point - ~Rubber.maxium_service_temp - ~Rubber.thermal_conductivity - ~Rubber.specific_heat - ~Rubber.thermal_expansion - ~Rubber.electrical_resistitivity - ~Rubber.cost_per_kg - ~Rubber.in_shear_modulus - ~Rubber.hardness - ~Rubber.izod - ~Rubber.factor_of_saftey - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.SS_316.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.SS_316.rst.txt deleted file mode 100644 index 73996fc..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.SS_316.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.solid\_materials.SS\_316 -===================================== - -.. currentmodule:: engforge.eng.solid_materials - -.. autoclass:: SS_316 - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SS_316.add_fields - ~SS_316.change_all_log_lvl - ~SS_316.check_ref_slot_type - ~SS_316.cls_compile - ~SS_316.collect_all_attributes - ~SS_316.collect_inst_attributes - ~SS_316.compile_classes - ~SS_316.copy_config_at_state - ~SS_316.critical - ~SS_316.debug - ~SS_316.difference - ~SS_316.error - ~SS_316.extract_message - ~SS_316.filter - ~SS_316.go_through_configurations - ~SS_316.info - ~SS_316.input_attrs - ~SS_316.input_fields - ~SS_316.installSTDLogger - ~SS_316.internal_configurations - ~SS_316.message_with_identiy - ~SS_316.msg - ~SS_316.numeric_fields - ~SS_316.parent_configurations_cls - ~SS_316.plot_attributes - ~SS_316.pre_compile - ~SS_316.resetLog - ~SS_316.resetSystemLogs - ~SS_316.setattrs - ~SS_316.signals_attributes - ~SS_316.slack_notification - ~SS_316.slot_refs - ~SS_316.slots_attributes - ~SS_316.solvers_attributes - ~SS_316.subclasses - ~SS_316.subcls_compile - ~SS_316.table_fields - ~SS_316.trace_attributes - ~SS_316.transients_attributes - ~SS_316.validate_class - ~SS_316.von_mises_stress_max - ~SS_316.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SS_316.E - ~SS_316.G - ~SS_316.allowable_stress - ~SS_316.as_dict - ~SS_316.attrs_fields - ~SS_316.classname - ~SS_316.color - ~SS_316.displayname - ~SS_316.filename - ~SS_316.identity - ~SS_316.input_as_dict - ~SS_316.log_fmt - ~SS_316.log_level - ~SS_316.log_on - ~SS_316.log_silo - ~SS_316.logger - ~SS_316.nu - ~SS_316.numeric_as_dict - ~SS_316.numeric_hash - ~SS_316.rho - ~SS_316.shear_modulus - ~SS_316.slack_webhook_url - ~SS_316.ultimate_stress - ~SS_316.unique_hash - ~SS_316.unique_id - ~SS_316.yield_stress - ~SS_316.name - ~SS_316.density - ~SS_316.elastic_modulus - ~SS_316.yield_strength - ~SS_316.tensile_strength_ultimate - ~SS_316.poissons_ratio - ~SS_316.melting_point - ~SS_316.maxium_service_temp - ~SS_316.thermal_conductivity - ~SS_316.specific_heat - ~SS_316.thermal_expansion - ~SS_316.electrical_resistitivity - ~SS_316.cost_per_kg - ~SS_316.in_shear_modulus - ~SS_316.hardness - ~SS_316.izod - ~SS_316.factor_of_saftey - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.SolidMaterial.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.SolidMaterial.rst.txt deleted file mode 100644 index fe93233..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.SolidMaterial.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.solid\_materials.SolidMaterial -=========================================== - -.. currentmodule:: engforge.eng.solid_materials - -.. autoclass:: SolidMaterial - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SolidMaterial.add_fields - ~SolidMaterial.change_all_log_lvl - ~SolidMaterial.check_ref_slot_type - ~SolidMaterial.cls_compile - ~SolidMaterial.collect_all_attributes - ~SolidMaterial.collect_inst_attributes - ~SolidMaterial.compile_classes - ~SolidMaterial.copy_config_at_state - ~SolidMaterial.critical - ~SolidMaterial.debug - ~SolidMaterial.difference - ~SolidMaterial.error - ~SolidMaterial.extract_message - ~SolidMaterial.filter - ~SolidMaterial.go_through_configurations - ~SolidMaterial.info - ~SolidMaterial.input_attrs - ~SolidMaterial.input_fields - ~SolidMaterial.installSTDLogger - ~SolidMaterial.internal_configurations - ~SolidMaterial.message_with_identiy - ~SolidMaterial.msg - ~SolidMaterial.numeric_fields - ~SolidMaterial.parent_configurations_cls - ~SolidMaterial.plot_attributes - ~SolidMaterial.pre_compile - ~SolidMaterial.resetLog - ~SolidMaterial.resetSystemLogs - ~SolidMaterial.setattrs - ~SolidMaterial.signals_attributes - ~SolidMaterial.slack_notification - ~SolidMaterial.slot_refs - ~SolidMaterial.slots_attributes - ~SolidMaterial.solvers_attributes - ~SolidMaterial.subclasses - ~SolidMaterial.subcls_compile - ~SolidMaterial.table_fields - ~SolidMaterial.trace_attributes - ~SolidMaterial.transients_attributes - ~SolidMaterial.validate_class - ~SolidMaterial.von_mises_stress_max - ~SolidMaterial.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SolidMaterial.E - ~SolidMaterial.G - ~SolidMaterial.allowable_stress - ~SolidMaterial.as_dict - ~SolidMaterial.attrs_fields - ~SolidMaterial.classname - ~SolidMaterial.color - ~SolidMaterial.displayname - ~SolidMaterial.filename - ~SolidMaterial.identity - ~SolidMaterial.input_as_dict - ~SolidMaterial.log_fmt - ~SolidMaterial.log_level - ~SolidMaterial.log_on - ~SolidMaterial.log_silo - ~SolidMaterial.logger - ~SolidMaterial.nu - ~SolidMaterial.numeric_as_dict - ~SolidMaterial.numeric_hash - ~SolidMaterial.rho - ~SolidMaterial.shear_modulus - ~SolidMaterial.slack_webhook_url - ~SolidMaterial.ultimate_stress - ~SolidMaterial.unique_hash - ~SolidMaterial.unique_id - ~SolidMaterial.yield_stress - ~SolidMaterial.name - ~SolidMaterial.density - ~SolidMaterial.elastic_modulus - ~SolidMaterial.in_shear_modulus - ~SolidMaterial.yield_strength - ~SolidMaterial.tensile_strength_ultimate - ~SolidMaterial.hardness - ~SolidMaterial.izod - ~SolidMaterial.poissons_ratio - ~SolidMaterial.melting_point - ~SolidMaterial.maxium_service_temp - ~SolidMaterial.thermal_conductivity - ~SolidMaterial.specific_heat - ~SolidMaterial.thermal_expansion - ~SolidMaterial.electrical_resistitivity - ~SolidMaterial.cost_per_kg - ~SolidMaterial.factor_of_saftey - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.WetSoil.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.WetSoil.rst.txt deleted file mode 100644 index 8d4d6b8..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.WetSoil.rst.txt +++ /dev/null @@ -1,114 +0,0 @@ -engforge.eng.solid\_materials.WetSoil -===================================== - -.. currentmodule:: engforge.eng.solid_materials - -.. autoclass:: WetSoil - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~WetSoil.add_fields - ~WetSoil.change_all_log_lvl - ~WetSoil.check_ref_slot_type - ~WetSoil.cls_compile - ~WetSoil.collect_all_attributes - ~WetSoil.collect_inst_attributes - ~WetSoil.compile_classes - ~WetSoil.copy_config_at_state - ~WetSoil.critical - ~WetSoil.debug - ~WetSoil.difference - ~WetSoil.error - ~WetSoil.extract_message - ~WetSoil.filter - ~WetSoil.go_through_configurations - ~WetSoil.info - ~WetSoil.input_attrs - ~WetSoil.input_fields - ~WetSoil.installSTDLogger - ~WetSoil.internal_configurations - ~WetSoil.message_with_identiy - ~WetSoil.msg - ~WetSoil.numeric_fields - ~WetSoil.parent_configurations_cls - ~WetSoil.plot_attributes - ~WetSoil.pre_compile - ~WetSoil.resetLog - ~WetSoil.resetSystemLogs - ~WetSoil.setattrs - ~WetSoil.signals_attributes - ~WetSoil.slack_notification - ~WetSoil.slot_refs - ~WetSoil.slots_attributes - ~WetSoil.solvers_attributes - ~WetSoil.subclasses - ~WetSoil.subcls_compile - ~WetSoil.table_fields - ~WetSoil.trace_attributes - ~WetSoil.transients_attributes - ~WetSoil.validate_class - ~WetSoil.von_mises_stress_max - ~WetSoil.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~WetSoil.E - ~WetSoil.G - ~WetSoil.allowable_stress - ~WetSoil.as_dict - ~WetSoil.attrs_fields - ~WetSoil.classname - ~WetSoil.color - ~WetSoil.displayname - ~WetSoil.filename - ~WetSoil.identity - ~WetSoil.input_as_dict - ~WetSoil.log_fmt - ~WetSoil.log_level - ~WetSoil.log_on - ~WetSoil.log_silo - ~WetSoil.logger - ~WetSoil.nu - ~WetSoil.numeric_as_dict - ~WetSoil.numeric_hash - ~WetSoil.rho - ~WetSoil.shear_modulus - ~WetSoil.slack_webhook_url - ~WetSoil.ultimate_stress - ~WetSoil.unique_hash - ~WetSoil.unique_id - ~WetSoil.yield_stress - ~WetSoil.name - ~WetSoil.density - ~WetSoil.elastic_modulus - ~WetSoil.yield_strength - ~WetSoil.tensile_strength_ultimate - ~WetSoil.poissons_ratio - ~WetSoil.melting_point - ~WetSoil.maxium_service_temp - ~WetSoil.thermal_conductivity - ~WetSoil.specific_heat - ~WetSoil.thermal_expansion - ~WetSoil.electrical_resistitivity - ~WetSoil.cost_per_kg - ~WetSoil.in_shear_modulus - ~WetSoil.hardness - ~WetSoil.izod - ~WetSoil.factor_of_saftey - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ih.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ih.rst.txt deleted file mode 100644 index 77af855..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.ih.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.solid\_materials.ih -================================ - -.. currentmodule:: engforge.eng.solid_materials - -.. autofunction:: ih \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.random_color.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.random_color.rst.txt deleted file mode 100644 index 72e02f0..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.random_color.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.solid\_materials.random\_color -=========================================== - -.. currentmodule:: engforge.eng.solid_materials - -.. autofunction:: random_color \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.rst.txt deleted file mode 100644 index bb02665..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.solid_materials.rst.txt +++ /dev/null @@ -1,51 +0,0 @@ -engforge.eng.solid\_materials -============================= - -.. automodule:: engforge.eng.solid_materials - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - ih - random_color - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - ANSI_4130 - ANSI_4340 - Aluminum - CarbonFiber - Concrete - DrySoil - Rock - Rubber - SS_316 - SolidMaterial - WetSoil - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.Beam.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.Beam.rst.txt deleted file mode 100644 index 9fef51d..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.Beam.rst.txt +++ /dev/null @@ -1,291 +0,0 @@ -engforge.eng.structure\_beams.Beam -================================== - -.. currentmodule:: engforge.eng.structure_beams - -.. autoclass:: Beam - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Beam.add_fields - ~Beam.all_categories - ~Beam.apply_distributed_load - ~Beam.apply_gravity_force - ~Beam.apply_gravity_force_distribution - ~Beam.apply_local_distributed_load - ~Beam.apply_local_pt_load - ~Beam.apply_pt_load - ~Beam.calculate_item_cost - ~Beam.calculate_stress - ~Beam.change_all_log_lvl - ~Beam.check_ref_slot_type - ~Beam.class_cost_properties - ~Beam.cls_all_attrs_fields - ~Beam.cls_all_property_keys - ~Beam.cls_all_property_labels - ~Beam.cls_compile - ~Beam.collect_all_attributes - ~Beam.collect_comp_refs - ~Beam.collect_dynamic_refs - ~Beam.collect_inst_attributes - ~Beam.collect_post_update_refs - ~Beam.collect_solver_refs - ~Beam.collect_update_refs - ~Beam.comp_references - ~Beam.compile_classes - ~Beam.copy_config_at_state - ~Beam.cost_categories_at_term - ~Beam.costs_at_term - ~Beam.create_dynamic_matricies - ~Beam.create_feedthrough_matrix - ~Beam.create_input_matrix - ~Beam.create_output_constants - ~Beam.create_output_matrix - ~Beam.create_state_constants - ~Beam.create_state_matrix - ~Beam.critical - ~Beam.custom_cost - ~Beam.debug - ~Beam.default_cost - ~Beam.determine_nearest_stationary_state - ~Beam.dict_itemized_costs - ~Beam.difference - ~Beam.error - ~Beam.estimate_stress - ~Beam.extract_message - ~Beam.filter - ~Beam.format_columns - ~Beam.get_forces_at - ~Beam.get_stress_at - ~Beam.get_system_input_refs - ~Beam.get_valid_force_choices - ~Beam.go_through_configurations - ~Beam.info - ~Beam.input_attrs - ~Beam.input_fields - ~Beam.installSTDLogger - ~Beam.internal_components - ~Beam.internal_configurations - ~Beam.internal_references - ~Beam.internal_systems - ~Beam.internal_tabulations - ~Beam.linear_output - ~Beam.linear_step - ~Beam.locate - ~Beam.locate_ref - ~Beam.max_von_mises - ~Beam.max_von_mises_by_case - ~Beam.message_with_identiy - ~Beam.msg - ~Beam.nonlinear_output - ~Beam.nonlinear_step - ~Beam.numeric_fields - ~Beam.parent_configurations_cls - ~Beam.parse_run_kwargs - ~Beam.parse_simulation_input - ~Beam.plot_attributes - ~Beam.post_update - ~Beam.pre_compile - ~Beam.print_info - ~Beam.rate - ~Beam.rate_linear - ~Beam.rate_nonlinear - ~Beam.ref_dXdt - ~Beam.resetLog - ~Beam.resetSystemLogs - ~Beam.reset_cls_costs - ~Beam.section_results - ~Beam.section_stresses - ~Beam.set_attr - ~Beam.set_default_costs - ~Beam.set_time - ~Beam.setattrs - ~Beam.show_mesh - ~Beam.signals_attributes - ~Beam.slack_notification - ~Beam.slot_refs - ~Beam.slots_attributes - ~Beam.smart_split_dataframe - ~Beam.solvers_attributes - ~Beam.step - ~Beam.sub_costs - ~Beam.subclasses - ~Beam.subcls_compile - ~Beam.sum_costs - ~Beam.system_properties_classdef - ~Beam.system_references - ~Beam.table_fields - ~Beam.trace_attributes - ~Beam.transients_attributes - ~Beam.update - ~Beam.update_dflt_costs - ~Beam.update_dynamics - ~Beam.update_feedthrough - ~Beam.update_input - ~Beam.update_output_constants - ~Beam.update_output_matrix - ~Beam.update_section - ~Beam.update_state - ~Beam.update_state_constants - ~Beam.validate_class - ~Beam.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Beam.A - ~Beam.Ao - ~Beam.CG_RELATIVE_INERTIA - ~Beam.E - ~Beam.Fg - ~Beam.G - ~Beam.GLOBAL_INERTIA - ~Beam.INERTIA - ~Beam.ITensor - ~Beam.Imx - ~Beam.Imxy - ~Beam.Imy - ~Beam.Imz - ~Beam.Ix - ~Beam.Ixy - ~Beam.Iy - ~Beam.Iz - ~Beam.Izo - ~Beam.J - ~Beam.Jm - ~Beam.L - ~Beam.LOCAL_INERTIA - ~Beam.L_vec - ~Beam.P1 - ~Beam.P2 - ~Beam.ReverseRotationMatrix - ~Beam.RotationMatrix - ~Beam.Ut_ref - ~Beam.Vol - ~Beam.Vol_outside - ~Beam.X1 - ~Beam.X2 - ~Beam.Xcg - ~Beam.Xt_ref - ~Beam.Y1 - ~Beam.Y2 - ~Beam.Ycg - ~Beam.Yt_ref - ~Beam.Z1 - ~Beam.Z2 - ~Beam.Zcg - ~Beam.anything_changed - ~Beam.as_dict - ~Beam.attrs_fields - ~Beam.centroid2d - ~Beam.centroid3d - ~Beam.classname - ~Beam.cog - ~Beam.combine_cost - ~Beam.cost - ~Beam.cost_categories - ~Beam.cost_properties - ~Beam.current_combo - ~Beam.dXtdt_ref - ~Beam.data_dict - ~Beam.dataframe_constants - ~Beam.dataframe_variants - ~Beam.displayname - ~Beam.dynamic_A - ~Beam.dynamic_B - ~Beam.dynamic_C - ~Beam.dynamic_D - ~Beam.dynamic_F - ~Beam.dynamic_K - ~Beam.dynamic_input - ~Beam.dynamic_input_vars - ~Beam.dynamic_output - ~Beam.dynamic_output_vars - ~Beam.dynamic_state - ~Beam.dynamic_state_vars - ~Beam.fail_factor_estimate - ~Beam.filename - ~Beam.future_costs - ~Beam.identity - ~Beam.input_as_dict - ~Beam.item_cost - ~Beam.itemized_costs - ~Beam.last_context - ~Beam.length - ~Beam.log_fmt - ~Beam.log_level - ~Beam.log_on - ~Beam.log_silo - ~Beam.logger - ~Beam.mass - ~Beam.max_axial - ~Beam.max_deflection_x - ~Beam.max_deflection_y - ~Beam.max_moment_y - ~Beam.max_moment_z - ~Beam.max_shear_y - ~Beam.max_shear_z - ~Beam.max_stress_estimate - ~Beam.max_torsion - ~Beam.member - ~Beam.min_axial - ~Beam.min_deflection_x - ~Beam.min_deflection_y - ~Beam.min_moment_y - ~Beam.min_moment_z - ~Beam.min_shear_y - ~Beam.min_shear_z - ~Beam.min_stress_xy - ~Beam.min_torsion - ~Beam.n1 - ~Beam.n2 - ~Beam.n_vec - ~Beam.nonlinear - ~Beam.numeric_as_dict - ~Beam.numeric_hash - ~Beam.plotable_variables - ~Beam.section_mass - ~Beam.skip_plot_vars - ~Beam.slack_webhook_url - ~Beam.static_A - ~Beam.static_B - ~Beam.static_C - ~Beam.static_D - ~Beam.static_F - ~Beam.static_K - ~Beam.sub_items_cost - ~Beam.system_id - ~Beam.time - ~Beam.unique_hash - ~Beam.update_interval - ~Beam.von_mises_stress_l - ~Beam.structure - ~Beam.name - ~Beam.material - ~Beam.section - ~Beam.in_Iy - ~Beam.in_Ix - ~Beam.in_J - ~Beam.in_A - ~Beam.in_Ixy - ~Beam.min_mesh_size - ~Beam.analysis_intervals - ~Beam.parent - ~Beam.cost_per_item - ~Beam.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.rotation_matrix_from_vectors.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.rotation_matrix_from_vectors.rst.txt deleted file mode 100644 index 0345f30..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.rotation_matrix_from_vectors.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.structure\_beams.rotation\_matrix\_from\_vectors -============================================================= - -.. currentmodule:: engforge.eng.structure_beams - -.. autofunction:: rotation_matrix_from_vectors \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.rst.txt deleted file mode 100644 index 291afdc..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.structure_beams.rst.txt +++ /dev/null @@ -1,40 +0,0 @@ -engforge.eng.structure\_beams -============================= - -.. automodule:: engforge.eng.structure_beams - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - rotation_matrix_from_vectors - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - Beam - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleCompressor.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleCompressor.rst.txt deleted file mode 100644 index 92e811f..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleCompressor.rst.txt +++ /dev/null @@ -1,177 +0,0 @@ -engforge.eng.thermodynamics.SimpleCompressor -============================================ - -.. currentmodule:: engforge.eng.thermodynamics - -.. autoclass:: SimpleCompressor - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SimpleCompressor.add_fields - ~SimpleCompressor.change_all_log_lvl - ~SimpleCompressor.check_ref_slot_type - ~SimpleCompressor.cls_all_attrs_fields - ~SimpleCompressor.cls_all_property_keys - ~SimpleCompressor.cls_all_property_labels - ~SimpleCompressor.cls_compile - ~SimpleCompressor.collect_all_attributes - ~SimpleCompressor.collect_comp_refs - ~SimpleCompressor.collect_dynamic_refs - ~SimpleCompressor.collect_inst_attributes - ~SimpleCompressor.collect_post_update_refs - ~SimpleCompressor.collect_solver_refs - ~SimpleCompressor.collect_update_refs - ~SimpleCompressor.comp_references - ~SimpleCompressor.compile_classes - ~SimpleCompressor.copy_config_at_state - ~SimpleCompressor.create_dynamic_matricies - ~SimpleCompressor.create_feedthrough_matrix - ~SimpleCompressor.create_input_matrix - ~SimpleCompressor.create_output_constants - ~SimpleCompressor.create_output_matrix - ~SimpleCompressor.create_state_constants - ~SimpleCompressor.create_state_matrix - ~SimpleCompressor.critical - ~SimpleCompressor.debug - ~SimpleCompressor.determine_nearest_stationary_state - ~SimpleCompressor.difference - ~SimpleCompressor.error - ~SimpleCompressor.extract_message - ~SimpleCompressor.filter - ~SimpleCompressor.format_columns - ~SimpleCompressor.get_system_input_refs - ~SimpleCompressor.go_through_configurations - ~SimpleCompressor.info - ~SimpleCompressor.input_attrs - ~SimpleCompressor.input_fields - ~SimpleCompressor.installSTDLogger - ~SimpleCompressor.internal_components - ~SimpleCompressor.internal_configurations - ~SimpleCompressor.internal_references - ~SimpleCompressor.internal_systems - ~SimpleCompressor.internal_tabulations - ~SimpleCompressor.linear_output - ~SimpleCompressor.linear_step - ~SimpleCompressor.locate - ~SimpleCompressor.locate_ref - ~SimpleCompressor.message_with_identiy - ~SimpleCompressor.msg - ~SimpleCompressor.nonlinear_output - ~SimpleCompressor.nonlinear_step - ~SimpleCompressor.numeric_fields - ~SimpleCompressor.parent_configurations_cls - ~SimpleCompressor.parse_run_kwargs - ~SimpleCompressor.parse_simulation_input - ~SimpleCompressor.plot_attributes - ~SimpleCompressor.post_update - ~SimpleCompressor.pre_compile - ~SimpleCompressor.pressure_out - ~SimpleCompressor.print_info - ~SimpleCompressor.rate - ~SimpleCompressor.rate_linear - ~SimpleCompressor.rate_nonlinear - ~SimpleCompressor.ref_dXdt - ~SimpleCompressor.resetLog - ~SimpleCompressor.resetSystemLogs - ~SimpleCompressor.set_attr - ~SimpleCompressor.set_time - ~SimpleCompressor.setattrs - ~SimpleCompressor.signals_attributes - ~SimpleCompressor.slack_notification - ~SimpleCompressor.slot_refs - ~SimpleCompressor.slots_attributes - ~SimpleCompressor.smart_split_dataframe - ~SimpleCompressor.solvers_attributes - ~SimpleCompressor.step - ~SimpleCompressor.subclasses - ~SimpleCompressor.subcls_compile - ~SimpleCompressor.system_properties_classdef - ~SimpleCompressor.system_references - ~SimpleCompressor.table_fields - ~SimpleCompressor.trace_attributes - ~SimpleCompressor.transients_attributes - ~SimpleCompressor.update - ~SimpleCompressor.update_dynamics - ~SimpleCompressor.update_feedthrough - ~SimpleCompressor.update_input - ~SimpleCompressor.update_output_constants - ~SimpleCompressor.update_output_matrix - ~SimpleCompressor.update_state - ~SimpleCompressor.update_state_constants - ~SimpleCompressor.validate_class - ~SimpleCompressor.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SimpleCompressor.Tout - ~SimpleCompressor.Ut_ref - ~SimpleCompressor.Xt_ref - ~SimpleCompressor.Yt_ref - ~SimpleCompressor.anything_changed - ~SimpleCompressor.as_dict - ~SimpleCompressor.attrs_fields - ~SimpleCompressor.classname - ~SimpleCompressor.dXtdt_ref - ~SimpleCompressor.data_dict - ~SimpleCompressor.dataframe_constants - ~SimpleCompressor.dataframe_variants - ~SimpleCompressor.displayname - ~SimpleCompressor.dynamic_A - ~SimpleCompressor.dynamic_B - ~SimpleCompressor.dynamic_C - ~SimpleCompressor.dynamic_D - ~SimpleCompressor.dynamic_F - ~SimpleCompressor.dynamic_K - ~SimpleCompressor.dynamic_input - ~SimpleCompressor.dynamic_input_vars - ~SimpleCompressor.dynamic_output - ~SimpleCompressor.dynamic_output_vars - ~SimpleCompressor.dynamic_state - ~SimpleCompressor.dynamic_state_vars - ~SimpleCompressor.filename - ~SimpleCompressor.identity - ~SimpleCompressor.input_as_dict - ~SimpleCompressor.last_context - ~SimpleCompressor.log_fmt - ~SimpleCompressor.log_level - ~SimpleCompressor.log_on - ~SimpleCompressor.log_silo - ~SimpleCompressor.logger - ~SimpleCompressor.nonlinear - ~SimpleCompressor.numeric_as_dict - ~SimpleCompressor.numeric_hash - ~SimpleCompressor.plotable_variables - ~SimpleCompressor.power_input - ~SimpleCompressor.skip_plot_vars - ~SimpleCompressor.slack_webhook_url - ~SimpleCompressor.static_A - ~SimpleCompressor.static_B - ~SimpleCompressor.static_C - ~SimpleCompressor.static_D - ~SimpleCompressor.static_F - ~SimpleCompressor.static_K - ~SimpleCompressor.system_id - ~SimpleCompressor.temperature_ratio - ~SimpleCompressor.time - ~SimpleCompressor.unique_hash - ~SimpleCompressor.update_interval - ~SimpleCompressor.parent - ~SimpleCompressor.name - ~SimpleCompressor.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleHeatExchanger.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleHeatExchanger.rst.txt deleted file mode 100644 index bccba5f..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleHeatExchanger.rst.txt +++ /dev/null @@ -1,180 +0,0 @@ -engforge.eng.thermodynamics.SimpleHeatExchanger -=============================================== - -.. currentmodule:: engforge.eng.thermodynamics - -.. autoclass:: SimpleHeatExchanger - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SimpleHeatExchanger.add_fields - ~SimpleHeatExchanger.change_all_log_lvl - ~SimpleHeatExchanger.check_ref_slot_type - ~SimpleHeatExchanger.cls_all_attrs_fields - ~SimpleHeatExchanger.cls_all_property_keys - ~SimpleHeatExchanger.cls_all_property_labels - ~SimpleHeatExchanger.cls_compile - ~SimpleHeatExchanger.collect_all_attributes - ~SimpleHeatExchanger.collect_comp_refs - ~SimpleHeatExchanger.collect_dynamic_refs - ~SimpleHeatExchanger.collect_inst_attributes - ~SimpleHeatExchanger.collect_post_update_refs - ~SimpleHeatExchanger.collect_solver_refs - ~SimpleHeatExchanger.collect_update_refs - ~SimpleHeatExchanger.comp_references - ~SimpleHeatExchanger.compile_classes - ~SimpleHeatExchanger.copy_config_at_state - ~SimpleHeatExchanger.create_dynamic_matricies - ~SimpleHeatExchanger.create_feedthrough_matrix - ~SimpleHeatExchanger.create_input_matrix - ~SimpleHeatExchanger.create_output_constants - ~SimpleHeatExchanger.create_output_matrix - ~SimpleHeatExchanger.create_state_constants - ~SimpleHeatExchanger.create_state_matrix - ~SimpleHeatExchanger.critical - ~SimpleHeatExchanger.debug - ~SimpleHeatExchanger.determine_nearest_stationary_state - ~SimpleHeatExchanger.difference - ~SimpleHeatExchanger.error - ~SimpleHeatExchanger.extract_message - ~SimpleHeatExchanger.filter - ~SimpleHeatExchanger.format_columns - ~SimpleHeatExchanger.get_system_input_refs - ~SimpleHeatExchanger.go_through_configurations - ~SimpleHeatExchanger.info - ~SimpleHeatExchanger.input_attrs - ~SimpleHeatExchanger.input_fields - ~SimpleHeatExchanger.installSTDLogger - ~SimpleHeatExchanger.internal_components - ~SimpleHeatExchanger.internal_configurations - ~SimpleHeatExchanger.internal_references - ~SimpleHeatExchanger.internal_systems - ~SimpleHeatExchanger.internal_tabulations - ~SimpleHeatExchanger.linear_output - ~SimpleHeatExchanger.linear_step - ~SimpleHeatExchanger.locate - ~SimpleHeatExchanger.locate_ref - ~SimpleHeatExchanger.message_with_identiy - ~SimpleHeatExchanger.msg - ~SimpleHeatExchanger.nonlinear_output - ~SimpleHeatExchanger.nonlinear_step - ~SimpleHeatExchanger.numeric_fields - ~SimpleHeatExchanger.parent_configurations_cls - ~SimpleHeatExchanger.parse_run_kwargs - ~SimpleHeatExchanger.parse_simulation_input - ~SimpleHeatExchanger.plot_attributes - ~SimpleHeatExchanger.post_update - ~SimpleHeatExchanger.pre_compile - ~SimpleHeatExchanger.print_info - ~SimpleHeatExchanger.rate - ~SimpleHeatExchanger.rate_linear - ~SimpleHeatExchanger.rate_nonlinear - ~SimpleHeatExchanger.ref_dXdt - ~SimpleHeatExchanger.resetLog - ~SimpleHeatExchanger.resetSystemLogs - ~SimpleHeatExchanger.set_attr - ~SimpleHeatExchanger.set_time - ~SimpleHeatExchanger.setattrs - ~SimpleHeatExchanger.signals_attributes - ~SimpleHeatExchanger.slack_notification - ~SimpleHeatExchanger.slot_refs - ~SimpleHeatExchanger.slots_attributes - ~SimpleHeatExchanger.smart_split_dataframe - ~SimpleHeatExchanger.solvers_attributes - ~SimpleHeatExchanger.step - ~SimpleHeatExchanger.subclasses - ~SimpleHeatExchanger.subcls_compile - ~SimpleHeatExchanger.system_properties_classdef - ~SimpleHeatExchanger.system_references - ~SimpleHeatExchanger.table_fields - ~SimpleHeatExchanger.trace_attributes - ~SimpleHeatExchanger.transients_attributes - ~SimpleHeatExchanger.update - ~SimpleHeatExchanger.update_dynamics - ~SimpleHeatExchanger.update_feedthrough - ~SimpleHeatExchanger.update_input - ~SimpleHeatExchanger.update_output_constants - ~SimpleHeatExchanger.update_output_matrix - ~SimpleHeatExchanger.update_state - ~SimpleHeatExchanger.update_state_constants - ~SimpleHeatExchanger.validate_class - ~SimpleHeatExchanger.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SimpleHeatExchanger.CmatC - ~SimpleHeatExchanger.CmatH - ~SimpleHeatExchanger.Qdot - ~SimpleHeatExchanger.Qdot_ideal - ~SimpleHeatExchanger.Tc_out - ~SimpleHeatExchanger.Th_out - ~SimpleHeatExchanger.Tout_ideal - ~SimpleHeatExchanger.Ut_ref - ~SimpleHeatExchanger.Xt_ref - ~SimpleHeatExchanger.Yt_ref - ~SimpleHeatExchanger.anything_changed - ~SimpleHeatExchanger.as_dict - ~SimpleHeatExchanger.attrs_fields - ~SimpleHeatExchanger.classname - ~SimpleHeatExchanger.dXtdt_ref - ~SimpleHeatExchanger.data_dict - ~SimpleHeatExchanger.dataframe_constants - ~SimpleHeatExchanger.dataframe_variants - ~SimpleHeatExchanger.displayname - ~SimpleHeatExchanger.dynamic_A - ~SimpleHeatExchanger.dynamic_B - ~SimpleHeatExchanger.dynamic_C - ~SimpleHeatExchanger.dynamic_D - ~SimpleHeatExchanger.dynamic_F - ~SimpleHeatExchanger.dynamic_K - ~SimpleHeatExchanger.dynamic_input - ~SimpleHeatExchanger.dynamic_input_vars - ~SimpleHeatExchanger.dynamic_output - ~SimpleHeatExchanger.dynamic_output_vars - ~SimpleHeatExchanger.dynamic_state - ~SimpleHeatExchanger.dynamic_state_vars - ~SimpleHeatExchanger.filename - ~SimpleHeatExchanger.identity - ~SimpleHeatExchanger.input_as_dict - ~SimpleHeatExchanger.last_context - ~SimpleHeatExchanger.log_fmt - ~SimpleHeatExchanger.log_level - ~SimpleHeatExchanger.log_on - ~SimpleHeatExchanger.log_silo - ~SimpleHeatExchanger.logger - ~SimpleHeatExchanger.nonlinear - ~SimpleHeatExchanger.numeric_as_dict - ~SimpleHeatExchanger.numeric_hash - ~SimpleHeatExchanger.plotable_variables - ~SimpleHeatExchanger.skip_plot_vars - ~SimpleHeatExchanger.slack_webhook_url - ~SimpleHeatExchanger.static_A - ~SimpleHeatExchanger.static_B - ~SimpleHeatExchanger.static_C - ~SimpleHeatExchanger.static_D - ~SimpleHeatExchanger.static_F - ~SimpleHeatExchanger.static_K - ~SimpleHeatExchanger.system_id - ~SimpleHeatExchanger.time - ~SimpleHeatExchanger.unique_hash - ~SimpleHeatExchanger.update_interval - ~SimpleHeatExchanger.parent - ~SimpleHeatExchanger.name - ~SimpleHeatExchanger.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimplePump.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimplePump.rst.txt deleted file mode 100644 index d077e8c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimplePump.rst.txt +++ /dev/null @@ -1,181 +0,0 @@ -engforge.eng.thermodynamics.SimplePump -====================================== - -.. currentmodule:: engforge.eng.thermodynamics - -.. autoclass:: SimplePump - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SimplePump.add_fields - ~SimplePump.change_all_log_lvl - ~SimplePump.check_ref_slot_type - ~SimplePump.cls_all_attrs_fields - ~SimplePump.cls_all_property_keys - ~SimplePump.cls_all_property_labels - ~SimplePump.cls_compile - ~SimplePump.collect_all_attributes - ~SimplePump.collect_comp_refs - ~SimplePump.collect_dynamic_refs - ~SimplePump.collect_inst_attributes - ~SimplePump.collect_post_update_refs - ~SimplePump.collect_solver_refs - ~SimplePump.collect_update_refs - ~SimplePump.comp_references - ~SimplePump.compile_classes - ~SimplePump.copy_config_at_state - ~SimplePump.create_dynamic_matricies - ~SimplePump.create_feedthrough_matrix - ~SimplePump.create_input_matrix - ~SimplePump.create_output_constants - ~SimplePump.create_output_matrix - ~SimplePump.create_state_constants - ~SimplePump.create_state_matrix - ~SimplePump.critical - ~SimplePump.debug - ~SimplePump.determine_nearest_stationary_state - ~SimplePump.difference - ~SimplePump.error - ~SimplePump.eval - ~SimplePump.extract_message - ~SimplePump.filter - ~SimplePump.format_columns - ~SimplePump.get_system_input_refs - ~SimplePump.go_through_configurations - ~SimplePump.info - ~SimplePump.input_attrs - ~SimplePump.input_fields - ~SimplePump.installSTDLogger - ~SimplePump.internal_components - ~SimplePump.internal_configurations - ~SimplePump.internal_references - ~SimplePump.internal_systems - ~SimplePump.internal_tabulations - ~SimplePump.linear_output - ~SimplePump.linear_step - ~SimplePump.locate - ~SimplePump.locate_ref - ~SimplePump.message_with_identiy - ~SimplePump.msg - ~SimplePump.nonlinear_output - ~SimplePump.nonlinear_step - ~SimplePump.numeric_fields - ~SimplePump.parent_configurations_cls - ~SimplePump.parse_run_kwargs - ~SimplePump.parse_simulation_input - ~SimplePump.plot_attributes - ~SimplePump.post_update - ~SimplePump.pre_compile - ~SimplePump.print_info - ~SimplePump.rate - ~SimplePump.rate_linear - ~SimplePump.rate_nonlinear - ~SimplePump.ref_dXdt - ~SimplePump.resetLog - ~SimplePump.resetSystemLogs - ~SimplePump.set_attr - ~SimplePump.set_time - ~SimplePump.setattrs - ~SimplePump.signals_attributes - ~SimplePump.slack_notification - ~SimplePump.slot_refs - ~SimplePump.slots_attributes - ~SimplePump.smart_split_dataframe - ~SimplePump.solvers_attributes - ~SimplePump.step - ~SimplePump.subclasses - ~SimplePump.subcls_compile - ~SimplePump.system_properties_classdef - ~SimplePump.system_references - ~SimplePump.table_fields - ~SimplePump.trace_attributes - ~SimplePump.transients_attributes - ~SimplePump.update - ~SimplePump.update_dynamics - ~SimplePump.update_feedthrough - ~SimplePump.update_input - ~SimplePump.update_output_constants - ~SimplePump.update_output_matrix - ~SimplePump.update_state - ~SimplePump.update_state_constants - ~SimplePump.validate_class - ~SimplePump.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SimplePump.Pout - ~SimplePump.Tout - ~SimplePump.Ut_ref - ~SimplePump.Xt_ref - ~SimplePump.Yt_ref - ~SimplePump.anything_changed - ~SimplePump.as_dict - ~SimplePump.attrs_fields - ~SimplePump.classname - ~SimplePump.cost - ~SimplePump.dXtdt_ref - ~SimplePump.data_dict - ~SimplePump.dataframe_constants - ~SimplePump.dataframe_variants - ~SimplePump.displayname - ~SimplePump.dynamic_A - ~SimplePump.dynamic_B - ~SimplePump.dynamic_C - ~SimplePump.dynamic_D - ~SimplePump.dynamic_F - ~SimplePump.dynamic_K - ~SimplePump.dynamic_input - ~SimplePump.dynamic_input_vars - ~SimplePump.dynamic_output - ~SimplePump.dynamic_output_vars - ~SimplePump.dynamic_state - ~SimplePump.dynamic_state_vars - ~SimplePump.filename - ~SimplePump.identity - ~SimplePump.input_as_dict - ~SimplePump.last_context - ~SimplePump.log_fmt - ~SimplePump.log_level - ~SimplePump.log_on - ~SimplePump.log_silo - ~SimplePump.logger - ~SimplePump.nonlinear - ~SimplePump.numeric_as_dict - ~SimplePump.numeric_hash - ~SimplePump.plotable_variables - ~SimplePump.power_input - ~SimplePump.pressure_delta - ~SimplePump.skip_plot_vars - ~SimplePump.slack_webhook_url - ~SimplePump.static_A - ~SimplePump.static_B - ~SimplePump.static_C - ~SimplePump.static_D - ~SimplePump.static_F - ~SimplePump.static_K - ~SimplePump.system_id - ~SimplePump.temperature_delta - ~SimplePump.time - ~SimplePump.unique_hash - ~SimplePump.update_interval - ~SimplePump.volumetric_flow - ~SimplePump.parent - ~SimplePump.name - ~SimplePump.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleTurbine.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleTurbine.rst.txt deleted file mode 100644 index fd6a627..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.SimpleTurbine.rst.txt +++ /dev/null @@ -1,176 +0,0 @@ -engforge.eng.thermodynamics.SimpleTurbine -========================================= - -.. currentmodule:: engforge.eng.thermodynamics - -.. autoclass:: SimpleTurbine - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SimpleTurbine.add_fields - ~SimpleTurbine.change_all_log_lvl - ~SimpleTurbine.check_ref_slot_type - ~SimpleTurbine.cls_all_attrs_fields - ~SimpleTurbine.cls_all_property_keys - ~SimpleTurbine.cls_all_property_labels - ~SimpleTurbine.cls_compile - ~SimpleTurbine.collect_all_attributes - ~SimpleTurbine.collect_comp_refs - ~SimpleTurbine.collect_dynamic_refs - ~SimpleTurbine.collect_inst_attributes - ~SimpleTurbine.collect_post_update_refs - ~SimpleTurbine.collect_solver_refs - ~SimpleTurbine.collect_update_refs - ~SimpleTurbine.comp_references - ~SimpleTurbine.compile_classes - ~SimpleTurbine.copy_config_at_state - ~SimpleTurbine.create_dynamic_matricies - ~SimpleTurbine.create_feedthrough_matrix - ~SimpleTurbine.create_input_matrix - ~SimpleTurbine.create_output_constants - ~SimpleTurbine.create_output_matrix - ~SimpleTurbine.create_state_constants - ~SimpleTurbine.create_state_matrix - ~SimpleTurbine.critical - ~SimpleTurbine.debug - ~SimpleTurbine.determine_nearest_stationary_state - ~SimpleTurbine.difference - ~SimpleTurbine.error - ~SimpleTurbine.extract_message - ~SimpleTurbine.filter - ~SimpleTurbine.format_columns - ~SimpleTurbine.get_system_input_refs - ~SimpleTurbine.go_through_configurations - ~SimpleTurbine.info - ~SimpleTurbine.input_attrs - ~SimpleTurbine.input_fields - ~SimpleTurbine.installSTDLogger - ~SimpleTurbine.internal_components - ~SimpleTurbine.internal_configurations - ~SimpleTurbine.internal_references - ~SimpleTurbine.internal_systems - ~SimpleTurbine.internal_tabulations - ~SimpleTurbine.linear_output - ~SimpleTurbine.linear_step - ~SimpleTurbine.locate - ~SimpleTurbine.locate_ref - ~SimpleTurbine.message_with_identiy - ~SimpleTurbine.msg - ~SimpleTurbine.nonlinear_output - ~SimpleTurbine.nonlinear_step - ~SimpleTurbine.numeric_fields - ~SimpleTurbine.parent_configurations_cls - ~SimpleTurbine.parse_run_kwargs - ~SimpleTurbine.parse_simulation_input - ~SimpleTurbine.plot_attributes - ~SimpleTurbine.post_update - ~SimpleTurbine.pre_compile - ~SimpleTurbine.print_info - ~SimpleTurbine.rate - ~SimpleTurbine.rate_linear - ~SimpleTurbine.rate_nonlinear - ~SimpleTurbine.ref_dXdt - ~SimpleTurbine.resetLog - ~SimpleTurbine.resetSystemLogs - ~SimpleTurbine.set_attr - ~SimpleTurbine.set_time - ~SimpleTurbine.setattrs - ~SimpleTurbine.signals_attributes - ~SimpleTurbine.slack_notification - ~SimpleTurbine.slot_refs - ~SimpleTurbine.slots_attributes - ~SimpleTurbine.smart_split_dataframe - ~SimpleTurbine.solvers_attributes - ~SimpleTurbine.step - ~SimpleTurbine.subclasses - ~SimpleTurbine.subcls_compile - ~SimpleTurbine.system_properties_classdef - ~SimpleTurbine.system_references - ~SimpleTurbine.table_fields - ~SimpleTurbine.trace_attributes - ~SimpleTurbine.transients_attributes - ~SimpleTurbine.update - ~SimpleTurbine.update_dynamics - ~SimpleTurbine.update_feedthrough - ~SimpleTurbine.update_input - ~SimpleTurbine.update_output_constants - ~SimpleTurbine.update_output_matrix - ~SimpleTurbine.update_state - ~SimpleTurbine.update_state_constants - ~SimpleTurbine.validate_class - ~SimpleTurbine.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SimpleTurbine.Tout - ~SimpleTurbine.Ut_ref - ~SimpleTurbine.Xt_ref - ~SimpleTurbine.Yt_ref - ~SimpleTurbine.anything_changed - ~SimpleTurbine.as_dict - ~SimpleTurbine.attrs_fields - ~SimpleTurbine.classname - ~SimpleTurbine.dXtdt_ref - ~SimpleTurbine.data_dict - ~SimpleTurbine.dataframe_constants - ~SimpleTurbine.dataframe_variants - ~SimpleTurbine.displayname - ~SimpleTurbine.dynamic_A - ~SimpleTurbine.dynamic_B - ~SimpleTurbine.dynamic_C - ~SimpleTurbine.dynamic_D - ~SimpleTurbine.dynamic_F - ~SimpleTurbine.dynamic_K - ~SimpleTurbine.dynamic_input - ~SimpleTurbine.dynamic_input_vars - ~SimpleTurbine.dynamic_output - ~SimpleTurbine.dynamic_output_vars - ~SimpleTurbine.dynamic_state - ~SimpleTurbine.dynamic_state_vars - ~SimpleTurbine.filename - ~SimpleTurbine.identity - ~SimpleTurbine.input_as_dict - ~SimpleTurbine.last_context - ~SimpleTurbine.log_fmt - ~SimpleTurbine.log_level - ~SimpleTurbine.log_on - ~SimpleTurbine.log_silo - ~SimpleTurbine.logger - ~SimpleTurbine.nonlinear - ~SimpleTurbine.numeric_as_dict - ~SimpleTurbine.numeric_hash - ~SimpleTurbine.plotable_variables - ~SimpleTurbine.power_output - ~SimpleTurbine.pressure_ratio - ~SimpleTurbine.skip_plot_vars - ~SimpleTurbine.slack_webhook_url - ~SimpleTurbine.static_A - ~SimpleTurbine.static_B - ~SimpleTurbine.static_C - ~SimpleTurbine.static_D - ~SimpleTurbine.static_F - ~SimpleTurbine.static_K - ~SimpleTurbine.system_id - ~SimpleTurbine.time - ~SimpleTurbine.unique_hash - ~SimpleTurbine.update_interval - ~SimpleTurbine.parent - ~SimpleTurbine.name - ~SimpleTurbine.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_core.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_core.rst.txt deleted file mode 100644 index 7592067..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_core.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.thermodynamics.dp\_he\_core -======================================== - -.. currentmodule:: engforge.eng.thermodynamics - -.. autofunction:: dp_he_core \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_entrance.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_entrance.rst.txt deleted file mode 100644 index e810bee..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_entrance.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.thermodynamics.dp\_he\_entrance -============================================ - -.. currentmodule:: engforge.eng.thermodynamics - -.. autofunction:: dp_he_entrance \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_exit.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_exit.rst.txt deleted file mode 100644 index 89c7657..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_exit.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.thermodynamics.dp\_he\_exit -======================================== - -.. currentmodule:: engforge.eng.thermodynamics - -.. autofunction:: dp_he_exit \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_gas_losses.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_gas_losses.rst.txt deleted file mode 100644 index 1b183ad..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.dp_he_gas_losses.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.thermodynamics.dp\_he\_gas\_losses -=============================================== - -.. currentmodule:: engforge.eng.thermodynamics - -.. autofunction:: dp_he_gas_losses \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.fanning_friction_factor.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.fanning_friction_factor.rst.txt deleted file mode 100644 index c736884..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.fanning_friction_factor.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.eng.thermodynamics.fanning\_friction\_factor -===================================================== - -.. currentmodule:: engforge.eng.thermodynamics - -.. autofunction:: fanning_friction_factor \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.rst.txt deleted file mode 100644 index 43aad24..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.eng.thermodynamics.rst.txt +++ /dev/null @@ -1,47 +0,0 @@ -engforge.eng.thermodynamics -=========================== - -.. automodule:: engforge.eng.thermodynamics - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - dp_he_core - dp_he_entrance - dp_he_exit - dp_he_gas_losses - fanning_friction_factor - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - SimpleCompressor - SimpleHeatExchanger - SimplePump - SimpleTurbine - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.AttributedBaseMixin.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.AttributedBaseMixin.rst.txt deleted file mode 100644 index f9824e3..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.AttributedBaseMixin.rst.txt +++ /dev/null @@ -1,72 +0,0 @@ -engforge.engforge\_attributes.AttributedBaseMixin -================================================= - -.. currentmodule:: engforge.engforge_attributes - -.. autoclass:: AttributedBaseMixin - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~AttributedBaseMixin.add_fields - ~AttributedBaseMixin.change_all_log_lvl - ~AttributedBaseMixin.check_ref_slot_type - ~AttributedBaseMixin.collect_all_attributes - ~AttributedBaseMixin.collect_inst_attributes - ~AttributedBaseMixin.critical - ~AttributedBaseMixin.debug - ~AttributedBaseMixin.difference - ~AttributedBaseMixin.error - ~AttributedBaseMixin.extract_message - ~AttributedBaseMixin.filter - ~AttributedBaseMixin.info - ~AttributedBaseMixin.input_attrs - ~AttributedBaseMixin.input_fields - ~AttributedBaseMixin.installSTDLogger - ~AttributedBaseMixin.message_with_identiy - ~AttributedBaseMixin.msg - ~AttributedBaseMixin.numeric_fields - ~AttributedBaseMixin.plot_attributes - ~AttributedBaseMixin.resetLog - ~AttributedBaseMixin.resetSystemLogs - ~AttributedBaseMixin.setattrs - ~AttributedBaseMixin.signals_attributes - ~AttributedBaseMixin.slack_notification - ~AttributedBaseMixin.slot_refs - ~AttributedBaseMixin.slots_attributes - ~AttributedBaseMixin.solvers_attributes - ~AttributedBaseMixin.table_fields - ~AttributedBaseMixin.trace_attributes - ~AttributedBaseMixin.transients_attributes - ~AttributedBaseMixin.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~AttributedBaseMixin.as_dict - ~AttributedBaseMixin.attrs_fields - ~AttributedBaseMixin.identity - ~AttributedBaseMixin.input_as_dict - ~AttributedBaseMixin.log_fmt - ~AttributedBaseMixin.log_level - ~AttributedBaseMixin.log_on - ~AttributedBaseMixin.logger - ~AttributedBaseMixin.numeric_as_dict - ~AttributedBaseMixin.numeric_hash - ~AttributedBaseMixin.slack_webhook_url - ~AttributedBaseMixin.unique_hash - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.EngAttr.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.EngAttr.rst.txt deleted file mode 100644 index bff1650..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.EngAttr.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.engforge\_attributes.EngAttr -===================================== - -.. currentmodule:: engforge.engforge_attributes - -.. autoclass:: EngAttr - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~EngAttr.add_fields - ~EngAttr.change_all_log_lvl - ~EngAttr.critical - ~EngAttr.debug - ~EngAttr.error - ~EngAttr.extract_message - ~EngAttr.filter - ~EngAttr.info - ~EngAttr.installSTDLogger - ~EngAttr.message_with_identiy - ~EngAttr.msg - ~EngAttr.resetLog - ~EngAttr.resetSystemLogs - ~EngAttr.slack_notification - ~EngAttr.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~EngAttr.identity - ~EngAttr.log_fmt - ~EngAttr.log_level - ~EngAttr.log_on - ~EngAttr.logger - ~EngAttr.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.get_attributes_of.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.get_attributes_of.rst.txt deleted file mode 100644 index b01b756..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.get_attributes_of.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.engforge\_attributes.get\_attributes\_of -================================================= - -.. currentmodule:: engforge.engforge_attributes - -.. autofunction:: get_attributes_of \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.rst.txt deleted file mode 100644 index 99ce8b5..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.engforge_attributes.rst.txt +++ /dev/null @@ -1,41 +0,0 @@ -engforge.engforge\_attributes -============================= - -.. automodule:: engforge.engforge_attributes - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - get_attributes_of - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - AttributedBaseMixin - EngAttr - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.env_var.EnvVariable.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.env_var.EnvVariable.rst.txt deleted file mode 100644 index 911bd8d..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.env_var.EnvVariable.rst.txt +++ /dev/null @@ -1,62 +0,0 @@ -engforge.env\_var.EnvVariable -============================= - -.. currentmodule:: engforge.env_var - -.. autoclass:: EnvVariable - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~EnvVariable.add_fields - ~EnvVariable.change_all_log_lvl - ~EnvVariable.critical - ~EnvVariable.debug - ~EnvVariable.error - ~EnvVariable.extract_message - ~EnvVariable.filter - ~EnvVariable.info - ~EnvVariable.installSTDLogger - ~EnvVariable.load_env_vars - ~EnvVariable.message_with_identiy - ~EnvVariable.msg - ~EnvVariable.print_env_vars - ~EnvVariable.remove - ~EnvVariable.resetLog - ~EnvVariable.resetSystemLogs - ~EnvVariable.slack_notification - ~EnvVariable.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~EnvVariable.default - ~EnvVariable.desc - ~EnvVariable.identity - ~EnvVariable.in_env - ~EnvVariable.log_fmt - ~EnvVariable.log_level - ~EnvVariable.log_on - ~EnvVariable.logger - ~EnvVariable.obscure - ~EnvVariable.obscured_name - ~EnvVariable.secret - ~EnvVariable.slack_webhook_url - ~EnvVariable.type_conv - ~EnvVariable.var_name - ~EnvVariable.fail_on_missing - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.env_var.parse_bool.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.env_var.parse_bool.rst.txt deleted file mode 100644 index a38eef6..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.env_var.parse_bool.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.env\_var.parse\_bool -============================= - -.. currentmodule:: engforge.env_var - -.. autofunction:: parse_bool \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.env_var.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.env_var.rst.txt deleted file mode 100644 index e180e26..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.env_var.rst.txt +++ /dev/null @@ -1,40 +0,0 @@ -engforge.env\_var -================= - -.. automodule:: engforge.env_var - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - parse_bool - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - EnvVariable - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.locations.client_path.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.locations.client_path.rst.txt deleted file mode 100644 index 24e2a98..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.locations.client_path.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.locations.client\_path -=============================== - -.. currentmodule:: engforge.locations - -.. autofunction:: client_path \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.locations.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.locations.rst.txt deleted file mode 100644 index 1d74392..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.locations.rst.txt +++ /dev/null @@ -1,31 +0,0 @@ -engforge.locations -================== - -.. automodule:: engforge.locations - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - client_path - - - - - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.logging.Log.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.logging.Log.rst.txt deleted file mode 100644 index b308c96..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.logging.Log.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.logging.Log -==================== - -.. currentmodule:: engforge.logging - -.. autoclass:: Log - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Log.add_fields - ~Log.change_all_log_lvl - ~Log.critical - ~Log.debug - ~Log.error - ~Log.extract_message - ~Log.filter - ~Log.info - ~Log.installSTDLogger - ~Log.message_with_identiy - ~Log.msg - ~Log.resetLog - ~Log.resetSystemLogs - ~Log.slack_notification - ~Log.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Log.identity - ~Log.log_fmt - ~Log.log_level - ~Log.log_on - ~Log.logger - ~Log.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.logging.LoggingMixin.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.logging.LoggingMixin.rst.txt deleted file mode 100644 index 7be4727..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.logging.LoggingMixin.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.logging.LoggingMixin -============================= - -.. currentmodule:: engforge.logging - -.. autoclass:: LoggingMixin - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~LoggingMixin.add_fields - ~LoggingMixin.change_all_log_lvl - ~LoggingMixin.critical - ~LoggingMixin.debug - ~LoggingMixin.error - ~LoggingMixin.extract_message - ~LoggingMixin.filter - ~LoggingMixin.info - ~LoggingMixin.installSTDLogger - ~LoggingMixin.message_with_identiy - ~LoggingMixin.msg - ~LoggingMixin.resetLog - ~LoggingMixin.resetSystemLogs - ~LoggingMixin.slack_notification - ~LoggingMixin.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~LoggingMixin.identity - ~LoggingMixin.log_fmt - ~LoggingMixin.log_level - ~LoggingMixin.log_on - ~LoggingMixin.logger - ~LoggingMixin.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.logging.change_all_log_levels.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.logging.change_all_log_levels.rst.txt deleted file mode 100644 index 484e6f3..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.logging.change_all_log_levels.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.logging.change\_all\_log\_levels -========================================= - -.. currentmodule:: engforge.logging - -.. autofunction:: change_all_log_levels \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.logging.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.logging.rst.txt deleted file mode 100644 index 2c9457e..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.logging.rst.txt +++ /dev/null @@ -1,41 +0,0 @@ -engforge.logging -================ - -.. automodule:: engforge.logging - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - change_all_log_levels - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - Log - LoggingMixin - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.patterns.InputSingletonMeta.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.patterns.InputSingletonMeta.rst.txt deleted file mode 100644 index 46e57d1..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.patterns.InputSingletonMeta.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -engforge.patterns.InputSingletonMeta -==================================== - -.. currentmodule:: engforge.patterns - -.. autoclass:: InputSingletonMeta - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~InputSingletonMeta.mro - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.patterns.Singleton.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.patterns.Singleton.rst.txt deleted file mode 100644 index e09d0da..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.patterns.Singleton.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -engforge.patterns.Singleton -=========================== - -.. currentmodule:: engforge.patterns - -.. autoclass:: Singleton - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Singleton.instance - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.patterns.SingletonMeta.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.patterns.SingletonMeta.rst.txt deleted file mode 100644 index 10a93b3..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.patterns.SingletonMeta.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -engforge.patterns.SingletonMeta -=============================== - -.. currentmodule:: engforge.patterns - -.. autoclass:: SingletonMeta - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SingletonMeta.mro - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.patterns.chunks.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.patterns.chunks.rst.txt deleted file mode 100644 index f847f0e..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.patterns.chunks.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.patterns.chunks -======================== - -.. currentmodule:: engforge.patterns - -.. autofunction:: chunks \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.patterns.flat2gen.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.patterns.flat2gen.rst.txt deleted file mode 100644 index 9bf5db3..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.patterns.flat2gen.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.patterns.flat2gen -========================== - -.. currentmodule:: engforge.patterns - -.. autofunction:: flat2gen \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.patterns.flatten.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.patterns.flatten.rst.txt deleted file mode 100644 index d3d28ce..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.patterns.flatten.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.patterns.flatten -========================= - -.. currentmodule:: engforge.patterns - -.. autofunction:: flatten \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.patterns.inst_vectorize.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.patterns.inst_vectorize.rst.txt deleted file mode 100644 index c85bc9d..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.patterns.inst_vectorize.rst.txt +++ /dev/null @@ -1,24 +0,0 @@ -engforge.patterns.inst\_vectorize -================================= - -.. currentmodule:: engforge.patterns - -.. autoclass:: inst_vectorize - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.patterns.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.patterns.rst.txt deleted file mode 100644 index e9cabdf..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.patterns.rst.txt +++ /dev/null @@ -1,46 +0,0 @@ -engforge.patterns -================= - -.. automodule:: engforge.patterns - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - chunks - flat2gen - flatten - singleton_meta_object - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - InputSingletonMeta - Singleton - SingletonMeta - inst_vectorize - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.patterns.singleton_meta_object.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.patterns.singleton_meta_object.rst.txt deleted file mode 100644 index 81aaad7..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.patterns.singleton_meta_object.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.patterns.singleton\_meta\_object -========================================= - -.. currentmodule:: engforge.patterns - -.. autofunction:: singleton_meta_object \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.problem_context.IllegalArgument.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.problem_context.IllegalArgument.rst.txt deleted file mode 100644 index 758d926..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.problem_context.IllegalArgument.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.problem\_context.IllegalArgument -========================================= - -.. currentmodule:: engforge.problem_context - -.. autoexception:: IllegalArgument \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProbLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProbLog.rst.txt deleted file mode 100644 index c0e6f8e..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProbLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.problem\_context.ProbLog -================================= - -.. currentmodule:: engforge.problem_context - -.. autoclass:: ProbLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ProbLog.add_fields - ~ProbLog.change_all_log_lvl - ~ProbLog.critical - ~ProbLog.debug - ~ProbLog.error - ~ProbLog.extract_message - ~ProbLog.filter - ~ProbLog.info - ~ProbLog.installSTDLogger - ~ProbLog.message_with_identiy - ~ProbLog.msg - ~ProbLog.resetLog - ~ProbLog.resetSystemLogs - ~ProbLog.slack_notification - ~ProbLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ProbLog.identity - ~ProbLog.log_fmt - ~ProbLog.log_level - ~ProbLog.log_on - ~ProbLog.logger - ~ProbLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.problem_context.Problem.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.problem_context.Problem.rst.txt deleted file mode 100644 index a2a513c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.problem_context.Problem.rst.txt +++ /dev/null @@ -1,146 +0,0 @@ -engforge.problem\_context.Problem -================================= - -.. currentmodule:: engforge.problem_context - -.. autoclass:: Problem - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Problem.activate_temp_state - ~Problem.apply_post_signals - ~Problem.apply_pre_signals - ~Problem.clean_context - ~Problem.critical - ~Problem.debug - ~Problem.debug_levels - ~Problem.discard_contexts - ~Problem.error - ~Problem.error_action - ~Problem.establish_system - ~Problem.exit_action - ~Problem.exit_and_revert - ~Problem.exit_to_level - ~Problem.exit_with_state - ~Problem.filter_vars - ~Problem.format_columns - ~Problem.get_extra_kws - ~Problem.get_parent_key - ~Problem.get_ref_values - ~Problem.get_sesh - ~Problem.handle_solution - ~Problem.info - ~Problem.integral_rate - ~Problem.integrate - ~Problem.min_refresh - ~Problem.msg - ~Problem.parse_default - ~Problem.persist_contexts - ~Problem.pos_obj - ~Problem.post_execute - ~Problem.post_update_system - ~Problem.pre_execute - ~Problem.refresh_references - ~Problem.reset_contexts - ~Problem.reset_data - ~Problem.revert_to_start - ~Problem.save_data - ~Problem.set_checkpoint - ~Problem.set_ref_values - ~Problem.set_time - ~Problem.smart_split_dataframe - ~Problem.solve_min - ~Problem.sys_solver_constraints - ~Problem.sys_solver_objectives - ~Problem.update_dynamics - ~Problem.update_methods - ~Problem.update_system - ~Problem.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Problem.all_components - ~Problem.all_comps - ~Problem.all_comps_and_vars - ~Problem.all_problem_vars - ~Problem.all_system_references - ~Problem.all_variable_refs - ~Problem.all_variables - ~Problem.attr_inst - ~Problem.check_dynamics - ~Problem.copy_system - ~Problem.dataframe - ~Problem.dataframe_constants - ~Problem.dataframe_variants - ~Problem.dynamic_comps - ~Problem.dynamic_rate - ~Problem.dynamic_rate_eq - ~Problem.dynamic_solve - ~Problem.dynamic_state - ~Problem.enter_refresh - ~Problem.entered - ~Problem.exit_on_failure - ~Problem.exited - ~Problem.fail_revert - ~Problem.final_objectives - ~Problem.identity - ~Problem.integrator_rate_refs - ~Problem.integrator_rates - ~Problem.integrator_var_refs - ~Problem.integrator_vars - ~Problem.integrators - ~Problem.is_active - ~Problem.kwargs - ~Problem.level_name - ~Problem.level_number - ~Problem.log_level - ~Problem.opt_fail - ~Problem.output_state - ~Problem.post_callback - ~Problem.post_exec - ~Problem.pre_exec - ~Problem.problem_eq - ~Problem.problem_id - ~Problem.problem_ineq - ~Problem.problem_input - ~Problem.problem_objs - ~Problem.problem_opt_vars - ~Problem.problems_dict - ~Problem.raise_on_unknown - ~Problem.record_state - ~Problem.ref_attrs - ~Problem.revert_every - ~Problem.revert_last - ~Problem.run_solver - ~Problem.save_mode - ~Problem.save_on_exit - ~Problem.sesh - ~Problem.session_id - ~Problem.signal_inst - ~Problem.signals - ~Problem.signals_source - ~Problem.signals_target - ~Problem.skip_plot_vars - ~Problem.solveable - ~Problem.solver_inst - ~Problem.success_thresh - ~Problem.system - ~Problem.session - ~Problem.x_start - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExec.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExec.rst.txt deleted file mode 100644 index 09e8b7b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExec.rst.txt +++ /dev/null @@ -1,141 +0,0 @@ -engforge.problem\_context.ProblemExec -===================================== - -.. currentmodule:: engforge.problem_context - -.. autoclass:: ProblemExec - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ProblemExec.activate_temp_state - ~ProblemExec.apply_post_signals - ~ProblemExec.apply_pre_signals - ~ProblemExec.clean_context - ~ProblemExec.critical - ~ProblemExec.debug - ~ProblemExec.debug_levels - ~ProblemExec.discard_contexts - ~ProblemExec.error - ~ProblemExec.error_action - ~ProblemExec.establish_system - ~ProblemExec.exit_action - ~ProblemExec.exit_and_revert - ~ProblemExec.exit_to_level - ~ProblemExec.exit_with_state - ~ProblemExec.filter_vars - ~ProblemExec.get_extra_kws - ~ProblemExec.get_parent_key - ~ProblemExec.get_ref_values - ~ProblemExec.get_sesh - ~ProblemExec.handle_solution - ~ProblemExec.info - ~ProblemExec.integral_rate - ~ProblemExec.integrate - ~ProblemExec.min_refresh - ~ProblemExec.msg - ~ProblemExec.parse_default - ~ProblemExec.persist_contexts - ~ProblemExec.pos_obj - ~ProblemExec.post_execute - ~ProblemExec.post_update_system - ~ProblemExec.pre_execute - ~ProblemExec.refresh_references - ~ProblemExec.reset_contexts - ~ProblemExec.reset_data - ~ProblemExec.revert_to_start - ~ProblemExec.save_data - ~ProblemExec.set_checkpoint - ~ProblemExec.set_ref_values - ~ProblemExec.set_time - ~ProblemExec.solve_min - ~ProblemExec.sys_solver_constraints - ~ProblemExec.sys_solver_objectives - ~ProblemExec.update_dynamics - ~ProblemExec.update_methods - ~ProblemExec.update_system - ~ProblemExec.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ProblemExec.all_components - ~ProblemExec.all_comps - ~ProblemExec.all_comps_and_vars - ~ProblemExec.all_problem_vars - ~ProblemExec.all_system_references - ~ProblemExec.all_variable_refs - ~ProblemExec.all_variables - ~ProblemExec.attr_inst - ~ProblemExec.check_dynamics - ~ProblemExec.copy_system - ~ProblemExec.dataframe - ~ProblemExec.dynamic_comps - ~ProblemExec.dynamic_rate - ~ProblemExec.dynamic_rate_eq - ~ProblemExec.dynamic_solve - ~ProblemExec.dynamic_state - ~ProblemExec.enter_refresh - ~ProblemExec.entered - ~ProblemExec.exit_on_failure - ~ProblemExec.exited - ~ProblemExec.fail_revert - ~ProblemExec.final_objectives - ~ProblemExec.identity - ~ProblemExec.integrator_rate_refs - ~ProblemExec.integrator_rates - ~ProblemExec.integrator_var_refs - ~ProblemExec.integrator_vars - ~ProblemExec.integrators - ~ProblemExec.is_active - ~ProblemExec.kwargs - ~ProblemExec.level_name - ~ProblemExec.level_number - ~ProblemExec.log_level - ~ProblemExec.opt_fail - ~ProblemExec.output_state - ~ProblemExec.post_callback - ~ProblemExec.post_exec - ~ProblemExec.pre_exec - ~ProblemExec.problem_eq - ~ProblemExec.problem_id - ~ProblemExec.problem_ineq - ~ProblemExec.problem_input - ~ProblemExec.problem_objs - ~ProblemExec.problem_opt_vars - ~ProblemExec.problems_dict - ~ProblemExec.raise_on_unknown - ~ProblemExec.record_state - ~ProblemExec.ref_attrs - ~ProblemExec.revert_every - ~ProblemExec.revert_last - ~ProblemExec.run_solver - ~ProblemExec.save_mode - ~ProblemExec.save_on_exit - ~ProblemExec.sesh - ~ProblemExec.session_id - ~ProblemExec.signal_inst - ~ProblemExec.signals - ~ProblemExec.signals_source - ~ProblemExec.signals_target - ~ProblemExec.solveable - ~ProblemExec.solver_inst - ~ProblemExec.success_thresh - ~ProblemExec.system - ~ProblemExec.session - ~ProblemExec.x_start - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExit.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExit.rst.txt deleted file mode 100644 index fc01363..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExit.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.problem\_context.ProblemExit -===================================== - -.. currentmodule:: engforge.problem_context - -.. autoexception:: ProblemExit \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExitAtLevel.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExitAtLevel.rst.txt deleted file mode 100644 index 865a2d1..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.problem_context.ProblemExitAtLevel.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.problem\_context.ProblemExitAtLevel -============================================ - -.. currentmodule:: engforge.problem_context - -.. autoexception:: ProblemExitAtLevel \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.problem_context.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.problem_context.rst.txt deleted file mode 100644 index 626a747..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.problem_context.rst.txt +++ /dev/null @@ -1,43 +0,0 @@ -engforge.problem\_context -========================= - -.. automodule:: engforge.problem_context - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - ProbLog - Problem - ProblemExec - - - - - - .. rubric:: Exceptions - - .. autosummary:: - :toctree: - - IllegalArgument - ProblemExit - ProblemExitAtLevel - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.PropertyLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.PropertyLog.rst.txt deleted file mode 100644 index eba112c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.PropertyLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.properties.PropertyLog -=============================== - -.. currentmodule:: engforge.properties - -.. autoclass:: PropertyLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PropertyLog.add_fields - ~PropertyLog.change_all_log_lvl - ~PropertyLog.critical - ~PropertyLog.debug - ~PropertyLog.error - ~PropertyLog.extract_message - ~PropertyLog.filter - ~PropertyLog.info - ~PropertyLog.installSTDLogger - ~PropertyLog.message_with_identiy - ~PropertyLog.msg - ~PropertyLog.resetLog - ~PropertyLog.resetSystemLogs - ~PropertyLog.slack_notification - ~PropertyLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PropertyLog.identity - ~PropertyLog.log_fmt - ~PropertyLog.log_level - ~PropertyLog.log_on - ~PropertyLog.logger - ~PropertyLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.cache_prop.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.cache_prop.rst.txt deleted file mode 100644 index 559e543..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.cache_prop.rst.txt +++ /dev/null @@ -1,36 +0,0 @@ -engforge.properties.cache\_prop -=============================== - -.. currentmodule:: engforge.properties - -.. autoclass:: cache_prop - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~cache_prop.deleter - ~cache_prop.get_func_return - ~cache_prop.getter - ~cache_prop.set_cache - ~cache_prop.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~cache_prop.allow_set - ~cache_prop.must_return - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.cached_sys_prop.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.cached_sys_prop.rst.txt deleted file mode 100644 index 9264855..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.cached_sys_prop.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ -engforge.properties.cached\_sys\_prop -===================================== - -.. currentmodule:: engforge.properties - -.. autoclass:: cached_sys_prop - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~cached_sys_prop.deleter - ~cached_sys_prop.get_func_return - ~cached_sys_prop.getter - ~cached_sys_prop.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~cached_sys_prop.desc - ~cached_sys_prop.label - ~cached_sys_prop.must_return - ~cached_sys_prop.return_type - ~cached_sys_prop.stochastic - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.cached_system_prop.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.cached_system_prop.rst.txt deleted file mode 100644 index 4566db5..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.cached_system_prop.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ -engforge.properties.cached\_system\_prop -======================================== - -.. currentmodule:: engforge.properties - -.. autoclass:: cached_system_prop - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~cached_system_prop.deleter - ~cached_system_prop.get_func_return - ~cached_system_prop.getter - ~cached_system_prop.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~cached_system_prop.desc - ~cached_system_prop.label - ~cached_system_prop.must_return - ~cached_system_prop.return_type - ~cached_system_prop.stochastic - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.cached_system_property.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.cached_system_property.rst.txt deleted file mode 100644 index c8c0b3d..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.cached_system_property.rst.txt +++ /dev/null @@ -1,41 +0,0 @@ -engforge.properties.cached\_system\_property -============================================ - -.. currentmodule:: engforge.properties - -.. autoclass:: cached_system_property - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~cached_system_property.deleter - ~cached_system_property.get_func_return - ~cached_system_property.getter - ~cached_system_property.set_cache - ~cached_system_property.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~cached_system_property.desc - ~cached_system_property.label - ~cached_system_property.must_return - ~cached_system_property.private_var - ~cached_system_property.return_type - ~cached_system_property.stochastic - ~cached_system_property.gname - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.class_cache.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.class_cache.rst.txt deleted file mode 100644 index 0304229..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.class_cache.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ -engforge.properties.class\_cache -================================ - -.. currentmodule:: engforge.properties - -.. autoclass:: class_cache - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~class_cache.deleter - ~class_cache.get_func_return - ~class_cache.getter - ~class_cache.set_cache - ~class_cache.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~class_cache.allow_set - ~class_cache.id_var - ~class_cache.must_return - ~class_cache.private_var - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.engforge_prop.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.engforge_prop.rst.txt deleted file mode 100644 index 0878e00..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.engforge_prop.rst.txt +++ /dev/null @@ -1,34 +0,0 @@ -engforge.properties.engforge\_prop -================================== - -.. currentmodule:: engforge.properties - -.. autoclass:: engforge_prop - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~engforge_prop.deleter - ~engforge_prop.get_func_return - ~engforge_prop.getter - ~engforge_prop.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~engforge_prop.must_return - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.instance_cached.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.instance_cached.rst.txt deleted file mode 100644 index b33ae0d..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.instance_cached.rst.txt +++ /dev/null @@ -1,37 +0,0 @@ -engforge.properties.instance\_cached -==================================== - -.. currentmodule:: engforge.properties - -.. autoclass:: instance_cached - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~instance_cached.deleter - ~instance_cached.get_func_return - ~instance_cached.getter - ~instance_cached.set_cache - ~instance_cached.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~instance_cached.allow_set - ~instance_cached.must_return - ~instance_cached.private_var - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.rst.txt deleted file mode 100644 index a3dc12c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.rst.txt +++ /dev/null @@ -1,43 +0,0 @@ -engforge.properties -=================== - -.. automodule:: engforge.properties - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - PropertyLog - cache_prop - cached_sys_prop - cached_system_prop - cached_system_property - class_cache - engforge_prop - instance_cached - solver_cached - sys_prop - system_prop - system_property - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.solver_cached.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.solver_cached.rst.txt deleted file mode 100644 index 7af80b8..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.solver_cached.rst.txt +++ /dev/null @@ -1,37 +0,0 @@ -engforge.properties.solver\_cached -================================== - -.. currentmodule:: engforge.properties - -.. autoclass:: solver_cached - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~solver_cached.deleter - ~solver_cached.get_func_return - ~solver_cached.getter - ~solver_cached.set_cache - ~solver_cached.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~solver_cached.allow_set - ~solver_cached.must_return - ~solver_cached.private_var - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.sys_prop.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.sys_prop.rst.txt deleted file mode 100644 index f5202c6..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.sys_prop.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ -engforge.properties.sys\_prop -============================= - -.. currentmodule:: engforge.properties - -.. autoclass:: sys_prop - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~sys_prop.deleter - ~sys_prop.get_func_return - ~sys_prop.getter - ~sys_prop.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~sys_prop.desc - ~sys_prop.label - ~sys_prop.must_return - ~sys_prop.return_type - ~sys_prop.stochastic - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.system_prop.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.system_prop.rst.txt deleted file mode 100644 index d0816cc..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.system_prop.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ -engforge.properties.system\_prop -================================ - -.. currentmodule:: engforge.properties - -.. autoclass:: system_prop - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~system_prop.deleter - ~system_prop.get_func_return - ~system_prop.getter - ~system_prop.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~system_prop.desc - ~system_prop.label - ~system_prop.must_return - ~system_prop.return_type - ~system_prop.stochastic - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.properties.system_property.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.properties.system_property.rst.txt deleted file mode 100644 index 7928014..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.properties.system_property.rst.txt +++ /dev/null @@ -1,38 +0,0 @@ -engforge.properties.system\_property -==================================== - -.. currentmodule:: engforge.properties - -.. autoclass:: system_property - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~system_property.deleter - ~system_property.get_func_return - ~system_property.getter - ~system_property.setter - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~system_property.desc - ~system_property.label - ~system_property.must_return - ~system_property.return_type - ~system_property.stochastic - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.CSVReporter.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.CSVReporter.rst.txt deleted file mode 100644 index 71f9eaf..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.CSVReporter.rst.txt +++ /dev/null @@ -1,61 +0,0 @@ -engforge.reporting.CSVReporter -============================== - -.. currentmodule:: engforge.reporting - -.. autoclass:: CSVReporter - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~CSVReporter.add_fields - ~CSVReporter.change_all_log_lvl - ~CSVReporter.check_config - ~CSVReporter.critical - ~CSVReporter.debug - ~CSVReporter.ensure_exists - ~CSVReporter.ensure_path - ~CSVReporter.error - ~CSVReporter.extract_message - ~CSVReporter.filter - ~CSVReporter.info - ~CSVReporter.installSTDLogger - ~CSVReporter.message_with_identiy - ~CSVReporter.msg - ~CSVReporter.resetLog - ~CSVReporter.resetSystemLogs - ~CSVReporter.slack_notification - ~CSVReporter.subclasses - ~CSVReporter.upload - ~CSVReporter.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~CSVReporter.date_key - ~CSVReporter.identity - ~CSVReporter.log_fmt - ~CSVReporter.log_level - ~CSVReporter.log_on - ~CSVReporter.logger - ~CSVReporter.month_key - ~CSVReporter.name - ~CSVReporter.path - ~CSVReporter.report_mode - ~CSVReporter.report_root - ~CSVReporter.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.DiskPlotReporter.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.DiskPlotReporter.rst.txt deleted file mode 100644 index 7cdcf02..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.DiskPlotReporter.rst.txt +++ /dev/null @@ -1,62 +0,0 @@ -engforge.reporting.DiskPlotReporter -=================================== - -.. currentmodule:: engforge.reporting - -.. autoclass:: DiskPlotReporter - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~DiskPlotReporter.add_fields - ~DiskPlotReporter.change_all_log_lvl - ~DiskPlotReporter.check_config - ~DiskPlotReporter.critical - ~DiskPlotReporter.debug - ~DiskPlotReporter.ensure_exists - ~DiskPlotReporter.ensure_path - ~DiskPlotReporter.error - ~DiskPlotReporter.extract_message - ~DiskPlotReporter.filter - ~DiskPlotReporter.info - ~DiskPlotReporter.installSTDLogger - ~DiskPlotReporter.message_with_identiy - ~DiskPlotReporter.msg - ~DiskPlotReporter.resetLog - ~DiskPlotReporter.resetSystemLogs - ~DiskPlotReporter.slack_notification - ~DiskPlotReporter.subclasses - ~DiskPlotReporter.upload - ~DiskPlotReporter.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~DiskPlotReporter.date_key - ~DiskPlotReporter.ext - ~DiskPlotReporter.identity - ~DiskPlotReporter.log_fmt - ~DiskPlotReporter.log_level - ~DiskPlotReporter.log_on - ~DiskPlotReporter.logger - ~DiskPlotReporter.month_key - ~DiskPlotReporter.name - ~DiskPlotReporter.path - ~DiskPlotReporter.report_mode - ~DiskPlotReporter.report_root - ~DiskPlotReporter.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.DiskReporterMixin.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.DiskReporterMixin.rst.txt deleted file mode 100644 index 546a3bf..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.DiskReporterMixin.rst.txt +++ /dev/null @@ -1,61 +0,0 @@ -engforge.reporting.DiskReporterMixin -==================================== - -.. currentmodule:: engforge.reporting - -.. autoclass:: DiskReporterMixin - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~DiskReporterMixin.add_fields - ~DiskReporterMixin.change_all_log_lvl - ~DiskReporterMixin.check_config - ~DiskReporterMixin.critical - ~DiskReporterMixin.debug - ~DiskReporterMixin.ensure_exists - ~DiskReporterMixin.ensure_path - ~DiskReporterMixin.error - ~DiskReporterMixin.extract_message - ~DiskReporterMixin.filter - ~DiskReporterMixin.info - ~DiskReporterMixin.installSTDLogger - ~DiskReporterMixin.message_with_identiy - ~DiskReporterMixin.msg - ~DiskReporterMixin.resetLog - ~DiskReporterMixin.resetSystemLogs - ~DiskReporterMixin.slack_notification - ~DiskReporterMixin.subclasses - ~DiskReporterMixin.upload - ~DiskReporterMixin.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~DiskReporterMixin.path - ~DiskReporterMixin.report_mode - ~DiskReporterMixin.date_key - ~DiskReporterMixin.identity - ~DiskReporterMixin.log_fmt - ~DiskReporterMixin.log_level - ~DiskReporterMixin.log_on - ~DiskReporterMixin.logger - ~DiskReporterMixin.month_key - ~DiskReporterMixin.name - ~DiskReporterMixin.report_root - ~DiskReporterMixin.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.ExcelReporter.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.ExcelReporter.rst.txt deleted file mode 100644 index 2c195e4..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.ExcelReporter.rst.txt +++ /dev/null @@ -1,61 +0,0 @@ -engforge.reporting.ExcelReporter -================================ - -.. currentmodule:: engforge.reporting - -.. autoclass:: ExcelReporter - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~ExcelReporter.add_fields - ~ExcelReporter.change_all_log_lvl - ~ExcelReporter.check_config - ~ExcelReporter.critical - ~ExcelReporter.debug - ~ExcelReporter.ensure_exists - ~ExcelReporter.ensure_path - ~ExcelReporter.error - ~ExcelReporter.extract_message - ~ExcelReporter.filter - ~ExcelReporter.info - ~ExcelReporter.installSTDLogger - ~ExcelReporter.message_with_identiy - ~ExcelReporter.msg - ~ExcelReporter.resetLog - ~ExcelReporter.resetSystemLogs - ~ExcelReporter.slack_notification - ~ExcelReporter.subclasses - ~ExcelReporter.upload - ~ExcelReporter.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~ExcelReporter.date_key - ~ExcelReporter.identity - ~ExcelReporter.log_fmt - ~ExcelReporter.log_level - ~ExcelReporter.log_on - ~ExcelReporter.logger - ~ExcelReporter.month_key - ~ExcelReporter.name - ~ExcelReporter.path - ~ExcelReporter.report_mode - ~ExcelReporter.report_root - ~ExcelReporter.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.GdriveReporter.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.GdriveReporter.rst.txt deleted file mode 100644 index e51b69f..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.GdriveReporter.rst.txt +++ /dev/null @@ -1,59 +0,0 @@ -engforge.reporting.GdriveReporter -================================= - -.. currentmodule:: engforge.reporting - -.. autoclass:: GdriveReporter - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~GdriveReporter.add_fields - ~GdriveReporter.change_all_log_lvl - ~GdriveReporter.check_config - ~GdriveReporter.critical - ~GdriveReporter.debug - ~GdriveReporter.error - ~GdriveReporter.extract_message - ~GdriveReporter.filter - ~GdriveReporter.info - ~GdriveReporter.installSTDLogger - ~GdriveReporter.message_with_identiy - ~GdriveReporter.msg - ~GdriveReporter.resetLog - ~GdriveReporter.resetSystemLogs - ~GdriveReporter.slack_notification - ~GdriveReporter.subclasses - ~GdriveReporter.upload - ~GdriveReporter.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~GdriveReporter.share_drive - ~GdriveReporter.date_key - ~GdriveReporter.ext - ~GdriveReporter.identity - ~GdriveReporter.log_fmt - ~GdriveReporter.log_level - ~GdriveReporter.log_on - ~GdriveReporter.logger - ~GdriveReporter.month_key - ~GdriveReporter.name - ~GdriveReporter.report_root - ~GdriveReporter.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.GsheetsReporter.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.GsheetsReporter.rst.txt deleted file mode 100644 index 129b84f..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.GsheetsReporter.rst.txt +++ /dev/null @@ -1,57 +0,0 @@ -engforge.reporting.GsheetsReporter -================================== - -.. currentmodule:: engforge.reporting - -.. autoclass:: GsheetsReporter - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~GsheetsReporter.add_fields - ~GsheetsReporter.change_all_log_lvl - ~GsheetsReporter.check_config - ~GsheetsReporter.critical - ~GsheetsReporter.debug - ~GsheetsReporter.error - ~GsheetsReporter.extract_message - ~GsheetsReporter.filter - ~GsheetsReporter.info - ~GsheetsReporter.installSTDLogger - ~GsheetsReporter.message_with_identiy - ~GsheetsReporter.msg - ~GsheetsReporter.resetLog - ~GsheetsReporter.resetSystemLogs - ~GsheetsReporter.slack_notification - ~GsheetsReporter.subclasses - ~GsheetsReporter.upload - ~GsheetsReporter.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~GsheetsReporter.date_key - ~GsheetsReporter.identity - ~GsheetsReporter.log_fmt - ~GsheetsReporter.log_level - ~GsheetsReporter.log_on - ~GsheetsReporter.logger - ~GsheetsReporter.month_key - ~GsheetsReporter.name - ~GsheetsReporter.report_root - ~GsheetsReporter.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.PlotReporter.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.PlotReporter.rst.txt deleted file mode 100644 index a2fdfec..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.PlotReporter.rst.txt +++ /dev/null @@ -1,55 +0,0 @@ -engforge.reporting.PlotReporter -=============================== - -.. currentmodule:: engforge.reporting - -.. autoclass:: PlotReporter - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~PlotReporter.add_fields - ~PlotReporter.change_all_log_lvl - ~PlotReporter.check_config - ~PlotReporter.critical - ~PlotReporter.debug - ~PlotReporter.error - ~PlotReporter.extract_message - ~PlotReporter.filter - ~PlotReporter.info - ~PlotReporter.installSTDLogger - ~PlotReporter.message_with_identiy - ~PlotReporter.msg - ~PlotReporter.resetLog - ~PlotReporter.resetSystemLogs - ~PlotReporter.slack_notification - ~PlotReporter.subclasses - ~PlotReporter.upload - ~PlotReporter.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~PlotReporter.ext - ~PlotReporter.identity - ~PlotReporter.log_fmt - ~PlotReporter.log_level - ~PlotReporter.log_on - ~PlotReporter.logger - ~PlotReporter.name - ~PlotReporter.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.Reporter.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.Reporter.rst.txt deleted file mode 100644 index b89295f..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.Reporter.rst.txt +++ /dev/null @@ -1,54 +0,0 @@ -engforge.reporting.Reporter -=========================== - -.. currentmodule:: engforge.reporting - -.. autoclass:: Reporter - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Reporter.add_fields - ~Reporter.change_all_log_lvl - ~Reporter.check_config - ~Reporter.critical - ~Reporter.debug - ~Reporter.error - ~Reporter.extract_message - ~Reporter.filter - ~Reporter.info - ~Reporter.installSTDLogger - ~Reporter.message_with_identiy - ~Reporter.msg - ~Reporter.resetLog - ~Reporter.resetSystemLogs - ~Reporter.slack_notification - ~Reporter.subclasses - ~Reporter.upload - ~Reporter.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Reporter.name - ~Reporter.identity - ~Reporter.log_fmt - ~Reporter.log_level - ~Reporter.log_on - ~Reporter.logger - ~Reporter.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.TableReporter.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.TableReporter.rst.txt deleted file mode 100644 index 7ee1f0b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.TableReporter.rst.txt +++ /dev/null @@ -1,54 +0,0 @@ -engforge.reporting.TableReporter -================================ - -.. currentmodule:: engforge.reporting - -.. autoclass:: TableReporter - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~TableReporter.add_fields - ~TableReporter.change_all_log_lvl - ~TableReporter.check_config - ~TableReporter.critical - ~TableReporter.debug - ~TableReporter.error - ~TableReporter.extract_message - ~TableReporter.filter - ~TableReporter.info - ~TableReporter.installSTDLogger - ~TableReporter.message_with_identiy - ~TableReporter.msg - ~TableReporter.resetLog - ~TableReporter.resetSystemLogs - ~TableReporter.slack_notification - ~TableReporter.subclasses - ~TableReporter.upload - ~TableReporter.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~TableReporter.identity - ~TableReporter.log_fmt - ~TableReporter.log_level - ~TableReporter.log_on - ~TableReporter.logger - ~TableReporter.name - ~TableReporter.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.TemporalReporterMixin.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.TemporalReporterMixin.rst.txt deleted file mode 100644 index f6404f5..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.TemporalReporterMixin.rst.txt +++ /dev/null @@ -1,57 +0,0 @@ -engforge.reporting.TemporalReporterMixin -======================================== - -.. currentmodule:: engforge.reporting - -.. autoclass:: TemporalReporterMixin - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~TemporalReporterMixin.add_fields - ~TemporalReporterMixin.change_all_log_lvl - ~TemporalReporterMixin.check_config - ~TemporalReporterMixin.critical - ~TemporalReporterMixin.debug - ~TemporalReporterMixin.error - ~TemporalReporterMixin.extract_message - ~TemporalReporterMixin.filter - ~TemporalReporterMixin.info - ~TemporalReporterMixin.installSTDLogger - ~TemporalReporterMixin.message_with_identiy - ~TemporalReporterMixin.msg - ~TemporalReporterMixin.resetLog - ~TemporalReporterMixin.resetSystemLogs - ~TemporalReporterMixin.slack_notification - ~TemporalReporterMixin.subclasses - ~TemporalReporterMixin.upload - ~TemporalReporterMixin.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~TemporalReporterMixin.date_key - ~TemporalReporterMixin.identity - ~TemporalReporterMixin.log_fmt - ~TemporalReporterMixin.log_level - ~TemporalReporterMixin.log_on - ~TemporalReporterMixin.logger - ~TemporalReporterMixin.month_key - ~TemporalReporterMixin.name - ~TemporalReporterMixin.report_root - ~TemporalReporterMixin.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.path_exist_validator.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.path_exist_validator.rst.txt deleted file mode 100644 index 2269d39..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.path_exist_validator.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.reporting.path\_exist\_validator -========================================= - -.. currentmodule:: engforge.reporting - -.. autofunction:: path_exist_validator \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.reporting.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.reporting.rst.txt deleted file mode 100644 index 935d5fa..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.reporting.rst.txt +++ /dev/null @@ -1,49 +0,0 @@ -engforge.reporting -================== - -.. automodule:: engforge.reporting - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - path_exist_validator - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - CSVReporter - DiskPlotReporter - DiskReporterMixin - ExcelReporter - GdriveReporter - GsheetsReporter - PlotReporter - Reporter - TableReporter - TemporalReporterMixin - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.rst.txt deleted file mode 100644 index 08d5fbf..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.rst.txt +++ /dev/null @@ -1,59 +0,0 @@ -engforge -======== - -.. automodule:: engforge - - - - - - - - - - - - - - - - - - - -.. autosummary:: - :toctree: - :template: custom-module-template.rst - :recursive: - - analysis - attr_dynamics - attr_plotting - attr_signals - attr_slots - attr_solver - attributes - common - component_collections - components - configuration - dataframe - datastores - dynamics - eng - engforge_attributes - env_var - locations - logging - patterns - problem_context - properties - reporting - solveable - solver - solver_utils - system - system_reference - tabulation - typing - diff --git a/docs/_build/html/_sources/_autosummary/engforge.solveable.SolvableLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solveable.SolvableLog.rst.txt deleted file mode 100644 index 777f8f2..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solveable.SolvableLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.solveable.SolvableLog -============================== - -.. currentmodule:: engforge.solveable - -.. autoclass:: SolvableLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SolvableLog.add_fields - ~SolvableLog.change_all_log_lvl - ~SolvableLog.critical - ~SolvableLog.debug - ~SolvableLog.error - ~SolvableLog.extract_message - ~SolvableLog.filter - ~SolvableLog.info - ~SolvableLog.installSTDLogger - ~SolvableLog.message_with_identiy - ~SolvableLog.msg - ~SolvableLog.resetLog - ~SolvableLog.resetSystemLogs - ~SolvableLog.slack_notification - ~SolvableLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SolvableLog.identity - ~SolvableLog.log_fmt - ~SolvableLog.log_level - ~SolvableLog.log_on - ~SolvableLog.logger - ~SolvableLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solveable.SolveableMixin.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solveable.SolveableMixin.rst.txt deleted file mode 100644 index fa05541..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solveable.SolveableMixin.rst.txt +++ /dev/null @@ -1,95 +0,0 @@ -engforge.solveable.SolveableMixin -================================= - -.. currentmodule:: engforge.solveable - -.. autoclass:: SolveableMixin - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SolveableMixin.add_fields - ~SolveableMixin.change_all_log_lvl - ~SolveableMixin.check_ref_slot_type - ~SolveableMixin.collect_all_attributes - ~SolveableMixin.collect_comp_refs - ~SolveableMixin.collect_dynamic_refs - ~SolveableMixin.collect_inst_attributes - ~SolveableMixin.collect_post_update_refs - ~SolveableMixin.collect_solver_refs - ~SolveableMixin.collect_update_refs - ~SolveableMixin.comp_references - ~SolveableMixin.critical - ~SolveableMixin.debug - ~SolveableMixin.difference - ~SolveableMixin.error - ~SolveableMixin.extract_message - ~SolveableMixin.filter - ~SolveableMixin.get_system_input_refs - ~SolveableMixin.info - ~SolveableMixin.input_attrs - ~SolveableMixin.input_fields - ~SolveableMixin.installSTDLogger - ~SolveableMixin.internal_components - ~SolveableMixin.internal_references - ~SolveableMixin.internal_systems - ~SolveableMixin.internal_tabulations - ~SolveableMixin.locate - ~SolveableMixin.locate_ref - ~SolveableMixin.message_with_identiy - ~SolveableMixin.msg - ~SolveableMixin.numeric_fields - ~SolveableMixin.parse_run_kwargs - ~SolveableMixin.parse_simulation_input - ~SolveableMixin.plot_attributes - ~SolveableMixin.post_update - ~SolveableMixin.resetLog - ~SolveableMixin.resetSystemLogs - ~SolveableMixin.setattrs - ~SolveableMixin.signals_attributes - ~SolveableMixin.slack_notification - ~SolveableMixin.slot_refs - ~SolveableMixin.slots_attributes - ~SolveableMixin.solvers_attributes - ~SolveableMixin.system_references - ~SolveableMixin.table_fields - ~SolveableMixin.trace_attributes - ~SolveableMixin.transients_attributes - ~SolveableMixin.update - ~SolveableMixin.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SolveableMixin.as_dict - ~SolveableMixin.attrs_fields - ~SolveableMixin.identity - ~SolveableMixin.input_as_dict - ~SolveableMixin.iterable_components - ~SolveableMixin.log_fmt - ~SolveableMixin.log_level - ~SolveableMixin.log_on - ~SolveableMixin.logger - ~SolveableMixin.numeric_as_dict - ~SolveableMixin.numeric_hash - ~SolveableMixin.signals - ~SolveableMixin.slack_webhook_url - ~SolveableMixin.solvers - ~SolveableMixin.transients - ~SolveableMixin.unique_hash - ~SolveableMixin.parent - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solveable.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solveable.rst.txt deleted file mode 100644 index 2a6df64..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solveable.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -engforge.solveable -================== - -.. automodule:: engforge.solveable - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - SolvableLog - SolveableMixin - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver.SolverLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver.SolverLog.rst.txt deleted file mode 100644 index c638646..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver.SolverLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.solver.SolverLog -========================= - -.. currentmodule:: engforge.solver - -.. autoclass:: SolverLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SolverLog.add_fields - ~SolverLog.change_all_log_lvl - ~SolverLog.critical - ~SolverLog.debug - ~SolverLog.error - ~SolverLog.extract_message - ~SolverLog.filter - ~SolverLog.info - ~SolverLog.installSTDLogger - ~SolverLog.message_with_identiy - ~SolverLog.msg - ~SolverLog.resetLog - ~SolverLog.resetSystemLogs - ~SolverLog.slack_notification - ~SolverLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SolverLog.identity - ~SolverLog.log_fmt - ~SolverLog.log_level - ~SolverLog.log_on - ~SolverLog.logger - ~SolverLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver.SolverMixin.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver.SolverMixin.rst.txt deleted file mode 100644 index ae5c404..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver.SolverMixin.rst.txt +++ /dev/null @@ -1,101 +0,0 @@ -engforge.solver.SolverMixin -=========================== - -.. currentmodule:: engforge.solver - -.. autoclass:: SolverMixin - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SolverMixin.add_fields - ~SolverMixin.change_all_log_lvl - ~SolverMixin.check_ref_slot_type - ~SolverMixin.collect_all_attributes - ~SolverMixin.collect_comp_refs - ~SolverMixin.collect_dynamic_refs - ~SolverMixin.collect_inst_attributes - ~SolverMixin.collect_post_update_refs - ~SolverMixin.collect_solver_refs - ~SolverMixin.collect_update_refs - ~SolverMixin.comp_references - ~SolverMixin.critical - ~SolverMixin.debug - ~SolverMixin.difference - ~SolverMixin.error - ~SolverMixin.eval - ~SolverMixin.execute - ~SolverMixin.extract_message - ~SolverMixin.filter - ~SolverMixin.get_system_input_refs - ~SolverMixin.info - ~SolverMixin.input_attrs - ~SolverMixin.input_fields - ~SolverMixin.installSTDLogger - ~SolverMixin.internal_components - ~SolverMixin.internal_references - ~SolverMixin.internal_systems - ~SolverMixin.internal_tabulations - ~SolverMixin.locate - ~SolverMixin.locate_ref - ~SolverMixin.message_with_identiy - ~SolverMixin.msg - ~SolverMixin.numeric_fields - ~SolverMixin.parse_run_kwargs - ~SolverMixin.parse_simulation_input - ~SolverMixin.plot_attributes - ~SolverMixin.post_run_callback - ~SolverMixin.post_update - ~SolverMixin.pre_run_callback - ~SolverMixin.resetLog - ~SolverMixin.resetSystemLogs - ~SolverMixin.run - ~SolverMixin.run_internal_systems - ~SolverMixin.setattrs - ~SolverMixin.signals_attributes - ~SolverMixin.slack_notification - ~SolverMixin.slot_refs - ~SolverMixin.slots_attributes - ~SolverMixin.solver - ~SolverMixin.solver_vars - ~SolverMixin.solvers_attributes - ~SolverMixin.system_references - ~SolverMixin.table_fields - ~SolverMixin.trace_attributes - ~SolverMixin.transients_attributes - ~SolverMixin.update - ~SolverMixin.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SolverMixin.as_dict - ~SolverMixin.attrs_fields - ~SolverMixin.data_dict - ~SolverMixin.identity - ~SolverMixin.input_as_dict - ~SolverMixin.log_fmt - ~SolverMixin.log_level - ~SolverMixin.log_on - ~SolverMixin.logger - ~SolverMixin.numeric_as_dict - ~SolverMixin.numeric_hash - ~SolverMixin.slack_webhook_url - ~SolverMixin.solved - ~SolverMixin.unique_hash - ~SolverMixin.parent - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver.rst.txt deleted file mode 100644 index 1829552..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -engforge.solver -=============== - -.. automodule:: engforge.solver - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - SolverLog - SolverMixin - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.SolverUtilLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.SolverUtilLog.rst.txt deleted file mode 100644 index 9fdb85b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.SolverUtilLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.solver\_utils.SolverUtilLog -==================================== - -.. currentmodule:: engforge.solver_utils - -.. autoclass:: SolverUtilLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SolverUtilLog.add_fields - ~SolverUtilLog.change_all_log_lvl - ~SolverUtilLog.critical - ~SolverUtilLog.debug - ~SolverUtilLog.error - ~SolverUtilLog.extract_message - ~SolverUtilLog.filter - ~SolverUtilLog.info - ~SolverUtilLog.installSTDLogger - ~SolverUtilLog.message_with_identiy - ~SolverUtilLog.msg - ~SolverUtilLog.resetLog - ~SolverUtilLog.resetSystemLogs - ~SolverUtilLog.slack_notification - ~SolverUtilLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SolverUtilLog.identity - ~SolverUtilLog.log_fmt - ~SolverUtilLog.log_level - ~SolverUtilLog.log_on - ~SolverUtilLog.logger - ~SolverUtilLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.arg_var_compare.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.arg_var_compare.rst.txt deleted file mode 100644 index 060461a..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.arg_var_compare.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.arg\_var\_compare -======================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: arg_var_compare \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.combo_filter.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.combo_filter.rst.txt deleted file mode 100644 index b50e53c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.combo_filter.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.combo\_filter -==================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: combo_filter \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.create_constraint.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.create_constraint.rst.txt deleted file mode 100644 index 3692a62..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.create_constraint.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.create\_constraint -========================================= - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: create_constraint \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.ext_str_list.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.ext_str_list.rst.txt deleted file mode 100644 index a491b84..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.ext_str_list.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.ext\_str\_list -===================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: ext_str_list \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.f_lin_min.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.f_lin_min.rst.txt deleted file mode 100644 index 0670101..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.f_lin_min.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.f\_lin\_min -================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: f_lin_min \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.filt_active.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.filt_active.rst.txt deleted file mode 100644 index 245d8e2..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.filt_active.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.filt\_active -=================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: filt_active \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.filter_combos.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.filter_combos.rst.txt deleted file mode 100644 index b6fe5bd..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.filter_combos.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.filter\_combos -===================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: filter_combos \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.filter_vals.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.filter_vals.rst.txt deleted file mode 100644 index b961d82..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.filter_vals.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.filter\_vals -=================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: filter_vals \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.handle_normalize.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.handle_normalize.rst.txt deleted file mode 100644 index dfb5b15..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.handle_normalize.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.handle\_normalize -======================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: handle_normalize \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.objectify.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.objectify.rst.txt deleted file mode 100644 index aff51db..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.objectify.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.objectify -================================ - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: objectify \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.ref_to_val_constraint.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.ref_to_val_constraint.rst.txt deleted file mode 100644 index 1f44791..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.ref_to_val_constraint.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.ref\_to\_val\_constraint -=============================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: ref_to_val_constraint \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.refmin_solve.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.refmin_solve.rst.txt deleted file mode 100644 index adb8aa2..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.refmin_solve.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.refmin\_solve -==================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: refmin_solve \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.rst.txt deleted file mode 100644 index a68591d..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.rst.txt +++ /dev/null @@ -1,53 +0,0 @@ -engforge.solver\_utils -====================== - -.. automodule:: engforge.solver_utils - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - arg_var_compare - combo_filter - create_constraint - ext_str_list - f_lin_min - filt_active - filter_combos - filter_vals - handle_normalize - objectify - ref_to_val_constraint - refmin_solve - secondary_obj - str_list_f - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - SolverUtilLog - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.secondary_obj.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.secondary_obj.rst.txt deleted file mode 100644 index 794291f..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.secondary_obj.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.secondary\_obj -===================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: secondary_obj \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.str_list_f.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.solver_utils.str_list_f.rst.txt deleted file mode 100644 index 608090c..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.solver_utils.str_list_f.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.solver\_utils.str\_list\_f -=================================== - -.. currentmodule:: engforge.solver_utils - -.. autofunction:: str_list_f \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.system.System.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system.System.rst.txt deleted file mode 100644 index 5577434..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system.System.rst.txt +++ /dev/null @@ -1,190 +0,0 @@ -engforge.system.System -====================== - -.. currentmodule:: engforge.system - -.. autoclass:: System - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~System.add_fields - ~System.change_all_log_lvl - ~System.check_ref_slot_type - ~System.clone - ~System.cls_all_attrs_fields - ~System.cls_all_property_keys - ~System.cls_all_property_labels - ~System.cls_compile - ~System.collect_all_attributes - ~System.collect_comp_refs - ~System.collect_dynamic_refs - ~System.collect_inst_attributes - ~System.collect_post_update_refs - ~System.collect_solver_refs - ~System.collect_update_refs - ~System.comp_references - ~System.compile_classes - ~System.copy_config_at_state - ~System.create_dynamic_matricies - ~System.create_feedthrough_matrix - ~System.create_input_matrix - ~System.create_output_constants - ~System.create_output_matrix - ~System.create_state_constants - ~System.create_state_matrix - ~System.critical - ~System.debug - ~System.determine_nearest_stationary_state - ~System.difference - ~System.error - ~System.eval - ~System.execute - ~System.extract_message - ~System.filter - ~System.format_columns - ~System.get_system_input_refs - ~System.go_through_configurations - ~System.info - ~System.input_attrs - ~System.input_fields - ~System.installSTDLogger - ~System.internal_components - ~System.internal_configurations - ~System.internal_references - ~System.internal_systems - ~System.internal_tabulations - ~System.linear_output - ~System.linear_step - ~System.locate - ~System.locate_ref - ~System.make_plots - ~System.mark_all_comps_changed - ~System.message_with_identiy - ~System.msg - ~System.nonlinear_output - ~System.nonlinear_step - ~System.numeric_fields - ~System.parent_configurations_cls - ~System.parse_run_kwargs - ~System.parse_simulation_input - ~System.plot_attributes - ~System.post_run_callback - ~System.post_update - ~System.pre_compile - ~System.pre_run_callback - ~System.print_info - ~System.rate - ~System.rate_linear - ~System.rate_nonlinear - ~System.ref_dXdt - ~System.resetLog - ~System.resetSystemLogs - ~System.run - ~System.run_internal_systems - ~System.set_attr - ~System.set_time - ~System.setattrs - ~System.setup_global_dynamics - ~System.signals_attributes - ~System.sim_matrix - ~System.simulate - ~System.slack_notification - ~System.slot_refs - ~System.slots_attributes - ~System.smart_split_dataframe - ~System.solver - ~System.solver_vars - ~System.solvers_attributes - ~System.step - ~System.subclasses - ~System.subcls_compile - ~System.system_properties_classdef - ~System.system_references - ~System.table_fields - ~System.trace_attributes - ~System.transients_attributes - ~System.update - ~System.update_dynamics - ~System.update_feedthrough - ~System.update_input - ~System.update_output_constants - ~System.update_output_matrix - ~System.update_state - ~System.update_state_constants - ~System.validate_class - ~System.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~System.Ut_ref - ~System.Xt_ref - ~System.Yt_ref - ~System.anything_changed - ~System.as_dict - ~System.attrs_fields - ~System.classname - ~System.converged - ~System.dXtdt_ref - ~System.dataframe_constants - ~System.dataframe_variants - ~System.displayname - ~System.dynamic_A - ~System.dynamic_B - ~System.dynamic_C - ~System.dynamic_D - ~System.dynamic_F - ~System.dynamic_K - ~System.dynamic_input - ~System.dynamic_input_vars - ~System.dynamic_output - ~System.dynamic_output_vars - ~System.dynamic_state - ~System.dynamic_state_vars - ~System.filename - ~System.identity - ~System.input_as_dict - ~System.last_context - ~System.log_fmt - ~System.log_level - ~System.log_on - ~System.log_silo - ~System.logger - ~System.nonlinear - ~System.numeric_as_dict - ~System.numeric_hash - ~System.plotable_variables - ~System.run_id - ~System.skip_plot_vars - ~System.slack_webhook_url - ~System.solved - ~System.static_A - ~System.static_B - ~System.static_C - ~System.static_D - ~System.static_F - ~System.static_K - ~System.stored_plots - ~System.system_id - ~System.time - ~System.unique_hash - ~System.update_interval - ~System.parent - ~System.name - ~System.dataframe - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.system.SystemsLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system.SystemsLog.rst.txt deleted file mode 100644 index 23423c5..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system.SystemsLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.system.SystemsLog -========================== - -.. currentmodule:: engforge.system - -.. autoclass:: SystemsLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~SystemsLog.add_fields - ~SystemsLog.change_all_log_lvl - ~SystemsLog.critical - ~SystemsLog.debug - ~SystemsLog.error - ~SystemsLog.extract_message - ~SystemsLog.filter - ~SystemsLog.info - ~SystemsLog.installSTDLogger - ~SystemsLog.message_with_identiy - ~SystemsLog.msg - ~SystemsLog.resetLog - ~SystemsLog.resetSystemLogs - ~SystemsLog.slack_notification - ~SystemsLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~SystemsLog.identity - ~SystemsLog.log_fmt - ~SystemsLog.log_level - ~SystemsLog.log_on - ~SystemsLog.logger - ~SystemsLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.system.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system.rst.txt deleted file mode 100644 index 9fa36ae..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -engforge.system -=============== - -.. automodule:: engforge.system - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - System - SystemsLog - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.system_reference.Ref.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system_reference.Ref.rst.txt deleted file mode 100644 index 5f29cc4..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system_reference.Ref.rst.txt +++ /dev/null @@ -1,44 +0,0 @@ -engforge.system\_reference.Ref -============================== - -.. currentmodule:: engforge.system_reference - -.. autoclass:: Ref - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~Ref.copy - ~Ref.refset_get - ~Ref.refset_input - ~Ref.set - ~Ref.set_value - ~Ref.setup_calls - ~Ref.value - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~Ref.comp - ~Ref.key - ~Ref.use_call - ~Ref.use_dict - ~Ref.allow_set - ~Ref.eval_f - ~Ref.key_override - ~Ref.hxd - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.system_reference.RefLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system_reference.RefLog.rst.txt deleted file mode 100644 index 405b2f7..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system_reference.RefLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.system\_reference.RefLog -================================= - -.. currentmodule:: engforge.system_reference - -.. autoclass:: RefLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~RefLog.add_fields - ~RefLog.change_all_log_lvl - ~RefLog.critical - ~RefLog.debug - ~RefLog.error - ~RefLog.extract_message - ~RefLog.filter - ~RefLog.info - ~RefLog.installSTDLogger - ~RefLog.message_with_identiy - ~RefLog.msg - ~RefLog.resetLog - ~RefLog.resetSystemLogs - ~RefLog.slack_notification - ~RefLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~RefLog.identity - ~RefLog.log_fmt - ~RefLog.log_level - ~RefLog.log_on - ~RefLog.logger - ~RefLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.system_reference.eval_ref.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system_reference.eval_ref.rst.txt deleted file mode 100644 index b5ecd73..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system_reference.eval_ref.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.system\_reference.eval\_ref -==================================== - -.. currentmodule:: engforge.system_reference - -.. autofunction:: eval_ref \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.system_reference.maybe_attr_inst.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system_reference.maybe_attr_inst.rst.txt deleted file mode 100644 index 2e56478..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system_reference.maybe_attr_inst.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.system\_reference.maybe\_attr\_inst -============================================ - -.. currentmodule:: engforge.system_reference - -.. autofunction:: maybe_attr_inst \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.system_reference.maybe_ref.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system_reference.maybe_ref.rst.txt deleted file mode 100644 index 145f538..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system_reference.maybe_ref.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.system\_reference.maybe\_ref -===================================== - -.. currentmodule:: engforge.system_reference - -.. autofunction:: maybe_ref \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.system_reference.refset_get.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system_reference.refset_get.rst.txt deleted file mode 100644 index 5388b61..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system_reference.refset_get.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.system\_reference.refset\_get -====================================== - -.. currentmodule:: engforge.system_reference - -.. autofunction:: refset_get \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.system_reference.refset_input.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system_reference.refset_input.rst.txt deleted file mode 100644 index 7c3f3be..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system_reference.refset_input.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.system\_reference.refset\_input -======================================== - -.. currentmodule:: engforge.system_reference - -.. autofunction:: refset_input \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.system_reference.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system_reference.rst.txt deleted file mode 100644 index eb9d4e7..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system_reference.rst.txt +++ /dev/null @@ -1,46 +0,0 @@ -engforge.system\_reference -========================== - -.. automodule:: engforge.system_reference - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - eval_ref - maybe_attr_inst - maybe_ref - refset_get - refset_input - scale_val - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - Ref - RefLog - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.system_reference.scale_val.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.system_reference.scale_val.rst.txt deleted file mode 100644 index 1e0d624..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.system_reference.scale_val.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.system\_reference.scale\_val -===================================== - -.. currentmodule:: engforge.system_reference - -.. autofunction:: scale_val \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.tabulation.TableLog.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.tabulation.TableLog.rst.txt deleted file mode 100644 index 7972d9b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.tabulation.TableLog.rst.txt +++ /dev/null @@ -1,50 +0,0 @@ -engforge.tabulation.TableLog -============================ - -.. currentmodule:: engforge.tabulation - -.. autoclass:: TableLog - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~TableLog.add_fields - ~TableLog.change_all_log_lvl - ~TableLog.critical - ~TableLog.debug - ~TableLog.error - ~TableLog.extract_message - ~TableLog.filter - ~TableLog.info - ~TableLog.installSTDLogger - ~TableLog.message_with_identiy - ~TableLog.msg - ~TableLog.resetLog - ~TableLog.resetSystemLogs - ~TableLog.slack_notification - ~TableLog.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~TableLog.identity - ~TableLog.log_fmt - ~TableLog.log_level - ~TableLog.log_on - ~TableLog.logger - ~TableLog.slack_webhook_url - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.tabulation.TabulationMixin.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.tabulation.TabulationMixin.rst.txt deleted file mode 100644 index 5366412..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.tabulation.TabulationMixin.rst.txt +++ /dev/null @@ -1,118 +0,0 @@ -engforge.tabulation.TabulationMixin -=================================== - -.. currentmodule:: engforge.tabulation - -.. autoclass:: TabulationMixin - :members: - :show-inheritance: - :inherited-members: - :special-members: __call__, __add__, __mul__ - - - - .. rubric:: Methods - - .. autosummary:: - :nosignatures: - - ~TabulationMixin.add_fields - ~TabulationMixin.change_all_log_lvl - ~TabulationMixin.check_ref_slot_type - ~TabulationMixin.cls_all_attrs_fields - ~TabulationMixin.cls_all_property_keys - ~TabulationMixin.cls_all_property_labels - ~TabulationMixin.collect_all_attributes - ~TabulationMixin.collect_comp_refs - ~TabulationMixin.collect_dynamic_refs - ~TabulationMixin.collect_inst_attributes - ~TabulationMixin.collect_post_update_refs - ~TabulationMixin.collect_solver_refs - ~TabulationMixin.collect_update_refs - ~TabulationMixin.comp_references - ~TabulationMixin.critical - ~TabulationMixin.debug - ~TabulationMixin.difference - ~TabulationMixin.error - ~TabulationMixin.extract_message - ~TabulationMixin.filter - ~TabulationMixin.format_columns - ~TabulationMixin.get_system_input_refs - ~TabulationMixin.info - ~TabulationMixin.input_attrs - ~TabulationMixin.input_fields - ~TabulationMixin.installSTDLogger - ~TabulationMixin.internal_components - ~TabulationMixin.internal_references - ~TabulationMixin.internal_systems - ~TabulationMixin.internal_tabulations - ~TabulationMixin.locate - ~TabulationMixin.locate_ref - ~TabulationMixin.message_with_identiy - ~TabulationMixin.msg - ~TabulationMixin.numeric_fields - ~TabulationMixin.parse_run_kwargs - ~TabulationMixin.parse_simulation_input - ~TabulationMixin.plot_attributes - ~TabulationMixin.post_update - ~TabulationMixin.pre_compile - ~TabulationMixin.print_info - ~TabulationMixin.resetLog - ~TabulationMixin.resetSystemLogs - ~TabulationMixin.set_attr - ~TabulationMixin.setattrs - ~TabulationMixin.signals_attributes - ~TabulationMixin.slack_notification - ~TabulationMixin.slot_refs - ~TabulationMixin.slots_attributes - ~TabulationMixin.smart_split_dataframe - ~TabulationMixin.solvers_attributes - ~TabulationMixin.system_properties_classdef - ~TabulationMixin.system_references - ~TabulationMixin.table_fields - ~TabulationMixin.trace_attributes - ~TabulationMixin.transients_attributes - ~TabulationMixin.update - ~TabulationMixin.warning - - - - - - .. rubric:: Attributes - - .. autosummary:: - - ~TabulationMixin.always_save_data - ~TabulationMixin.anything_changed - ~TabulationMixin.as_dict - ~TabulationMixin.attr_raw_keys - ~TabulationMixin.attrs_fields - ~TabulationMixin.data_dict - ~TabulationMixin.dataframe - ~TabulationMixin.dataframe_constants - ~TabulationMixin.dataframe_variants - ~TabulationMixin.identity - ~TabulationMixin.input_as_dict - ~TabulationMixin.last_context - ~TabulationMixin.log_fmt - ~TabulationMixin.log_level - ~TabulationMixin.log_on - ~TabulationMixin.logger - ~TabulationMixin.numeric_as_dict - ~TabulationMixin.numeric_hash - ~TabulationMixin.plotable_variables - ~TabulationMixin.skip_plot_vars - ~TabulationMixin.slack_webhook_url - ~TabulationMixin.system_id - ~TabulationMixin.system_properties - ~TabulationMixin.system_properties_def - ~TabulationMixin.system_properties_description - ~TabulationMixin.system_properties_keys - ~TabulationMixin.system_properties_labels - ~TabulationMixin.system_properties_types - ~TabulationMixin.table_dict - ~TabulationMixin.unique_hash - ~TabulationMixin.parent - - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.tabulation.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.tabulation.rst.txt deleted file mode 100644 index 8ff6938..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.tabulation.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -engforge.tabulation -=================== - -.. automodule:: engforge.tabulation - - - - - - - - - - - - .. rubric:: Classes - - .. autosummary:: - :toctree: - :template: custom-class-template.rst - :nosignatures: - - TableLog - TabulationMixin - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/engforge.typing.NUMERIC_NAN_VALIDATOR.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.typing.NUMERIC_NAN_VALIDATOR.rst.txt deleted file mode 100644 index a53ba50..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.typing.NUMERIC_NAN_VALIDATOR.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.typing.NUMERIC\_NAN\_VALIDATOR -======================================= - -.. currentmodule:: engforge.typing - -.. autofunction:: NUMERIC_NAN_VALIDATOR \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.typing.NUMERIC_VALIDATOR.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.typing.NUMERIC_VALIDATOR.rst.txt deleted file mode 100644 index 24b7f97..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.typing.NUMERIC_VALIDATOR.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.typing.NUMERIC\_VALIDATOR -================================== - -.. currentmodule:: engforge.typing - -.. autofunction:: NUMERIC_VALIDATOR \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.typing.Options.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.typing.Options.rst.txt deleted file mode 100644 index d424dbf..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.typing.Options.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.typing.Options -======================= - -.. currentmodule:: engforge.typing - -.. autofunction:: Options \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.typing.STR_VALIDATOR.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.typing.STR_VALIDATOR.rst.txt deleted file mode 100644 index a95a91b..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.typing.STR_VALIDATOR.rst.txt +++ /dev/null @@ -1,6 +0,0 @@ -engforge.typing.STR\_VALIDATOR -============================== - -.. currentmodule:: engforge.typing - -.. autofunction:: STR_VALIDATOR \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/engforge.typing.rst.txt b/docs/_build/html/_sources/_autosummary/engforge.typing.rst.txt deleted file mode 100644 index 5cb23ce..0000000 --- a/docs/_build/html/_sources/_autosummary/engforge.typing.rst.txt +++ /dev/null @@ -1,34 +0,0 @@ -engforge.typing -=============== - -.. automodule:: engforge.typing - - - - - - - - .. rubric:: Functions - - .. autosummary:: - :toctree: - :nosignatures: - - NUMERIC_NAN_VALIDATOR - NUMERIC_VALIDATOR - Options - STR_VALIDATOR - - - - - - - - - - - - - diff --git a/docs/_build/html/_sources/_autosummary/examples.air_filter.rst.txt b/docs/_build/html/_sources/_autosummary/examples.air_filter.rst.txt deleted file mode 100644 index 922d73c..0000000 --- a/docs/_build/html/_sources/_autosummary/examples.air_filter.rst.txt +++ /dev/null @@ -1,15 +0,0 @@ -examples.air\_filter -==================== - -.. automodule:: examples.air_filter - - - .. rubric:: Classes - - .. autosummary:: - - Airfilter - AirfilterAnalysis - Fan - Filter - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/examples.rst.txt b/docs/_build/html/_sources/_autosummary/examples.rst.txt deleted file mode 100644 index 9e28923..0000000 --- a/docs/_build/html/_sources/_autosummary/examples.rst.txt +++ /dev/null @@ -1,14 +0,0 @@ -examples -======== - -.. automodule:: examples - - -.. rubric:: Modules - -.. autosummary:: - :toctree: - :recursive: - - air_filter - spring_mass diff --git a/docs/_build/html/_sources/_autosummary/examples.spring_mass.rst.txt b/docs/_build/html/_sources/_autosummary/examples.spring_mass.rst.txt deleted file mode 100644 index 3ab16c4..0000000 --- a/docs/_build/html/_sources/_autosummary/examples.spring_mass.rst.txt +++ /dev/null @@ -1,12 +0,0 @@ -examples.spring\_mass -===================== - -.. automodule:: examples.spring_mass - - - .. rubric:: Classes - - .. autosummary:: - - SpringMass - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.rst.txt b/docs/_build/html/_sources/_autosummary/test.rst.txt deleted file mode 100644 index 111fa25..0000000 --- a/docs/_build/html/_sources/_autosummary/test.rst.txt +++ /dev/null @@ -1,30 +0,0 @@ -test -==== - -.. automodule:: test - - -.. rubric:: Modules - -.. autosummary:: - :toctree: - :recursive: - - report_testing - test_airfilter - test_analysis - test_comp_iter - test_composition - test_costs - test_dynamics - test_dynamics_spaces - test_four_bar - test_modules - test_performance - test_pipes - test_problem - test_problem_deepscoping - test_slider_crank - test_solver - test_structures - test_tabulation diff --git a/docs/_build/html/_sources/_autosummary/test.test_airfilter.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_airfilter.rst.txt deleted file mode 100644 index 89a74d1..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_airfilter.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -test.test\_airfilter -==================== - -.. automodule:: test.test_airfilter - - - .. rubric:: Classes - - .. autosummary:: - - TestAnalysis - TestFilterSystem - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_comp_iter.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_comp_iter.rst.txt deleted file mode 100644 index 9b54678..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_comp_iter.rst.txt +++ /dev/null @@ -1,18 +0,0 @@ -test.test\_comp\_iter -===================== - -.. automodule:: test.test_comp_iter - - - .. rubric:: Classes - - .. autosummary:: - - DictComp - ListComp - NarrowSystem - TestConfig - TestNarrow - TestWide - WideSystem - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_composition.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_composition.rst.txt deleted file mode 100644 index 0445a6b..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_composition.rst.txt +++ /dev/null @@ -1,20 +0,0 @@ -test.test\_composition -====================== - -.. automodule:: test.test_composition - - - .. rubric:: Functions - - .. autosummary:: - - limit_max - - .. rubric:: Classes - - .. autosummary:: - - MockComponent - MockSystem - TestComposition - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_costs.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_costs.rst.txt deleted file mode 100644 index ce1cead..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_costs.rst.txt +++ /dev/null @@ -1,16 +0,0 @@ -test.test\_costs -================ - -.. automodule:: test.test_costs - - - .. rubric:: Classes - - .. autosummary:: - - TestCategoriesAndTerms - TestCostModel - TestEconDefaults - TestEconomicsAccounting - TestFanSystemDataFrame - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_dynamics.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_dynamics.rst.txt deleted file mode 100644 index dd526a6..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_dynamics.rst.txt +++ /dev/null @@ -1,21 +0,0 @@ -test.test\_dynamics -=================== - -.. automodule:: test.test_dynamics - - - .. rubric:: Functions - - .. autosummary:: - - f - fit - jac - ls - - .. rubric:: Classes - - .. autosummary:: - - TestDynamics - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_dynamics_spaces.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_dynamics_spaces.rst.txt deleted file mode 100644 index be24cf5..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_dynamics_spaces.rst.txt +++ /dev/null @@ -1,12 +0,0 @@ -test.test\_dynamics\_spaces -=========================== - -.. automodule:: test.test_dynamics_spaces - - - .. rubric:: Classes - - .. autosummary:: - - TestDynamics - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_four_bar.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_four_bar.rst.txt deleted file mode 100644 index e4e8b31..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_four_bar.rst.txt +++ /dev/null @@ -1,12 +0,0 @@ -test.test\_four\_bar -==================== - -.. automodule:: test.test_four_bar - - - .. rubric:: Classes - - .. autosummary:: - - FourBar - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_modules.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_modules.rst.txt deleted file mode 100644 index 1c33084..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_modules.rst.txt +++ /dev/null @@ -1,12 +0,0 @@ -test.test\_modules -================== - -.. automodule:: test.test_modules - - - .. rubric:: Classes - - .. autosummary:: - - ImportTest - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_performance.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_performance.rst.txt deleted file mode 100644 index f81f40a..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_performance.rst.txt +++ /dev/null @@ -1,20 +0,0 @@ -test.test\_performance -====================== - -.. automodule:: test.test_performance - - - .. rubric:: Functions - - .. autosummary:: - - eval_steady_state - eval_transient - - .. rubric:: Classes - - .. autosummary:: - - PerfTest - TestPerformance - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_pipes.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_pipes.rst.txt deleted file mode 100644 index f8ae364..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_pipes.rst.txt +++ /dev/null @@ -1,12 +0,0 @@ -test.test\_pipes -================ - -.. automodule:: test.test_pipes - - - .. rubric:: Classes - - .. autosummary:: - - TestPipes - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_problem_deepscoping.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_problem_deepscoping.rst.txt deleted file mode 100644 index b5fc8bd..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_problem_deepscoping.rst.txt +++ /dev/null @@ -1,23 +0,0 @@ -test.test\_problem\_deepscoping -=============================== - -.. automodule:: test.test_problem_deepscoping - - - .. rubric:: Functions - - .. autosummary:: - - test_con - test_obj - test_zero - - .. rubric:: Classes - - .. autosummary:: - - DeepComp - DeepSys - TestComp - TestDeep - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_slider_crank.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_slider_crank.rst.txt deleted file mode 100644 index 3d9b362..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_slider_crank.rst.txt +++ /dev/null @@ -1,12 +0,0 @@ -test.test\_slider\_crank -======================== - -.. automodule:: test.test_slider_crank - - - .. rubric:: Classes - - .. autosummary:: - - TestSliderCrank - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_solver.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_solver.rst.txt deleted file mode 100644 index 21c72d7..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_solver.rst.txt +++ /dev/null @@ -1,13 +0,0 @@ -test.test\_solver -================= - -.. automodule:: test.test_solver - - - .. rubric:: Classes - - .. autosummary:: - - SingleCompSolverTest - SolverRefSelection - \ No newline at end of file diff --git a/docs/_build/html/_sources/_autosummary/test.test_tabulation.rst.txt b/docs/_build/html/_sources/_autosummary/test.test_tabulation.rst.txt deleted file mode 100644 index e9dd04a..0000000 --- a/docs/_build/html/_sources/_autosummary/test.test_tabulation.rst.txt +++ /dev/null @@ -1,15 +0,0 @@ -test.test\_tabulation -===================== - -.. automodule:: test.test_tabulation - - - .. rubric:: Classes - - .. autosummary:: - - Static - Test - TestConfig - TestStatic - \ No newline at end of file diff --git a/docs/_build/html/_sources/api.rst.txt b/docs/_build/html/_sources/api.rst.txt deleted file mode 100644 index 2e35260..0000000 --- a/docs/_build/html/_sources/api.rst.txt +++ /dev/null @@ -1,12 +0,0 @@ -.. - DO NOT DELETE THIS FILE! It contains the all-important `.. autosummary::` directive with `:recursive:` option, without - which API documentation wouldn't get extracted from docstrings by the `sphinx.ext.autosummary` engine. It is hidden - (not declared in any toctree) to remove an unnecessary intermediate page; index.rst instead points directly to the - package page. DO NOT REMOVE THIS FILE! - -.. autosummary:: - :toctree: _autosummary - :template: custom-module-template.rst - :recursive: - - engforge diff --git a/docs/_build/html/_sources/examples.rst.txt b/docs/_build/html/_sources/examples.rst.txt deleted file mode 100644 index 8646ce2..0000000 --- a/docs/_build/html/_sources/examples.rst.txt +++ /dev/null @@ -1,14 +0,0 @@ -.. - DO NOT DELETE THIS FILE! It contains the all-important `.. autosummary::` directive with `:recursive:` option, without - which API documentation wouldn't get extracted from docstrings by the `sphinx.ext.autosummary` engine. It is hidden - (not declared in any toctree) to remove an unnecessary intermediate page; index.rst instead points directly to the - package page. DO NOT REMOVE THIS FILE! - -Examples -======== - -.. autosummary:: - :toctree: _autosummary - :recursive: - - examples diff --git a/docs/_build/html/_sources/index.rst.txt b/docs/_build/html/_sources/index.rst.txt deleted file mode 100644 index cf18b5d..0000000 --- a/docs/_build/html/_sources/index.rst.txt +++ /dev/null @@ -1,27 +0,0 @@ -.. engforge documentation master file, created by - sphinx-quickstart on Thu Jul 25 21:01:24 2024. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -.. toctree:: - :hidden: - - Home page - Examples <_autosummary/examples> - Tutorials - Tests <_autosummary/test> - API reference <_autosummary/engforge> - -Welcome to engforge's documentation! -==================================== - -.. include:: ../README.md - :parser: myst_parser.sphinx_ - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` \ No newline at end of file diff --git a/docs/_build/html/_sources/tests.rst.txt b/docs/_build/html/_sources/tests.rst.txt deleted file mode 100644 index 8cea913..0000000 --- a/docs/_build/html/_sources/tests.rst.txt +++ /dev/null @@ -1,14 +0,0 @@ -.. - DO NOT DELETE THIS FILE! It contains the all-important `.. autosummary::` directive with `:recursive:` option, without - which API documentation wouldn't get extracted from docstrings by the `sphinx.ext.autosummary` engine. It is hidden - (not declared in any toctree) to remove an unnecessary intermediate page; index.rst instead points directly to the - package page. DO NOT REMOVE THIS FILE! - -Tests -======== - -.. autosummary:: - :toctree: _autosummary - :recursive: - - test diff --git a/docs/_build/html/_sources/tutorials.rst.txt b/docs/_build/html/_sources/tutorials.rst.txt deleted file mode 100644 index e08ecc7..0000000 --- a/docs/_build/html/_sources/tutorials.rst.txt +++ /dev/null @@ -1,4 +0,0 @@ -Tutorials -========= - -coming soon... \ No newline at end of file diff --git a/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js b/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js deleted file mode 100644 index 8141580..0000000 --- a/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js +++ /dev/null @@ -1,123 +0,0 @@ -/* Compatability shim for jQuery and underscores.js. - * - * Copyright Sphinx contributors - * Released under the two clause BSD licence - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x - } - return decodeURIComponent(x.replace(/\+/g, ' ')); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } - } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; -}; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css deleted file mode 100644 index f316efc..0000000 --- a/docs/_build/html/_static/basic.css +++ /dev/null @@ -1,925 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 360px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a:visited { - color: #551A8B; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -nav.contents, -aside.topic, -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -nav.contents, -aside.topic, -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -.sig dd { - margin-top: 0px; - margin-bottom: 0px; -} - -.sig dl { - margin-top: 0px; - margin-bottom: 0px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -.translated { - background-color: rgba(207, 255, 207, 0.2) -} - -.untranslated { - background-color: rgba(255, 207, 207, 0.2) -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/docs/_build/html/_static/css/badge_only.css b/docs/_build/html/_static/css/badge_only.css deleted file mode 100644 index c718cee..0000000 --- a/docs/_build/html/_static/css/badge_only.css +++ /dev/null @@ -1 +0,0 @@ -.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff b/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff deleted file mode 100644 index 6cb60000181dbd348963953ac8ac54afb46c63d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87624 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

!pma|lSQ?8FBe{DRl|@FzhU7Cb>&@ataZS{g zrCQo@Lushkm71KyL3$%QD?KeSADp!x{f z=8g-xggQyFIyp&U(+DO4!2ygCg$vPu1pqEc^*Qa)IPstXB!i@fDLx<-```)5UsmT$Yl%a2onC zAFmUqUVZ7M=U;sB~=#ZhJ zS2lbGii8+5IZ#kxQUi*iaRi9X

#R4x5a04mzf2YJ>#U<-Nc81}`=EFMdUjIP>d| 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

b(7>T&1{%W+D%3_gwxcBR7_myM-&X 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 DnuPx& diff --git a/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff b/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff deleted file mode 100644 index f815f63f99da80ad2be69e4021023ec2981eaea0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86288 zcmagF18^rn_bwdlW@B$`+qP}nw#|(;wzaWsCmY)~ezEO*zkUDjy>+W@-TJ2H)XY57 zXS!zQoYPNtpLUlQ69WMS0RaJ3LJ0jVLzJ^=wyjYx2sbQV`u6#@aFEd}C7ARyo_oPtEW^2+o~ARzQ{Ks^Wuf9D zVY~#*4V{6yTr0pbkpC4#a~n@HAhrVna(4p)y5B3c1xIONYG?uiO1A(k!vYkxXSKRi z3m^yrO8-xf04O9#BrrcMY+XEn7zOZg?jRtDc1eJfWUnMs}RH1W`cKc zG6m`?05OnApu|9eM&)^|85@`w80;7ZfRI7Jht3O(jFk44LXZ$+DhHU58k5FV8dv^E zh>nUDaH86GA@B^jfd(fA8R~$H0s-+@OG*H*1SlYee!Vr9O`V*qHQTN?+uAquF-`qD zga?i7UH)3$eVeagvz-!O-VtRIn?WmB_vdN};k4wT;nno^VbT8d3T{)v z+JsFD>ms^(OgV>fQP;+Xy_#xrfkNBZy>4Yxb8_LF^(G$DK4SVaGe-34t;;() zIMQIfF`J$AagyuBAdI+k-{=)5_`|(-b$U>CuQ-_yrz79gHec-bxi9*a8&>6TM81g$ z6N5xT5+Wf5(u{FkM%7Vooa$7L=vL7XjKX^RhnY8 zTX|XvKUJ1%o(%K(74YH+RqWM%$POLfm^^G)WDR|!2JV-BlV6c9;O2_u`Ml< zF+{rcn{s>7I8!opE7g2ks5L{RbsJhkd(IhiW@amtb8GrKa|w4FGfYQ?cWvpLH;A;? z@37j&Fi+TVk9_jF`Vvq4iq`;y+FXPep0~I58s|#;7qsD*m@9`){byS8=OBKE4E`6C zlDEhnhtQrEZu3`p0w=dWUmW}jaRPm<1PY}Bd955XUtBuK6heO>b+Bp=?0F!QKlyeO zdfo)+1TioOk)S-0KwZBW)!+pZNCh#bGBDQ7*B>|5)L^H8*3sQ$dmqiaY`uPZVrlJq z*-5`uDU6M>SVQ%4l&i{_5G3o)+iRa)Xvis#y=n?=zBy@MaEbKjF(?`Rx@syBgCyG$ph2 zCw*$G7*x6VO}4EtQ%aJV^%;Z6w$ZO-4=~eoj+XA>n!&sv7`i=a+dh6j*Hp}&UAtum{esr7o|W~tMwr;*F^#WMXsT>rq>hR8jBn2*aaL3e{U&RG zn0ocKR;!`?c!+CrvTSwj0-3(!Ij9n%%nW}~Y^MlHKZdBXJ{T+Gg&j)5{S%Kfn~U2Y8N)$TrycL`LN}9d#a_5NlcgWmcq2|N|fW3 z-E+fmDXP_elM=cqM+-aAeSvoDGVn5C*mR+U-<=6mY6|OU_a8H{3|%*uK;t>ok%cMdKY@ zQdB!VaxK!t-DfULy!tln72qs)by9?W+InLIx9FaTYYU6WMo&^4I*2TIpY~F7{yd-jB_I-uJ zfjJnpXzR>FPwZ&%Dcl|@;ev=U+iR1cdcZAP6fY9wC;i)Rf;S55^$YtkpJvIsmpzcq z^tW{8$$~|Gk4VWD_^M9(L-YGMUwO@ZU5nr=UHXq8H|A{b+$p$XXZs)@yiIJlBm2G= z1rC4cDedFEM3sB+iOD~i_H&c4rUj-S=db))Tm6fvAPcM2KQhKFon}t3L1n*OFbEsJ|!+Y(D!HP zIa*;iaJ0IvDT#!)HEP-0@ux?RcXJ3*a}0WSabi(a8%=ijO6Gad&+bI>)!vF$>;Euy z*hZ;*3VP6PosL^8#lD7Te_un~3f6 z<=Qyv^#$7~>Gws0gxT=}UiSHdZj=OFL$zMXb(Q_Gv0f7+UeLC07Z-N$huheOc^Y-V z|8ZJTmc0yi3!$(kXhQr3!K4;vNQbGGXh^7dQaq@`teApqO1UL{4d0gqbGX5{6EL)z*ex6i2TtmUB?toj2avRbW^P z3USugtTZ;GKC>!yh>@5&<=r}ZW;j17TaC(n^nIyvgC^2*aC-ix&mgOGzPDvU#@yaG z`Od9EV-X9P_=u@5SbagvFCrVu-E(8%dE@zSa4K@{j=kZY9piBVz^F~DI`ItPre|P( zLL4G9(ouG6cG?<(WtZraNZ-bIlJLcE{s^k8ntTlBv+WHoC0j^}+Q$b$jVwXPL|23o z`gxCHwz@<|QlQHk13{xCoDrnxsd}henNeFVm6cE!%LlTo(Af&1 ziNk5^&)s_sw0h3BVRm7J)x@nwuW)J~|K(s%SQ7?f%*mpu1=Fc94ztsqIMKD#G1K~m z+r{QCG2bd5z4ge~Zqnt3*;}T!6&ugCN@r4NmYWOvPh-*iY@3>#6Xj{8OA+%2x_au( zB=2Cia2)^-zz0C+L}A<*o$Mchi>#d1ms{4b>4nA7D+uqHHl&eaBcvR&?~xIY$1iK< z0A_0;&Am2Hs7A&-nopd~5uV5yqRbgRzyEoF`5wbO8sjhPc2tQ^onXE`#d)janZu+1 zSi22VxvYE$q>n8V$)5EALa$Cp=<~6kDF|`k00K@8_;_K{_|ErX_Qb^G5(@d``2!bD z;i=onjDDR%&Y>3?1HwqnF{j~9sV}i%Ok+)|2V>FlA{%UK<#b2?@`7`muM955whAY9 z&!JfR;`#?}{hpkIXR*ha++ru%=@NvHr4#D6al@#^udDkum9Lw%nmM31s^-bRlO&a;V%NAk_+Am-8H?7tzLRiDPZ`pU8>!Z-tVcXcQpL$( zI~j>u2~ahUA?LL=xH~D`a zQgnmo-9`RWq6Ci9QMX(|k23Oq6ssFbyoJO#)^*9)mq;?_f2B0;Ioa*IUGB)C)sZX} zPVE@;HC^_`nNd$(S3rSdj2MVD{5Iv8)~+m>N@kf!w>w}A&WkGIFd>mj8zCVJi!%Aq z^DI+;EJ0335Vm!oC_w1j_B--q7zBbbm}tAU`Cu-r`<>9FFqAps=2V?I@T@fuJAINV zXAd)H|GVDaPrZG(W~Dwiw>NEi*biTS2!^=6C^MvSkDL|_`RrNMKg^pW#*o68XWol} z|Ib=_{!>fTkrkN(F3?gMG>4RV`kgy_r91yxclN1KtxVbZOPgVwl&-I@OJ+?_W{p|O z7-BKsUrMOowuNY~_L6Pw^70ul^>-;SdU@l3MdoTp+UP6L?rE`kHILy z8LK&FI)|fHI72SsG7-@S(*J(X@YUw5zl58)=R4tIy3i{#EVFpoZqy#t1M(qb?spX> z*(%?Iu=$T%Sp+Yp#1I-&xJ+C@l(l$K^7ffzouQdyiHw<~eU2Qn`#N|4nY_P zPLEsaY6g#VPQPbTdCi~MF6x1*vLu;Q%sQS$F|&#%B|0U%3LP5qa(Ts^A=xo$jq1(> z@7CBK8iPSR69qg|iIs*u7b=SVeHuAvwZIMywcv7GUs+C`TEkL)PLo}fB0Pk`iRPBZU;f^Bqj>H;g*rjJpHxKiJ zw*|p~AP6)1MYZQJwx0v7jJ`l+{q9!O)_(NCWZADV$`xt>jfNlvZOL5$ce(^{;sI*2}f=J)99Vg5Upl^EkVXoHZw+J z(jd^r#5{9(O&wQms2-Ldjq}wjXzQ=)!}s%OT5%L$)O=9c4vPhoj`iUD+%m#$08}~U znBHmj`kNKD_Hku;ggre6O!|z_i^p>>x{ph(R~550UZ3dNkvZ@r*Kv8WKRNkV%IS`f z*qKp=8M$f+@mpgEMwQG_?Al!d{D=c#(g!AK01EGXw0ZjM+fVHU*3pUk1&(2j%~w9U zOqrK7M|SSV-fdsUX$5quzpIL0#|?Evp@tus+c$aT=z)D+Son4dFE%w2O!sLzDeG@$ZxSe)E?MbFFOMH zVR<0IlO!?M*U=;6{)Bg#$a(s5i_H1k$ob?yA8@}z{3>~KFRyS`q@Eik>0kIT8@xTh zIaDgYa`N4fRt|JwdVjDrdGi?2+{ombFG=0kTb1_CX$FIC(m%#}@CNwZtJBv{F2xjW06KhWDP=cYnKv8qbt%x}$OK129kXccP}1ThiB# zYWyw)b*q|$#d@)&G5q_olD-?fg{Qdgu&Ot9Bc204-6Q2HS?j!w2$%P&q2{jrGd|H= z0(zxlJv@E)Lu(XX6F;9#%qm$o^OReh!+M_fhBy>``JZE-u=`X}X~RBf3X-f%EGvF7 zU6&8puVkpt#SihR9r>x2)aIGZn>p6}u2mH-Ay)=N%Mw%Z=MR|viCLsa45>;FKW{Qs z2(n?f57};IriVDEr0E}EbOR$BbtM^5nq=qP5<4}wimxs<`m+6wq#NlMyY;uJtSoA) zg4Pf$`75Wl_w=)sdy<}YGd@CA%`%w(p2Tou;@uB$7sZL=+Z&pd)0t2 zQ`;-jsc(^f7ztI`TrZLBzI23Fcsj4jxy_`Ia?gfT-_N8_-vJ;$hA5Ut{}&AuQ$HqS z0dT~WU{>v$k2dg}<@S5t&nzYC9n9qh!kSSerjNOp4NfOIr%9JxR2n2dimiuFY5dMD zQp&l~rYfOsA=LixdB`~!m{t~D8?x$9`H*_BK4?O<&dvA5VqP?7{LvG$AoOuLr#JS0 z@tMk&=;+SLj!t<@ZHgn}=DHx=b9Wrog`Eb@R~YLg|3vY-dt!ZP(l=uVVP0Mb3PFZIj+&BAxj{Z*ygC|M$BO$ppH@=#?C#S3h!g z$9645F4QCqI^}nUuhaBob8F=LsaMKhv~)&bVO5@K#iNbzwdTcARLO5<;`or%D}F8egX1uX)est10g(>dc8A z%cNZ=uPEEq?%wx4y)R3JyP@9=;E^B}?-YcohLv0;@r$<*e`_6XvKA+jZbQkYy&~$E zljRiO{zulOlYTIYcmnBqZ1UGUcBOS$9;09Ue<}KG-y(S;4cA<_on!9oLe9Zx*59(M zp_8@g9rr9rw~hGom^E(I#y#vn+^h)jZU%VfHE{i{e0g$d@ z-m2%P(l5HO0$4Zdj(-Cn+b)k{x5j@}Y=4;-16o#wX*jjtfYkey=i{g$AmoO=Z19z? z;hi#Pms4+tRBxAc%b@FlUBka%gJe79YQ!Djee3%YNRyZeKzqrfN!70Uim!}YKX7Xk zzHIbK-KhEu-+zvxe~#ew>F1-uwPtO4|Dz{gV9YNR^){z96X8<-&h{0?E&D3}Bo8fg zHX~lW)SSWupj{gSu(d^Q4prp77AR_->iPklAJ^%a$S=H`aS=Y^7`&U*QO=2I{bHsV+-xU$K={T$ zO^g)qNnPqzGt*hBS_DBTMy4Y!sL4~C2zfFo;@X7GscxB2zbS+M1*^&NL@&2Vbq4a=n!W))U;OI`|m$@X=OvJnNX(iXj z7qvgAkvnprpQ~Ig?`Gb{?O_gmGR@$}T2iU^m*=n{K&rf~DYkKDr_G2k8t2A_?Qprl zIEuxcO$#scr#G;hFkP2k`*;)NZ%uZtpZ&l!+PU>VzUA*eWF6sJ!bt4r;1XIfHw+^PC$ZdT29+!F5Y5sR=g5%%t+W?k}XcXTXg-ll3XL~8ZX z#fj4^0Kv>;2U7sxpT41>-}ls0(WkfG*E09gC5roPoqb`;KY3T`P8>@JYf3Yirwplaf8O3E{TSFG9c-weQP4Ot0K3*f-|$a#F={6Ca{g;l_(Ax zat|P)E5--M7(k3jGxDBK>yy6|Jo9l{_sc*?=>A@&WBW4ZYm(=-{yvzcP_f`3cH{mU z({g^?8J8sxeyegZ-zN6~VRwMGo=Iz;+>?Pnr-rp$taj`Vdql-o7!C2&VFy7UNb(E3cybrbKtwbL~@cYPd4p7=jOb)#p{*I0 z*(8bU2+Gw~_W0BG14C-sER7N7^c~t+8JuRG9NPeRIHJ~?ky`$L$?J-NUflnyv*zq( zJ6eR`i#fe0v%_V#BWBjXfG0tlSVTzukmM73>$nSp>u2_yO^+u2nQ-kmTr!KGOmh?l9^+L zGDMyv0g6WE+pQY$v!WpN{8z<`u;@Q6`qKlqat}>a3Uftu`;}WiviWat)HX>c3)3&V z+x&`H^6@_S1HGz>-Sj8qJ?u^;SMctj|+cHz+*{Gk6 z8|0hbIqmM)bQ1S^@yA^Nq%MztasiZmpqv5a2&wCN2PmgVU8uc38$06w56OUsQ~+EY z04@mtmkfwb0Yt|GqKg38)&tTv#S%Bgk~e0OH-{28hf+5w5;rN5H*zU^*+hff+7a$C zs8>3aTb@dt(uE$WQa5yod%ARk9ZC`IRj5~7lv~kCotcFm?ENfMyMs8_=J3G`3STxpBe2|FohXdpxoWp84U`=OVqf~Rlhc(QA!w0c96V+cL1(`4Tshaos z9$ge_^bt#uI$rT*=pj33%#N8a`|!+;siMc~#eSxz>U1AtMfxu%>TDlWT0Ktt_CRpj$to6_A{2!D0{&&mU?cN1>3%a~$cYa7@1tqNj;B!{~~jcW|5|r;5Z&>tb=H zwng=)lx)YTv=SXivCv4fRswfvWWsL%}*6PMn((vCaepI#$JuC!mU>46Xd0*E3v zpS4OL-&IwSi=ZhK-1#?y`r0#ny)iZt;z}vYNHEjq0S9h06opJ>0G2XWI?9jriqcMP z-k(s&E)mhD}lLt%;5`4^}jI_#$2`@UD)3NfSq2i;dyqs3my}jG_N!#tPVM$s4 zhrxxt{X01DKDzj4W)lPsWD!shk;H|Y<)M{k+cz;~LBMz0r{!3lQ}Ud9=IPfUgrmFB zlDn7vY18kJD~N>Hghs{#Hot;p*uCCz;>v|KcQeUftH=!E2Gt9U@?eM3A>V1h&?3#DqytU&H0cPb zHJ~byr>&qgiEGu6D~-Wx6>n{jr_DwiLb7}5pjK&X#lary@jqRD1>u0lIRA=E1S=uw zvz!7kC!ONF$wJ@%)hinA98TSL*tu5 zm0y~O^25yc4L6lu`)wXMeuR1kcY^{@H%grYQ{#0JFQ*!lz)YADM+9EX#CsK)22PZk zxtc-i2oK(^!tIEbg@N@Owvwv>b(!uM`vsKkp%xaixeccI`d%3pvwZd;Gs-xWE?U1l z|7iWip#0DLuNePD#R#iC|M$XMWo5q%Wk0Lr+}E3VkTJ{&q_Ro*yW4Ib1sG|?^wA5Q(^*`LwX7A~R%)L6Q+#}Q)c zEbaOKpyQ@CHQDNM*L#ncc@$1T`9l)kWaWDoxp`(z;pxLSB}r=v{sASchNLx`A~tDO z(=yNSA`2Q(V@fRPS?!xdC-=)CRqq6Hqsz&z`|b_#tLcyXKpp}7iJ<#D9ufSh{`+_y zA!B+QcbZtq@ZMt-&tF4^_hmey1&ouU%${N}D2cO2w>Z%g$1t9OL+1BIogxJ+uTpw> zby&W%HM76r^tVQ^mD;LQ?Z%z7D>jxi?XV>_#P->+T4r0LKl%LQZin9$Wj~X?=Dq;_ zrz2nSSyE22lGOkQsly_8mE{=^xoi(R!sy)_a9Ev=%KqN0DtOBZsz-N{0dBfO`X zuFF9^-^+qJTtBR9km&0qyjw)xb3?ZoypjUEqG5-eF;8ItPx4*LGa$sb)-zUF!6N0;92Ppo^Xnv~8V>jmw@ zai(pbSnn*(+X8Z4$$frcd}o1HsX$FD>TUCztYIGh#e!Bi{>yLOzM?>6MW4v#J%>L@ zDp>b(1;61goIhDAEK(}$g#P_|iT^LE>4@FcgWur~AAv5uH}ouQhNE^-?WAf?D<7Wpn^raD;aS@y&Dw&d z-60vZN_X~prSgm2WxW>Qt!+9Z8UK)wTHP;exKjVcGN(QQaO63qm7;%0O0DIWy3Jwx%m$oKTTQuKLEhf%Ru`Q+?f`8rM2dAeYL6XczcQ~ z?U~k6)Bgq<(gAG~nx=eropImwCWz=w!}*VxsSUpTC)Gbw?6)cmMc;_|%lR|XQX3|y zHOt1V)I4deJ9AvOMj-6X5?ksA*H;g-&#&#=G*y=k)E9Xb7c0v(RU66=x69ja>A$SF z)-s;zhoL)Oo#KMZs~g1Ir*bA7W2`C2Im-@MN_Ljeue+v86G z7Qle2P>2X!FcMXkIGjHer3qu6zxAHJfAnYc{l)b(Kl#z?_)iyKyQO^q9|*;o;R*NL z6WED&-+huxUgFZymb^$ zs_BEa&bU-$T1I4QM`U`a1PaLn8p;GJ%UdbEacocOtAj3|xY%1szH#&ytL=l1_c&vQ zBq7g6kQqGUov6h*5bGjB;HVhZO#!O_inWby?MnN)L1l{}8?LuaF>O#wRii40rS%1Y z9J+`84sVX>XGXr()JaJmgOpRn)a6ET7dnNm(`W2y#2qO9EfW46W$q29a@rUR1|)gX z_j>E_zZ>7AmU-&N{sbRnoD^E%?5Fo)3^8Gq3yG?T3O9<2!%nE41PI9(F`<;SHrk?`u zzsB;7AbvoEe))4IeCnAR>_`~RsTmk#T}_Yl_8JYggI2~sfou#SN_ebA#e$=5N}-BQ zXQ!*L%aFhH{I5*j4&74Q^)YGNj!9{I+w&$jjx~@2a^t|>Z)KoRuh-ST4nQ3+c@e)g zfj|a_hTEkDk^<*CS3>$*V}3v?Xh6$5Qt}o3nN!I=Rc1exE3hD|`V)2#o<`JFO2PJf z)2ODEB1a-Y2_n@H;O`WNLnJ<$?i8X!%|70B8^=Q?U)D<1HdYZ)p;g{?TKZZheA?)= zz>NR$_k{?{#Dx77D>jOJsDeY(RRUKNdu{H<1v*>Hd`{B^Z&S>D+41HC=T^e7!$xPFnsq3bM`@jMdB&m@ zZd9O?<&zbfRACk+;S|CaFNIi{~(VSf&n# z2De$&J{K@PGl#hFvBI&porudyx0ri7WJJ4Yljhf96|mSiGt*>8hRpYCi_vEbdgpuL z%Av>|9v6adL-c58Z8Z zr{}_eERX3$`nWDHrm9ox`ued3D6y{9WfC1Es!Dc+X8B`4Cp~oqnf(w;JX7) z6=B{X${#I7=mVafzsVZbfDxf)MokV~8cx@`-+=#()hCGYxz0tDzD6oD>LiAwt409< zMxbv0{mZjf;EeCn49MjcXgyd&zb-uUQf+Zlr7iB+nB`BhbfXMRv-Cu1yF*Qbc+wO= zeCkg%P2+4hHb7#ot=o!etS>yOLY#06$6>H?NF|S=;!1gh!w@IBj?-XM{)WRi?i0`T z2+DK>#S10m?S&{T8k z;h@4|#?YsGV!-t-0Xt-w&hFmX9p2P4#8cQ*y||yPt^#R9W`2<{bnPM|rs|L#r&vhK z;q8JGvMs+mWPcTMU$!50|G@J)V5F4iCB6s;ogVcNT#~Nod<@0$gxZ^0|($ zmscrOx=ZJR)AxCpbmxD+k0hh*`N)$EqvQ2IVKz9%CmxbXd!3Gw_mV389`Ki;{p;?c ze|+Oxy{-4R)gfy;#5PN_Gg9klLtJIq=xhb+k_ASAF5Ve}f_SnF%Xn18Mka|&9l;Qu z0mObOm4t-kzmNq{%*8B4-V^?w3YcRmDfP+wh5#!07dtw#w1YI1pQSUzc&hOcoB$b8 zD%JEc)jX-h#kLAPI6Q|m}Mj@(88s@^bR!2EMnpf1qxK<69QFtYF&pnyma4eLRb51F>_9d{_X6bnE zwI~pofsT64tGUD3{2?=aHc4wi2%|lakLFDRi3g7ZY~um|{$jvJE&5~Fa&NK&A-CJ- z?dEK{C*V(9?eEgG*5JaV#;D4y&R_Wn^%3P6?V-gf%`w$E-GO=Wb>U^{Z6QU;P0>}^ zT|otj4UrX@9brcmL0$r546ywaK9}U|Bh7W`Ho&f#e1Q&(#Riy`vfI^D&F+LNMSdEx z6lFmcG*wxC29{M>K@J3#Wj-cP+3Q?vBG#TxD0d>#lyRY`cIBXU7O6%)sdhq62>3#@u=A<;S`Noyne1ZM%*ZC<@L2a#kYH=e(*D! zItiGMHGs;Gjrrlqq3ijEEt-|Y(+A}qh=nRVHdmt%w_?gkYoSCvSvcl0Jvb|!n%Bk1 z&wE=YX8wL|1dV_z&b)J{DcT^Q*|REdIQ9?nW8(Ip|7$Y@eu!h51u~pLKtQlTp;1GG z`a|JJ`q$LseSBrerVd_xo%wGO@PWWiAtL|d5?QL^-Wy`DxOR%EN()BJ-&q>1%{g`4 zwY%c9=L%kZO{mJ;#(9UcUaSR*@b2bsYei`{*8}y17vy)CP;+N@ROm2=EVP&ynVAWyb} zz33Ob)5<>;CEJ*NS;WEco_!UrB<{$6mjuANS^)8I)%gb!22kE%3*JbAN{ys=!1# zex&!ta=^$0bYP>yC-qf9-eomjc=Q|Vu-$Kd^3nCRpi2rAz+7*lzUoS*O#4;RktM^Ll=SMe>BR?2F- zQB?Dyl9tNq=ui2Yr*>4SZtY;{ny7YEneRB-zSWfm=G~X^RmZXKkLA|msz=*&;YLkZe9Bz1HJTsO ztCj7o)2zc`;Mgy4*BTImfO>!c*t(7mLg5Q~$DRoJhzI1&giv(G!Xh)o9R8taYDbo$ z4=nuN4h=i5xgWePp630~`R=@Qe0;Ni3VXT*uXxq4`uf88avXG6hG@bm=h{}JKaFDg z2EO#e?Iy`WA}^ZaRF}=AK`pV2WqDZZR~nV*38ggWn4G&Y4HLRw`44nUOcbnzHt;4) zS1tjB`HJMZKd9EULqs9TRmKR;^c%X6n5I+Z$BkF4`B9<@}d znb?}O`aD+MyW(={|2Pym3%(}eH@%6+h)cgQ->8VuqjZu@Osud7H#vYdqLcUG;CB{2 z$^pk&E8C>9oD{AY|D5#9<4*Tk-z_n-N#ZxXOT3DSEb`8lZ;F;@aivL=>7)Rbb-Mi9Q)qQPg4$Sy?akik=*m8E4Qs#(1ddTHEyg;4- z@!Z0_Ge!S!>;p`CFZtZ}CQ@qHY^&5A95pPRTHG9eV|uk_O*{X+&T6wShyJ+rOlTX3 zQOvz_@c7Vim--dU|AXj&G8tmlCaHb)5c>OmFZ(E7(j)M@tfU3ZR7$lFRt9eOpIK~hyYt?K426v(r1$dD$ai0SZuxnOb-H8=iX$E~v)b~ha&P!ihyW>+F18M$e` zUH3sOn7K*JW{60UpjvI-=<4(#$Ehm?hl?2}K!8&ABK*U)5nl6F)~haKP$YALv6u`; z`snI;gBO3)=yn(_vns#s`nk;rBj)?AFOCt2idf3;#JjZtTZxurJX?(?-729z%v0LZ z0G)6}mQGygsDX(d{xuOJJpM1-{H5i@P1q{ zb{neKC}H-YzkAb)5rtoO(qP;d4Y@9c$8?E_mfX|NHsRtvRRitP!7z*Bsn2*22inDn zykCVN2oSNujcilogzH^}NeNJnhRR<>P6>33M%-S7$`Rr=ZWHSZpsR<$u1B7Wh6eH4 z()c547!(B*+o6<+08|DM9Rql6BLk>I;4l+OvG)XZ3gA<_xE;+DEsn_EBsQJaH&MU8 zM%Nkk?o!)o@oG-5pWqd=ViV};g+DvRG0APvW(eh@y6egtSg+hhAv9vdh3m}=y*8Za z=BvarR6h{oPeahiYBDD!+c3bO9TXKISfQ*}YoX*G5M~DIVjTAa40F9i-u6cXahz3U zmJYq=r9ndR-V6@P{J-*VA5v0CtmD^UyCn56I*}2 zT3qNGn&?)p3Yk;0uSHiYUZJ_g5Lk&7kfv2@>@dIWk0{pE z7Az<^n8l+>9LygU22-$9Pu`f-b7g;F^-IB6o3hbe{K8dZikd2u+D$mLip`y;zV|_7 zcm0mvFm_my^so&1&^XzkV#t62CrO&av62NRkR64&YP+uCZ9l1vhW@eZjzD(af2K^fNm;P=nu@79IDP(O1r5LG%5F z0P07T z@|~<+M;aP3*X!7vbtNRwBs~eZQ5>tE&Icn`mKF! zPyP&Y?gH(9w8}4%ttf+ib(;qqOB6@6Ih}T5LCA6}Ig;FD9S z^Jst5QsX+2Em6zGLFg(@Qv{9gSW7`Bf@THbn5;}=g*>S_-PGk9dBN8Bt zN{{T7?_JLyJe}CQ*>!ku;__)EXg#HJpSxkT3MQ<;bZNJlh4x&LxOFoOc3=El4?$lbFEvEd5HofMfP_ID2kYGa zy;}xMvjQUji9eKy0xCcOL2dPob})^C(12AO1hl9imZ%6apclq8B#>JHXHUr6975&w z1j>(BHUT|9U4B!+z@nw)bvrC z;mSL`)FF^oQPg26>)Q9*-taQOUQL?dMm2C1&;B_*wW5*O6=tm_p=4m02K&$ zK${3Gb=NL!AL<9nNzC`>1F0U%1yi!6u1SK|d`6r}gNvQAdPlQg ztgcnq_Bn6W{*r)jf?V4hUu{{ubuKBbg_ZC7w877$ZhKS3bdB&e-J-+~sI2eu(vM%) z%J7RY>d76?MJ!e0SL1h2{R~^Wn>vo!-?5q*VC_UJWv-j6G5ODv9{(>HT z;2wSC>X%11Q5~MeT73h3o%TOp`vm8c<@eb%2+KJ!Dqo8XZV-*gE4Tzk#R zIsGcBIV`3=nT%gQ6KtB_Zx_*Mhf^ZtZ=t0I6TYrr!YZML@MuxirPR?zO{PDusT<5} zYsM`L8?orQNl=+r2|ltZ75A5Vshz+D}nhdlTOTxr;FkwH_*BYiM3?q75fZ!wh3LYs$n5$N-S7_QBT z37sf7lLcPY0*l>z+=S#8)pDelultxS~TjGn~2+xuunHL_|qt zj5)r>pDWBWgvUTY`t7@I(m*>UK&8gGRk)AAg zU8d3n#@bUZKH(vm2QWH_(W)udxC+(#bpWu+GVEXjX{oh^NaJS;juYx*JHS|DpNb2# z#WrcCYL{ROySU1Nmd7fCms^!;ufuV_M@MEt(wg8r+WmA);SzHKr-O)oNS9$jZ&;kd zgs-{#J-mW%0gQg_O7n)JxrS)L{PZ?FNU33LCC(DX=N3VY zXb{Zfu$iXaP^#-V_qDS3F@*0(f_b>G6n?Y!pq$9Sm)(zV65>jJaaI7uDylFjk?(m zSt|w9a)=E>?kq8cP zxSjTN;r>*cGR(R@4_Z0tV5CChKUw$r(CKf}%m<32Qt_q8Y2GaHtpm45Y3=gnfgomeafPMHxlR;g)!EHtwlO06B>2vu9``1(h;8 zjuJDDIMep4Et$;}!b{otEOs{-m5mfeJikzXQxIbH@3f9VHXi_PZVirvQ1q-=mi4dT5 zVsIk%u5hM&inBvhT4781T>Y0gWw5ZdL6ay7sf~dOA88d4ohKWKt=I9qVZKalz>)Yy z=rap-uaX}Byw^be~knmc*=Mc8FDPuC1)z4%M3_$I)xj90-aEhcHdx+v(x=e z1E#JqnXhcMK8N|p6HD)(;yMAx`?{Njm(>~RRcm#)!Bs*x9R47AeRi(__L&Zx3?PV+ z%jQ>HZw_9!jC={|Zr93zT^EE=t--`A#}z0(0f!FXKf)gb=v3fewdu~nx3>9kLcp)0 z69kdlVMVsvb3#(BV&$}b;jf!W7!9t3}@EMjtgkwXnOxtF_->bq8 z1+fh^a0P;DrIHc{3tHFsOc22>6U%EQm?S_jMq1WHfpnP_*a57Eo5@5h5*kR@J=5io z=&Ku!L5CgFhhps#CM-a@T!G`#DxZGuV1+EZLP?!~G(598GtWa>IeDnQ=Td@an2EYT zlHbGOho8yJ_WA3^+3c@S8)<xOJnCtbHusV2*pvr8kapw!iFOLHVyR;OtwX%NL*jL+jo&_#x+g$7OS0U7&2`DCf% zWa-3YDI2#qRqYO$+HGQS^B@pgfhuK8LKM?W0A+cg%}jNbV(>H?EgYN$d)pAW;F+AX z5##9^>**Tf$=ClKzW+N>-q9L|>CKy4*Xoauw>Nny{$<~HZqOU~x;=iX8zJp`XfAXT zrmUi>I>NuVhyPjcFJBM+-t`2f`Wx#ye$pwx)GH7Vht=qC--f}o*&ol=um?Y}G-(c- z_2F5QIK<@0U7H95^K1L3+#{$aWzkY@8#L2 zCtx8?4p?_a=y5djY1?jd?S#klFsVI3n=hi+Oj%k-`%<-RHldhp6;T$?o1np3j5zp$ z-%YO+S3XN*zU^^()rYF0t~{gqHj&o7{`%d*{piB|U~Lx8Aol^8hX7L?uW4*=GMkYs zzp1QhC1pA*>!GFezIq&0BGAnAl2eg)v~e=G!#1PCR^Qvl)EiaNom6gw+sY6MFohnX@C!vFVgcV2UG@4Hr!QL3d*h z`mLFU7QE%X>$J=JB!Re+v{0xP%DekoqC`48Mw`Og(fYoDNh1@2c~6#-0p}xyscU&@ zV;a{2hhUeZAByKwMv4hZd>uo=LnRojmiz*~@I9 zA}ZB@BRj?93sSg4q@o;tULTbB8EdTGGea;%Rq~h%>%7fT)%-(NiT)&T%~X8Itcy*Y zw)W1el7{~9cTTO&zuw`d|vT(_ek zA}{Pj7r`l8uh~ug)iZJ;%HXWp^Br*O+U-(`x#Nc>^7|SLR%GjLLlKG7oXogHqn)8j zq+W?``1*G7PW@Bn$OAv0jHIM zQaOpp)C^Xq&qpWwpv%q5Zx+y;7PRj}?BP1maS=OL5O5K)_1WIG;o>5#>+@EuQHrrK zf!m*>%E#GWD~pM!E)Q8ObE37D2nN_Ay zAqWIzSLFYa2bfq_2#EJEf!=-{{6Yrl85QyhvsBdo8W+U~`{LxZB8_)y?5>tv*a>;m zlkjOrgI?zZzcAR{Rlf_IKQW@Ra0_K|G_}7NiB0xddyX53qT^SMbx>y9A{s2W|VJ((Sq$E4m#-uPC z>}Ui&nMY)1^KH1j^~F5-9ljQf^V4G0XUpna{AzdJg|D?wRMpH6A33f=6Ez#qjbWh8 zY9y}Nk2@Zpk|a3uugrcrP@Qrb@}78r@H!^*um7ywby-RnxHoGQGi zfGCmfb%j$-CEiG^DDv)g$$ym4i~V$wcKMcx{pSn2NDI4sts^ftG5__hbZUOc_Y)8Z-PB-8L{m*v9;Zy)O_d+IamP33Eto;w}VEY6I24pyJJPpEv_cqW;4WeS5HdL%bxiEE%@xo)x? z_U?V5b&jJVU8xHnpj>AX2Nn{!ZS-M}b0YCAmQfm}6E$c5WI*qzIlM%jUOUkQrY5z- zMFNL1X093abc)-OQ74Gr&l_7FWT&M}j++QsRQq_n%#oMjM%dCxVzj1XG`wMv^K|O# z^(Sw7D|_sHHP<<(IV0I4jUv|7|15h-)wemPxgwn-jZ)YDLGoC3r`E2GXxf`~cDjBG z=h5m-wO$)hbubHE(4ajk0p5&g1|F9HT(98lL&#C>yGSEByD)+|*U%*h)Q}{Gi8dv8#06|XYxNC(pN9-i`pLg=A;_emF>&zXme9s=g)aQXO|XH?!1*M zn#pX2)@DnbFY;^z??y$wfLr!tpE8wF&A(p4?PlWm*u-q50)z+F1*4}y2FGM|+l?La6t4mUxj|6V)I+wk1#TFjq1@5CpJVQpq z4XnvGn5}1S^;%{U6b#AkWJJ?LOB~5&k|OxcvPb8JO!@CpBKR@K%wC!{G{_chL>d=8 zoSIN}UGm3mBXWLv``KJ`H7@2lHDT_!Y>yqvW&BK)n9`D+x))Dh)US*jxP}EEW6~`1 zaxcL;H6s;#YW;C~^{m|cHRK9&%!iE7R^%c*&Amj`7bxmL z8lx@AwiR28ma+Y(834N7=tig2nE}Twla^j4DuHFA?(k=`?7}&7ix+fX2i_kvvc80~ zn^d*?7we_^@I|Hk49syyb)<{7B8|%)POX64zQ$M|DKMH3T`eqU`$M zk3Vwc+*?at|BU|gh?j*>XVU&pID`u5|&t+XG+s4UZkQ`{aF-yBy=YoW<2+hQhgo z=d{oBGwQ|tdrh3QqVQ8eyrpy9=_tqTwS3l;j?~7e@tREv*6%xL!zIR8hMu*-M=YZLf$#ibtlD4xB2dTy^My~TkbcjTsz;nz;Z_l1m%O5aA~WW{ z|LS%1{`SE3Y;Jj@y0zcTH*WNaGW}8ZSA#td{{j}V&6^`kq8s={DP`W0cSO@zXqKR0 zYowWr-qQ-4lZs8ZSys1M8eSRC>#9GuvUhhTuNin3#QBnE=j|WIaNC{Sao#M}yV8vi zhB?0PZTPxAPj7#?Rez;7me^Hm+xg3gAJ*>~);I`mIUc_r}|2eBO4JvJ4Wor7p}6?1*fdPb{M@Mm5kz>#9_yKn}Fpuo!K zk=gqW)`1_s!rM`-hz}g()%^IS_qYQ(GY{H|_ViRuM8)5qaY*F`KCgX|0laf4;Osr+ z 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

msZ%O|+*Z+LS;;x4v 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%0AU9xwl*jMUcB+ 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 NDMp1hFB${m{{V&DCTjoy diff --git a/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 b/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 deleted file mode 100644 index c4e3d804b57b625b16a36d767bfca6bbf63d414e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193308 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

l?s7}*4vp!2W|88=L^r| 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

nR1?qM=|aYy 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

F}woT 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"bt0}@AlIHaMn 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 diff --git a/docs/_build/html/_static/css/fonts/lato-bold.woff2 b/docs/_build/html/_static/css/fonts/lato-bold.woff2 deleted file mode 100644 index bb195043cfc07fa52741c6144d7378b5ba8be4c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184912 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

x{o9f|7gEmo2*wv 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 z zszDMPcOXcsJmc55^ndeO7g@Vzt3hi7h|_rvbdL8^vuFU8Q+Al0X-FsB>Z;N#pKLqs z@%UfjhIRxPbum)AiaGr@&QI4Li$pV=h7tied(NMcO)QqGx?SHe}w=kD_n%u+*SbOltvK*Nz+~|-#X%o$X@(@2e z;Tasa;7fOK*{45|IJ5p6SifpUvsiR=vQHoDd!oYKTF^>W?k!zB!Cpie-kJ*Aa*5r_%ZvAYe(olaOm9swIDmx?EE zZUijbQ>Kwr!laZBXmk|XAwOgV#){)YmIh*Pwj#E`k(J1&JQUg> zCwa9)pYz2Kj~d^l@TjQ~2@PUC=S2#|UXUC?%z{0pFnKh8jo;|P3T#b0V+hqIo24?T z++{%~$(fJ|wP?ipbGgN7_p?pHL!?uCS+43%L!}Q+pmQN)syTNQmsP6X!aMZ zq0lUAsF4BsQ26!;$!|mulT&Xr1NsBX)t;rG_R;-%ZuNpv zNIRcK8jRX;6~JPk6p)_cq3D(LVzXT^nkby*L~@%lt8hVKoHqNRAq;dck;bN|vOlcm z<6rx>`04TwxI;iMBjTuDRorI_SE$F#P0yNsL*Es$XZ0RP9!*_oV(uDn+lf*Bs_7AE zhd&{ekkOaXo(!+rqMtSrbfp=!m_=uM|uI|ZFp&UG;L>`z3JDr09_=XEY)!UqX zoT!zq1g#W-QJ+Jmm>NO(e=kw_xK8vjCC=cE(1As*eSQ_8yW*W-U#;$pp>x-2L;IfE zE`U&;mCjASTG^qyu%D2@Lc1nq5Mtlz&{433$>{ZaddSbzapOu4L^*uP&-$NoIe6R& zT?B9fn!{sOWSJTro0s?EXmPEciG7kn*$GUy!UEY9he3`do1AL`Cq>kqXeouF!0e(@ z1|b%6&HWqdYpiMYCvd7)mh)HCkuL=>T?$YL$~5z3Xm$C58!6!Mxva~VmH$Sym)3Ab za&NY0kdm2y1WdbHn?B_wg_7QIA#a?r%50`fTujWy4E0nnncc}@L)Ln88cuDkT5@Wd zo(WtNQBD>RFgW-+WHS32gHi1Co8HqC=k_81>Sh?l?UGkhZEKMJYbph-T&92oCQQ2Mlz0Qkn2g<7q@zczmfvX zbW=Xt0`Btr5dHpPK0HrQgkP_ z;MgTcJXVeO;^VY@QT2CuF`zpM*&`9?Mb4Iymr#>1oLk%lgwzo=U>xy>2*|K(c>Nsju+)fxXaeZcW|52D(oJJbx}f^lb_kD+D%NG0_ZM2yf> z6~Y^#;UDcJ@RJN(*V$3Uv!fz;PTJlM4bE*Gy-t3lRkm9k({#>SGO9dOQDeSRlX?iB z#A!^f6_&_mpxZEPy!QtJ4@e{`LTL@e#yHE=@s@cvZe@r{U#YR=b7WzX#0BfHoTXe# zqwtj;A~iz~U9!i^6dZ~`X5)e}wT-N8R7ePH9F#u0U<+OfLVqTBf93iB ziBHPwEYF-Vnr8S5>1ZRaee*>eNg0NiDF%I0n{^A0PAW={38K=(?1ev=*^{AUFrT8y zTt0~MFILw!&o{@ED)~&G+{e*p^3-T}1J8s1VX)E-FHe&cZz9K;STSDQoEO;Q73vgo za*dx+usnAQQSXNJI0|5Ef;mkTr@)qpiNT@BVT?9)$6#GB84+0%?EI+bbIUw&-WZA3 zL{>B{$v22I8V9IiE2WeJ`PcIV_>WcAxBz`H!DZ6F;WAX4G1SDf30!;`G&X#-)UbMI zf7UTMG3fDYKM#ymC=otJ;O!?ao+b4!<0K4l>C*Q(RB#`IlnmJ@hHciWPCj7vy6jR^ zf6dY`Nn2>hG+u8^Jx^_x)n$ZH7RC>*n&+~&cX0a;nPMv`h5}rx&PM98xT=Z3haRL1 zGbFA4`DzWszjoMcJpi;+(as#}G2W}$3G(G(Kna3*>rGW=$ za;FO^n*wWR=F{mt=voD@Xf|;MVk<(o-&EI5y4VIwg?$=_rcr(jS5Nn25G$I&GyGeh zu#&t|0yjUR(w5*A@)DdD*eSyRAf9 zh%hnd=ph%UH8|SxnI6^0hOl9s+ZQ~2AtaY^scE}0n0@r*o)Vd1YxnH>AVS@|;D~v%Gj_ zkfH#y>&anz0|eY1y0|>xzhE3;4WrW81_i&Jr(Tn?_!pGwa!%#k zFVUekt?LQhsb>~j7Dio7EY>8 z)TODeb~T=0B!{+%X5(|O06gglP;YRd`${y|fUGxq*u$CJQ`DmF)6`5qXNW~c)^klN zG@Nh&2D}Ge89LwS8+qWclbKeh?uCtG1^lB)m2oN&%i4vM^*MAPa}m#AB^HX@ORDIcbg6W z3-@jNNscyZ8%1a**U5`3wiTIGH~tA;o_FBr6$svoI2~FP-}8-9W^*yRVp}nWTvue@ zMoBX-{xQb_y0^C8tkHKBsFphwU6<(tgrIbaf&O$RgCdot!s)oBlRB$WZCH}Mo~I7N z3}e7&-o#Idp~1H}xOtG~RT+N`x0tsZTq@jeUuV4f>v|jm z2}T1mt|Qccnmf!gs1{)PvRv!3Jm*%ysG*9Y45QYg z$`$mdD+Deo6ahoY$O6r%s9a`F2N)-AwVL-Tt8Q87T{NO{qt+a#>3Y`H`b+2%ARQ|c z+Lkx(jZ)Pybcb@4Juq5yM3-8Nv8MaEq`nKTu7R^$$T2!Ek4g#pu`a%j7+IGnEki%a%w<4-Dba0UV?@#e#K<+5WVq( zsQB-ix@iAc9tXLzKX&NuuZiNks#i3nzO0wIUlAWZT-!lO#o*h@;G+A6e& zT99ioE)PLI0InE$iCq{Z5?}^-(t7m9CDCyp+jy6v==-kvL#SkUHazwJpLyRL5jq+y` z%I*-)T|QS4#Lzd7AHQw&l-~>Nq?b!oe2Og>x*ABb3z>-xsK(T#Fl#P}>+)!4TEl2_ z{IUrl7xM8CSDZA1;fC>Ts?F;1CrfwXqv`1Ej<7d96b#DHa_8MA%_+v+&_wAa_?IdB* zHbctzF*Y=!95G{C>UKl&*ka*%BxZf^={Xf9bGYTlstFP$#)M>gGn**EUU(@p6ke=z zw-Q-AO4`FXJ@+ti=#Iex(%21ROAV=7_xB)vSz$1Z#IMKs+W5 zwrBM>Rph8DXj-8BRv#hKwKRu%QG z{&S)IRc!dkQuJpJZS(UP`s5cI-N2(kl8@Xw|0#(^jU#jP`{!WFcT!WvTY&(qi*mR% zahw?2^yrEWbcx!5&2o=pDB_S02JU!@$VUy zDl~rZzY^OvJ<+?}N1WpV`9+3bC3ElU25UxwL*h|fH`w9q*JBuB;HzGmt`p6aTR*Pui#8~tz(kH!E?d{yhJCfrUrT?It!Rau4r z)`GX>xIE?K9*{bJw)o&qh=Qil7S z5Hd&h^utA8fW$AOqIp?!D9xlJ4ja-5jC5&j6l9V_JiJGTbU0GErQ?txZMMltDQ>CDBsHBEOIHyEGzw&C)9kiG^L4j=&&kZ*EjFMpAFVvCvNSmOTjsFi+!2KUl+h6 zxdPcI$g=$1Gy>o3DZv|m;qTGNfZ%u-c0wERj$1w@Hu*W5y2DV$*pt%QExV+#a*heU8Lkr z%Qa6}q<)1YAN`m@#^mS=sz|tp&%2Iy$aNeAP~)23LN1-s;0h0^XqTEVj34*las8AErYFT~ z6HYDGNCE^7zmNis+0F{g3>rb}a=L1$?yJl|E=g4$$-st&We}ReWBWZgc*^n~>}CR2 zvszc#UDw1|UpV+{)%Kr(6T`MZ!+PeF zPh>TF6kgA?dGh+nx4c24-T!3#1#Dbe30`YxJk7{$zs;y`q>Pk}rmGvDdCtAbXlNv# z_>^#|GQFb`tM9aqgVM@fZ?7T-sVa%Y)E}_G1{J7bC0j3$D>+kGc;?%l0>n&WtyfRvc*9wQsBe7zU}(k8ETlJHT90pzE`U z43t==4l9wm8AfW`2DT_!wr5CG8tvIESvY0OPvi1CZs9gbTe2+eSscExwABVw;36Wz zaxP_3d{R=80UKgogGJEd|uwh zUf=zj<8i<{;OGDzvG2*vsedBN;#B&vKI&*d9<_^h@*AHw$Yy z0xtJ#Vrfm(CNp?{Mio|K`^@?jPx^IT?6_y($$%Ly3H!~~?0X3j(~epH8^iXs6Pu(f zEwCjK*p3Ja2}h6JPx1DqB1AGRM_N&^)lO7gyCS}TBh^Zb`9gw~b8Z^m)eQp;VVbD) z^y}jfP%Cv%`@VnjyvK42;F?nN!C)((f3pE%0~F}~@?St5N80ovv7(MYV+5`rIQcO* zD{7Ct40wrHSxY#b|F>%Co^oK0UIhQZc|Mm#<#hVH#05{2`&>kRYQEM&D~ScRIwy8H zf06^ia4SK`GscIzW1xN}_b$g5{_ncoX4`#l-*Wj;ktD*z&&6U$<9)FGWx&{Wt7!3o zTPS12D@Pr*U1T65l_m}Rxa-1GkPj`F1#~MmRKPnJjBHT}_=80WtySS4`2taYM#k;{ zNvV-V>IXpq|3^V$MJo`{vQK`S=88}KuNjM?X0TadywW)Kv@L7uYZFi6_R9DfsZRkT zZ(fc9hRdS1^+`w*eG@JU49BSA;0UuYI~X3~M8n(RoA3^>0X-xR5fD7ojRuzCPv7`V zuo)Dxu)NC+wIFE8tV{uY^3v=PZbC6JE+<+SlNtarf3;gUunAU|}m)*0xX6KV9l*y_Q>v{m$P?0Lh+xCX^r z%2?mOb-NUqbC7r_Z(&%m_F0ke~P(B*HyzrONc5wu5 zLcF$oT_H&mWPl5}QMxf%)Fyjs(M38X6ezobRZzJdb>NOH73F}bm zilK#?SOVzJ_{|Y0EUm#*$EFRVbp!k&(mvG#oR$Y7wbVV|Dq`;X33(!3GSN!&&PJjQ z@k_}_8jUSwRf}c$#R?rKx5Bf-DXwh0Q-Viv(JAta#WHublx->gyD7+sjP_>%^-6rN z>5be1fcwlE(f%^=I#rxN2b>ig4LMEO4P6EC$MI|8Bb)@tgvHVv_PXloosz1+_us#t zB39X2zh$q>uHA)N$>r%$iHo%C=G326`jr(sf=aFxW;n$&poAf7X0qyY#Q}}!B zZhpj?>`jhSPHN2j`*SX17W#MgYAk)F9M#65c9%U4Tm+CqMetFcP!gu8xB^<+bF(Lj zGJ79M)BJkktfUcOl^*I<(!-MN*=npjUP9%k#E8qeD%E44ic{I8iH;=9q^w$Kohp(S zVSIKhS^KR)^V86lm})4@tB~iYWa3Dbsm`D>srUO5>g~ zd=92}~$u&AMga6A|xT_0G$rV2d_LkX-qQx;R^j&jtFV^gKn_ zT%u?Gy?exB-2dj{DWrtOUsRI;U086R(mh?1z#(rU8Cm2o+toxPmVN%&bCVWSA>ZyW2Y z++{EWxemz&L@d!J3X^A<9oIujZH<`aq#yfqd~Uu+(TKLD{B-OIup_vf;}`c5q*JWs zv;DJn>q6&LpJ|H6qXG{<`J7siuQkJcDs4=i3S7Jh5Y9X}A9uufzAp)gOf<4+v+m60 zgF*7fl!7+0G0vwHq!Jt5U;E+!(QO8Zq}7j}_O)yjHmPY%k$oF?KY6^G9O%e)E2s6I ztHsrB>q@eba&}CW`_^!5)6CMZ3$z>(Kvv#Zlk;W>2AfT#PIm3aVOX?~zRmCvGykVF zUaZoXS!JjaZd0|3rQwAeL0hPus%hc)Agl;#Zit6p*@tGA;*OMKs+mVlyonQX?v>l7 z3kEzqv?^&7{2D0%miO}-E@Z+@!!@}NMqsv`w9876D0K^LLyJ|*frq8E^Q09Og7ei7@R~< z^gu(*)0HFpM-9S@ktC9$*`QEv$O1XN{Ds6Dw~9iIzt@M--Ug^J;p)!}3{TTj9R?aN zjgPF0Bn1$N7ugi}>|rQkH$ufuHph$N@vr4c$bYlv{}5#UF+MqqY0pOg2P83V<%S9~ zyv&Dxo)^V02KogS`|Of563?EE`A_Ir{fvQ@E^Am09-l50jWUxy5(yXC)bHEK2&;jA z{9=th%)uqv9}fzM8A)57!uF=N((zdZhn@oE!)iaka+uT-9Y?B3$&q%Bfc@++HqJ>* z2yH>221Vgc3-7|q_ovpdjsX8-F$D&p@(y9?;5KPFP=XSWpPdXbfjhPV2s|7bx48ld9DK&q z713ThkBFJfXD0#?`UILC_I5tG+=yp7Mw#-+3KOnlDkNNa<%lPChDNyi{DAsxI)O2E z@*!OwfBPc@dwQq?U8+f8WM08l%Z>#2(n~D5e5~B+;<`yHE=`jB7)?+X%E*Y6D=Y!q zz4P)E5I{GqvaK_9x;rzz>U%(gdvGSYA>tMlXQO`7=o97q1b)S=?Wl<@#@SSWGeHwA z;mn`w{o>KgXd6ow^XVnuiibD6RKl|{$lETSO{H>?Lw0t4u0v6bkz0#+YCFmwZj7xn zC#l-MYY6ob;sx-N58Wflw+&7-Je6LdF#W;3gCA(ZG6?By}U2NNDUjYG@g zxdZX`jPA8H&Yhp^U=nNyQqNL-Te@mz*d%l~l0PdUIist$5q#s~9mD_V<_&Anu8}Xb zcm`vik(F(iM!9l*M5uEUiY+2eDQd{fg6nfn_JQo>oUKP%;tp@Zo|9(MSuk)3v92w{ zgJ>NrvwD*PcSW`CK39alo$M70K575+dQE?_RL)4T!mK7655@Os;|WcF+VvLuz)vl zJ<%CM`Mq;2WE)Kp%+Q}_qiFO_7HXKx>J?t);k^cBA5)&kwgtv~cv&H%Vsfk`2VIo| zW1VB8X|$OD<1Du&3;z+(EM2p*yK{5AW>n3^-6#|_0&~Ht!G)Mue|wSt<3-Biz|`r= zoD$G|walUQZ+L`Q;5--yMuRAkUMOh>Z97P*M+7aPmHc7Ej?*AIvH^4C((Ow} z@?Nm#-X3uM&d40*D@?D#=Bh#~F{`x^JI|^?9v+#R2U(wv8~r`B){ULr;+lcOl6=t0t zl&F0hYTsV)eO$aUkj zVYa;LrPE*UGq&p15g$dMk0Y(D;!3lefs+3yTx}e4>vv98<+Q0`Mf*?|+~}`r*natEHoIBKP+8 zRK|PQSFYR+pF#3E%mR4ktspWT-HqG23mdE~3s*25O#wcl*r_YRE5_(?s1irxhW+k` z`5PkCnZ%a(3lH?B*#*mIhO0aaxN18lY(|3c^#GDNN$1v7o7b41ZEIA_B*ZFicvqId zFAURRSIt@lNMiNRY*V4NlG^@2G7$6FFO-tJ^He+*FRWd#!=amq8rJd;nRk&$_$bF~ zye4S|n?ZWoD2|7nS_!_j!Tc^hi-b5D-fvjw5iGW}(!1tH^Vz;xUxpKbgHu;}pDSch zjEDG*x=Ut%ZYfUuZ7u}A5udi)3o{EYe61mTxKPkiAo`;3k)_eHuWy$x@JDYt5=#}3 z!}QqUn%4;Y>;woBAXgUlYV-npLXF|!#y<^(hL1MhF#xMP4Q8huQaOgUp-E*V78+(>hnmC_;Kv-zP z8G4=otFw^CB_G0~`Gt4kmm1$?aQg3S{ueg+I7X69jhum~KYey1a<1q)3vn_8uHyu9 z*al1{e)8zW=R)q$xo2ns?*4DD@nY~`h-}fBEU95JWPzy z=@9nw!3WyZbd)w(e{W!IAXuK~3aQ0bDT-4yjhJa4^^IK8N!TPH4WP?EO9QHe_#|Kq z)SsxnuIUnEPblIG9P4D7CylFUrqGMtQ-N`+v-e#_yFgF96;q{FYV$`E$SN3cO^@u(VZCR7+WsiQc&iZ#reAV(vi=+^%Td%R zZugz)KGlE92=Fa)eM`8SNUTpSip=*oHl!=li62qU99nlIKzi3*J4%`^RQE~`CI@^p4|IVJ`U)?3HC=rC>VP*8$n47x3T%G7Z-6}CutsBFB9=zG?97;l*!qm6LOe;NZC2esmN72_#Q}O$XqX>d zegJm@6`Vxg4+43rh(7w(my<6CoslJ~^K0_ldD5ep-pwkIId6Dd7j7|NjC#rRMDoz7 zHzQx^)HF~25fqR$R`J5YH!XK{MjY!!JmTMuuL2R6T4b5P5p#$W8Lu*!y-Pv8oGq$E zP!-lex+)c3laE%|#TaSMnSl|)AcKJXKjhbh(yQ`Xg`M#dFHTA3c}|7U$pC^EtXwc8 zBMHk{1}h=YiY0jE3J3e-hemvi8b0oC5Y@@2<-YD?odf~Wz4K(Cf#e_>M8V=4CyB9y z$L0qe-hH944^}-ustaMrcV48$S}bFm92w!oLo-? zz)hXZD_7C{rmS?JqdA?)tC8L(Op(-$^pY-GTOUr;Gg2oWGykXibX>E>z9`~6snW-% zgH%1CmzB#YGY;qKwzB;E#2 zcWbqdh%2_?k0%ubAB=5(!)a}O6EW5oxl)jMD?+4Gng|Dw6ozKvRitBZaEA)1wiuk7Qs^XaQhH9V1CdT<=Wt!6O$KR@# zwbkZ39+ZrzS@7I|f6MFdQMm&~Z8zz4je);^Iu^t2`kFKNJTQIhzyyRK3f&$=o`~wocX15O_dftRK*qn2NIPFiUC2!nFG%Z$XtBQa{xWS&RC^#R zh$LR=g7tw|Ss{22wc5pl2B%7;cHt}C6OY>FS1ONHfRfT*0x{K@4^g5%gqifAeXe!7 zb;0Bh8r9R)U^rE!@$C4DBbZ7;t@BG64-l16-{h*D&-mIWsHv%r$--OX%BDw z{67Y+-hBxY#O36c=z5mqDg%%!yTmm<;SF+;1p%Dijt3yX>XSyfC+MGfK11#APg$9M z(y#7Wt^xkqe`Ww10s$qs;$V6Hsh|>j0n#}ob4Yod zGY`?x<1+)@ZE%vrI1=hOW-2-L@BGH6!N&aOY?vG5M*SuzKGix12r!LB^W;3PH|caQ z@S2d|l2@QhDI;B8OO#Rjy_N1^8LTEFJY!M_RIBhsb@DTs>g0Cg!DEvmaTVaLQE6US8O7EPM-4kBlda z;Ka%s-tD!l`$OAkZ(Byrv-3Fd2~EfW{3W_Z3W3l}W)_jVlclt74z~kM)P?iK(TTw{ z%}c3ZCK~ACcLJPv#PMSr$aP7N_+d5=f^kE(Qz3?l=@DLgS zUC{4nP=T(XYJ?9eu(9jZ6HEdE1LP4fcfb~7;txu%wqeBT$b4SBo+<-&FV*9#-Bk4 zB@Uk)6+y@1&YbBKeeY8MxIvP}`J;AEy=wwAFbr`5=t}}_FQJkWisWWS2Q>6Kjz~Q< zW|6QLnCMOaFT6;EoUkb_S0C!W6izDWXozQAwGMZt{53otq7_XMOw-;;u77E2N%cXP zqPB(cM#xU{;f}T*kU3l&N*m|J4vU*Y$)*C%D`dHjHfQeU$GLlOQQ^|J5kn+YP5Zmq z{o2%-XA#FvWNlozWg~igW=Oy*wUg3pvgy2ACCKE12F~wSPNyO- z>wA0Q)#T(tndxsn7liW252bTAXk5!MKI=U*z+DO?@`G-P`Ln**UL5=ib#?>-dZCq| zX}Zv5`#~CS(H23-D*=G9?^Wmp?+A=mi!2rkkP)r225o>iKe^Z65?h4_;8AB>*Q)^B z^pBZ<23aT)AqwT{@Q-}#JrDFel0s2^Ci1ORPts*Xm>UG*Q8ue?L(tSIHoOrvrFyqA zr&DrJQVMC|W+DvpxDJI$7z=V!{UFSbQV_^qs0W-L#&da zlzWrMG70s9N~>$=!j1bILrNuMFF(vO94-sYdF&LZRe^su8Tjv3ZvyA$2=*mo?qQvj zSNB_?wz8lk1S=Dd;g}=TEwytmMi4qq4{r%06+nH_^e1CzN3Ng!Hv0FVZ;a&sMi-i7YRm;AKYME2I^P^i6(@ej10!`t`mVbNi^l$D z6&tk-0l|8~?&G_A=+=}X47Yv2U4*h3wgX!!aJX9TQ7=9xc)#d8M&B)T%)G`tC3ZYu zV2a2fP(g!}>3MDEf%F0FWEEG|W+7pirj0<7C8Yz9Osi&txtUnYddXy+)JW@lcU-PO zr>2@b9q)yPQgmxTbrU59ijtF>$`MKd3viYlXIT}Z1ZTWpSE)8|N>whi7qR_hZY@Ksa5VRFpGX^dVKP9@~I&K(az+>gMeE7eEC*x zD~CxAI`w%e@IGw0mO9FGZ(!wK71z2+zpq z@LWG=Ez3HYv`aPgM#nH1oiYednux!yS{+CiJX9?x97_bhUZ;~2!Y|%ZN zLk7|(wyDgy*yvfJkf>RHNYgfi8&Uq+$n^RNa)fSkHL(JddXONwTGc_h##~34vZx)q zpSOR;pb@`(kRKhFd9rbFKTm=;67Vr*lcBaVbFA@rNAI~ynjCRcZoUa_@ze3^oeHvJ zN656}$sf1Q7q9xT?|RpRcEG+tSY{>qx_TewqipY9(VO9v^ovDMI&ao2UU)mRqTYVL zHl+4fGwa~H0aaLJm&jtzr_d~jt%f1AJCC~Jf*@JU!00`Y%_^I=m>Ze4BgV9v{pyTC zfpOBiJ)OrhDKPxc5Wz~2qFR-R`AG`Q?F}K!)x%^TqsF?q?FKyiQxBZG5GA0#X!S!6 z{<4<#&p*V)eYOU^matkNR}8CiMN8U+SM(B^W&0&wBdE;lWLk@6AllxBxwto!V~i#W za)(*ZOFbSr&#|c%8N3k`uuFv5@uhukBgxYNg>%+AuKxyU{61b>=c}~YlXL^YUcAwm zcAhp-R-YBdn3*4%qn^ueg;Zw-Cr}kJipq=ZvYgs6(v_ARbKSHroCwsKtvS^~W|(__$9-N}^g`!aB^;-x`I^dq}E4YMy; zO2@Gab(x0i)fq?W8BHfmlQx4D5C;f5uZW~}V%kk+LaW|Zgy#vzIy%6{_4$~vd9>wPJuEmd{PGBKRe@1CqgZvWo(+_;Enb7lNA=T^fk z)BEPG3&o9jiIWOJ^g!wbO_#6WrMHzbKaC}~8~^Wh%@S0l^8}0(_vl0_+u>yrmJR{a z&>K$nsmXH)uKK0 zayXKq@E~R!(;m zp*|LWCl~F{L0`WYzs^vQxEw9YJ|mia)HUo|{f(V*aKrL&cq}ZO<;he^Y$R?&FFuSA zmQ0}rqO;iCoii|P&FWBV*RmuYFaUFiozbH(! zM6+&Zv0kZR$J>MVhAh?7l5+?dxHaJ|!Lo}Ht(pXI2pI(PGp#Q^g|3S_IFTC8p^-fl zb67eB$(;T2ME@p@U=Xr^$N|;XUR_^5NsG`{ z&`q^x{{RHA)|eJWcuDq!?I>ZYGtR*0rdn>Y2^rdxDU{`VQb^tGBC^6Wu4>2kG5MVJ zTv0PqB5$DT<0x%P;G5NFQSDxf4BTkR5ci^HIidIgVro%nYnXk{os4(n`X~j)eLNOk zZ(pN~W9WBX;Up%&83Pu30R2>RVgf1zyP`WklvCTS2H8qCKTkY#9%JlH;)lQ0Dp`@X zG8vATT;2g?IC{Ih2Plc*x&J;jlsE7j`Wl!~4M$0ZZcBHnZ3dtQzBw#(10$}VJCi8D z@1z#ido?+i-V;aI{`5AbIi@5+R@rq~Ur!di)|!2Y^0MYdjKbNI8!~%VC^rSMA%WB@ z4Up?G30iYU!glC%>MH{7oj_dRytcBf8F6`Y4ql@k;TGP9+0RN2t)>zlso+Mzm4Ii9D92hTnZ#OE7m4)1gb;UErr zQ*+97$;A|x8*@uYa>^wW6f&j(wBFRH>nqRGuYXcP;oXn(w6C8gV+jTA`ts^yo>%kN z-Hur#}^|JuZWy5e4Lz(!JHpI}ZZBJT<*XmBbs24U=~f5uKP zg3N)rLjoBeOy;^evHJ?;%j^NM%K1ewvUjm^BV3m%X}3mUk4IwUOJEV2We6>Tu#EYu zqccHEdG<>LJ736^t(OW*Z_l6Yr_|Mx{#^+{7D@A}?OBmLJB4GGu(5ulq86jY*bq`6&ST;h`1PoQSVL?am>ulo%inb z=zwT_1b48v_?#i5@vNb=N1-DPyBdggZ7%0(vf128b~`PMeqtVsp3CN2bz3jAD&5~M zftlIzUdXMGW2coXP`6Xmz`Jd;z+SGp{dHiE45X#KE~Z^|s>5?#?4nE#%AUkXEM@c? z+@yF}(DX>w-ck_P@)}@eM^GQ*>n2?oC`V#`BIJOHURE^C6|iv&|5J(uz>eBzbh57p zRum2(hcL^(2l~PGwc9tbfqy6`dQx{;JHyIxxgt!$FF3n7Siw;)q8OeTDEm8 zWT<6VtQ4qxsg?}0Xe`94u91B=WW*w!zZVf46*JUKos!mDUbI`7Q8~{}igJeN0`>@7 zSg&s3)-ydKwv``g56%fU#6sVqr}agDWlB92#%c3<8>Ox6My6NFDG;gsHZT6G^)3c! zlcN<%P=XPVwLT1={MiFa^@q910Mezs{xsI5BbZXL#sj%O2(INB#SCA8w7S}w+#*JK z21_SPDTbI$fpF{5YM z@_S;{uiEVnZ61t2#xFxL7YF?OPz+1Cyy6bQi|Nluj;O9fmp@b$T~`0pAP#GD}>Ag++_@WK5~~gw|8zYB{1VR)EwKad@x8&`ot(Ruf$& zQkhsr2x?S*S_tDuXwb)vT|6?k+@C9l47l;GgD=!Ha=P7)+X z(Ltn+c)`*|#bk5j3{2`~C8#nE(6kIbZvKo|C%e^8dfe^l!x9X^%%mveDjieKJ~%<6 z4yt=HO2W<>@^L8>_5iNE5*|(BhPA5Iuv&>FgqO%8M5z&0!V6-)l4=syX)96E)KXuL zh89_dkrtD5W#j{j1$x_|Xi;F7KCfSUpdwNC;!wlkkc|Gz5qS&zSMvzg_B9_LjcOwc zmvQoMFK<-?k#a}kx@T=HQ`}UNP9sdu*>Fs+i!tVC%1>w-&@^=Te>Qe-p!9Uc1ONQa zA!2b%&wS>h|HFm`$>(EF4wNotI;D4f?tgkLI2}5#p@#cv`L^kny^@O_DK)Qp6sZ!) zH21=Ynq&Z8NO%qG?JS53VjdVGWKX@EG4ZyS;-*vzSwikWMc+37Z?Ejv1S;%40J z8wBF9PA|poQ|HHYH4p2?xs|(|Z;#AZ|CH5i`z5!&ZPOUNoX>t$?INp{Pv5^|)4Fc^ zRbzYh96|HJXvU%Lr`0^K-Lv);f9v76cgiiQ`OA=v#iElZ(x30Ee9fJ?<#n9z>;KIG zdlW6HK-z61toWFEHi4h_ssL6Jv%M;5j7wuWR%s~j{g5Gdj(gyr^387}1@EphqTiPI z^LGEb!`nY`5sdQxziW2g2is?i?+UXQmVi7z#UK3E`ghGv+x^IBLLSJNFHU`no1bZ! zXa78P?)#$m*JLT-hxJ! zKK_rCArkj@yv4oMp8WL%i&aT(u{?dubrnT5>NC0$w#wwU zZxgS-`^KC-tvQF+b?k9iJbBcaTfMuj&tIIvdF z)Icb=mv%5do_a8{xZfU!HmxYCLIPdyW17ys8n5Yfk7VXtPp#*iKxIk1~T> z45_?$XKbnNP-E9+q?95{4;(Q6X<+a2-XzAP3O&T) zoLa$_);Q~$TyIhm^Cf<2BY2YKm*9DG1q)rT2TUIkiUAe*v9>+GN_NTfnhm?+qgNl# z34R9-mqG--9X;uLCBphcrb26Nr8y(*_uUv6JJ{QjUNd~6w%3j$7u%p@Xxxr?Cm3*w z&TsO#Ug%o`40%-4a7gJSGG%zcj#T`aD0+pH)Bc&??K*aQ0 zpRDHps7*h1oR+3GpX>&w-OO>DKhC_A%7W#mgJXAHMM{{3kfs$=9yhqgh+{SuJ7=ho z1jF(igb#|jAFkbadbi$8Asy?zJyB3?>O!z%bR|XGk?&J6ixo_`TPBGjWl+U35K*4> zQW0HUtgDrz!BQ_p;`U?MZ~!;{-tQ&@-v{vp9q$(2{?C!Y|5m8q&S^-?i+>a7N>9+? zrdZxP8^!+|k5b`mM6gIdWWJ9dGppjgjT*S@Af1aY8lj z61Q=N5%29}A9R$R)~h9U{mY|T{M(L@wOYtFJ%Ow7YN3V`K`x_)+uz&Cw)7U`5r3aW zKlEuolUl?r;8eMx2hj=A*J{mN^WT3#Q3&6ey{(DD9Pd+TAc+i-`;c)E%CI-CP6|2cOh9QJ}52Pr4`ey$qM>d_jFk! z-I>ozySz2VnBOok-9m&HPucX@+EVtfAUpCdRT`509I&xHh>mC&&#{%AU9H_!E!LkH zsyIf@Y(B3q8^j%HlsMjH)q3yh;1J}GNMS$t2(cP1Hp-Wvi`1$@q)-^aDmCaRPXsTL zsUsLbIU|nD|B)5WXdCFrYPQI87%ksN;dL-{x=w~Kgh-Avy|c`9Dkzj?%`^*mnFce{1e7&d zh8JqDS)k7RE+>{;^Enz$5s)!fMw&Oo7+FZjlt(gBGK?YKOe3)Mrgk9pm}<<%2!%ct zsh#rWMYg1^6%K11nE>8qn<2cdtrTGOTvpIoVO%wY%XG5X#qErtLT<1y)nsTSYwd)_ zP^h_5&ae_yY>Jk105PfN+-~1r^*{Yb503Ocw+U#xV5ioe)e*f9tO5Wu5&454LG~I| z(IxYUq$5UQYSHKHKc;QT#RMaJlS%geknXI5M0aMD&bX*?W{rkfmvz`89v@q*)fEy1 z{3t=A!xr;-*dmQCisu&UyII=o88sTu5Dav)_4?dkp!tyucC&z!D8s7#@FY>nS>&*s z0DDoZ38#m16|LD#c2;&6JJz;|Dt7W(G_t%BRbfk2KnuS#q5tFks1&=6>SVy~3`91h ze4t4K1S(Ry9J7B-T8DT}bWAxdXm zjBuDaCdi9E*!$uew{z21ZjruI@(P&yh1Kg~qOt)xRGY_Fa@JCObe3HbTk0laYBihx zk||SfQMxiT{*9}|c{?e3`?dVANPz_hRiww1v8V1MmmRi9H*Qo^S}d1}HVieW*4raw zV`#`aB%m%JLRt@jW65iP?D)SucQXz@)Q1c&eD)k?!v6yH>eVoC13Y%s;pF{k`|I{A zl*cxCr-u2z*MIt~s%9=vXzO#0DIHLbN!?nXbjq_}TZ;P5*jl%>zk8$hE%dp`!2f9A zq;6i#?XmhbQXT!*H>%>?dRju4paxFLvq$K64xexBZcgUKl%W4mc!H#n1L z#tTEl2nGIgn(C$BVFYxEV>NFYP91$nTR9`VtW|VrY_INrmXzawOldpzH~T);FvpF1 zYVeTXX#!36>iNn z^42`oTZ!=1&IG>w{sK(>sC?x)r;Ok1y6@|>GPWNFO8xvbR=&kf%2ttVn>KaiRH;+8 zmiyXetmgWpR-q;`Qq<588w~2UK_zxMuDoNbV+-la!G7Fjyw9|L8bFxqXh-KqhjlA; zkFOt}s+_Vmc@@}t7F|IwmphZ%QrJQc$?Bo}B|^#QP#yQ8vY?d+iU$-tRue0XQF6*) zu*Izjj;#e-NWhcvZkFWYkP7b>2*vokC?t_vwj(z;eaF4giMZ?^clcCQ5S(?p@hNse z=Q7(k;M<*_?Qi~eZ#vtkG={}aW+oeSJJtNuRU7t)=!j{U1+*tX{DD<2WjFBmVbcZK zZ<=+gF`t!6O~4xeX+q1Z#T6II9)I{!1+>4z@6#x1_Gcd=|!MO zz7K?hO+DTm&)XE9OI0z7z+r?Bj4gmouXq7SK45<`rMqPQddjVR!FOw)Ds{`6Lu=ym zdu^Z}?EvvEIl#j8bIFH3eADj!re+Z=Bfgp6DLJy{rGcPo_lK`5OTL%f0^5jh=Xc-y zQSvhW@1(WdtK&j@hwptKm}H|$f2dwaI#dbH5kY0r#g9Pp+?M%nuZm5F5`12b>?^D?&Q(?dwCpmf#|+7jAOvqNIy)ss&6Bx?qNtlb(znC# zs|}e$j7bo+vjTl7-$ajkEb6CX)(EL7j}E^c7oA9;{Tu-s272T3XBtVf&t^|G4$cE5 z!*7>OrX%p}(nzeBcfI^6@^W}}xz;abcy?EJf+EkDOkw7G zl*%IPuQ;_aXh3{vZXr2|X?>)##lPwox70&cI8X$xWfPG$m9!WmlX-|WM$-^SrnkRR zRWn=!mbT~aGAVZ&qC?#oV~%pBbexGQ-ej=hD4~8H7ZFxy3yHsO#vq;g=c>l6M~Ax; z@2aX@#?w>sk5D`l(ys#Eb9@{P?vcqOSSeYP-n{-NtbCuvmZapiC%X8(wsCK!{pRoW z;%FTFTMuH+b&tlQ;r{O!r)q#x#zodCRueNe?rE&I*0Z*A;k|(@-CHH8A7d^MJO||= z9}Ax8v;zli_MPf!afhY0f1#X6(`Vja1PGWh#`s`3MVnqSTt_*{4hRm9yGfT_*&NDo z9#tO>e~OLNTD2@KAU;OllGzoU+)^TCU>bHymCL487ooo1*yBcLfACvdT&7~F6~G%~ z53__uO(908ZxH@$!HvACs=}yC%qs!6{US`7(7qA`2`0ZTP~EECp;J^0r8dHnR;*)@ z)Ono(ouUM*)e=j#t7(#)6^TJM;JT=Y@UkHE`?ojZmHGzxZ|zl>uby-h`TZ9!1Yv~R zVAg#h@wOoB`=2l4725jW?{U+rF`r{HOq8#GycUEKUj`!9rL^$=Il({Z4}zc2|D>m9 zwqkrt<>yE7JgH(FIho$8b{*5d_O3Sk#Or(Q&57)lPgLt6E+bPC?IoLiumP5BG5Le> zu;LHUU&j?khQhr14+`!De75)zb(fWq+0F^5(yIAV`9xwWFGvR}6VH#<&eP+|#vWEP zN}n$eLiWn*0)aYtFH&88-da0Cn*+IcCgNuY8#8lN_T3Y-_QIgH&Bcrng2BX`(oSik zTDIFpA1`cc4=Ua~Mu+1km1YMTGjsfnw6ze|zPaeD!pCQoc1RnBws+w8y*m}v>Wv9W>s!# z$1R?s*epF9l(X+$TT({V#QS>eP31wYlZ$LkhnD8LAC6tOsm`3#yO&+Hxed3--v)5G z`ySem(yPbcJGh^>F&&P}b3GirVN-P0tC2pc+J`l2G2f_jY;dpH0p8a(-F9~U>@*-9 zb~e4L$pTKvH58n9a-yJq_2DOn3jnF=^J!pCdQoUS zcK33uADvFkbMAPh234K~uAnx}7rNw)`PfXLJU;B2B537_OeN%8S3jiZd8+z~09zQZ zvSGNWqMC3NzC<7ScoNJOZJ`GkRGYCRYCa!hEE~NYalo`NVUXYg%ZC)}fdLj1<($o6 zHYcp+A27=8!P=I!>?@?IOF{=O%aNj^x@d}sIPt%<1)iuWni7$X6Qbm9`L+IX_R>;a zIME#0lqjW3aqaK27@gKS6d05d$!skw1i5w~2#l`FZUqpDpFjFYHOK;M4(5-KQ%z3!2%{0O6#)?h_{>+u!#@+|gVjwebUqBGd*Yze!T zOJdQa559(h!)?g+=}WpEuj^c2H#)IZf=(KTLV_~riDXLFdh7Jsm5C04npWqrtR|Su zT?DU1k*d*&3QBlQz2B^leaxY6z$+AWc)Q-7CWITn<#mgz{LW*cy6E9Akk8ZWJ5j_q z8l-94G0*if!!4$$hNz(pCD*r+omO&{gpCOZ9eNXH-Cz?<6#)>_a@}NH%h8MmmW8gC zXfR`H6lUfCPteDvF};~4%rAS$3D@6YbTau5`Ob2gkj+*qx!)|3V`O{>N{`1=A{%^$ z2Hu}#)R6RgRFGb%tyboma}6bKIibFwpp$CXRU&Lkeo3aHmNLKe&&Z@Z(UjbV7v9qi z@RDOEgTUq~Bz~qwo_>)u@2~w*ApGK+Po(l>e8GgB?PRpfeN@v%w+q3IYHGDfP3iQ6 zx;Zvu8{O_Db{g0z0f?92-qH6sJO)X83p}mqM9L{#Z}=;ZXcc5x-oA9L1RvDo^llBj z;sUbe(QplJR(IEj0p|lI4RV~ySk|J02sZX?YoNU3H7<7nFyaK-~3|1OhB)fvn>kxb6a zcG6{;mz`W8?3WUYqI5`M;yY6-GlgwHpLrw6JlNF7%k9^EoT7B@RC zKQ!^dl12cQ6sUFLnFwUR5Dl2~$s?K=V(s9owjxl3O-X;Al}nb+jtpu-wVTe=h=giG zM5y;%xC{OEpKL(zENjLcGSgyp0jq46MFYXKXcU2RL@ChcF@a!sVf}~iHcB7>Vr4c? znW=>7(E(Ufrg2slo9Tv|&{nu7lRI15**0zCnR0m=uU(f%E{vgn7G3qcVSnY1N3p-v zkSQbnp0L06*MsPS4HX{7T&`IqS3dvVML=^>7h8f>DBvO9QCA_4SHwE%X%tc@iqT6s z1V^b7h!To{(n2oId~8{vK=>b8W&>0;kO>`9)QOH?P7p5A@dZrg|F?#!(X!@Ixfrj^ zi}-;Bw2u5~_Jd0we{YZn-NU3Vinvm5ynXDPfKs1wy=7_2;mxbw&ET@`u@zUAZ~muI zaaNHMEy%kGv4d1}(f((HwCG9gOG;;?UVr;om&>vGiW4 zhAhY>rTmJ>=jJYl5u*qfF$CfgI+VInm6!KOdf#$~t%^J%JPC=F<_Y}HZR4DHn&Wb; zyiA2YpYG+P0Z*1F+fKnx64+$z!ac{nDMip|X^>-i{y;J@ddUH-WebQ!8V;o0{8xOC z3#xf&0J#;{T`|AxS|e=Nfuxo&>tCkXIvV1|Bd?$grXjb7eQOya;5TV3C^EUEM<-Fh zh6gcp6|kdvyc-zOyRCbue@DWWs**@qS)^w9y@G%fUg<@wkuZ2j0Rq@uU)nKw-lAQ~ zX6&civYJiX8n!PB1;B&nPo9kTdOQ?h1+AF^=t`H%WCS1>-)4@|<1rbo-?S1R=W>+; z?aPLeG)vH`Z%fZyT$wG6v&Qzh*~3K)h;rLWkg=C1242lzBF$S5Aw91fI5}ezuV#Ha zNoDNS$zx81{U_>PAynyr)F^WQlu`bie4)Pn1Q@0_q78?NuEcN$zi@P<8{ ze;xY{sBiD-Y{>fSWhesS@`dS{tWee^D;m@d(1S8T21K2&D<19Q^Z}~!OsBG%)Vc%8 z5PTRN1ysjAaYT6Mc=zXzkZLns$K_3?S4HX%QP;bP0Lzu0`l~(Z#Q`D5&tyI}UJy9x!68d? z-dh!PAA#ZOpm@E|&94~vO*Su# zSa!b0RVbG+P!A)tvr~UM9#?hb7mB$zlWFN=^CHXvY9OY@V6G+Vulk$M5Iee;W4HA3e1)_gt(Deb z)cO(loDU*4q)%Lb;L42Hd`NpkR;=8+7&&pkdEkTYz79*Ls#pe<%MdD{uOtRgX;#s%%G z_*1PXmtnCbS=NpDGBwrwU)yp)V~2e7mr-eKXLCUd>npe~D|bu>w5+GIvc=0gx}*zQ zI=_MPlgV|eo4TMQ`re4NtnAFTYgwPmQuN%y|w?cAX&4-kthGoKxi@{FQuW}eP9{`;8g0xIYJ_M z4A3C3sVCv^d`TxJQynx-y_;AIXFGc!jle-pEguT^p&tw&L)|%sQ0-_70@gaFMZ((V zhCz;PCx$C1Og(taHPLrDQgR5Qi8s0=;q=k_i&MmT1YAh*3Sa z%!{`qOZqYy{JdAGZb<+ppv|~wUd-DgfTnL6ek#S0UlBov`mdWgNMjH+6RpJH!Ky+F zn9eH#|8DA!0FTcnv#^z#m$gq-PI?zs52(J=29LO5oU>5|G_VsumwPNo7J$6hC`*t= zpC`fZzWzfDE1}#s>k~o74zx>6DUn?f`N^y}Tk^-q<9Pd0m!bnco=s(z%5vPLN%Ne3 zZ{J})=$-^HXq;O2X$86OpDd!7Uv7NWoU-XBj|#L zp2nf)Q{>7v4KOmf^0}Yj4(JCo-VQ76j&7p0~fB|_J z4rr`5H&X0 z{pK~bUms9{&Y>r^{}=%l-0O!u_PllfvuER50(Z*);b_8@=QmL83p4(BKE6WKJ;X=4 z-YZ-cjilT?TQt_l0kV}9y~zUSTEKiFz1R;0*!ZmF3z&pb`Y0nmdVXiYl3%)}C--}4 zXZ#0p;=3N_=#&PGQHc(5>2R}w+XnIMZL;>UqM&;y5P&ZdW&KwG;@lnfkB2-Uv9)SV z`NwBBfTQEvFc#Nw;**6Ru&A+_G>ab-k}5KP!+ixKR^iy(xy%lif%+frst#e?A-l6u z2*Zx~Nw;Or3jRlVy6*Jsb0;buk><{~)aW$pjQX!Df6Zsdoc0|?-d|{*Y4RiauhAtD z*rF4A?x@OTwSp1foxmRT*mDc-abg_@vRzH}{WPtj?4+xIg;RR&j>0Cbl6eVFThHUw zIU5zSO-Vz3FJ&i+~=l`CQkDF$tx$}Yerov3^_#5y*d zb6i}xmKBjg5S-ks4RavUo4*`MjH#q>p^8@^HF2?hv z&b|rmBkEYfMQ^i^BKd1#FYg@sjjhl_D;l@To@x40!xE^cC0K5&$aaQLsO88;QY@6n zb2mM^%oY*=*|FvKWe8_{jHD3dQ$7p(O++d*o649+@_Zb$^}zlSY?|Zaru39VeYlP4 zTrVvV^Y%?u>P!RTx;PLRbq~yNfkR;(bR!YqGmk7p>adSZBP8sUgh`JqocE|hi zh3}`$OStGrBK6k;%*P99K8zi^$qm|O_>L9Ql|=X@*9fawvD~^j`O+O)gwBF?QW?_z;SoRsMWmsQw{K!BSwT#V0AhU6VA`Y{bJ$eo2c|ga{lK z3uw|v+-p?azKop%JlKcp`&~CybYoQae5i1dTx^%|oKQyG3VYeJ{U*X$g^m9^9$uvze;Pf0XO^7`j zwadd8osz1?g;JOHg6g`R;K$R%9Hhmdt*HJ5aJ3N02)GEpeQtTbSA?}b5}}lpTs7={CW1*k=xx-R?n1FC=2^aF>f2WV zPeT&*pm%2{)XiOOJQ|+E=w5wdNdI5=sK@)|XNz-HX-a zA_4-)hE-Q40i#l}g}F(G*8e82VAXYR^KeV_D9+O5cGfc~I19>m(XjOxm9q3WDFYD4 zv*Gj4B*TmJ9C9gEkg$I#9;Z#SO?zdP9AAn0BVU93XQ#hb+S?ArbLc!Z%1 z-D&W^qL?w@T%Fhbwz6{J<$Jmc2X7==A(XJz(>X{dhG^D`#?L>ii@`9p(%%rw;$t1AC1`U z{H;I2;w^zgdG3{SG(!D>-+BCS&-3umngHe=+Ni#`a!M9+HaZ7X{VRE6NXJ9&rP3}$ zbtihg=Zzq4oqNyQ-befjwBWgh*EG*C(9RD+biD>q6(@Q~A{H+BFX}n0LRW)X>kf zX_{tM;*++8(y7aBnWA+w_uA}>>P6>58+Y{3hh2J{b!wubCJ5OS-QO>on^x3FeD1-Z z8#m0(pM#&6Z7?M3K5~7_OBX47t|f2y<6cJMo@QT*#`3Bay2zW)xA=qd-Ia)7AN3bNHDFD!|2g@2d#0>nNGiY zHB3(8*0kDk+;0k(TEXAFtHyDuC8FIqn%&f)wn^TVEH26AR0KDw;rd&1;?an>w*QH< zzwt><)j{mbpI3k2BKBeTfAoUVxu(mXk5^`J6)k&qL^6XDX9+{Z)%6`#o>zFMFgQrq zW#l)IwmBO{{rE@A8<(|H{5cymLsJzHw|^nsb~72>_GJ+nu85Wu-SEbQw@G@u{r~p@ zi`vjk%a{N≶M9Zv|5`G?V+t`dH%WEMXqpk;_3Hk#c)5bow}^>GHdOg=@5pYx=49b13Ly zrJynzDRebu8rnRSaDCBo@|9g53n?-Toj%;)7@=UY|Noy}Ma{<^CTZW`I9PGat{6t2 zaDw4J3oUfqrNwG{*q4kXjQO#)d%E?I`6unq0@g?R`EPa45Y|xpiRX?D^@^QqfPjrp z`1!tA9;wNGs_VH%HtUBo8*1_;v~g)avtfdTTKYQ+w|_T@R1|@!z4MWbhw@XQ#{r8n zFBZwGL~*S&Epds65DN=S9LDmC%OD``N?Ja3mq@-KYHmwkg<5GJXlu`C1U~hF;}GUt zEV_svDDRB0pxY;h0iVB6!+t9MoPjoUN2{tnNvmp71!_;3|F6OefCDX3EgVYSHa&Y~ zU}M_~aPglu-?Am;VW9ar%IVbGkq@`{Tq5wAt!;iU^4x0?c1udN{X&%ux4V&|KJ4W8 z^-G%6%-Mk6r|NGgPt?6Gz6|&!zRxhaV4(F`GZ8rK4j__!PX?Q7^;*CQ1mh5%DvR6C z?e!IxGMT8~xw^^9NiPO6=pQ@SRODn~Fsq8jD|VmScW#=CFmzog>dWa9ISWyD>bX6* zxnZ#2TwN0;af`pj^X|5h-UR+^#wtJ!B@tKiK!pf5VjK5!fZLt zzX!?qwZ#;g@k9fI%Zc#zkaZg@VAO57d!5O3Ue&0UhOx8iALeb!OI zRvYFgz{G^aMMxIXA9Q8%Ks(ns{Ng8LwsDMRXV9_!HbeTZg#-D*^A&&kWc>8s7s|rI z=ynSoO>Z_is~m>%blt}gX#It_>e2=$ntV|mjceXzzfgYM^uWLH4|qn@T1Vx$y+(mB zr_oTl_0pJ8ZR}4L)pN;gX0*r7gHMr7oprWF%6?*dA?da-61JtJNHWwP^#36TIN#Kl zHX65H`VqI9GB?_ee-?H!Yb?FpyYadu!+UaImNKBnpF_sZf6ay)B7}^R1hodXNP?eK z4UhCNG=>^Ra(w)t-DekO(;#W^pCZ0-I00f84I3?O?7O zB%x)J$UIIl{lRxlFHDbkes}4Xh27aeZ@lufb-e26$_f|NxU&YtVUJG#2x>BxrM_VU z1LCx!(BL?8gDF{Vq$J)xNc>yL)$=)7I*g|%)(&0-;j8CsUSvGa_^S6DVMpH zb8v0T>G{!ohHICj*>1fftNM+zZtws0KCZLv(IK>C_QT1EH@fD(8$2iPv~!>Y4cV!P zSZxtr!>L43HPE+4<>ftO;-5eywKK$aj&E__@NZF$Ub2O545&GURXRcHZf+@4Q*sxY zWp376swn?@b?YH5czxG41HZOjt)n5ymnfWVn}~l0v!W9f09Qb$zl@4>j!2BD$PIWy zG%tHq1co&qIS~ddbB3;u@9Dn~xdsYnr5s8^`W*i3m@VDEnOB&F?o#)Rs5v1eUah$w>#9 z(>0sd(bH1S1!0KMO_Fm9-(30B*tAvEi!I8bj@kN6Z10~`=5`eh*Oh@TSgc~GARo=W z<9@k$y19A1xpq3jbDRG4LD38!4XW&4?>FThiiaoIiVSTRo?|YzPPb-muv!>myEIOW zt#-bt4&U((ZdDWewL`sy(~|m2`BN@QF+Q{|G9ZCrd6ta$KC*E*TQ_G)_3NXw*H*CY zbEL^@$wN>XGaLNe4bu&0*GJMUg5zS=CN)LQyqHShcMq=mcw_4h9+%ozHC=V~`$%?N z`DWW#&TppMgR}4%!g!nK9J8-_y1Mk=F&oUrC@E68`W@5@I(HpHbiw(p1ld9~Keub^ z`qq-^lE(GMES@?`16xSt_yAA?b$A0;omip zd;&xiYAZP+=TTDO@|)ZHN*1!_{_wQ@i@zy5-UG{`HCbB7dqN5AgmRL@R~5 z-KAmZe7J3gow^U;9@e_R+QBj&j{H=={FCM3!&hwmwI9#NDh>OjBmRdo%0A!wRKaXY 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

- - -
- -
-
-
- -
-
-
-
- -
-

engforge.analysis.Analysis

-
-
-class Analysis(*, name=NOTHING, system, table_reporters=NOTHING, plot_reporters=NOTHING, show_plots=True)[source]
-

Bases: Configuration, TabulationMixin, PlottingMixin, DataframeMixin

-

Analysis takes a system and many reporters, runs the system, adds its own system properties to the dataframe and post processes the results

-

make_plots() makes plots from the analysis, and stores figure -post_process() but can be overriden -report_results() writes to reporters

-

Method generated by attrs for class Analysis.

-

Methods

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

add_fields

Overwrite this to modify logging fields

change_all_log_lvl

check_ref_slot_type

recursively checks class slots for the key, and returns the slot type

cls_all_attrs_fields

cls_all_property_keys

cls_all_property_labels

cls_compile

compiles this class, override this to compile functionality for this class

collect_all_attributes

collects all the attributes for a system

collect_comp_refs

collects all the references for the system grouped by component

collect_dynamic_refs

collects the dynamics of the systems 1.

collect_inst_attributes

collects all the attributes for a system

collect_post_update_refs

checks all methods and creates ref's to execute them later

collect_solver_refs

collects all the references for the system grouped by function and prepended with the system key

collect_update_refs

checks all methods and creates ref's to execute them later

comp_references

A cached set of recursive references to any slot component #FIXME: by instance recache on iterative component change or other signals

compile_classes

compiles all subclass functionality

copy_config_at_state

copy the system at the current state recrusively to a certain level, by default copying everything :type levels_deep: int :param levels_deep: how many levels deep to copy, -1 is all :type level: :param level: the current level, defaults to 0 if not set

critical

A routine to communicate to the root of the server network that there is an issue

debug

Writes at a low level to the log file.

difference

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

error

Writes to log as a error

extract_message

filter

This acts as the interface for logging.Filter Don't overwrite this, use add_fields instead.

format_columns

get_system_input_refs

Get the references to system input based on the specified criteria.

go_through_configurations

A generator that will go through all internal configurations up to a certain level if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will only go through this configuration

info

Writes to log but with info category, these are important typically and inform about progress of process in general

input_attrs

input_fields

no attr base types, no tuples, no lists, no dicts

installSTDLogger

We only want std logging to start

internal_components

get all the internal components

internal_configurations

go through all attributes determining which are configuration objects additionally this skip any configuration that start with an underscore (private variable)

internal_references

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

internal_systems

get all the internal components

internal_tabulations

get all the internal tabulations

locate

locate_ref

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function.

make_plots

makes plots and traces of all on this instance, and if a system is subsystems.

message_with_identiy

converts to color and string via the termcolor library :type message: str :param message: a string convertable entity :type color: :param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

msg

Writes to log.

numeric_fields

parent_configurations_cls

returns all subclasses that are a Configuration

parse_run_kwargs

ensures correct input for simulation.

parse_simulation_input

parses the simulation input

plot_attributes

Lists all plot attributes for class

post_process

A user customizeable function

post_update

Kwargs comes from eval_kw in solver

pre_compile

an overrideable classmethod that executes when compiled, however will not execute as a subclass

print_info

report_results

resetLog

reset log

resetSystemLogs

resets log on all internal instance LoggingMixins

run

Analysis.run() passes inputs to the assigned system and saves data via the system.run(cb=callback), once complete Analysis.post_process() is run also being passed input arguments, then plots & reports are made

set_attr

setattrs

sets attributes from a dictionary

signals_attributes

Lists all signals attributes for class

slack_notification

slot_refs

returns all slot references in this configuration

slots_attributes

Lists all slots attributes for class

smart_split_dataframe

splits dataframe between constant values and variants

solvers_attributes

Lists all signals attributes for class

subclasses

return all subclasses of components, including their subclasses :type out: :param out: out is to pass when the middle of a recursive operation, do not use it!

subcls_compile

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

system_properties_classdef

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

system_references

gather a list of references to attributes and

table_fields

trace_attributes

Lists all trace attributes for class

transients_attributes

Lists all signals attributes for class

update

Kwargs comes from eval_kw in solver

validate_class

A customizeable validator at the end of class creation in forge

warning

Writes to log as a warning

-

Attributes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

anything_changed

use the on_setattr method to determine if anything changed, also assume that stat_tab could change without input changes

as_dict

returns values as they are in the class instance

attrs_fields

classname

Shorthand for the classname

data_dict

this is what is captured and used in each row of the dataframe / table

dataframe

returns the dataframe

dataframe_constants

dataframe_variants

displayname

filename

A nice to have, good to override

identity

A customizeable property that will be in the log by default

input_as_dict

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

last_context

Returns the last context

log_fmt

log_level

log_on

log_silo

logger

numeric_as_dict

numeric_hash

plotable_variables

Checks columns for ones that only contain numeric types or haven't been explicitly skipped

skip_plot_vars

accesses '_skip_plot_vars' if it exists, otherwise returns empty list

slack_webhook_url

stored_plots

system_id

returns an instance unique id based on id(self)

unique_hash

uploaded

system

table_reporters

plot_reporters

show_plots

name

parent

-
-
Parameters:
-
    -
  • name (str)

  • -
  • system (System)

  • -
  • table_reporters (list)

  • -
  • plot_reporters (list)

  • -
  • show_plots (bool)

  • -
-
-
-
-
-add_fields(record)
-

Overwrite this to modify logging fields

-
- -
-
-property anything_changed
-

use the on_setattr method to determine if anything changed, -also assume that stat_tab could change without input changes

-
- -
-
-property as_dict
-

returns values as they are in the class instance

-
- -
-
-classmethod check_ref_slot_type(sys_key)
-

recursively checks class slots for the key, and returns the slot type

-
-
Return type:
-

list

-
-
Parameters:
-

sys_key (str)

-
-
-
- -
-
-property classname
-

Shorthand for the classname

-
- -
-
-classmethod cls_compile()
-

compiles this class, override this to compile functionality for this class

-
- -
-
-classmethod collect_all_attributes()
-

collects all the attributes for a system

-
- -
-
-collect_comp_refs(conf=None, **kw)
-

collects all the references for the system grouped by component

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_dynamic_refs(conf=None, **kw)
-

collects the dynamics of the systems -1. Time.integrate -2. Dynamic Instances

-
-
Return type:
-

dict

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_inst_attributes(**kw)
-

collects all the attributes for a system

-
- -
-
-collect_post_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-collect_solver_refs(conf=None, check_atr_f=None, check_kw=None, check_dynamics=True, **kw)
-

collects all the references for the system grouped by function and prepended with the system key

-
-
Parameters:
-

conf (Configuration | None)

-
-
-
- -
-
-collect_update_refs(eval_kw=None, ignore=None)
-

checks all methods and creates ref’s to execute them later

-
- -
-
-comp_references(ignore_none_comp=True, **kw)
-

A cached set of recursive references to any slot component -#FIXME: by instance recache on iterative component change or other signals

-
- -
-
-classmethod compile_classes()
-

compiles all subclass functionality

-
- -
-
-copy_config_at_state(level=None, levels_deep=-1, changed=None, **kw)
-

copy the system at the current state recrusively to a certain level, by default copying everything -:type levels_deep: int -:param levels_deep: how many levels deep to copy, -1 is all -:type level: -:param level: the current level, defaults to 0 if not set

-
-
Parameters:
-
    -
  • levels_deep (int)

  • -
  • changed (dict | None)

  • -
-
-
-
- -
-
-critical(*args)
-

A routine to communicate to the root of the server network that there is an issue

-
- -
-
-property data_dict
-

this is what is captured and used in each row of the dataframe / table

-
- -
-
-property dataframe
-

returns the dataframe

-
- -
-
-debug(*args)
-

Writes at a low level to the log file… usually this should -be detailed messages about what exactly is going on

-
- -
-
-difference(**kwargs)
-

a context manager that will allow you to dynamically change any information, then will change it back in a fail safe way.

-
-
with self.difference(name=’new_name’, value = new_value) as new_config:

#do stuff with config, ok to fail

-
-
-

you may not access any “private” variable that starts with an _ as in _whatever

-

difference is useful for saving slight differences in configuration in conjunction with solve -you might create wrappers for eval, or implement a strategy pattern.

-

only attributes may be changed.

-

#TODO: allow recursive operation with sub comps or systems. -#TODO: make a full system copy so the system can be reverted later

-
- -
-
-error(error, msg='')
-

Writes to log as a error

-
- -
-
-property filename
-

A nice to have, good to override

-
- -
-
-filter(record)
-

This acts as the interface for logging.Filter -Don’t overwrite this, use add_fields instead.

-
- -
-
-get_system_input_refs(strings=False, numeric=True, misc=False, all=False, boolean=False, **kw)
-

Get the references to system input based on the specified criteria.

-
-
Parameters:
-
    -
  • strings – Include system properties of string type.

  • -
  • numeric – Include system properties of numeric type (float, int).

  • -
  • misc – Include system properties of miscellaneous type.

  • -
  • all – Include all system properties regardless of type.

  • -
  • boolean – Include system properties of boolean type.

  • -
  • kw – Additional keyword arguments passed to recursive config loop

  • -
-
-
Returns:
-

A dictionary of system property references.

-
-
Return type:
-

dict

-
-
-
- -
-
-go_through_configurations(level=0, levels_to_descend=-1, parent_level=0, only_inst=True, **kw)
-

A generator that will go through all internal configurations up to a certain level -if levels_to_descend is less than 0 ie(-1) it will go down, if it 0, None, or False it will -only go through this configuration

-
-
Returns:
-

level,config

-
-
-
- -
-
-property identity
-

A customizeable property that will be in the log by default

-
- -
-
-info(*args)
-

Writes to log but with info category, these are important typically -and inform about progress of process in general

-
- -
-
-property input_as_dict
-

returns values as they are in the class instance, but converts classes inputs to their input_as_dict

-
- -
-
-classmethod input_fields(add_ign_types=None)
-

no attr base types, no tuples, no lists, no dicts

-
-
Parameters:
-

add_ign_types (list | None)

-
-
-
- -
-
-installSTDLogger()
-

We only want std logging to start

-
- -
-
-internal_components(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_configurations(check_config=True, use_dict=True, none_ok=False)
-

go through all attributes determining which are configuration objects -additionally this skip any configuration that start with an underscore (private variable)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_references(recache=False, numeric_only=False)
-

get references to all internal attributes and values, only saving when complete cache info is requested (vs numeric only)

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_systems(recache=False)
-

get all the internal components

-
-
Return type:
-

dict

-
-
-
- -
-
-internal_tabulations(recache=False)
-

get all the internal tabulations

-
-
Return type:
-

dict

-
-
-
- -
-
-property last_context
-

Returns the last context

-
- -
-
-classmethod locate(key, fail=True)
-
-
Return type:
-

type

-
-
Returns:
-

the class or attribute by key if its in this system class or a subcomponent. If nothing is found raise an error

-
-
-
- -
-
-locate_ref(key, fail=True, **kw)
-

Pass a string of a relative var or property on this system or pass a callable to get a reference to a function. If the key has a . in it the comp the lowest level component will be returned, unless a callable is passed in which case this component will be used or the comp passed in the kw will be used. -:type key: -:param key: the key to locate, or a callable to be used as a reference -:param comp: the component to use if a callable is passed -:returns: the instance assigned to this system. If the key has a . in it the comp the lowest level component will be returned

-
- -
-
-make_plots(analysis=None, store_figures=True, pre=None)
-

makes plots and traces of all on this instance, and if a system is -subsystems. Analysis should call make plots however it can be called on a system as well -:type analysis: Analysis -:param analysis: the analysis that has triggered this plot -:param store_figure: a boolean or dict, if neither a dictionary will be created and returend from this function -:returns: the dictionary from store_figures logic

-
-
Parameters:
-
    -
  • analysis (Analysis)

  • -
  • store_figures (bool)

  • -
-
-
-
- -
-
-message_with_identiy(message, color=None)
-

converts to color and string via the termcolor library -:type message: str -:param message: a string convertable entity -:type color: -:param color: a color in [grey,red,green,yellow,blue,magenta,cyan,white]

-
-
Parameters:
-

message (str)

-
-
-
- -
-
-msg(*args, lvl=5)
-

Writes to log… this should be for raw data or something… least priorty

-
- -
-
-classmethod parent_configurations_cls()
-

returns all subclasses that are a Configuration

-
-
Return type:
-

list

-
-
-
- -
-
-parse_run_kwargs(**kwargs)
-

ensures correct input for simulation. -:returns: first set of input for initalization, and all input dictionaries as tuple.

-
- -
-
-parse_simulation_input(**kwargs)
-

parses the simulation input

-
-
Parameters:
-
    -
  • dt – timestep in s, required for transients

  • -
  • endtime – when to end the simulation

  • -
-
-
-
- -
-
-classmethod plot_attributes()
-

Lists all plot attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property plotable_variables
-

Checks columns for ones that only contain numeric types or haven’t been explicitly skipped

-
- -
-
-post_process(*args, **kwargs)[source]
-

A user customizeable function

-
- -
-
-post_update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod pre_compile()
-

an overrideable classmethod that executes when compiled, however will not execute as a subclass

-
- -
-
-resetLog()
-

reset log

-
- -
-
-resetSystemLogs(reseted=None)
-

resets log on all internal instance LoggingMixins

-
- -
-
-run(*args, **kwargs)[source]
-

Analysis.run() passes inputs to the assigned system and saves data via the system.run(cb=callback), once complete Analysis.post_process() is run also being passed input arguments, then plots & reports are made

-
- -
-
-setattrs(dict)
-

sets attributes from a dictionary

-
- -
-
-classmethod signals_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-property skip_plot_vars: list
-

accesses ‘_skip_plot_vars’ if it exists, otherwise returns empty list

-
- -
-
-classmethod slot_refs(recache=False)
-

returns all slot references in this configuration

-
- -
-
-classmethod slots_attributes()
-

Lists all slots attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-smart_split_dataframe(df=None, split_groups=0, key_f=<function <lambda>>)
-

splits dataframe between constant values and variants

-
- -
-
-classmethod solvers_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod subclasses(out=None)
-

return all subclasses of components, including their subclasses -:type out: -:param out: out is to pass when the middle of a recursive operation, do not use it!

-
- -
-
-classmethod subcls_compile()
-

reliably compiles this method even for subclasses, override this to compile functionality for subclass interfaces & mixins

-
- -
-
-property system_id: str
-

returns an instance unique id based on id(self)

-
- -
-
-classmethod system_properties_classdef(recache=False)
-

Combine other parent-classes table properties into this one, in the case of subclassed system_properties

-
- -
-
-system_references(recache=False, numeric_only=False, **kw)
-

gather a list of references to attributes and

-
- -
-
-classmethod trace_attributes()
-

Lists all trace attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-classmethod transients_attributes()
-

Lists all signals attributes for class

-
-
Return type:
-

Dict[str, Attribute]

-
-
-
- -
-
-update(parent, *args, **kwargs)
-

Kwargs comes from eval_kw in solver

-
- -
-
-classmethod validate_class()
-

A customizeable validator at the end of class creation in forge

-
- -
-
-warning(*args)
-

Writes to log as a warning

-
- -
- -
- - -
-
- -
-
-
-

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 Lu@O!9@wnlCMc;Fy diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.structure_beams.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.structure_beams.doctree deleted file mode 100644 index 4bb023ea55f219a92753bb63ec16ff62ba70717a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7896 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 KLOj>CLi2y-p@S#@ diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.structure_beams.rotation_matrix_from_vectors.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.structure_beams.rotation_matrix_from_vectors.doctree deleted file mode 100644 index 5cc47703a345b2dc520d15a4d9987119276d2155..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5398 zcmdT|TaO$^72dUXc6VlPUOToxv7Jef$*%Cs5Ss^B1yDp}Bn*qh?a8K8(_J&w*}lK^E=^55*K;eOvX4Q4-)Tuh(xmG>z z{ATOsiu*HrDwk0@8}cwrvrs5&Hp46^6On5Bkv;sSecv9KZo!|atSkay%?daI8O32C zQv1}JU1HZ!tcKP44J85{WoffqcI3L;cxn%1*K~BGW6_#2-xTR|k`+@i#K%zSq6~Cd zh$n0;c%p_yra4J_!V<2FX!e9niY$4;PO(W=C`*DNckL%)MhAY8xRoVwE0wqvCvK$? z_kr~qujd^4X)E_lmo4vp+gQE^{pIVh$(QiEhu@p{9TFCRvxpo52S71Or|<*w-P*nv?Raq5KZw$P zl7(d~`n66M9sJOmZ(KItxY0%1Sh;?zEidI)!T3ZqsFBxjPtW2vI@XR zr~Pblsa`KR_g#1&Y_W#84gSRx2bkHV8KxpQ6$Mp`#~fUWJi_a(`+fX>aOgsegms-T z=bm+DkR5aTGC4jxZ@q-63OZo_eedzdk~HHB&U9clp~t{&j~oTP+^1M@vhFO2k5tYn zQEldhK){>|OP2i}q(7?S>Hop9k5`>(uRF|^=w|TRq&AvwL z-X<$%r}hoDY|<9nE#n7s6D2P;ky%YGZ`*@_KLPO5Wn;FPW;}0#$I+1)jxqDd-J2-S&yesc`t3jK0 z$jw}QZo41~vQ)Plrn=)nW6~v0m=-*jEhCzLJVN>GYbpBm&VAqBfW~#7$H>@<((hY+ zow+pJJJM&laHOMt@5uRAHF~H2FzmnK`;s?^hQ?^l{$PO}BhQX=>j+f=t<`)@Ay6ey zaJeQnUGP+)HB0KV9Xy;pJnTP{Q6TYOq$U#)`S1Qsy|JXFd3)XeM)!GY`s*dBsnsV@qWBA3?OT)};A(&NuC`bU+o^{Z z{HgXyzYw*v6=E*FuHd)PpJfQaO%$}R=YO)^hgQJQM)iCX)Sxu|?ND^(Pgoa~Ieaif{1C2Uihsc6r^NtT< zr-P==8n}zYpbo5o53B)Q8wNf&6slC!p3a3_lus^izj)o-k_mb+!BuZ!dEa-*FSc28 zi;(xtD=y4p7l|w{vMIV2e~aj7+ivRzaB%>)gT z#}b#ieY(TATN-enWEEPo{xcqzXvph+!mMYd&P#2N<=(OBPDLsTj$C3f2s!RHnkP91 zTYf_-bSD`0s$p5g80}D2r8^DHV&jgtuem~njN|A0-^6Vm^lVZ)CrI{rW@4dFVg0|kvou8pzeS2|YX|cIR zIw$}o0a5I_I!Fj9ORlOokAH|o$pm~BIurs6^9PQ}J1Q4Hm9LA^y^*aUY5s*11; zNef}}Ej)iTL%8U^Yw==a9XMhfC6Ts2xb~*m%|*@tia=Bb4zO*aj5*Fu!C}52wa(Si zXauqv=4V=F=@3sJBWrFFr#k>RnHCAmqunJ&3Wvr&Ngd(^qPrp{8$XG}&@iN-|2 zf7jxSTz^~PNkOw;l!$8upl-OaAF?tIUao&m?0JB81Oy1S!xBpPQQjxK5Zr zt&17nyC~7RWA9flR&dsM;?vr>xhm3AdfhRbKAj+b;fknx5rRWA-(x$+*~g*aS{nHk zZWGd5&imF}U!YQ->Bx{aX$I78(^C=HH;CxJB)qPz&Fd zk4m%CwwM#K6GZ;4jJ(8CC@^b2f7Uj|^TG9D;bfe}jT1Q5SC)tkcXvTzx8Bt)y1pPE zIkwQ0)Nd}!s%B8ykT!y>q@-ZYR*=Op&;^bt9UI@N=pO-r5A2T+0%&^?On_3s=zhZ{ idn}N*8nUz7R+I*D8Iqq&Db{--B{)}eQSDqaKl~?yZ8S3g diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimpleCompressor.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimpleCompressor.doctree deleted file mode 100644 index c2b0720e6cdd322ba8010b3ce1396b36538e82b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447473 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 B>D2%L diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimpleHeatExchanger.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimpleHeatExchanger.doctree deleted file mode 100644 index fed7c7196d09f396303efca21d07f52b952a5470..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456426 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimplePump.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimplePump.doctree deleted file mode 100644 index 5a62b9dc14b6a951a04e8a2de58d63a80db421eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447126 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimpleTurbine.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.thermodynamics.SimpleTurbine.doctree deleted file mode 100644 index 4c4726a2b8a9b8d5cb409328ad4f135d2a98db82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443069 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%0A@tF~nNoba1LgBSsaBo_-h3 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

o(CvM6IvG2$^(udDJ@Uz1i~aZQ473-P7Do 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 DNxuSi diff --git a/docs/_build/doctrees/_autosummary/engforge.configuration.doctree b/docs/_build/doctrees/_autosummary/engforge.configuration.doctree deleted file mode 100644 index fbcbc94adaf2ad86af6976df4abcf45f30d7ae22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15817 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.configuration.forge.doctree b/docs/_build/doctrees/_autosummary/engforge.configuration.forge.doctree deleted file mode 100644 index 41e61d1ee45b0228adbbfc6c925d81ef5600282d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5234 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.configuration.signals_slots_handler.doctree b/docs/_build/doctrees/_autosummary/engforge.configuration.signals_slots_handler.doctree deleted file mode 100644 index 000f577e924763bb0a63e23748a899cc4ace693a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7223 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.dataframe.DataFrameLog.doctree b/docs/_build/doctrees/_autosummary/engforge.dataframe.DataFrameLog.doctree deleted file mode 100644 index 544788003c074126e2cff57565b69e6885c30274..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52705 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 St`go0T?|-Mp+;D`z38EeIxyL>@|Ms`2c-bN9@6 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.dataframe.determine_split.doctree b/docs/_build/doctrees/_autosummary/engforge.dataframe.determine_split.doctree deleted file mode 100644 index 37098c804fda1f236a4d70ba30abc61597b15777..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5526 zcmbVQTW=gm74{`#dmMXgCmTbQICxntu|@1z1VSjvMo7y(AS(uOdtpOU(_J&wZ`KN<|n?j#&`INx)TM)`G;(BOdGG7ag%8R-YCJqH8)j)RMQh%v(Gj4U=rdj{~OJFk=y( zxaL_D#{2_Mr83k7y^go9{e(|Qt*c*JC|`O}IPF(b23;X!$8^2gII(P2N}Ep2HHpKD z(|o|pI@3A}2f2nX$oAzhP-N$-FPTyx;<*z;OZ&7I*d>|G~CyWC=X?foTMtlW^iZ|inxA1!#zx((dlF{&67Ftse z;I1$pA$aDUIzH}@gTwuUFy4=nAeVf<(zj9SurOb}NNu8A1$pIE7c3WF7e|f5PQ^Wh z1-f5Da{3okKfq3pc03ir+d9u?lIz>^nj(=O?CT_b_ZtuP&-m0EzWZpH$2MR0A4wJs z0`~avq0KiE-L;}^6suwo9kVqj)urd|MS7Wmu;#>t-&w?5BE zM0XO&hbm=Mfoo~Tkv-3NLB9Gvq`zM#*RQ{La#iu^H&vKUA5zL80pihqGJHv3FNW~m z$)b(c4eK}*9tr^IEkmSX%Y*k1UNaCb#APXjeTxnBQKAQ zS&R$T4g`68437^16*Ez6Gl`#z4~Q`U<1gV3?qC#|)3K@Nv^{$%b+_Va^m}o+e&YE{ zwfpFcX?Oe5ikR2 z@e~k>#5Om}ZizN@{4C_peYDKNY*mjQi+zz~t?Yaiz;@9tG(-2(g}LK71XVSzH^qpa z1I{og#1pfEClqF3Ubh)oy!caNmP4bKn;tRh0O)xDq{6HdEG2_6+IcaHMk`Ly!rZ7} zqXBzpYCB~iR?ONkm(o@u)L!>=;*+PfD#WMa$!`m^V z(#68dhOKiyiFJEUsRj*93hTp=%fLmm!JRT17(?v#g*efKQocElAL~D?ungMMG_q^j zq$a2TeML^US}SGPzhKipVc!E}*8=RS4<97K^n!BO?oytPGM0+guIU0)r~&JyZ}l)V z@r+3i=$*u)Huo~PD+}y%t@^mLxUlelYd>Bl?mOahD86f!_793$kodeU1#NUA<#B*6 z;!TjcEoI7hEST*|Umm4`sZh0;FoDtV=6r6S>x0JkUQ6SE)*6+FyvnzjQX}C9+)?D#$qLL=SX5N&5{uY zN_X4AfTEc!P8Q61#lr(Eb2@L)^!z-dyOdYooHia)<6(_GUN)2mz^s z!mRv^$sG5I3X{!BlIt|r#i`gjHQf=90b3d^6btx_E6t)5i|g({>egpiu9wR^lUQw1 z7oocs?c(5$3z)evOcEU@nzuGj7R@GIP~$xECb)M-1t>ila#PPwBD(h~h`i${TyjhC zo`+g^)eR6QmM@f7!c()6@ifV_C;2lD_br)q!DPMcm>oU|;WdpLimI3}4hDRXk8oV? zIm==KNXX?Z0;LQ0`<#pdi1fl3KJs{sd4m$qbaOpC`p%JU(|2b#J)UJr<_Q)Dl4tNZ zsfrG6ww$M1QaV;jVfN;B=0uD?p=#?nxs49h+jnO-=3X}2WCLo#W|9PMS&B_=3V%aN70-jj!$k{R+kpE-aj*TR%@SXG&q5Wt6y5TI zP_cm|LrN`ItI|N3ZNL}>q_A}cp_?U}Hw-0=L&@*b6Ar<3&ekH2Nm_uAU&pNmp>j*4 z=#HIJCFU(8q6{N6q9@z;O)urCN8Jfk>05`P*QUsK=uX99zAUs()x&-tWObZQwMgP) zd~WF%<`!{U1;FWPv|b>ByW;=RT z+$N?Y*HUnVqfn7nd`|B+g)+-h5$$M@$T}e`@r^lR&E1`m*sV^rFWs1t54_DZ0sO6b zS>+De93aF`asmjuw}R753U5kH?qsCD|2X*TGS=S+A1uAjA)3B0vh!3RxJ50KXD-YPzeZIh8HLk)n(=QrD^KQ|El=JD2`T?_WPZ-ta$r zq)U+%vrCpFg-W<~b~jORo%6!DFWuA6-Ai|22NipvRb9p0*$teCMJAJq7w%(chjiRz zQeQUj_cf1Ari$)$(GxqO|FOFe1KTs1k$h>(KIFwTRn?SVCd{z3VmY4DkD{_trK8vI z*7ooCjLi9l!yDo77cN-4Q!?0QoH((AsB=ba*`3CR8@nyDg1eh~!t5S1rphL@f$!w& zR+eb;s~=0IHH3KX6|l-b?Iv}(SWH-aTk({3YTGw#N?T4GiHG7qJQ7>t%ziq~3p0+# zzt_Cd;}7d{{2OC5-o#(8YcUvn^dFL-H4Ts;j z-mE8L!}hWw;j<-_Ljc4N;GlRDkiLcgWBi}s|CF2sURCB@yZ}sDF-4H<+ezw`pI>Cf zd9IRL^7GcZg$Ylc{r;;`#IOnB&W&-b7Vn7B0v6cw2GED8+u&UMilrCW8PZOqGk|L9 zYK1fXPC4;o!w&pW4}Qy8knWjh&jZ_?ZU_Q1u0wQgycKK(mkYa#J4ap_asf8@N4|pB zV3x}(T{23D-Lm2c?sM+Q$zMVH2Tkn%`rTvS0ycpQL)}D5e?<`)j?r+Q1Ek)OdcH5h1H_JJ(b3O{OS_v-&;&TMx z*`m~sI)09lbmY6WuPlVq z;?yGVx`x2ou0wb20mZGrW$|w4U*8OS*TBWQ_H|RSLQAw!RZxOVQG`PS?-^x~Qr8=H zuRX&PENi;&o*l+@MdLx#4Fdz(92m4$pG-joSbt1 zu*0kXMiDP!MO74qqBiO1CnMj59<6RhysA_c305SMS3sOhMT4?O0qG?zJ+H;tv$dTy z72>~k7?dsyXkUG_y0P}AJthZ0G%bLS^d0|DvSM1ZDF@sMYTG6zVf$LeV^t+l!l_Z< z8XBi=><&^cMW+QESpuT+G@DV|9MW7DEkt%R1Gf&7IxnM+e?Zj>GIYhNV3HIbd5LE> z#eN|wHLnvDVKTv~W7Jrsd9?hdr$}s~=b6p|KaZj$(`+Kik;ck?n-|Ej1305m7krXI z>0xs$N;3)PkmnER37260@rlR_(v~3J`}kx)oWc_PJfY+QZHg&aD6<^Z|JTP)?6Blz zL@fa+8GFFcXG@SBwo_)ueZFq%(zMY9mxK%FuBBK1H&drp~MJxy=%`v$UN$D zvvVK{GvS>**7L%!StPQlkobeV+fotl4>U%36Ma@AsWpIl&9B2Uk}75mv}duvz!M|z zA=!YkhY)Yy)+K5_eR%n=sip|rfjuhDiWD4ZtHLSO3G}|Tb6HO0m5PN_q_3e{2hQXZ zo*;kcFhOv1+dF$d#;MzgqgBZW--uLYz1b(tS02bJ(@@jy>=rMc(^r+<4YdTx3o4>* zWk?Pag&yvSa{{A4Era5U`kl}>)Ju$-D^i*ny%^fkZb35%eWKxbpM>FAd@a7xc0dB( z&#*1NzSH7O`r`Qtt?WJVL2VD0Bj!~cVhjmA1ZsnX60KCB=Ex5 z*M!~a!HUK~d#iuxbVWZ3Y-OmT-(T0&?4YlqY{aUjqTuX)tfU0Gz!80;|9&I?5(s?Z vev1^q+>B%blo~+~7k1TSMZDjMecbl5B9?VRJeg9i?AdD$Z3~hYy!H5_nSxk%(6ZFYMCC0==Ljp+j+3@C*i4Xey)%Turrq9e?ST~tH z-F2_OzVENU|N84|gWvn~9ewhjnDSlSu-6t8fi{;BEnP^ZKY5pGLI6&0gwiW7T6#$_d0U zS6h@7>Qnk5eOy1R_v>?_zSOq)Qe){6pLzb$LxH<=Kj+MAtK4Y#wUeIX)}6I{+EOz6 zB@EqPQq+Jue$Z~K-g=sq31-prG0|&J?GEaCpBOZ3jjiQm8HriH4inRlK!P{m??(I` z#otXdNyy1F~wPYY!Z=v{Ll)2C$Paj(0p&ID7=nJ{|J3F6$ z(#KK?gGG0JnWTa-+pU_@>@-CES}ZG|G71!^El+jzoIJ$L$plih({h^25wvDI<-~x( zY(5pO=89}w?J7^2{3rA|{VuG?u0#kJ%_k$)=!4?khq&Xh8qKI?*z#8b+^?y&R&zb) zjG?ibTJw#zYcUi7R+?&q)wok@tG3|=mdcUN7n5;c!WOgn-oO3%_UGn1Du%qE?ir1| z=tu7fY^etPWazn+tZSwBt{+XhgvgIU z?jz^V9Y3G^hP1NntUKZF9M-+kdinUrmrvx_e;0TTXp7lcKSL8P=CVUElY3JjgrZgr z$M8>Mqnf4ZF*Z}>q-;rM9;E_l9De@$S_OjbbwXOkjn}MMU*t` zGpc8(Hjf~U?38iHm3bH$9;^U*C)VqO<>AH)1t9U3=LBvJNZHmgj1}JI0*|1|SwrJ` zcxsH+RA5av0Gn?o46Q;)u7NM+8=#G>?r7^B2iosBXFFyLlK$OXC#Nv(T87SZ>gMv} zrM0V_Nc3Z-pBGDI?s_~DaGw}=nXN%-Dr?xU@WcxP(>e#7A5^D_Ia>e=B2HjDM;XlLteT8I%8kOo1xB0J$K>=Pb} z>#G+*>W*K+6nLL>hTMsMzLkV&8ED)3d%SJ^j25-3!Ue3`D`3v6CFZ1iT?Lb(P7mqt z_1F>X3J_}PWsK$}jOM4s(ad)rp13V#R;B_wk}Ati`1D%Ri@9f4U!P>quQw;nikx!I zIAcyz9cdkQvM1*C-&ZrnoIo2}2`(j#{?|My%!8=cJ1_LN^>_5Yt?2KHxehqbQrnXXX$+_J(z{UpC(zPrbq2yrYLvf?9ERmmKuBrl3!D`i_uKGB*SM z3nVi77|Q^kCe4bGq+$;4kHtdP=XMVFFI7mb8{Bo&+X>tcb%1+1H3HK6tk2EQRR|;j z`;#R62<#8jV~=2eKsJBTV1KTMQ4-jr?k+jlGux?T%67zjsmx~Rzf1xwLO)G{kyNUm zW59)2@)yH^S1Lr=jRCKr-cA_M$*?KU@M<8!Pb%b+5aA74gNO(((qoTA_@QjRI}yZ# zQYg8PoJ;jlG<#W^PAzxytyl`3L0Pua$vk{AmfxG(mS0cI-n!6>(T7_1LSlfv219tl zpq`&Y>1WFJkvNe1K(1Mi-HN_C)$(MYM(wA{wey9<=vv!a_FXt;;QMqv2It-xCas{a zplYSL$b*ylF$|QcRVL-7wO*$MT-g3X?*N8+OAAG}bh%*o9Z=E-Zh^ ziJL3FsTOlqo|vyHobHjLawKJC!V1pF6|=UxukV}Tig_gdy*~cELH;r^(pJ|r=Hg5K zGylauG0?J{I=;?^8>%av%`0LIPU_6T30#=_P#OEpG=8>PUvnG<%n2%mN|Uluc~u`v z41O_uckC&ao5O7Oo{{Zi)I?X4KMyTJZ`rSP7$CBf?kYf`uj%X5#+7zfef0KD&MN(U zGHmf9aw(Db^&WEQ-{-W(#_qKZZm5>=BzZgmVmKfcqcYMbdfHesY^s%dkQ6vb-LWxL zQGN0?6*HK}*UN>YG^94G>qfqkZzLm*1^s;SeSSx-qQuu^K1`UpICoRh#*fPb+s3!= z?dfMgenmQ(Mfn1oZK5*-?4nJSCe4cReC3=$bZ$#J^!5e3CMDT}+o<#f{4DD2#2~t^ z!zV#udc?Xb^;yt?ZRF-Ld4*7DjM&P}@6!TA*3c95*rPRM%jUPRhW2-&bmH#soS7-f zm*bK2Y>`|Mk6JfTzqD<+b+=t;S>VAkS0njugUBZeM9$P^S1M;kHk0{}G^HY$)1+B3 zNodci=jin?}yBP_b^KO&X2mgygbknl*$diBM*v2HuK<`{!KhclfZ*w^&Ai8s9skq zuQwhXL>pU~rro~tkD}hC;z4PGR|5}bE5wrU;0{`XhzI-Vu}2$74sZ6pVpd*fjyyPlpNE{Nkh>?`M+eTZ5ol|C!>ZXQ~0 z7>|^OQPjjKc5x225S@c{I><90ka8^6&41l=L$88*IrI)jT@(-OHe`Y5z%DzOxUr`- zxS|IX-7E%L>7c%~_9Nr$30jH>!}rkRwlKVP^E)##PNqi2W(f75V2K2qm8_tt6^)HF zsS2#$jm461rU@l>yBxe&%y<#G7dn$6%G=CF?oR0oSEaZ!U z{ks)X>!zXqiF!MM{lQN9Ig-d#p_JdMkVk^`|B&n>tiMT*J!1VYvia^^|Mq;Of6!Ub4(s`4x;A_`&$0xB!ae`t_ zp^c)q)7-x)scU?Yc`eE!*jyZ|I=(oWb5Dn2v6tdGe?fJHqWKhx<5fKrE07@-ildd4 zV)e?*4@DDSF;{^vI!v+R-*)_K$G?vJW#-MOAdgebTky1E9+Uqs$Yy}QvZXh6!la0Wmdj?8+t6)4y ziEbB&5ub66pi5k#m_YzzbSI+eISA^uHH1WdHj05w4g?WoOi5MDCiX-2(P#+SLbg-;sNn*DFU`=R2+f`EVL9jAG zUM8?r9Fngfq?d|FSkv-nNv_WV%~5c^jZ)KymUVolebCEtS+Tr5@e3W&}Svw$2N z-Rr=A8*#j+r;mzBm$?cB_kxcNDKNx4yTCifPP7o$=$yO$^3oELecU49x??ZmiqTRi z4p2!s0F+cX!@Ub|jgIx1yKv*Jw?UqhUb9hZo>H>rKb$mAs*51Iijz!(@uutp)L+th z+d^lfh&TX?Wc>Mvm;)x;N=nak0tn70glvduf8FNlnxY#m-NGO6J3w&@p&0jZA&4ta z1mLv~LG6?8(W_!P4K<1g5OWP3*I*hrS&jGxDN7Ne_9~+4H{@k4c>^of0~Ae-T6(llY&7XrwzRjS@!+V$cHg^Wo&!vz<}iU1LEfvh!%05@c5YPxHt%C7#Q ztJ*t*6bUW@SgN};FA%N}5<)_e5Kn-RP%aR!fRGUHz;~*DXB_XYuryZJsne%Uo%5Zq zPW8__zxma@758U%bs}Um8?qpX;(+ViZU(WRg*-C(NBQwD@(=QX?WXLRj~G=`GjUNyJ6UrrgE_> z9*S-8NZb*JHXMbK8Tq3hXrAiPds#C2jxjt9nUTIe`c@hz<9ODVjjE`O;JO}pEHkmr z!jPr&dTJqH)&7U6#-1Oatz~1eVmmSl_^cJ~A`{~C*rRw2f&Bu0ujBUye#f+5ge;YA zmjgsfMpIkkL^X2btnWm6wex$GJVcDMdyr1G!i~H#y71o8qL2(7AYw zJiz0-z@UG_;Q?m)G~;QB@R}@Lz|c-(exQ#XWay2qd&6a;g0kq?UZY%q>%oGk#1C9M zE0R~Z#uj2Wu$yq?#F<9Hz%lp87h>6+h3Zr%jH+fcNjY+V#dF&Dw_*L=5*k1I|DjRE zdDK)+GCw82AcxWPD4u*qf)-No_-xfh{lG;E6$9h~mr4Ret&pwiB2rZnYQ@i1+Nm<- zEyunx^uXe&iL|;s(snhWTwS}13dnIpzm4;W6Kl4GJx!tWEJr?;QPFwMLQRQ_(A%=kmO>Q50 zMSbbI)|(WAhoC8gTs*PsctW~!`=ysB2nWFHW=93Qc@xUF8L$xHZX=X%^=Itq6YTFTU}^>Xsuv%}!Tg4EnC=ofrzuNBYZfUw8obAe zwHxZ|D~UR0$^#X|(X^#5#_mL2s=$A~yx0GL*Pp`M2X^gf&?@3j+a|!i+X;^X(2zF+ zO4|;&W&jF%m5)431k+Ntlk{ z%yYX10iPvG`Vu5yH!w8w1gH9Moo-dAuO=)Cm>&9Z%7@^0X@z`-xktVi7uVmWa00y@VDpfk(B-lrBAZ)^DX@eN`HKj zr9VLF_b;D;-$C6~uQuF)sq7)5cZvi!{y@KXdlA$iFo|Om#fG;g&sOaYT~4Ab^k(jI0ZE^lrNr~&knTJhCLb0O zuDFwU&!iDvbq~ObD-cPQb_6 z6wCFWu{0u{gk8=;NV*8W&uLTOjlPT!BacVuFbHn8o0-YUS5MsO{Ah8~<7pbFo&YH+ zo+9GpDh_VDTSU5LrQ@ssb4xQzCN4s%v3_B<@u7PA(c;9?%XW|U0IX?&5GmIP?W zJ3$sEUJXG6)(IrgmqtvH!CfbD;HLC9qD1p7h&?py(Aop>$C`WXHyuiR<6TKD3yAJ| zfz)iQXd|VU8&zqb%(k%^4SsNS2BSNrnm3UOn?tofpeHPXW5d-VkH}hplyBj>jZ_sw zKy=@ArV4EqfT(1MBk9TB8@8YD#G`WxRq4Bc;mA#Zclb`lVLvB~N%ZMx1hF0_b0gwt zh^zJ}xA#fYIRH)1-~w_j4BF@$j>(IAut(wb$Qks@QSO_wcXS6$gr6wh{I$LBL+jGxXe*S5?<+*K&h7p3 z3kkrgCIzis+dDkEqHhs)v!D~yFQACyOQJZ8S9BZ>IQwu4&@$jxP6xj~Pv8n;#gs&_KYwhlW#cs8#d+A`oKKM2@IjZOW zvaNCk#~dick24|&bbNlS6e5k7;uzU@r<8w$IDD9Y59NT~8-<0iY5<^Eux644@m4K% bIoy(wud;wJGo`xk1w?iwFVG2|jfejO2p^WS diff --git a/docs/_build/doctrees/_autosummary/engforge.dataframe.key_func.doctree b/docs/_build/doctrees/_autosummary/engforge.dataframe.key_func.doctree deleted file mode 100644 index 980603ea057b0292b6d5c793c632482fa8b76240..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3874 zcmbVP&2A&d5!OmeQq&K%lD(S*yK-a%jwQq-bI2iBEQ|n-4}q`>kRM;-&7?WgWRKa? zJ(=#&QU?Rc!9fJ{C2$AG6C{sd!0(gy$XDH*;m>9fAOr|ZS6A0mef3pU&!0Mf|IW!y z__-5Pid-#5EX$P6xbbd3(`j9BW&PLw>d*d5f9d)adu?=GrQEw6Xrv;SS;duq<=ueP zZ7$7ddA?_OYICjHWY__#3_;f8M6O6Scqc(cf;#;GOm2)b*1#9I@xR%P4N#Lzye?Z|Vti2h7?kpVSu7 zQ?z?|W+<{=Dw#15;<=;XS9sdb>T_QbiHj|*kT z>G-#XS7!X{x*Y$~T3!{*=Bc^(d8NyVUaZT;4I*Q>ZpI0#tu}R0uo`@aS$yLS|Ye2^wi0>mp@jgKP0sbH0{~`WY6fFR&@(|-CaLUyTd2&}sMX-K( zb#a-ii$Z6$tsZd-|r7GPz7-_r`iwiyw*M3Y#189x?!LAA))58_r&0XFxlN z$pNgbs}1HHHO4RJw^xBFbf6y&gfuk#6&<(V=tf38SraTt1Fx=Q#-dkj1FB264pYDdu0m`lm}iEdGB!GysoRrBdEKCzc>}YIdQg z|0Oe{7m^i|jD1Yxco5(|3mBnDKvqyu=3vemSiAGv2vY-ptN9kK<0eVTHtwydCypLh zSj)F#?H(x4)`2AizW{<$RO?1o)|JHX#OI`#LGcg&OVNF=sHM#lY63|c9hLy%o~-K66e!-}G&?&$P?+%C=dh!L@p5G)yHBd%5J8n%@+ z1kS@SgF>>2YAdx>8dn{THLa9DJOGG$k>cW`*p%N+-F7UAkKDVqV#-Ji2d$E_(lfM? zIF>qATPFSWjyq^{c!p(7?|a||X+0H;we>gRkwzHvttFLh-T$!|H}+jR$m$#&Usr+kqEHH-OT8l{fwWPDQ3@VdckRw+ zBz?f2atg}-)eUk5j1sO=oe|YszqZriPlus1Jlot%cva~t5lm&0S3sOxMbmI65$QE6 zonXbg^R1mN6XM@)5RI-JXpTPH+}Jwl9#H@wni0T9hM9FNnVQvX#sPPR8MccXo_nX_ zsjjjl<0Z$HLZx&^xN%+7+!WmpaO4??%BT5)TG@bZE6Gaac5`s+IID{?Y550KgCIwH zsuYuC@FYkAvnls0QE7Oc=>)SCT95dm)P^VPCj&)No80CmkNiAIvfQwVq(GKl_L{mt zjU6EvgT@ew3`UQaYRNR02o8n*gr4vcOz=>MT#>a5`98!|7svNK31wFJ z>wR|)LKaC|n{5C|yw%*hN9Imhwn#)i6B2)r_o39p`y+!3s!je_qo@sldMB*oGLbrE zOK8tifqO@a#K&R-$^k;0p4TOsK7CMxuY_e2xCeW5nyV=|&~$|}>Jz4(Z0Y3%kymOK zOOfvQa}UlG6P}@d@8E*q93$R6PN6kVIA)bh@a;ogHn@Gd{CWXd@&W${IX{+-d6!Iv2S8&aC%K@4ltcG0C0!iNXc zdnAm{;#={JaeWemfrf4I?Y$B2(>4AZ%(55a)7l-cXDpaFPIKg)e1O>~p~7tRqOa?c zsD}uU;bNj?OM;;K?v}9C?r&J^H*XDx&Nl3$!B&{d0ZN0U#}~HUV?%t{ibLKGbCt?EBc9ACWd|8GxMeSh I7pT#H0Aua(RR910 diff --git a/docs/_build/doctrees/_autosummary/engforge.dataframe.split_dataframe.doctree b/docs/_build/doctrees/_autosummary/engforge.dataframe.split_dataframe.doctree deleted file mode 100644 index e7eccd64600cbd323c4ad78159767011135e47a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6669 zcmd5=TW=&s6&~9=wr6aQ*Spyz!RyV0C}a%lnLO}-tOy|`K|T5_HA}TVqLzdQCsw0W~E<_UC633zNK4Ec{#qMm-9Ov z>T6*jSaz5WUEOw-N`hgkpbNVDQs7Iv=ZY7)Qi6!@rht^@Yt>KVYA|%YqlArUCee?)mpjQCF9G7Dsxl* zMZQ-l?2zAuSs?p0fYUoCdJi)lnsHQ&=H;Yfl6&{b0 znu?y}oGpYJN&2Sq*`RsapK0jW)1zo9MUaa zs2d0sb=|HXm~@ADOnwxIV>bz0p=8$;K1~-{jb_c<5JB?T4O4_wlhE0p(r^k#^gP@;h61AsgMi zfU6Mq!nsQ5e?7g>FuM_W3BrGJRq!K>{GD!?4r{JIS2YmRpK3dPlpFHT#jOhS{H-A9 zHLLlqI*m(f%+RW9{rl;!MYi}9g51k(@sHxXJhE15Zq{(n(#wG`^$ApEmYQ zbZYE39vS||BWsF=UXPjZkx88s#Mio&x3J8v+P7=+B`v*zDuX3%SmT~-FEkoC7ITTp zdrw}ZIa5PkTxVP}N9)D-l!}PcJsU`8VlNCc*`aN=Coka7RfaAT1^*?gf65tCHxSw6 z3s|RDKrogn!nIxlg`J>q@&aT)!|>Qm1U_51e;)Dq2PBx)Ms{enEz(zhTN3ayB;XD# zgscfcZ(bm%-m$6F)WXPS4he(Ys^p##Yd-r=wrJ1o$p-zoRE6hb;r66`!RhmS-kyZ`12v)C>-MU0&yeeun>-J`Id5+0>xGnT8go|$ zvMy($}svSiv6Q9&#CXeT;PGNq7X>E~493K^o+5eX+w zqA{Mjw#m{|kwPjwXy|sq!+Z==I&VRDyfmQ}j#D;l)(eVl+~AdMm4p7(7BYfuNR1Gy zP~`iWUjDAFw~LIfm!nk0smc!dCNj~O38Z3$*B1uR8AD+FO=S!AW$qM|7S!)Cx)cIRClJt)!vvnH1U%hJ)oAa_d*+3AXLizINfIRvN4yGI z0*#ZXc>L*2tLfS?9*^ZhN9s+kd{;o&p>}_J}3@ zfT@u=0|8*b)ilImE#(g3MZV(M!K&T?CZ|s6p5+A`+k89I*X5~D?uo;LF%R(rey@d8 z@aT1kj;nHhkixGe6m`>#?a&D$&&^f4<8hR69t>~&4O%uT#Ok9oMi!ucxoLvuao`N- ziM&9JfPo?~+@Me))8QOnFeUJYk!!t?n$|}dFf$!8A1-_f5jaCP=nRiba2+`eMSJL= zwNHW8h`p6J=KF+}i?`03*4(Lb0v7lB70N4Y| iNHRlSE6K)&Yk}~>)F;f0$?w}f1-m>hPzFzj{r>>UHR#F! diff --git a/docs/_build/doctrees/_autosummary/engforge.datastores.data.DBConnection.doctree b/docs/_build/doctrees/_autosummary/engforge.datastores.data.DBConnection.doctree deleted file mode 100644 index 5f1506e8ae5907343fa64c7f47e4c03ac47d86e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83250 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.datastores.data.DiskCacheStore.doctree b/docs/_build/doctrees/_autosummary/engforge.datastores.data.DiskCacheStore.doctree deleted file mode 100644 index 4f84cf9aad22af02a3186add4aa15194d2c08c78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80515 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.datastores.data.addapt_numpy_float32.doctree b/docs/_build/doctrees/_autosummary/engforge.datastores.data.addapt_numpy_float32.doctree deleted file mode 100644 index 7acb1f73c5e1418b5eb5eb0301d9b228a5174003..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4365 zcmbVPOK&8%5!OmOl17iwO8bBfuQpm3jwRTm2@)TSjS&QJd5paCb!=vHF}LLgLXAhd8jI7ETW+kbgb9yyC0^PW zOw~ns^@5FZ&F#;A>d6!=-Tl3o&=ucmU?mz@X$^esqgU%ChY!}veb;5J({jzNPklXi zck@gMe_ju{+v3(%*|4^V5yfOJOAYzIk>uPM2=UxeyogVmXXaGNFO=vS34hk7zEYvVS+)y;tM z+GmEDB`D@j{s=zHr-=Of_<_ij<=He#2ac(+A0q=#RjSNX-#S&ujO?wtnX%QT9s2hs=exXn?W=K(zMV~bgxPy(#+ z@?Y}#-#t1DiDI!nx``2vPr}VVmxnPk@ZgsOrcebt0iTIhcD^4s4Rz+*5-C&4|J@jp zhi`-;#9_6(0ym6m6}$CP5K>+6OnLbqw}B|xs}lX{zmaa*h0^`lEw0^$(#>P95rf5T zb>*+!&UCX`??YqilWCRqlx}2=9$BKpjIb7L5~2KyP-)aS-|%bJH~KSH3XlC5`F>!H zeltk~Kv2=mUR+M~%`C;6?ni;%LZH`T`OA-EAHBV-+u1^X>>k*PE0d$cYsJb+k3rLM zw&+-GdG60v+*YF_QY>pa?~dywbw!g4Yv+`mMiS>0bch%-jC1=m*@XFQR0SNR-mU+U z=QUb(L#S?D*S4&!KbL#wt~(Y=R2-9-#{!WQ#`2=XVmls4Jad8N)^u4{Iaa#_beeQ% z7YBD@8r{K2Ypb*sbDL*(+%AoY$OoHX`YSvnJ!%>yOLRfgr-8}$qD15(NZ6~)O4iI< zIC1*IbO1YdJC!JPWmzsR1;V%Lwj|HnWykG{NrtFdw0qMibzCPE!+MP4darn;05oV+ zf)|i<5&lGwQ~n#*%M@b7gaT6%99_4zqyDG;z$cFvH<_p^T`|d3nu`h%r>lZ$++K|I zoRv=c9#InoGWD%cxEX@ob=H$rqmK#l7 zpvHFKi~)IsB7@Q0sTvz)Ih;f3KcXibf(a=UqEKWlMZUN3)q_06CGfc)+G~!k02Jm~ zky-!z-iNMNijpBH0wtM*fbEcE$Z>b74EK(-wlvQM1BeagBP+E!#TU=OyN9G1E&xqt zMS=9#FtUlV|G`f_K|FiaC|NR3l9~A*H|B}+2(K5SI?aR~g)>n718IvKhjlFY!rL}GqRkoZ_^h;j%a-oB_yGzR*13?GD361WC>bdsqNFwn5V0r7;Xhf8`{LEyzF zVJt=ZP`mKJOfeKG>h}s)kOGs)wR@OA>w*dNvz(z15X**Z?@vEe0oHsJIqll533W*y zd~P#x35pj`L~qMb9G1oTCIDw2mjbjb$QAsZ(&yc4?+zBE)c1oJ)<*4u#vS^4g!%>v zGx G)Bgjd%dd_A diff --git a/docs/_build/doctrees/_autosummary/engforge.datastores.data.addapt_numpy_float64.doctree b/docs/_build/doctrees/_autosummary/engforge.datastores.data.addapt_numpy_float64.doctree deleted file mode 100644 index 651906e138c136ddd268d419f376849e4c3e65c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4365 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 KS`Y@T^Zx@`nxX#y diff --git a/docs/_build/doctrees/_autosummary/engforge.datastores.data.addapt_numpy_int64.doctree b/docs/_build/doctrees/_autosummary/engforge.datastores.data.addapt_numpy_int64.doctree deleted file mode 100644 index fd81cf7e1428d13244860ac2e256d438c41b9ea9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4329 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.datastores.data.autocorrelation_numpy.doctree b/docs/_build/doctrees/_autosummary/engforge.datastores.data.autocorrelation_numpy.doctree deleted file mode 100644 index 68961f209dd823c0b14c4ca6b326f93221ec3260..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4316 zcmbtX%Z?;R7464Vbyq*CALAJYd3xv(GVT_xDi$ozFhWSi3)GrM0?Y=FgQ(1?igag2 zCK-`E)e9q77|~K}kb@s!#}~jSSn`UWVa>S_nOTpS)*xI`Nf|e8-i&+hxsUi`=WqW$ zT=PGBpbMF(*^tMv%44CO-H!99%7ilROLzV!_qjW>y^_Duc~wTj*)?cHGD+i7DEHFY zKB=1|)x-MzEiEFGy>w@?XFDb_saV*uBcY~~yqt<*%njEjFNOAxLtdFY z%F9xuoa}wVRFxGsj!ePQyNqE53su2OM&SLDx~9p1IK%8G^*-Am(mCBH8Rb5Jkk6NC;v z-2<_s*IYWoPM>y|P7o1Ol}p5Y^kxrc=bnM|a?ii)W7(vN?AQlyd@s=U;a$5mCvofnN=?G3 z@UYf3ECIqTS^0DxMfnn03(V~Ox`?A94zCmODncc9_MmxWTtzZ37w~yoPWMo)3`bEm z&OT)!U3FVlRwIwX2mK^=@`df<2`q5-$KRkLdAi=t9SzAK<_JIMREAK5kq^%9P*&vQ z&(L?=ax!$o(VczNuy(a1;_SYFJK43{lPXO;OW?>3L-(Nw813ZW<%>T%bO{oL^!wHu zv;6GbAN@ml5@G`veoA!myx#LnjB;fbn`_e@=gzGZSPJ?-8bk8rH7q<38)%Gleid5p z3JP(a@kBZKPrC(}%uRvj^RG}r+J(voq4M9_EtNNq{YE^XDu3f{?OwgvtdF2k`=nc? z1BK4*{nU*fS)z|=VGIgHAoEXru2C0!&98Y27|aWee;lkpKL~Syrv&BQ{LR&1-%)vZ z)5{3z9YDPqN`U+zbj7<FkIG6+doGN{?{tZ1*=jtl%w-OeK6QeEMR`WUq=w0NgG8jlOW3Q#NY;!`_+tG+Jx^WQy;2l;X;><* z1>oDTJCdjEvSW|LECFf;ty?!r9ovb;xSHZ~{a3tHpc*tv!81sDfIkxCl>3YACkhxb zp-?S}khWKu$>2u=Us4_~Z!%GqdC4SKaVkn6PDe$xu?GR^1uGqI#o3dUofQ-EKeiu? z&JWPM`gnO`eO~8@FASx<1I%?PUDXrLCWH(UJ?S71*o3;D{s$P&Fxl6@UGI-!6p4k-pxv0>h zigSj61X_n;R^(c+#Wy`gBEzl|odkX!usG3toRTB;DYu%uK#uLf8IAJcF9a~UU#qc6 zlEOLU{zH1gM=THyNXf_p zwnvgN$Jr?}>?3JRp`VRL5NixQM&@dW3(Uyb2c+o_08M5@hVU3ahlyhF-Vc5VJp1J& zS}{+Ox%uxk=BertU#~>7u)s(gv?l*o2>&ZjDolJ zP~RxSXG|tjnc@%f-b-`h{hr39!LZ*~NNNqB?)!CEvNVr)4ed!JF_T3Id`LE+>>?l>=w8v51ksH#mY6 zm_}~xg9utzOrWEs47XOQvi{gd^}Q2hO(&tI-P%o|uIc_}w?i#K@`8%!ZV8gZurT9z z;vC^npq4>#1#M!wt$pt7@sgBUzZb*Wq+QU+Lzh9QZ;>!O%dh2E+V)7`+a9*%*SA_e zrF+y@=y=cNN0r@QjF>mEA0>!8odITpgc7sS3uj%F1U*n65zfYW+LFMlzOy21wR=kz zd(BtAdFeV{{q#Qrtts( diff --git a/docs/_build/doctrees/_autosummary/engforge.datastores.data.doctree b/docs/_build/doctrees/_autosummary/engforge.datastores.data.doctree deleted file mode 100644 index c4f1124e6437abfd61343c11275bb82dd74ded6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16393 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 BwW0t3 diff --git a/docs/_build/doctrees/_autosummary/engforge.datastores.data.nan_to_null.doctree b/docs/_build/doctrees/_autosummary/engforge.datastores.data.nan_to_null.doctree deleted file mode 100644 index 6775f32afeca1231d59aa5f1e75ef0f90103f397..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4188 zcmbVPOK&8%5!Pcz(&#aItastStBn?kZ3*$r#D)*X!UzI5J_N!l$n%ojFr04Au&r*g z(`0K$2Ls8$Nd)j_<`3kSUy%F+1O7ib=PPo$=ds=x$p8b8#bUAeRn^DpKX(51^P{!! zbBCssnVJrGnktd!&b@RvGwxUby<5wx#_lMH@kB8@=OVTRgbva z<da&8QS7Cdk(-d zH9-*F2Z&H}!1=}5d8W<^oz}THYrI``>B773ziy4<-B|N->&kjw%OA-89JVX@7{P)6 z_mHT`EAF3TrAI5wWWe0k)l#DM7VMvoFG51mmTuS*V$>wO?6|!J?U;KHmu0iOf_IlO zsL?yV1md~dfiL}F9EAnn!cZ)M+npBqQ&V!PuALI;FRB~i>Fz&;^-pIh^OyfWWg5hX z^9l>YL3#U>(g~qelQTVjZP=DW^Z0T-MByX=hq6L?BYE=-DYk&%`Z(g&1f^B{W~GBB za%?pejiHAQqdDyP>tT26%JW5x3Czy`<`}iT6re>V`CIv%6jLbv{@WDYcZxc<86(PI z?bR>^2zO-Vck|fE7pOd7=I+nP78EwP$;8V9jO*QDGh|#PQdbN3d|O?1!84YFJgs+6 zSS&u%62fY{L0QnxQZJvmEsPL*@818Pxg@0K-TZnn@x>h1k2w(tNE5m5-7Zyt9({&a z!7nHNR&?0AH=7Jy8sh-Re@v+pa(F*vU80p;eDInVYks8_LZkryqcJ2;UqK*Tf1|ubL62({pTm{A zr@G*o^75Z<8{pX65>LdxB1g0nrTdYo@7%W1&9K*q`^3t({?6^s7MuAoG-h`)tcy3wdJ|LTywjPjz}@B>AZE< zOX`YR1J*VI`;8F#V=S2<<}l+Dyi&?*k@#Gtv8vDQ{;D;5?n*WCei zU8*kF6wOrOA?XpXmn_i*HFE|g--;5Eiy&byGb>rs(BQ<`hFOPm<@PI4>dLZQ+z7z8 z;dUj@+iAxgi)jYbES_4^D0N&X6{C8B<9aW7rI1$8s01${=>q;l(53ueT`yC>hzSK2 zq~vqm+K&4l^#f@A89WSrWHCPvS(+I>%IP9AFSnbzK#lF=G6qx;iVQ{%W@>Dl<+vOw z{vnNU2%4Bsh(eLI6!G4}M+D*&r^wIa@O0*&eq>>u6`A$Vj^1^>Qj`p!2$WGp7%R0J-~(dl-2>7L4nUJxQ6M}vbXB74zx~4xfoHE8CoASj zGB^KDW1bj}^7UF&gG|_QI0Mx`l(xumSl99qN+`9`U+%b5BxJ$b+H5btVqVBBVDa&=jXV9J|61`S}z{g?($^k;`zOG9= z1N12tzOQB^aEI*CNv6igfrb@Mh$l=vTG7i2O5R-aSc>!|bnTHd#Ym*6-&?pK1-gto z_aK4RH4}Kfa)z%)V%gyK@$9<~$(oNNr`@?tp>F7l%I!ohLGdCL@sedI4$ETi5)$Va zP9e1{$QAsZ()ZKn-kmH->2VKYSR1z!YGvs24C>n?jAQw={K~j43BnVHW%>1;kx%Fw z=PSH!AInc`cd!_-VB#Rj5O?wcW}}1(v(bybE=r;vQXdg6MmlekAgI2vB5bw0OBTD$ zsbSN}l6??tWr@)rtlFBb;9Uc4B)TS2@NO^Bc@A`O2fQ2GpUmW60)a35FHiz#n@~)E m(je&Zz?MCh#Cxqc#BDEANnWRvCljjm-ING!#s#sZ8vF-SOl>a! diff --git a/docs/_build/doctrees/_autosummary/engforge.datastores.doctree b/docs/_build/doctrees/_autosummary/engforge.datastores.doctree deleted file mode 100644 index b3ef3392687c84721b2711d31765f8cb9af33068..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6058 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 z 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 Vne_1psm8@+0usXJa_4RE{{x_Eo@4+3 diff --git a/docs/_build/doctrees/_autosummary/engforge.dynamics.GlobalDynamics.doctree b/docs/_build/doctrees/_autosummary/engforge.dynamics.GlobalDynamics.doctree deleted file mode 100644 index 0a14349e91629004606a9d50b1544066df0af6e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 405810 zcmdqK2b?5Fbw7S5o$hq2aEhmJ3axm1VlN4S#7a7l?sNhaQ9wcn=4NMlcV;v@Gn#OB zDolei-V1of;gR#LN{@+)jtGc_otGZ`rHDf*> zbiFn8URAyDeXl}S-+j~|LX2bY_r-n`%FF5b7e z>FJAiEl&2=wu}2Z&0f3YFZNfUMyXP*m)m}0@kxvQ!>M|=TJLNT^lLhPsatI}0`kg1 zmDQCsPgU8*{VG_ME?^ywE7lS4*8Om)Dy!#riJs=OWR9bkz<1 ze(IA0#j_T9zgM@4=w)}Ya%6vPAsANW!2W76nydS(>eYt7cy({4*qsuL~*A zs1K}`J2b*IrFyZ`K_Q+GLKped!R1~{{V`K4-PZPJsZOuIrdyn&pB5|YDjOvAq!dlq9q*?GA>0$`uFnW-2TC2UQzof4?Smu8_*97-r=(NcRl<|1A7}BmTdM zh775-t8Ac?5LUG@2c`8N5>|{i$pqt78*v?Oa#2%d_0`?QVz2U$%4Q{}t1G8K8|d^Z zSYs*H=Slo>IQ>%SR3YSUuN|_cQ^Q@HJZH)yOBiy)S%DYImS?IKiC4brrs(2fB?10#qfv@i$#3&Yp1!7oN zaPaX2DU!P{< zfHSw+J}h#tzeu!?0qteNVDHRtu*!0!Pq!AP$%_pI}_i1_~w`jTFGMQ1R(d%)LA|Koy7T9u^Gku%Opb)vaO$4As~7`5#J6Z%XTT zBi`>fqC2lgcltqhR$eTP0Z)qY2a_3BULNxy5(lwe+h1L6un?iCbB#a~*-r4cYV9-0 zt@R<9*(a*VB?m(RexUz8N*_KoqQ}58>LFfI&E=gEn;T3 zh~VE{?4MYeZI+fB#ZscnF1n1w;!o7aXi*!bWxF_ zAfi5?V6i_zfY6+&A(dGS;Xr>i@8x3uNC|R53`RFO`d3!>51#GS>)g<9?@tuE%@Rqu z+gYqUP`UlyMdTw?Br1@4cUDg3az-B?Mb^W>?@;DNrDmh6CuDj?wU(4O*DkgyIx0N$ z(jqdJX>S_1%lb6E=c%#&ZjmY0Rn`5~#vb9i>-%d2vGShUAxIZ>lSTwRwBs|kV)&hmPh0R<+ zA(cY#O`4NiiAXe6iYCtep+I{u&f?7h3QLVFvv}P~z`z)vKi{ zyoy!WS8O-%xE6X5hE#cgI>xm`2Cn+X2PM%in&OBEkUND-(C3cuR+I#mE6<1xjmbh>`Ayx?_^7WybC z))zWecr7=>(dkeSYHF7X;Z;uNm=^W`J%>@k9}QzkQu}FV+;GjVYoy?$Hj!=a`U)Z=mps&*|AopQy2DOUQ>tNd=IS@!1q2Bl}*I%zK1@i4LV z7~**0bajgyKrUJ}q{0A0Iw&+G%5>VjnRZp5a`o5np#}CI{H?ms%+!T>s;wLzF>eae zUB_bG5zsbVv0Z={V{+u{J+UPct62U15x3s_lua`R$6W72o z_7OY+*#MT^riTbqon7$i&AB<6cFBsRO0hBL7mD?I0Y4S$d+Wps$XL3qfQVJ-)SKM` zMY4&BwqNSCJJr2@9e_&}I>Mf*4!3W>sCS#cz|phqV@A%<*!QT4$JvzX9cXpFRjq@k zcpv~qH<^1(c};Y_T`jA=i(1}nufdj+ibxO^m_sQt;>7@;jYTcr1m!^edYypYQ$I2u zMX$2}q@NFJvhLC7AxObg5mOk)LQ)AqgFKq}adL02-R!kwJeqGc8%Wav1_cp-qHKv? z{DkN>tMTi2+qWq4YNOLFsE!9esE(;06Gqi)f<>=Y1}w>5a4nKtFjoa`@yJ+e`z$D8 zs2iE>`1_%HW=sCOhXCofgZ2v?ge60+0@W!eX-T!Rn2RL{N+u!4ebsJ7lLr}=YIX_7 zG2f!z3#Cp>T;i3AFz>S0@sT{tdV$&FN!B8VDmIWAkXe&;GG%*b?0(G6S6wzu842kN zQy`zniJjMMcr2^!!htjr?te%|M4rM{vg*w6n2QvcPxz{U%eK>-;ju)@j=2Phr?mj{ zrECb+Qec@2FV!W9?1=0R?o3OfBELaL+dbjlG(4~5x4Xz_y}A#VpQ1sD$tt?vS|AX? z5A6lGARed5xp~!2q3rvuX^5bUIR~wSgv%?m85SY<_M!-}T-1Ib-+0lU;ac8=3~sQUKgW73;QEHreIe9sIs?9k`!3&+JUck+7NQNgP^D}V?=A8vyM zf&FB3jp7_S&N{rW3I~F@p+^hN9`#2A8I)1fQHA*ZX4Hi9a zpm2}h@E_?oD4)e@I`bNlrEJ;Fs(ZVdjg8PxD5sh7dL0ZQ$axszV!DQoVF{_gW3uot z05^Q%a^N}nLm0+I@aB#?gOw7@3>&N-rIA(SNo9`=36sqt@opBR|A!}?WMm@iXK4W} zf=P0YEQ|pL12ur6-^NUm)TU2adkg|2pi3ymK@uxOK-EqOk&(<0D`O-!SR;_mpWM8C z6M{?7Ub(ps$^Y&KvCTJLx&rT1!Lf~+H|VQh-=&`du9 z)4Kj#vkl;eXh|XDCy0j#9e{rX1#&<%L^Ez~YhDpExUSb~H|O97Ea|~B@+mf_<06F1 za%`le2C9>P%B;14_=I0zoM@6FPX~KD5Ol8v$*@OSyyQ>iD$I-+z~Sok>u=a~B~oC@ zU~ZzIjIQmYo_4zBAUB37qi!3KLu!j^PR1 z(9&e9UENCc_jbGncAF8L8MWRY?xmT8&u5TqK`23Ip&GRKjrk@Ir4v~5 zWlKRc2MH2<0wDHx3H#qLJPH`qc|vzVjA67e_iCXO9^QZm7*kl2-$LK(P4X79X8uHJ z=fuRd*iZ&$s_n2MWJ0S@$P=L&a$NWac6%`8VaNob3DBaSI5jyL>5#O;>{Fo}Q&=!{ zLT3dW7bw3jV4BtFR#{@*!0-Ub;DAXFSd%tIul81pY~WD&JpZv?ooORl7sbxiPQM9n)U^YH6fixJMi~s_1dsu~> zCX-Xiw4SXTiLYe@` zsVmD%q}ZXcMBA!_rimsRPt3UllvketP_o@(n+V#z|r4>nhz zIi8w?1#A0YNXJF645gaY&074LVA)W7Fk{PR1hO`S-ovsOU@_cE><{bn$FFh8KWvD5vZ&S`EH|B@6jeC$&og50tO<= zAhfF(!~UQ=6wws^!@?-T67r<^YPpP9iUuea3oG;Zi3>JSDmU5c0?k0G-P1&8wPj5N za7w9YV~VZfkW-)`fnY$W1{0U+Vx~n;NroXKAk(C&$ zpj=9wn7ENGbYgW$oI2u>BEVqMyWgPTf~di^2=`T)HhJja3Z|8LtcWlzD~C}U%kU;@l^ay zNgkgQ)4Y=WiB30Sx{LK+*g1t~sFP;yv{lW7VVLcU-}p8b9qXhfw7q+=UxQ7hE?Xjx z{X~aB*C5x+xX*JiNcL5+9JhGI1Z`)&if`?_0{`@8YOlsWa`V`>W2AAqCB_MzJE%L; zEH4=QePFw}&-lYZu={qLCcLSADIJf%p7!(}Z6V{L_(p$Z$52(?!B1+`j?qS2`veIB zo7A-vO{F+Np=}ju$0t5ZWbAyZY4dopb{2l;hbLC!@C14tJ`F>H6GtaLg_?PePTWr| zsG}1HQXAoe6VK5OPSnn)4nI)4fd09?_6Q<=NCw&I2PQ^i6ObK%`2R4DG~ub8``Z7b zk@I5{AE8HfY$AQn|HD*oL+x)^BelQ9KVc^c+vmn>kW4%5Bg!po=lW{T_}8N2nT{-s zkh=a|^xvkkkl?kmW@q3`lXl#iwEIC~xuNzx`~x8SYy1<|(WF&x*9Eu|-{1A@_!1{F z;>>Xepr0|Ek)^8#K?0ouP1Yy%?3z_k5Cj z%=cs|eD7$(84k_)YC>;j*v%5`=PW8na=tF;26Mji9GovE%@K|IC5sdTn?JdBFR6}u z-yV8&_r52wMr_{Kzbu&Z(hN55NgtULED<-AF}zd^+HAVfV9HOJj>su5mf+o&M`^>x ztz8PY)cGtIyi&D|IQ2I)*ceX9QsC4f+IcVypFWbRPphbEbE`5ts#&PL=^yrRD?`Dlyap|$))ikzPk!j(KuW`~EhXkjkWT_D9r(*cy zictTYM}5Oas9O|584r58fR&NZh+BspXu>U73fx+c)hBwtAadMPgRrBB#gfc#)`3$V z2s;UMgF)E&b_g?zfpB5;<~WB~1gW9f7SbL^vxDi;9nB76jaboaQWy~5OQmfGwZhJJ z2jsbAiB;|d3W;`zu8%7cU6@Do!$zWOV@O1Si5-E?073zc5r2v_@L1j?OMyQ}O8g1< zXwWm8s`f0|Qwf~%Ku-&FgF(-^&d{SIFq)`Su*gtDoqI@e9CdD`M|aeD0&B#II**K@ zj59KR*^7A6NYOVIIK`8-H$%;SZf2(+-hj$dn?K zMig4R%7j9)6ex6@M4<>b4TugW9!oM|I|Q8a0MYTF8w`jpa0a5N97Yq1)>tH|VbM9H zK8{7J=+PaER{-_4e(&>$>ScJzEPym3XX=jBn)uu)4pB_Nhhwb$q~ zWJVg55v$%sgO6dAECp5_EwM`Dq`}ntQ5i3IN31()5Q8YVqT1k=@7O?k0QZIXuI5zx-6x#ih5Y@P% z-S_gSdil{#9I1!FbTXiwMrB01RR@{SPL}Fur*YEIZY|L-$^36MIORdRqd~V^Xs63y zH1n|oEK=0a?krLrN4q~}bAjJGpO*hc>p)48JmX=Y9e5~nY@ zn1_utS8B7t(6v5JC=;SEBFs%R=vY1_OMx)!ODC6{^vIHid_>BQwM z=mtZVZ4OhukQ7HWkGjz!K@C~l^GB~EHwG@N`_s=~A2zqLmOENw8064I4ccuR;}g+Yu0}j z$XN+ac_8O-&)!`oLj^obnvbn*3u|{mTbMscbe@XVE zpNtZ3%@6qkO?;MxzQ@GAZGfwW*)_Za|1&Sk!Glfm#L9B=P~BRI{qw?$mL@@e@lZU2}RklzX}zZKIfNPa5}uhaL}(WH{S zY%ooAM3vCH^*g8)zB+Iqs%Y&$D$;(~rgdnsf05uK@X7-&j|H6uF4iv+m|m=B!%|>@ zH#E7=U0~=_|KudY-AslX{>lk>(&tQSq$phdy}tjt>rF*bLbi zN5%9(4*r6=wr!tqIj>8CkU(lo67C@}#F7MA3cEW#>6&28o1ZOYIe4P*OlIz3G|(6Q zlGbqk6m*&|=eQ!nVcR}It|PjbbGJp5+9c&KNPir-?xIKcNy;6p5nHl=b3sgYbi0>2 zt7y7WTFzA52^1o|S9INMg}N1~p^wrFu3YN?*0eQn_aB zzes@`mA*`m?x^$y)`%6Awo6o^U3z{wD8Frty=SK0_)u5WOL)pbsc>q|8a|kD#i>=I z|7k8kY7|>sTp7d0DedSG_XvJbw$P`;-9B+DBQ~8wgO6d8ECn_lEwD*%Uqhv>smjlS zN>kvJrh=qY=@FnC43!*?4#lN8qIfiEk)no2SCHyB9-T#x?s#-MYh>y1=+fMHbg5>N zPZWb0S3J5ok1~dhN7{=X+!vxZUb<&ZQA#5&J(YwI!zEb?TsltRQk0u!2+v40ge=%} zH#p_NrssohFl=&o(Zj5d5yhuFEt1sm>9wRjj!z5p=#Ec&StCo2PuJwer)xB`e5V-9 zxZ=~>@+f22_@r$^h5R9F!W6ot*N9B_)9_=+Bujxz$ApoI_dwJCKcwnE3oLyVobtfZ zKY?yASaR5gGN@rhG3iSdF>09fE7Bduq`#*}cTD;mYh>v$X=iRs+Ns&(fd})!j4LLs z5dBZ{25k<KTfaa72fF6mT8RJwx(A44Tss;w{SoHXS>EmiqhAn8tU$^%Ky z1>Inf#Mcxw~CIBEB3r8kKl)mJv+2LIR5EYr%Z@fHKNQHXqYjSk)=SHgXKqJHE8)ts&2DD z%a_0@543z2bb~?5CWj3*F1HcQZ$57korWj>M*8A-@^|#;jwhdHjac#IaZCRFV2M0K z;H)s}k3tyZic!DMqs(Dr)CB=Xu`fV702HfdM5oi&n$Ss>0-X+Gv>G&RBnsHKS*2N^ z=}d6S15MjOHyAXXZG|R2>e0+|Jd4~kT-r&>;<$7&J-Xx4iL4PTE}iZ6^>GO{uGJNS zTraw9Hn-6~X>@HKu@4(T+8Tn;2X)gv3hx9jHYP^w*-N5{Wk#|T*mJu4CUx>B>os6{ zN~)z~0jB-nln0oe1-ik2X{Q4)*j zZ$zQb(NJS3Bujxp6RI^0ZN8YQ;VfwLd2q^uHs1u@U}$6iRG~KX(aeQDYZ0D?D*s9v zwEi(3tJ>m zJ%~L}*!Mp|xZ{d_|DDG;hK+q{&gZw=xFg+u%97PHBHk$zCd8AaH0NWq8rYpd6iYJa z^S~(&*lh;gU|?sT^YKxSCeEE?k(-8dk0fProI8OY-EnR`Ys89k#~Z%D%w+6 zTD%9rn;y2eO$Vzev(-9g}Z^=^l)@n|yxzwkGLd+PN#ic%Ok!{kM zm@k5EFqhhBUGWgZ9!*dBh(&OkC;by?i+j@lp+|R5`fJvR&6E0t8!A=2_F3xUKYZgE z7XkR~*&?RN^j)1j_2%4MwK2D4H#65g-mYe2W7lhjKCnLJ^*X+{r&ul*W~+X^+}VQ( zN2lu-%Y2qWcPgA}X-G5Ce-|T_CR$nBU)Qa6aotmJRqNt?i@}8mM@0K5XEuk2`>wU{ zKam!aUuY&>{FZ8Os8P4rtNt5OgrGGN9Y*bUU=Z~BP+eTI#}i6~8l%Gw;hLB7$kyAn zN*5}ViuNrX_D1h^fL{m&riFA;oxpbP4C#X${C0qw18kr3y9NF=ssew{%<;-tBb^cX zr^zN_$S+IbZ^s&WX;$^fRIADo2rdGrG({u@g2#Yvut4x|YalR7VKn2y1r|AKap8%i zJRTPwMvv}s;at{;H7@MD-0wzj$HpR*_{1828F!}G@ylMb!LJx<`K2n*zwFV`6u(_9 z1}jWU!b@S-ZDPP~a5#F{Rmr2UVPluNM_{g5=vLaz-du%FcF$JldTqA4=yK(CBCQd_ zUO<9~VVEohhMkbePs6eMQq3U?j=cz+^5EF3K{ptV+3yiZmc(dcS>GZ{4a?q13glS! zTzYiJvU^!0RxJDSCElFh@L|U6Ly>ZIeXa@MVunr&?Z}dVT8(0z*5h@n@3m<49n187 zyIaIMI=i9FtIqNVTx!-Vl>JW0ZuyzT8S){#KVip>U=__f~g?|#pF(SKVYUuAla<|g<+K?9DSc_wil)- zvji~Wq=i?VZ#4nH4P>PYt!jyFgBA&MLC~J}iZgiA)oZnzb2yd3KD3GF5amhT39F!`ezh4Z-Y>T6R-uyjzlre0~ zxmv>Q^V$FN710(*{#veEG8yQw#=eoK1e81xl-bjP4Cu|}*IblOcm*2J-bvyUb#oo?9^ z+mN)31ZlRr5_24CDvVis81L-3V$5pM|1?V{HHo~23wziYqizk5tAAMY#zeE><8uX0 z=?z~q)ToR|Gev`sA&o2r(j0AQUjv)%smjj+He0|cO$ABG&V`^G3~cPT2AE_pnmNxo z7Ab0Ya}}wMeW38vK=1HQXc^E4TZCf43>k)npR|4FLjSo=kK zbjRAyvqr2~yFhuKk{COb0LYcWOUGW?7u#E`_h`wBO+`D!y&Q+}dLT`3>ON4CeZH4( zxZ&VJ+rJ(4yEwl!xwqprdhG3hV;fU@eF!&$3%}cV#CB*fshtf1^dY`y?uh{%eX?wdt3JO=LzWc?u0b1|_l-rf`gjl?Eqwr|LfooZJOYdEn%Epc@QM>=%|B zg)o|svS1OT1}U#1-Em0SOONi5(qWC*Af=DPLWbou&6MSw(q2&|EpHQD9aqG8a~@F- z8*v^TY!KFQ7ge!c;NLoMShf$%L%k^rML?e{YeWhAO`#rEygG96h?D%4b+3R#chlROcxc;!py<0|>v5zLooMw@phBCWIWgKNrp+|R= z*}xjHqResEv;ZJ@g{6U29~KjF;J|MMhny0BSJ-ib=-9Yo$K&z{cG%dVE`6vs>1?|T zY_N((#Mnnej3I_B1!An`t!Q9zXR21SfW-nh*Ew=!(~S_$-b9s+9`z}ba?GP-DLiUI zwWfL1=Y(?1SeeDEK4Xz{(z4`NK{uFJ*{^fdhCZ5}^$CmcG|&1mX^eZ;$LP`Bv;LMf zV)Lwi^V%X_IVvLTwrRr!8GR8uE3^oFp-k zzotDNwj81MefYbmv%N-%Hq3*m!m_ukGKSv>L7Kf_^bbG(Dvu!y8|Tz&s<@1;KySwt zs%0EZtS&epo{7weeJ31Y!ai9F>^sK9N<+a@hyfhQtp6-1xB;B<^QtEomI zj3yo)XAz@@hts4xj)%w4qdOiR$r`cZ;R86ogH;Y3rUjIhnsvY*ZB7e#+*>WO^$+ZO z&GR4Y)tNS3r9DmWZg@iI)82HaRjD@i7mB@Zv)n8d=vNeU@%BBQruWd2#OtLCQ*FOI zg$KVewcyhgy;C#TYoD6Oor#TZajLXXY)s+EQ`g7F6tW7s{c88p$U$?v#|nK(x2t?Q zxLWF%6%fY?E{+w`D@YtG_OPzhj#;T)LA8z+P?^xCsg9^}qE@ALGqr*-URYh}@oMuQX37H-yhJTs;+2fb=i`cnp-=J*HkR{Dp~DT)29dbL#T zEf7N1)?pW1t%b^-l!d+ibUhYw3RGIC??57!y`R4c4rv7)H=41|?WVFaWN zb~o5Fr0oQ@`yg1I3eHh0Nsn8jcUR8kkZWdCN+0Cl_k5ifY&^_&=3HWNXU-UUUrB?D zO*>>Mxg7XwF84Yi4C(S=htXYbHCzsdD-#{=)y!PO^txFmIow-7r#ak#)JE9do?~&h zGp$<-G-l(nCI5(d#$b4bSYjSr7m^6UC5FwLMO*hRPsN<)r8hAd@}5o%R~j8~>=I}2pI9Gvn%#v4F4 zbjSz~e>5Ru(IP+%GCoLJAj5sT@{sqXTEMIx;+WdA?XLCpVTDg5t*M1Gnp{zPcf47^!f@y8aWBt`FEfo?EYwBM?m zEQ!(d${$!{sd?o=M+IK_k3yGefJl_WHNL|dv3X^GYuoSk+70Y>;w`jJZ-yBO~ zjxOEUSoC(9?ySvBrzQ}`(wN400&$e+e7@32E3tzZ*24$h1;-RKIaHcArd1Z zT|mQ*A(AYmHH>J>8W3Has`D&BG!0H^l1~Dn%Rx675ZTu-VgeXV{CT)Vgc|-lf%L|+ zf``(hdseWGHDbjdT*cez;j&k3&b8Zqsf+D7+%?EPS|biy>jxwpYb&g&icXsY;OH+_ z%;pjLu(9SAJs$#aC`Iw_q&Un#xTi!3jkwb%5yWsumI8Oyo0)0o^QWm+kOh5S08V+( z=arxv41La*8zPCj9tmO?O$>UTMUWZ>y`8kjG3eR!=#D|pWQ|xcXakcR|8ABtNsdJF zJ+ag}3UB^abZ}hp=0kY|JZ!vC-?nVkoBUE}aXpRwuB8Zt5n;YhgN`ALECs@>i*V7P zkW(LoJ(Ck?{0;J?Mjc{EQ139n8zAuELljsqbSve>zLbr+D2?Sj|LmV7Fi1AAEI&4aODxHO3s2S4+p0-Q7289c7kp&T(Q3xrjLCzG38u~ z^fXMlkyOU>l&$pWo~KN)M(mh!1)tF4?jKB;X4}nq&&LHpnCH`>#!j=2Gnz7AIm4x{ z!W3V0cwF~h&E-Ue{USyXK!raXrR8^aV?$}mN7&@kossY=d*DbE9^ zJecw_&+*c9zj=_q{Q(mRH&!<=4*;mmTNO43(`T{Xd%ZjCBiAO_kM`79D z2tkc2mVF?PqKA!T>WgFe0G|tpQ8goaeTRk@LoZnh^jbxv8f^Vjsy?&8*7v|E4{ZG_ z=mvu=`xnR9phpw0zGV@chF5}btVpYE#FcF{*ch(JQp$=n4jQ~XELF)_;N@I! zN)vU`OzV-L8w_6TGcA4Wqlq$GEYj0Z=5eGljxrCSM|YH&WQ~j#$`r*A#ua6roJR%2 zMj3UWmRWvqz|&#+6(%rZ%`<7pF|3iLz?#FuOfg}!dn_N|xZ=)g(f>5BAk~Wb6j#u4;!el!;^T@=xWlU&ac7E#8N(e} z%5jI2Yq+yLRkvAiXA3x`NjPa5bs^}6k2_-Eqlr7`SVX7c&Q+u@jyoIa(H(crWQ|yH zXDv?k;Sy$iHc_I8R-!QBNuu#_#e`e(2yfV!piay%C0xINcM0c#3@(R(BNRr2xSIwY zLkL+4gjg5hq5;LTQWc&BDDDBLJV5b6&ncGd^1(IS)k_Y;FJeyeh9k3pvFEI z3I;x!7<0cxbQ;F|C+Ul0%opj=9b-Pv8nI%`M#zev^JO+Er#dV=vMbGS!B^McAAH-{ zxxT`agVytok1L)WAo`zX?W8g>$KirsRy?84Q@SKF&^4=S#FI%HW(-ecslXFPuHnh% zRNZF5lXJi+O~OfYoby4q40yr^KAL!PwncOro;-&1#qs0}dUVGVk2PY&lhYWUkhH{s zbap7Ohy@jPu`4dCk~xY)O@$#(5S<-Y40(JWVGkQaZVuLGp|oDBFvso;E66*<92QNC zbVhW!lLQb$7g-8)Io8NagPNzOnm`t)c`7*Nfto)7-C$7jaO*OzSqh_xJ9k**sNv45 zNqHQ1_R*s|?sQorR@}J&uS()$Gq{c#pIR=peJs_guYKZDJ$&@DN=Jn8rU6^a<)5v= zo0Jlc@-t8<^>#6|aYd=OEB6n9GU(vJ-Q>)XIUdw zWI9{D_asax_0=cW>I!vM9>=>quBh`s9JHSge2kXj4q!8vtF@$kNnCtSWVAu$wtq99+D7s`b{Bw&&blFeCjG>Dxh5io~ z@AB*K65N%l+bq~}2RP-ymS=-*Fl=#H5f&mI(Hpq;T12NI%PUA<99cT_=#DHc)`%5Z zuERx1?0uzRio{-rV$-JZ2R*0Q0XP0Q}8c-va>avUcK81Zt)%lYlTv8 z7UCFJlzL+xbq*V)wAoj^Sh}r%*V?MHRebCZQ)icaC`M#NuFuoZW5^{-+3YLENXw7D zoT~XO81@Bl%7bCw2Hjv7<}mw;i(oYKq|aG|sG-@{K0}Z0X!c3ghz-r$@7VmE zL#M?K4{v(dp7$uV?m>6F;GCk<7LTlJ^s^I>H~E72&TCgE1T8=-*xU=se08HqNMfGRgO|uC7K%jHuI~ zVaKAoECuQu5p7umpH8aIvw%+vobrIrU7#BbeC+pR#sn~$7*w~2P{W`XlHNE5Rq4?k zgJxMHRt!2*TURA3OkGuVtE`abwW7=8iZrjvBl2M*jW(BHH}ho0ni!E0Z9YyzkD-k$ zWpjxbBMompldAbFc=Jhc%7Zsw2HjwI<1m+qi(oVn=VKNjYKZeg(i}&ezokca#Q6|w z#D+Mv18If=%YqGM-=+DL=+d|%$}jVXbl8ZZ?qG5JG!RuYqQ&|Vfh`+rz%1@W{k`ddwq+XlTMSi zK{uFBIqY)=vK!Ieh@wS!nrA(eG{!ya$@J*%Sx;n**gUKMTE5Z{{TK(%spHPaRj%6JWib}6du;I1{C_~IYHZuYwB^VjST{Kvy01wP;1!q>Guc9k2Q44bc( z%ea#e4HU7cA#VY zY#dd$t1x8iWVqZiOkl**57Llhcq&VQr-z4`XqfupRBdO$)V~3zJbB8eK{ptt+HY5h z41Y8;miJo(sNw22NNXHd-$Re?xcW}kh!t1wX#4dluD8TtS>Pz{ucViNfQRCqOWb4G z;GY}`g4I-TD<-cA8vctA@3^Aj zkMfwuu+i{ZwRgqdB%|Fce#?f_9#)jbh>3@sXu?EU3QRn*6Xm19;t@o>B-6LUz$p(b zo(Q_ZVDVi0o>oi(qlt`bEi%-Qaf%ejk#RLWx+CL(tPv|RZk{V54{Rg-tK)+Oln83Z z3((U}pBEctng3;^QuuR`7{s{Z&m;0EVc7VyJHVeVUE%Eh9az1(5p@bQ+*l?iOMyCv z>MS(CDW~c=OCDAPr#yhu0Nr4Kv)Kwbp}~(P);!4~J`HQ`CY^DtxrH9xvF0Y$hz)Dp z*NvX<&}p%5#G4+rhpAoTZX4NMws&%(Bt}nrJ4rm|X|fcac0`no=56m0>N2Bh7H@l} zMe<22NgoE?VBTimHI4~jG(GOE77=P5_XW}$_qaFFqr1nwfi+_DxW2X#%%rD>^VnyI z+$yVB{youUv(=6M%F4I%hd{jb5?FJVU8>X<{WG6g9bdS ziNli2D-HywJYoI_&9EmdI+!Uqf8dN)G~&k%G{jiWB1?fEt2wa-7*9ymYL-mp z@!*su+oVjT1iHZhW21FmAcj4f2yvZ7a9V!SBW-bnxP~6x^OGxCBUXf%qi=-3f?z8d zKUnrG(VuZmKJLjQ&tb!Zx;BzqaF)waA{0iz_$wN83@~IVj9^`ai-sI;OI3IlCI#_;pQ6i5jP{=WrYCoet z4ca97pB8XQ=wcegMK^5ZP#Y$~aI1|L4oKM#0_xR`XmJe#i72HJFG||H9flH$e*!B2E~!Dh(^a1N4}ItXv4;l$0y*3^W|z`x94O=1o=-Iek|vZr9hBl zOsq8c_+6_0v%trHfm0s%SatHC@bR#W@WJIdqS)~(ix@TRSP#hw?D(ZnW10epQl#2H zXN?Ss9cNSf0IYGvjx$96GYM_j*b$qbu#d61CmyW25i1@|!;N8uEY;>G{PS;W9(q-( zp0i-YW5Fp++DY@1n?N^Mis3vz;e#h%Iht*ij?%v3Zj1OdY^ajXcwVuS9^LbbN3li* z#fAmZ=(u9T-aJAZHa6T6%`2F(=9!*E2#t90N)kZ~FJvk3V!g;MBFwbx;&rK3kOetj z4NiHG<1L^Y3^~qs%`T#17)=a$g+-7WhJ2W`$1&uk^yrQu_pwF>#gNa7M#mLH{w|Nu zhK(WW^}W5tdKDL0`h`-R-V3!aZG;JonDGl5att$MDKO*kFcS?cewC{2ELibNaLR)f ze*oQJSYbam6dC?#V#LoZ0@N^K-6;V^{6r`)P4q-5<{&?2jo2`v|HwK8rF8GY`z z3s#g?MIlBJBwEwKq`6} zr&(k);e!kPW3@B05Nu!nDcmnfrnnTQmfoXP4;>9)$|WTXCc9>do#5L z3gre%f8vthqiu5gT`y8<`>RZ9n~%0%nS%OSX#J^L>y|g6YR^I4+H>(A8q!@+mi_zk zpK_MKuvMOx+R|E>rlZgJWE9{QAyn2#JoS7dyPbD>d+gXV$@ux&C~yAgfh$%_;D4NA zVgk7)+=t#f;rs1~;yu4JF>y2FsQ=EUQ55Cb?@x&R&iBHC3dK%=zPL9rAunp>l;o^P z4i>y(8@HFxJ*~dT5ajoS(I$ONQoJ!qePtO$1Gl-o~ot7CDfk$<5K;Po%$cU^gnj%e_Wye!9*G> zDC{k^(F4^Emt4FgR*{WDug9mhlHV*YQQ!l*#A{UXWoF=GrMTCh^5&Y&GW{h_w@ge_ z%Xo_gcO^_rMDw^7PUQP-+@b(Eclm+5nLt$pw=)Y~*`F=qUVX5kLmGwLx}Nf8aK;1M zxO>qe?(3xq4{)7vW$+FS<1(E{E9gXFb{?%yOweN;S4Gt2AI*k*>Qw7Z@jU0Z=_xpW z$o}Zf`}icA>N|cHMU`TwLRC8Ky7PVhOr_bpt z#51!I`q(Ws(rZ+2@A(DUrdYaRU)hGoPz`CLEx1erqh{DxyHE3Kj$O5v$BHIvua1=^ zzJ}627;$1>702}!ub3c|dlhIAUp~!)a!yXS#5uh;)~CtZUmME)Hda=f(2DvO2B|4W zGl$HSSKP7ZRwl&B+A%sm^(IDUeq1M^;{rdUAjOlB)tsM}(f%Sef@R5Qf6BBIj^uh2 zPReNi8+3zZwDxx{#IVT%#G?I(hRG{d!p?upBw1NsS*?nE)5Oma?F<_7@{u!`?; zl?;YYJezXBCtlHtPnr1{@M#x`OyCper{UA?R0GL^PnUvInpTqV=~~bY8=u6m#{{2t zFiD2-iOO_GPB&?RPcuZs@##WApQa%VpDtis$bwIl^02i*%o+^%6#7}=Q!g^CHs^p(yrLDKGV?Rw)2m2i0-rcP4WC|CeC^&H9t@ z=}n*;Ha>}Aj|o1#lu0s-PgIr}pFTuH9G~tJ^l2K>@aaXY3s!tOPUTObRSOAFiN7m^ z`uoVh#vY+Qmq*gWMyQK}8J<{TaDXULGXbO2c18}429)|WiH)Pw8o^P6so$hpNfwy; z4{%Czf+Uz);SCB?_KgcU?lHlsUocUIaf-?^gbLZtqEY>Cnj4-j29!xR!$!8t6|!lo-7fH^RZqY;byQVfNzcsNfOc1sC^_04 zs`J($@9I?Z$pU$g1*bHfB|+ZJpc^bRvmZ(g4Sq~;Z#R=?826}5clLC%7xTv&5%K(N zr=U;MlZJbbVqLJ|o@FbJ__3aBsNKQ%rRQE^X^l6XKEA=HRF?#99c)@T_+3yp!J*ZM zID?wmxEfsfHKaN2%4-9znjgPTXx6+np2d$}Wl>U+AHM~3gZZ)jlbdSfW8%awXTl6S zF_mR@;tvxMcjA`_dPgUIG3$cOiTfK;_G)FGl3GWlBwvgSFx}xfN{#e#(C70=eEF~| z*hqIknV_x}yMmh8xEiqQHzYoRT>)1OyZ$@XUb0}G1D0J)V&qtMh}LHf&8|(goGfT|B{-$2D+$eR0o`Dk z*p&4Mn?Ck2!Lvs*afb1X%5*nRH+Y_^)apdUbFs?=eVUpyJiC;2!G>q<6RJBIzx4b{ zOsII%>Em0<36(sRcZrKT%j0|r&a5U>Ik_4f`E{f@nUu)(H8*~}(Cpw7s@GVQl;p;5 z1KnV5Y@bjC^3-4BALWxHf5wCvc48{a?8F}-BJRX56ZDQwyvVw+bWZ#Q#?Q%#dDF}9 z#Fu7p;!B;KI3rhs6aNQkF5<+OYEJxXq1nNm_?H$XB{}f}pj$2{zI0ri_-9O*VJD`t z%uam7>46jfM9@1r@sC*-md=Si^dwW$%kRWHGdS^1XD80c)!@XtNQn_A-l;k9Zu&iO zDwZXozSN?mBqzQWbj#($JIBR|cQ9dwotVmWRizubNT+9rh)3cJ1-+vuUBJ4qbWYr6 z{G1{&Z#sQ^!$_xhWpLtM&Q6?>tHFt1N}7u}@h;7YUoJE|cqCr5C@IN_Uk|$Fa^hX% z;>0gv!VEhxm1TC~_Yo0y;^zx`M<;$B>%!7G@h2HSCnx4jFTWG-&fvtmot-!%SA!G( z3u!Lm#Je>o{;AOH;78RdCd{xCQ(0ywUVTR3#Q!Mh9i8|) ztP4x$#Ou+MOieGp6JL?RiLY>W;*4AkPCQLYj5zTXniF3{zb{ETeSt+uNlv^Qbj#($ zSB#4jpT~q5c48{iRh4e!BAvdOh@D_< zCtY*n;@tN#frg!%$}&6mTZo7|_cH{&qjTTQy0CQ4{UOHB$+>yc!*=fL&F;r;WytE` zj3~j))i-lOjyOm=28aJ1X_q_vQSo*(um8Req|9;kmrE~p5&vZ`CdDFvo{VQUwFWwWg-+d+xixVWc zyt?c$Ts;GQ!YBzPSWaU@s}^o~fdmvtcp2{Hn}yBI$w0N_mz8vx>ycz!E| zd#q>m6GDA_5}%X1!O_1;nv6{18F$Uazb>>rxQpL!QCyOXe;;&%xw!izo{xS^!u%JQ zK*P>WWtpA(KZuAs_x~02j?VpA)`g{W?gP$p&g6O1!*=fYB%YZ_*5Iy)65KpKiB}{U zvU)`%FHa8LDR(x+8=b@}63y!;sp67k_h(u(n&kE8f^IOccb~*-A{Z0b_n1_}u1{sU z&eB~&Wca&?h`avDg5J^fPh?$KI@iB}@pFpnyy^7u4W8IPGDx@O#i$OBD61y8`HsPO z8e;f<(i)H92g}AaN4`TSb@1@L*P@>!M}8*g26N<1)(kxu_?WnFo5?clzEqakeP2pM z+Yr@Jn9S?0{dg zsujOv#Y{X6`1K_coxm^2Q^T+OQ%xnyS=%pwQ<`ri;n#OSH*EY020kYE^*JWXFn&>4 zX8igE5pn$bjG#}`5s62M`OcAJ+&GW zy7k=!ru4h$6Yx*1#tg{afP|A|A7V8o#9f2Kb5d<63ml#ePHC=|1c&E=ZZJ5suf~K& zKPH%XIumFZ6R9jSChjI8j)|uV`ZPspn0ONFf)x|XS+9l5^O*$+p3BpiLfI!oL_YQ? z`}jOIFl>}n7i)@-X*l4ksF{GQ>SE0t91UoCH;Ij-=^DXN!_j+Ett1PMJ{6qO+%pMB z`=A>PN9`AD%5jegg5JSI8Aebl%Z#9}AtH{T`viTOiZlf6vM$&V)P1-59gJT(28o20 zH$7~}RTs>Waj;L{IJz#Yo8Y|aK7^cH4Gw%iX^uPa+JLL(!e14d9eic$OBN+1x$yTu zH<%0C??X@{9}_43JQHTviK#5J6aSKkxD)@Kpm%iQPqQv8ofEIvm=5t8e(?ur=VV9*cT~FyIEjE)bB_i&!8w9xQCFAGhzP#ySyKgAs;&YI0&Wnl(t{aND+4vdU z_Oqld?zR+h!B2DA&k0oy?zEq_XeG&MzY4m+oYpDg(y+(GWk1d&8FpDJ%j~j0CL-># z9~JbDF8g8Dg{5=Z-!OhoF3X!9w#%xSZt&e!2d@q4COEE|=>|2kaW%N_iIai*t_`?q z9()r0z9c#G@!*tZA4wj3Hs}WPVEas0jeJa;_!uV4uoF|6uBvn+7iseaM8uu=NI{>b zBodEUGdi4gVdN`73~{j*CEiUfzgaw%IdICq^i%474o zNRKoZZwS2)9;9m)6(+g(e$Wl(;@hmpw4&o56GxwAA`Lq_m1TDH=MfQi^pc==bo4!} z3rpwdf5!MZIXZ88*p9BgXC#e;zG&_eTD6a^C%Cx!p3y+O4bJ@$(js^6Lv`MoXMap6 zdT`JFutjG{p8Yw{4d&VQ?-_*#KPGPd*G!&ax2CepZv7o1;%@zZLGS3+?_ph7I=B8A zyw-xsJGnHoZwnDF6ckt~PO@f18yVR{1T>XemfvX=G>zC&5 zM^U{cN!AYsr!+fC^7oTKH<-VlYmMY_35D+(Y*0ps2S3l zSnHNNH9sy3r4Amq_gM6k%!8x?++M1C->z|FT4A?T!=5+ zH|duBnEPhqX>i}w=fvDszheJj`guvR=vCm9W*SNEdlcxF$$iJ>hW!;xmSOj$GF?;Y z<}H%vGl_`1?;o3;o~`)1>5aNnCrf#K+@ zU#@>k#3;h@&2qf@@fQ6gxo;VC%jCXebGQC=OqOByrLxTKyO)T#`(7jH(;!xx`(DYq zuyoP)UdAtMUX`<+v{>1Q|8IH{I}afC%6QYu?!GRU;0yOnx>-NwzS(#h-1jY{wXpl@ z*XqAbD0T4U`Aru6B)RVgK(|cpJ2toK|0R=U*nO!iv-^IQh`9UyxuAD+-`B7%ES>v) zgYk26U*7bxyRXaj_riUX?$nRDZ#JF=_x(L-E$qJfh58Q&r4H`Czq9Bk$$bxg$g;Wb z*xaZ88z#%J`%+nE_dOB974G{hLGS3kzhqrlI`=&XJ;~Jcu-*6kU?Zqoo%bD9h^bn_ ziu1$s@iMsU)ub@)uB)g)ZI$_2`e{k#xmQ|rk>skkfNrozdzN*#hz)v7R+t~n%!8x>79(9Q<7Uz8NQ2yk57Fvsp8R^D40h&%Ml1ihm}FS0HyokM?t@pE!$-t@2?S{>8uwaUe=U#K>^etU1x z<&Z~&BEhlMG0jMQ7v~Q5$>`w!K^o-_zAn;&=H$N?dLP`$e`!%+l9N9Gy1|^>eoQku z{xNa%pD~e!9i7TDJNgk*fusLK&^tQ%k69O%&e1*eBvaGFc660sH;PUPHdRY-X_a7S z;$=v%cag$Gf=#?MkKIi_ElGlXsYMq_9(yh52J={Zg3Sg!CT_Ze$uaDvRHkbw-Hb(o zJwrr19$zTv9ew2j)`g{W(>CMh6pwk+>Ejzb!B(#;wu)`P(RB!tykdf@s@D}W^E0^X zOG#VYT~~8{n!~@jiK7cohOU6#r+yX^ajh`a3b z1-+xoK96-_>0I`cjGvRs@}@JmY$_fk3ZXsa0+x{(WA3HT}baW$h!NtekRnZ>F-gKQUYN>*Yed z+UYLdx47x)i~1Kk*7gr#KgWKVRFo_{Da!uDwZ%5VG^Pk01`oJCST9nSxvktRJ9IVc zOnB(}NN5y)B$L`u`#t@0a%BpJ1_`TP%rwgjv0m0DFlITV{shZJCOh5sCf2dZ%8LHs z^(s1AtQSz)Y|LpK`m5N$5;BhyGxhy=s=c9h4E{l%*Y^+bCN)r`V%^zl$7sD4w^6O= zA0d0{&$qCmQtjw{JrLcO!e-A(%G)E{)1|zX_jHQ&G`VVjZQGwMH|LAh#$x|~*1}@{ z5ES_PTlH$G+Fg9ELfFb5S>0~2J?D29YYzouR=3mgOV!zGY4JJzwXKEe`DVFS_ZKS< z^bf{grFyXgHR!+2e>6OD#6kjp?W*5deA41%WxDU(*eyWr-sI)==1j4^i+`-N|GRyM;_RTulu*gD_nZY^!Su>+6ZdVR08^_nhxW}Xgz zcf4I_YNokgFAF}rrXIwHraD`o+;X!7YppisyymQDU0s&FV`%lru$(3`=iL!+;~lGq?6(FIrQp|Dsv zgAC)pE58l1`9uH6m`N^H{#d!aMjy0Gva;Gr{8)Pz`1TJE+u>p`wr4Na4y0P|MlJHP zot2Y=?xEBBsi&}_-c0SF82pFh*!p6;39F(KPWL_E8Df6&*6TZFX=-0Y!~HeQ znOb+Do>|b^LA@D7N@q(&i3^00K9)aps5io0kCEIge3=cGP(&QW4DHlR)FpH;l;B3t{>z|&2N~L>78ttf&@O)vYXIU;g+51a;YcTi z8WvGHw5!qAjvzKsX#XjsvqaD?`pu#JEHq|-c2P${``M@^p{E^d~f zg-Zm%qTd{XUj)7e2o`lD1pg^&NeGtR0|ehpJ$1{jk5kz-|0Hk(gA;#O;(fVj%^cwp zK=>vi;voEzptlj*HRsoIZ~$S>Bo_$36OD2ZeiuD45N1zC+#q~rv0N^&HOS87 zrr1IUmKiI}GL|_W5}UPc2~WhfC_c$x{LE!p>Yz&;F>%;(CI9!T>i%jY)IA#-pO!eZ z$+ll=wjmI{V4)`56Z-HuEa*kbc0VU<&uqKt+1aN9+Wx3WlC3-3t=1j5eE3xPUUTtZ znTxSXA&8Z*{wWx+2}djMjVVDIqZsmt8{dpRyD+ScPL0yYt z^T$w_6Pr&+w7Er&&nvf@@L4x9fzka9iL53!(K|hCX+-uPqxu95#SOeSUbEM4?`vaC z-|JSY9k1K;u(Dj8UGRj{c^pdQT8VRgrSl1llTG$dHtIYA(PHuB<3bx4%^E?UW&)I( ziws*19^lTIB!T;Cj)jY%r4ycCpN1wmw4Y8-4BFY#AkZH4CO5R7CU5&oS-!S^21PJ= zut7ao;f@-2r%9JG^pmsB{i9-3gD9j1vNtVWOd>)MBd3G>5nP@jq zO=7j|Akgh$)K@pG-j?-4WfHWr6DpPTME}g`O+spZ9ue`>yd8`$V)7B(7w9d;0rcif zlF&P0>6_zsAB}SSem*@h{AN#s;CIlU-1z;_QpLxuZ`gn=bn4A+ffmILIXc_S^@2?O zJZq+IV4H~U+_5StxcZO?t{S*cb{0B?+k9-7^0ZlP7ha&Y3)wLED6;Gr9-`4{TYzsA zb|mf44!Q4$P(dE9AaDXrTYPWtj&_Lnsux*bkoRb^XqkOXOqu(qhNwQzL`M z5Kbd-e6+C^hi2n%3KKpN3_LqbE1}gsPHcF$)P!S=Fs0sZO{1u9$uN7LCNCmQnF?8gizcxi%k> z+C_|eE!s+qag*V_+RHF!?6o`9y?%YcV2J|tZOn=A`uFC_UtS}6Va;T>={`{TI{9)h_h!$ zvZ{82*3V%IJ?lkE+qY#Jn=t1J5xJZ5VInko+KJ5C37QY6;3xWO2!?lO>Zmw}c_$NB z>>MT)>nl4U{}B$kP48dIsmqr{c%=iYICc4A*01EMxldib42)}!Mc1EGy8{2^E^#HE zLPsnEv4oCTMx~-6I~}2l+O9ZaxnLOy*{(2ivYJe0p56g*#8N`P3~cE{Vzwp&yP0UR z_7-%tpR&$Izw>$8SLlh&)7aAh^E5HR$$LWd42F^X;Bz?N(GQ8*zuywDNt}uG?_HKj zL()2p)GMrrd5p|WP zTW1LRv{aA+g+OOHNUWuCCb`zqE=Hpqqj%5~!)W$207k3+gwX8PVMJ;c(*C>&@<1AHoK?E8}Ce^-_ES1%~N{mV7 z@DX1N&*SC04c8J84@$2HWRgxPf|3*=f)Zzv6qHh?4ev#hJS4r3o>)j?PlJS{pf|Zg z(!=qJYTYk&3&na}TcWq`@SHCf_O~P^>qgGWf$A@oB~Zz3YlAiKM;WuFTg=#PokBN1-B*=;21CH<@r>|X;3 zWRH7FdbOVtn}OnzrMGUK)Tqfij7sAOU^RAmVlAp!R8D02t3YLGL)zlEX(( z<4ke{wM}S}2eotPi3K(GG)PbjdXqb-Jw$pZWh!)ZA@x+T{ZnZ%cF95Ph07AeI?eiC zzc^F(w_Gou#4fssHo?H{N7A+@cxk`_w%nM#`08fEpYqN*=eB+F0EIete564@e1pmG zi!%6KsRp0Ej`OI1wm*U*XVF5P4_FtGAVZ1CiaMISHmD$eQfCElhe%^q!V3RGN$`n* z6iiVh;grBlAi{gv{a|--<;9Xeo)q(HI`fyu_RIbRAS9Tpt;y;7fM}BTsPL%Rzb2i%`NTPApJn{%b+yAE%GqkyQP)_)p{Q%q zD9o87csBGA>A^?PM0|#9fESq=oNi;R9s7`jf@NGRL~l$ABF8=+8OsXjdK6sNRr1xD z51tozbM0oY<(It~91uZJf=@JXT$qF8zdTSdogP7wh+^Tr=v1)%Wu`uhUFe^I$Z#7F z73;a4br<@u&={oUL`sz%9Q4pI|8zSLJJSb%C@p!+yEENCQ%<_KkUkQYi5K;~YjXEm zZ10*2vliZ-hd!k^4y0!#gj4efL9`LSohjUGYFOKrr{T>Rq+dG`l}$%t_&KuhZA|B) zuB&VjibCfCqIRl4KN?{qxhJ6Qzj!nzfx6)2 zS?Xn&l)O3+M21PpD?sEjDS2x;b93e`m^)5N{wBSNOp_Acax!Yl9VnWVyo8G&_oU?h z^nRN~^9A0h!=&W<>Fmvu63#x$_|xlZlM>}`wMFV$bW(B`3Uf|M&Tv2?F)vwho@riU z#u+&^Nm>`x{Z*Tt$kD+>o+fnQGCR2vxRQ^ zpTq9GKXL9BZx_E}(0fb+7tqjbM&jp^@>H<97D7yh-Ds>92h>LuWTB?jVmwe&d=|B| zN77HpBswvX+CW6^XLwifcUx()svtCaB%SJ5kEBy2(~1+rm^Y?uF8 zK6s^0aPaa!E<7zQR(`F|b!wM^F8h&mf`;&sbS6hiX(LC{A8P1V@{#ndsGZSUHq@pJ zO++0_jyd`9tm+c33$!zhO_+0&h}_M2Nf!m4ovFiOQQ#R&Y_X&1RIDp@sTT!a z72zMwZll&976o3x`kGu-ca$ub1m{>3U=9^q6yU-P&(7IGfB=-pqQD382tl+l(4xR+ z@-+O(4AQT?8}i0-05Ox!`?A1xIYF)>yVFj=7>@h| zuXA7EycQ5)nz$U$|I1~WBg=kk<4is66YIY1xX)C=R3XA>(!6ncT!JoSzMc5H%8yQg zUFl{WM(Xq>ixUIdu~A24XI1UnX}hVaa8ldlOx(FMwDIx6{Xp)DtXVMc}-)2t(gf!Kg-0R!tN+@kL5!S@_?`%hZ z9wFm{^$=^6YjR+F>9Pbi>j|KEhi#$k(gg2~a+>sU6@B5hed0(^b*|BD`|OYS$)Mwt zv?3#1as}liuMtLWc9QfE_h$iZe{>ZS32G-K3YbYvKR9%#URC_6V$vG%s}y$dx03Dq z1Nj((pE)|c8$>RP^`A&*ZjP*ixmsyT-D>@EdJ~xz>v_v=LHF%k1ZuJV5X}!_idfBm zlzNbVDmDBxeHdmn{FwJaomWaY$o1dp%*|>L%pKLR`r&C=XeE;xc*|MTkX~2IeH0qh z-bO-+=01xk%$fTnokWhJr$~M_LSXUaCm9W8_Or8BNT$U- zHgw>b&jWGz8Sj&p+CFv(I=I4Sb|brb)8CKFZ`f6w{=8SmZ^1XJF0!-u!QHP&VxpX5 zTe@+X4@SRK=oh2jEa=mgekr{YNs<&2k|fR~N0M|on&e5+qv?qyN$hEmBq``k?j#AH zKH-M|So+Ymo&j*U#x2e;IW_vz(MXN7!P}2VR}&mgW1=5Q;1`q?yX}HJGR;eZbcz2d zx8p9pq1{V7R(-TVTQYAKVk$XU{w(#O z3Y0Q_m_8V@GXBv~8ULQn+^h`2+)){SOm8BSGI+~5l_73E3ntCW~%8{&Mf2jVSm)=As_3)N+swd+*^i}EoHjCyl zT<&VlpZHSA6Vut7)ymmt8Gm|RZ7!zLj9QBvDmoXt8HG9LVyD}4HZcu*3WO4$h8dG9 zIRlH`C>qazwZmI-Xozr66tH2Od_`U@*&|Xv^}?yst0nSA1~yY`wf&ZlZzPtzebsJ7 zJM~5PkV@wnenZMJpP6of=6T#L!Zsklrwe-Hv8p9Jg!1xC{S=2#UP44C*F<-Lh0FVL z%G)#bS)4<8Gl&4%(N9%VvA(6a)aOt>9^s$9bs^57e3bPyx#}{WLm|+JznsE_>3k05 zJ9&g4+8F2@%FpvO{L>85ul)lmyPiY&H`LY7p`^(+dJZLOr^%rw*gV@%d!uC}R8^cq zA(wVMhw@?vuHqbuM6m!YV#`bV=B>6aCF4gj;UpJ*%H|!ZhObMVbAeo!Vo!stOL5E_ zt5bQlY-ucIz%q$Z<3#SvKl|lt-hNIfC&w71npblJsy9#_065 zrbh*|qq5c%8b8ZPE9#w@<=mNjVj!9f3rRPD$YmNV`Hy@^a};4NoSLwa3p zHmHE0b{+LNIvbou;S$dVbx-FvwEjIBNtq4m1h(0rR#%%1%AsL0bFt8iaW*)zTXA0( zy*3}kh$b%lO`Y0BLf$mq{xv;Nk4RStg*7FrdA@4h*p#0 zj{l(KeQF@H3|Y?x5V>SMo70(_!>wShh1;~n=L^%D$P{jQ%jqFhZl4{;MWC{tjEm1V zr1#q_nrnHZO67@*&ok-l%~=#@pJn{%b+vRuxn^xWbuF51Jb+MXs#0>Y7Z3?waysJ`^ig!1JwOfTnaPeQiw%r}j-^6J5;8bUnV2nF_bH_o9U* z44Ar<_}u)z(Lh4L)GMb2Os$?4Fr{o@P9G4`b_kef2v6o4w4L4zM=iMl%dW(i`gN+S zbiQ&rZORdyDT_Jw`-O%viU)#GMEorhroKsrZ2DrFTA>3eii4K9C==Q3IM@!?Z(0+T&=3T5AKUA%ewl*shT;#c!qu(&NJ&Q&^(`A6j~4^8!!bcEa* z(Dp}GL6M32mTbZn*@2oCPAGcuo0`2H#D0^47k?>9KQ@q-DHbJMHoO}|E>rWH)0vy+ zpMtqIHBZ}+m`!gY)6|@|tm0qvHbj}E(8<@>ze{a|%9Ku?mOdu) zy!t7;L)P7i=ch9_>qIbDIyqqTb~y-oRDFMCI{Qre;H~D=$Dw>W%0ViojWyy|If&qI zHInzGkHoBncR6a|RNQsY7+``=HT%g?+g){C*sFlXiCJ*VOnP6@f+{r z?6s6!jt<~CC3Ij+$-{>xZ{CU|lu`-(sACb|R;RBY_S(3YyX&#Uk5;GJJ@L7ATGR4M ze!E+&HarHrQ?!y*_GgQ|dKYU}t%Yi1&O?gRUcgte8gmoVbjdES$`hSwZ@SaMPx}kS zUbl(+!wOUb1>FvNn%;9OKFfV8|1S5f)3@%yFSqX5GcnyNwu^XYj?yQ|snXo%&C?9R+dX_>3$NtqotXAQoTftq79$eFVei^)^QyC610S8oQlCJ(_5HmM zj^MO#;K8o+VubNw@ef=DDOgGJKp;q`!a|fb|*8a9g`{Bt`wu|Pb zz$@)-!=!JYPlGP|MRVklp^N6&$mrx)6wNtjw0U$B4%s{c$1n_Qn3yS)}zSG^vw?b(g?3~b%p>7R<*W(f5L_pwwz-{X6#MU#g=K`RS0rs zp_$-sWi_9srg1Zmo3jY3`8exn>;O9z>%6R1qup@2z8}4T^xF|`$;Ln;6n66s*0bcQ zy4}>?ips7BroW52cDvz%aXyUxt2{##Z47i6ebq%_O(hFVlkG|nrAF7a*t0A*=aJDZ zW|Hk{Fm{z~^e}qV=A3-;qZTWP`D8lR4ykcNt>wT~9C4>;leXDH9T4ANxYdEHIO2XX z^@I7ch-0xO4+3C}aFQ!D<%l~u6JLV9iqy%LpxM(POVB(Vqc^#ipwHzO zXB5PHn1y-V5l}5vjXR*hGPJ|}RO~vAIM?K*=*4AOik7dNZrR1}67Pub(S`-AO3AezbuGF=^CT4JT%n2GFO*>a;(XED z&{BN6G}*}IN=@v3p@e3%)fzccM4mk~XxHl%8E33!Xx}E7so_)9;!EOw?31dl1j=FG zFZ$z_REn8mfry|vjORVUc#=(kLZk>^a`*^eoJl-<@hh@Z!q?}~BoAMIPfsj-v8O@8 zSJ0c>;p?FSKWBZv+^yhac5@XT!uF>fT%NWcT;}!_XPX$nIFM9QJ|uLmIaI{kV6mdu zp6kd{H0rFz35nyC0VAb`GQb}T12P+6dc^oaK)X!4lj$)#F249Tg$||-UJ@u5lG^eL z|KM~j?;nEUX9yj?1yLw;tk(OpzAyh&8am`+nX4L`F^3S|j9Uo#Pu8Vm{D_1QrS;mc zNdnOj@?8|>3?Z?ba}#}!uk=3zqKU_l6uXx}tgvFnf3li6v0UZESuwe>n`cPIVhFYoR@Ajk&`w&u#B=7L+abbkg(#I zXI1o&>-=u7-SGGq2>A+os7wj(F`0xX)Bh!wh((u7f0e&ZY&r?7Iwv2BBSs z!$OiA+R2bx607 z5k5I6Xo;dkI5Uy`owhfle>_Qi3q7$Ukv$ENB#OK$?`I`8i-d_`utRF-@CrWCKpvKi*8TpX=)f_p>e~BUvQ*Q~IubnYtED{yv1l zoXOwm=A0~~Ql9o5yu+0C8LeC`5N^e#Rv4LPH0Wlf3g$JEJ#ksGVnMBI%=U$BSe@a-@j zEuu^ZNcOgwgI%0hi8i!=?6zXVVGU%m_JzFw(5_siF2LFHZz68#$qRKn_ z(g`7f5SAG7LV$EarxQR0BSG1s0s;z*aR6Ul`rYn+H?QAo-g}*-K~`7vxnYBf%Q%kT z=%#|+)!+=9YGZbZm)HXgbi@n^izEn^ zOP0ws;MKMUN>gJ0sLlW}yKF;@V$iL^0qx6-1{BM@_`c9HnPQ!E&}&x_~(Rszp)VLhI_yCvc|-4 z0`C3XQiYjRz&(&YTP4Vhki9ik{c=*&`))FI7+0M(C-O&SrGa; zu$kGb9Q^$a>Pdn>m$*y#=ZH!-s?Y$SY$NcjjBYjk|kQ z1Aw!2TpfS*Qcw{bLaoq&L!v{Ydx6%ddlC?f=XSB6pr1eC)@ssXnl&>)~xZ}v>- z5OCdj5(1t`PYeRGr^5#UWsDzJ@97hMnPdF)0($^|ju=0^bPw{A5l(t?X+^Bx6y`e% zJ>(W^|5ERnQQlb*;}>uJpKAqFd6$5W?SG+yMfbO1LY!iU)C6wvG z0O;OHggOD;yS#1B2k72`vWft@e?h+dfR4s_PC)k-3xRGx_eP|4TRsz|2|)LHOBH5P z0q97AG6K4(45bP{Cx?yH0d7UF0XnJ2?3vO5-S0skpVRvTJuyJXo(>(sC_ z&bMs4Im0X-FU1Mny0_2BY*xKFGJ+HO1~29R$|ENvacM_PByR4I%-Le!BfLa%Pg*1O zLYbRm&i4%vKQvqw<((xAG){o~xIIo1W13I-vzz?+?8=GiA|8&?-+QQpv z;$TYLKSR&$poLR6OO2p&pxN4oSNt%~7B>3g*a+M#({4`$Qm76=$x4ETL<^AISi5BW4+ads`24CsZQxumls79bZ1W=8h5!Y)%utF4cZ%}INlyL#b(|7 z)?cw9d>a*Gnu+J)WkECHmN;%FK7yi?c0y~RFcjfOkq|0x^a7|VNhEsk`9yCvi?AN& z|KRkdN@P)Jj%qi^(Q0h{W*oU zmW>4qcp)xrt%hHqdpqG5wn9Pw0F`om{X=?U`kFoUqOT)*3hV3j)nM<$h|fJZHChq)9w*w1sI&{|VLGoCoSf`y_`t`)>DC7g3E;6uYMoPLe)M$rm2SWqTLGF6API)X|D6y`>qhRl4>0~D_|*Xre5X_?)p6cE zJAj(}0RsIPr=?-s)HOIbSej^0;LsjA&mVxlJ=&b8SNrw`I1?X-_0w5CV?n!J8KI)~ z!l@`7AO|5hSQ+Xd4|0q&>E!-qL%ImrD*o=Re?M&%t6_f`^(`!-ec0>fK=UB}hnUK3 z(j_9lZ|YE+tCHOTo5Txo*(A?NbOEa57HOECm_=ewy;!7(n!*+dU>7%vj=_a2H-btl zz$xbh890DQzuD`84CX4We5WnrAkSw?b|r>XT4nv6o!bXWyTuJ!SF?YUdlgPf=ZYK# zS&}Njy~QiIetUIel(+k;88PyaGj?I@)Y&Y&VR~0P&E#kc+l3>grn=@Mk$9<2E1k=4 z)u02S_4_66j+kL{1svCB-HA-FZK+o^z1Cm2-EfM+)!|rkd1Hw3?V5}Dc7Nfyt_R|E zX0xQv=Z#nFUc^U1lH=i$3Qt#;V3 z(yrn2NK#DXxF0VIBFEEnTPXo6cY<|ESeeD*NX&U=?y5CFD)|6FdQc1=DjMr)#w~tXZlsy)Y4i zKoaDex+b?v+>vp0hEhccf*dx|A#|&K&8?G4&7LVe1mS(4kGpj5rzhspv8NtfI^pva zJvZ{?YHfHpz~y{H-V2#eOLyC%a-8m2_a!spg-B9y(=<*Z-aCQGj=}TfWA*$>JK&KC zs^#fZkmfdCmDdx|+NV-U+oiu!_UTKI2KNy1J9(dr^3G=V8k3bv#hcNPmn>u}MpLGPy7T@~5ii5B_TGsG3*f)-7_`jqWM_0V65% z#HH%@@cTrX2|quDmj&Uc8GfLNF<+lrdyx%h>as22WMb+*(h?eMl=OoMpAlTn0vjiB zacHwa>#=lYCnh3WfRC7hJW#9G>5@)NZB8~PXkt^$OR&jIerX!w7cfWJ7;d%@mkW?N zK*+Pfvx*e8PHAstXdhCQDy3n}c$V6g;h=P&GC3$m^I@bw3FgV@47c(yjVcQPTo-;? zhzwZ1LFC79SlT@jH~|X?&1xf!dCOrpJW%V5B7CGiJg7vczflxcX`r;fQlAJ)I}u=Vpv;~(mnv=c3*96vn#a?wTI@b%nuw5neTlog@80?{*(^L}XqcwG9+j*2c2er7_ZFb{9)UNk z=lWEyXl&pYQpOhmHl(suwmCyeC5KPU)snazQcEspEph8V!eNi6I%K2WYL$|nMM-0< zdT53U&fpcuF`*Rzjnp?+UC7vd0_m2q$|SqWw=y(@wGgIMP8x63_G9JzB*=HGR@qxe zY!zuGxUj8Gn+r06r}mWhkhDX&lxf|B?l%^)yrz4;qv-G6`U+9_cW-^Azj#f;TGS+M z=_CAopVo}|AVhZe+_IMK1|yrlV}6G+(J@pPq;XAmWukFPP)vgS{TLUNMW{q}j@cux zQObsvpC;PD@I;;6L(#76r=_TNy*4u1LA--Ryo~=`t4tu;0ZNZL1TVsg28)T{-PLZ^ z_XmBfQ&<6flSJu2t1^y=sWz)3fChtRYL#kZpdHk>PkS zkg7WD&Rn7p@31AF4qM-BV5Lx@bT*u@z$orDjkuMXPLcZR9!Op0A@$~sS6zPL0)r+>fx4%Xv-%O_N-af$6YS&UM;@v99SA@>Tdx=Qcvm)}yU2!O5U=ll#%a94f zGj&CAoxgDVJc1}(t!&NPv`G?AkBauw{Ke;5)#A0f6=#y~{k3o&6~SQ8`$Uo7H=4AGXxTiNLtaP$b67`}+#HV46ElbGsTXq? zQB&9)oNPL|>}iqDvl$>=B~##mQX^re|bb5D`V3GqC{yAz&eh;{nz zgcle&3>Ce{x;ufY@h$O4eMY+zo)%Tmoi#mZY))7b>mtB*^+IWk*GBEI8C*X)Q9KC$ zj*2mr^i6nKP)R$bjqB-mqvWKXR_zn2I(!e(L0_?r36ex~-mOG!Hnm(juY|2>Y-8GJ zWq&Y$aMEU#=KY#*j9Rs7wDT-Ipn+PXP`H!po@a9vWf6I(Dx&}>zcPRk-$E(aI#r;^cM2^q7?s9!Ps zJjy#OIA^T-;XX{_3CG9EUx~d|en9Lst_~KN6{D6uMv93|gE}HQ7b24nWJyy)D{^x) zq}8CaVtzP>NHewaf1+~=YUN|BGA4q)HlwnnPL_ft!LvoNv(ZZzhcY!SX-30;D#XaT z3KyRSFJDEQ0}%6%Kk^n}lsk-lkZfLbj~rXOn6}u{cVV-!30sVz#1GIu1Wbp% z7jxl61)B?BM{UN!kiFGfHGaC6>->>4_bHxf1zp+`y-OAI)nGGeb32serieM(Zfv}vs5SQijY@irJmE3MN=!w})_SB2rjHoGWH@A%h*fPQ9hRghp zK9ZD{9JtqJ@Z ztF?#Z7c9KX$Gy#FJ*YI~Pl^Lc+Q?(9^+}m`d{wggEU)f9T6*7d{*XpvG^=|CHk%U;Z+eYa~SA*kSWV_ z-JAS{+o$V9;cB{WA(LI%2JuU^;JyAza!uOty4`wHM;>=`CMb-wTpwJ?z7St!I~L2| zswJQIx5Pem`Wa3}>eT6X{Ds^5LKLq0VgV@**#!PW(f@$Iid;RxYcALmeM+$<`e6Zm zi(0^bs1_`FY#fysAi~}Q3y>+xXjtPf+};DCaMc4Tqv2$KCAs>5*Ilp=mPQ68(FODI zN%jDHRvoa@Prkha9+9yFF7X#`?*LJF<_>tWzmi-X!0Rs90Y}8lc%l;)i_fwnqTi}B zTK=ZkJEM`YGj8=4Zto0Hc;?P{zQ2-Oox$ra*cl55M2S97s@fSZ`#L|}cINyY=e#oi z^F)>K%;-^d>^uF%+dGyQpQru)w3=7009|+&*$~q!zZowJdgbPktail4Cr-Zzwj`Z& z2b7gQyLoS@wE}GcOg0cM{H?-XT3vW!|J4PL2|Dn@Dd6?COvQF5}Uf_;?`I=}D`XzZ{Y=8KN z0Tr9aV>kQ5IXItY^KDZ%VX$i${<7M8wy>x)a8Hlr{4R1(zP=Il*SWSQl-)mJoq zvNl}I$TD!E(Sn2EJzB7UB@NSh;(Xy4r1peNM_p0sAFekmodIZq&SrbRNPk22i~Ow^ zaF)SHf2%~loXJ`Ro+tW+z8L*-mbYI#4N^p!rDp1-?Tko&d-Ch($^ zXih+1yT**yC)s1L(ccQuE7v-Eg}xZQvfbM&wl=8lFpJC79Z#PA?tn|7_Xhn;s;^cs zQfXD|6b24W=IjoSe{zSxy-c0)3}wH-XqE0 zKo`h#&aQ~O5~;PM*P`0|c7unRy5!ByE}<_*mu!(;lA#TXF0-IaeeuR=?~C*I9iVPF zuUch0hAQ>azF-oE#a2r=0vNNw4Xg@{SK5RefhSeeG!MB)xK(qU`z>)Z@ANIcX7Ddl zcYN8|9rVTMj&piyi|Qb==u92-g}fc)FSX5~!Q2d`imlcJ|9o*cgiXX&>z}ct>3DVV z6NAn~s}X_K=(pn4Q5VO%!QZO_sUAt0yht^+Tj#X%%wsNN_;XToeIi#TS02@zjk%h` zR?60fC1grl8WWvFEuZF2TE;txSuHtd6MLsx_vl=$6P>k_GG*_q1#}`Qqa$3cZMov^ z2GAh?u4uYCGfmy4aB-{6u}ZBm)txs!In`Z8KJUTtdTprInYu$AuQ2)-mKK|~;B-%k zD#MH6FFZTE1b;(v=)+6Nf4H88#nBYAvNn7I>m0uXi!Q$`LsHS@#J^l!?pF-r2n6Yh z%0Lr;CK=LX%)`es^@l?swd+}wrSE)E_6~Yti?ZyghecVjo>_DQ#+f6{a%U9hqK}Ny zy{g!GDmH_87iD*(FUq=#oz8_>R~`NAR7X0xjy<%?oo1PisSX;|om)>IfLX?w51n$9 zind~5IlA2u%eVH0+2ft8l4`?~LJip0pzC$R8y_$J1=?3ddAs+_NN`w8BnB_g1!T~} z4s)IMf{4|{JA{KJZH;!ZC{%n<)3XcN2iYm&m+FA`L`=-FGW$+s%CZ*qQGem~31(5a zntgX1hWAB(;kjnrd7W_$rtg>6S7hJD8~@B`B5t*<8x#GoDv?U|iRFvxpP&0%X`e*@ z2`5o40nFVgE5nm2{Ez;^?foMPSN$_@>*=y|dQ`>tUE&+uqq%yB*IKZLR>XB&qHmV# z-(_3kFIB5H`del1k@d)wWyGBBFWlZEqHxtCjuG=Hf8n|MgV$NKKjJnf(H~2r@3J$r zH>xLg``cshiK{a9#IV0`dryeMRZn;$89M$da`gwVxnO_fTsM54pKd#A?%;e^hRNyM zzuaHEy<2(ldD`z!tF0RvaxVxUM>tpmNmrxIIlDkG-xwCcD}1)ct&V%JA>A=b)Hrba0~+GiDIA% zXElt|1QE{j!Jc>cW*oEj)rOPcl}>hGldPztQQBUr1^ru3-(13BJ?z*Y)K_gDXke{k znBD>YUe;_N8WBXXNH3YNj~zXrQOC|Wk5MI+(Eo=mQ_A$;{G-lTY~o?PvmSRtbpJ)P z%eu@uEwff%&BZw}5%MLm$!A4NbH=&9T}IY%f4`EuRLea6Aw&lDw^D?<8(y8Lmv!qk9i} zDnoVEh@e_(Swp6+*dRQWGNEJ8>T1+#e@-#8ESZEYKfDmvmLKnC*_%-*pI^R(o|tN9 zPd%u1MNi>PKPS>zlfJF8r=(6NQweUhe)EjXg~}arm+CkCa>CN|`3Z(E!WiPX!)pOA zlJAh^Ka^O$Oo)|TEd3hft|)K!@H5QV9jo2jtIhCgZ}rn~9k=8eY^*AZ!^QFsAf7BmV+TSQju zx&0N~+u-Teqr`cjh zE!KGGJi;cNYMe)iKp47fygu1iX;fiB=f3?J}*j`#g@p3}y-8;bl>j+de&KM(mU8n2A_>(~op`NMhi} z+IZ+4kmDcE6@nD?bO&UEk;4#iy8}YiWOYD}i7M#MuD&$9kRyz~<{-j&tCY&aqh{GG zrXNixmV^(ZVocL>BwiLYJ$?z~PRYe6K52uDmP*g$5+s(Mi6j=5=P05(o8_stcqA7; zw_6_ffb(0)$Z&ULsE%Mi{J>eqxKCoBMAiwDS9FqTyTm>s&Y$%U+h76@riKG^X@7}Q zAiTe3rZOc4PZWHR1I`#ec3)=|W#YEw@`#WAoWiz9w!^mYLR_}R>+94|DYq^mJ$-2_ z{;;QBtV={sVe2x$dz7E#Vexsmlwc3bXcOn-bhlD;zBOnWAofJ zy*O=8s}x~?m77EtWLb|sy@B;)T>8W|uCl;poHB)Xoe3Pz&mZfxc85Qa7ZgRP7s#ok zpL#blPUh1ew6(pP&lXBtpNd4{3 z*w0z-nNg#z;Xco6=!y9}?5P)@hif!6qp;7jg*m zh8mK{FxiO`9cB;}Ih`e2gm%7Dbe?QK*7g04Dvv(Z3Un$~?sogm$TTl$w~>o2&y}Ik zfS-1mRBlIG@<^$(ep7OG%;m*Z+^Q&V_eC=@Y34lR(%OD=zT$`&7dd~_RE6cMK1;D! zWR`4=ek)cEMC`E5wK!%b`jIKi%)}0V;r5vcQMj6!NI97AvHnVO%}wyS-AGiL6WXm)*Lv(TW-;;<*ClIUm&tL}Cj~e)of7Pps6LM^nynfE+-xdt7MUA~ZD?#& zKla??T-5*4CosY{BcIxD-(ARSvANv`Dy_!U9pPE1FQnlco=r7hA3lPpxmOuH-DxoP^luNp#8*`B`>|dZ9Yw z@&3lx179D) zo37jcK;aj3-ONLdUFw>7uL)=t7y1!f1~Xw zrXA1P?dDZFwRf!6pd)S%jMj!mS?FBMa+R8U!vJg1bghp#QV%nfY;SUVUv0cpX-vkq zPV-$sm_=`iIB;x=o@i8YIxue9!pW`Ut=fJBg(GGUhcx4A5k3cnb*NcSryArR^AC|Y zm=|&1vmACnsO}Z5f>0e|Z}uCx_$R#C`zX_F@@D^s2(o*#zxOsUpEvtklvTu=UGRh= z-YjXeY~JjzEOfcO*`IqkV!EheFZfR_RhUVIH%roy(VP8phEjz$D~E*LF*QjM-mFy4 z_Dt#C>`rtX_h!$fC+5wvr^DyXs+A9QApbP2e5e9@@M14=d9kW=y8cqFd_;GHm1)Jz z<+G|eSXGY1e%5cwL_7&y=bpXs`>Iz)d1uYsr`~?kN!^gjSplRq?SjIG3-Kn$i3o*)+)R6{26V_&t-fe5DFx$2sW- zK52ds?LOUKsZUTCE{niuSN3zCC}^++uR0th>}ADF85Y8@trbT;wSw!BzJr6r`}eoy zO_MBl~& z@Wy6kiFl2d)`NR8=rX2~&=?#}Mr9!=(WE5`IW;~g#edK%%zh7~6Xoqbe@0fz(&MoN zs}Ry_gq>Q#t+dlhEMId5W4$2aMGjBnxyY2o(|D!7a66h6g=a>yZ}eA^3(fMn-6}?3 z^m-O!f?J0f!B|S@!e;1BA0t3xJiMQ>;A1Xz(YwxF*oxk0{e@LW2vh1VQ#G>&5hG zn$X~UlvM-`u0p>2Xply2HZ=Gbq%`SrqrpGq>T-bw|Ho2=0}YaNWJH7C&rqsBgK|j7 z;q6w{8XA-;$(|`44PK0n<7n^_dSYmhJsmzYI2d83PG#>zz0#>Q8(u{CuR1O;h9n5OZ=7OLW#U?x9X9SMDx*Y#soJCF;Josys$+S zn<()byex7s3nOM?E_At#ZxjAuOUX+I=LBy2JY||qxbc@nkR3Pv+S|Z!Z|0m?jj~i(WXTyy@wb13pjXy$aw^`NO6AhNN;rA_7m`TMfB1uO^-1ylH zr3&0AhlCvBZso1vMyZ(WnbL9N!>^LK@ho~`xRE^_KHRveUTXxER=GLR!6|UQAcypm zC}TzSfE3O7!&tffxCgz8|920Ru8y6>rM9de5z8Rqq48E}`zz2FZUOes99|mb?cOmX zxG*|k^TNqSWvn*Tethj`aAZbDJ2GP=YH<$a zH-t<+O{W8-GE1w?Y0j%AXp3Iq5E*<`eR)d}>Tc|Xy1Bc#fN6{qZ@{?S8fh;nLfVUa zA#D*KAfm4|0;qYEcYIWrR;5icLiS7`!Zq=*>e*<641F`reP?lThAJjuOM4XkhqQff{(14FT4C zoalutF$-6=YhyH55wN=y#0Bh4oL0(y4>c!RI71sZ$#-gF!C*<=k&GX>OL}-XpbJ!M zl{!m-Pz3~GcY^5h=tEMrQZ&C2&6H3elZ!CROayxCSE{#?o_!&`&r9 ziz$=WG3elmb$L_`zn;23oJ_onA3U&;4Mb7|{VzSSGyFcdLE(@P_`LJd+! zQdq;Ox{x-mK;s9cIW5pBxf&{tMB9K&m>DsTM5EU_GKpC+qIB2OKNxVO9|}` zqddRRZsUidoyBN#C)M{9=eg25JO>5q2X~QXN*;<9u_ktKm&qBhZei)Wx4yWf*)vO; zli2*Bzq1v)%mUmhUh`~DOko!#JqQWK;9JX*rpoKO-KGA<_+X=2X|*boOlFy?gLne6 z+k{hM5(9y>P@gVN?mi_Vg=jVykqObH*Lqp0qS>dKAmvkkrMUhqqhvpoLP(#^sB|aQ zg*3bziEZ25>3rX*_`UPt9Y~ulq!E*1LTd8JCZv`$%k#t5o zBX&@AT1~oK(j|{}!1>Q0PM0Bf_i6I@Ue=<7Jko2utm%`-&l@HCsTA_~Sw^KhX<>Q% zA_`8I$B0QWc{F)slSfOMBjWw5B+^WqNh05s!kL6b`b%wdReD^8QpJ1{fr^atNefug zbQH9hL(}L4+vvCA)p36nmru875Ca7MIfgQM@lPK%8cY1sJ(0kQ8yZWso0d!wy*U@r zVoCT^Wb*m?)IQM_)V^u%ir9fNVh%US1g5U@@{YSH z+N`deUe=~1qXR!<6V4xu8lPjr`F+UbGeY|O-Md&?jkL(OSF}a1%n9c&7oqO+y-+8e zJ4Kv)W4L<{6d~=Wy^xl3!g=wNd_%%@VEj38HY-2`MMI?DkiZs~dRT zdAh-$R-5-%N<9208ky$2|Eut_;Jm+iwX1HG_^kgVc$A#=kC`et=kHiV;4oqe=$&1z zESrF7tiKg{#yaC4pL#v^@^Sbmm}|w!LYzp<+6Uv2 zcHWeZ5Lro1aL5g}?<{9CSWJ+%FTho*!Lwkmiv)lPttPBu_cZ6v8GQeRC{Ev<(Prwy-5g+-Ch@329C|J z`DfiO_II~ozs0QEV<=PhS+@mzC5P0I5<>H6XG)WLv@<2L9qk+tK_WtwRi?({h_`|H zB1DH!mQSI$B1Er8zWfoQBx>;pQPwm(rKB|e^stl2|<22Wy&tdO*)I7qp@a79c5VBJ6VD`E7gWeHC*gV zVG5%-qeBGHsPv`w#NO!cj=|F7hJm}062~7R^>7pC6qZ_*8r@UhCKSN%N`|H z;zT6U=!Nn{*Sud?V^bWr4wSZR*>^yCItp9&sT^{U>aW!J`L$OP{TTa!DDSM|tufKO z+Qu<~nV%VPTw(i6c)#z-UK?ef23v$oKJ%>O{dp|yG~oS{icoqYuRRs-Z}%5&$NQpi z1+~0*|6G3+x$r)(*{z|y9k75#nvfgCn0Z^a$N@%=YG6IdPq&>lS8~295u7KgqyQE? zs^SBG@pb{^#ph|iKdt8PC|wZFCDP34${#~l6!dqFw>m3Kk#e8s8K^Mn^XU3c`aR~A z$Vy9U(aDm2_&)aw4QKa#^k|CRkDfPY&J~q*yHvp(Ws5))B9SXN2#q#Z?`J1EmjKGf zTg~yH)tSUuXfYHdHqIXE%>y`$tyB;82X%EtQRzSpC%)|sP=05k)d;EsIEosVEmJ`e5kP)K z7Y=emx%?FDp$Z@%Ly!?zjEcg+{8efuk+p|D@6oa|S`Wn14)*OJr-7QVqtv%!ywa+S z@gK5b-~#U@96kq3t0=<<(9SAkZI2GKlf_W=J0eD~TbYP~$U#V0D=BJY-ww`-HqXYc zvTO_i@3z~u5ip3dYtVVxJ3wfcHQn0|yCi9<=J|%I34hJ zrJXbWr2OBA;a1o`w!txU@q`>mi*H9&Q6TePR%uQrZ zJ-CUAn!?LZgJZBvm64!)pw<~J*Q&IcXVT|1rk_}1E79#f&decC*4u^cgr+%>XB)W5 zR!YBkIRIEtZ?+seWLMj=N;PNysF3P!z2ngDVg4%0J3}Y!C*BE)Xs z1Sscf?oL?&o>bvy`U|(aR-$mt>%0t*P?pbkimEEk^H-6}>*O`NHGi@X{Ao3>OO20k z0a0vvUH4=B6!f~x<6f*Pfcsy2QFYS)vg-xuiJ2?-w&FFPOtuat@d2R|tUj4>yU(Ao z7Xdr-FzF5C&LkFd*H!7D?XOjsdw^pJ$N0y3ZEvg6niNinplL^GM|&L8;0Mcw0<}jtzu{9KO++pka?wkZ6MKW zeYMrH=_I~sn2D=>P=47c%g@7Ye8cb;7+vn9`i_-c8-~A%g7v*BY~Wo=m0ll>HXL@v zs)vq@?R_)3l0jY zbaXw-i}aoQjmKOg{YLiGi{Hpc7Oj>QU1D4})*kV>i6^J7EusLoS9sHmEGpXF5~3^3 z2`rgTAh@xm(i*{C9`*h8oexVc9nNR%6-JkymEPHgj@5NVe9-z`xznP&-NVi^!*g4% zGelq}<+3egU&U+9H;LAL=IYBnyP{^=Virg3zRCH>1QA!>)dK3F$Twj>R4-iRufo3c z!>e$sG2IC{my@HhfQgD=fueFgUP~g`v!bzHgvL=`uf}7$|96AGa66Ah;mZG;`!Gp6 zo)qQJ_7|SZ^W$~qVY)x9=J~1N6z(L7P0#NXye#PX9hFoW;#|-Fi$ar*9#a_7uUnnW zthsTLRJd{dg3nerF1`)m;wQD>%`hJhig0jnP%OfXHYe&;S_B$~chssJC{-(+3at{g zn-n^NH8@IJ4=Pyu!o{jhEW61rj~DsfTmL?Dk(4%Gq>`Pti#BD$kYcuX6J_F9_bm}m z;+oZAwIvH-wRs^4bDw_3;KxxVx7weeCpO#5o_ev`5jBOa_LgYJM~0&Y({C#=OLN-u z^sNWy8Uk(>oj7n1tE%G=%pkTWK}G7UGz*X-n*5*y?R!E{?1JVu#NUeYcDpkIUL0o- zCfm()*yyd&ed=1ah-$24eCpSxD>H8q{e8p%tBtlB(BC4HZ<0Vapub{iHPWK}pvrhg zugoo?M_ua!S&pp)E0C!$b#g43i(_5s$;*bUF{ z7jEwcQMlF(SG6Y8>_7XV=zp=lid@~mYtGXR{v`B~U_H z^O^sD1f!CGFlo6YIyA2YGKPv_`y z7MgH$*n34wtaG;0c}(QzaWpv7 zF_H7GiGU5H8Fp}JksR1(n}bX?xebuhQ}gt)^j4SK-zREjhGaZQjV{=6bS_MHOk~gK(RIJv=bl&b!o{I z(GTPzT5Q_9KSKwLuAuf!b64cpvcCK&ah2g7tt6A8OO{fm>|LS`fh6WzloH0EN~1Wx zAv0}7HHlVjx;|M4a(vTP#30fACuB$}x}SKNtNZ<`KrF6Hr$)}X`ZI}zb?Lg=Gxc-K z;8|2BOu?t;uR^2v^gMg&VS2vDJ-hwNY3GMLmHOjT;_4)zZK-SP@v@xL^4;gmj+ts| zaQd42IdOgr#v5r_AkfZZORmSSh-a6xZsuz>#v70n9kRsrkAHC>jPlMhmK#ghNm)0YOm<}chnCoKxs=A~sVZD~O1@$ji6IOfto6)y`e4XpE8HxViF zD6lEHFksp&xh&vbZ7`0Jlx@Kr^N1J^8RAEr$3zOp#ra*?)W`a}-8wfP4hznM+KWVf zpP3-AD`2B+93ne-Aq65k%BYe<$367KB0Jbq571FjQ#i8Y5!mC6eF|mlNEoh-OyKq; zx_Z1kRJUC}Zk#N+BNb0N3wJ`x^oWlwhQK@P!0HuARR8Du-X1ZNSE!jrd>FIh4n6ezV=uLLUu;d(A&=P%NH4erev2EhahZ4@+U?-r}>AVX>8;(|RRd@@hKa^sk zB^|Kb`IM-9K#(VA1&pDn^=mW%vToLoDX{&$itR=A>g1SX`&=##%7tIblzonELA}-% zcMK?aXdVkmX{@{3R%*N3D3NV@+s}v~u3~s)N<<#;HZb4*wx6ObAMkMPZ~Gnc<=@}- zkH{6<-^QCpl5A{n`;mn%_XfA`A+>v2Lsy2;pjjJ!+fs#@RLt$3sNi zL_vN?uJ|W#}qTLPa{%`dUVk8-7q)ZB{{bcX$nvX3i>HfR_c4r8xzV5LgZ< z??eqrK$#S8i6hN`L$g>d;83;*Y}rMPa|Im6_omzsG};p_z{R0vs}&4&uuC7eTCyD} z;hj*jZ;{ zysoaUKAa>dS$(m5vv)&&+(8RgZ?c!XG6mgonkckBjCnB@yi!N;lfjTuK)kR$9bY{o~Du@mXFApSOEMidMq~Tu8Jl!=9c8($CDavUomnRV`xvs zFvz1*K(h=Fr_}ikD`WxsP;q?avB4P!`WqfZE!Zh zI*DV`#}G6qThNodfoOePa68L_-o{I@+=6)$OrKDyK?%gTIVQ7_I%tOX5`09(9NxD3ATfL z)4*NV5u*`T=MCsc!OzqUy6`fwH>BPs#a+ebrO}Yo`tkYG$n577WcEv^huN!bJn_o( z-0L(>n9NtEoK~dW>*G7T9Mpx4hL_k?b5;tgD5>y!NCo?lASD%k&&CX;3cp9%9lHx- zQZ4)*i3aSM(*2$n9i;KD(tHtyo$KW*Oj1`1qD`uF7gv;=fim> zA7tc$z)|w25{E1O)!2E#tI5L)e_Ab&K@HRJ&opAqm7pKuWkH|$1h=*ldn4LlMlyyW zri`So{1A6x+CqQ*)zyb@5sn87IKo#c(2Qzalq&IqBCo>HnBnFAfEW+kzWJkuE z4WUopk?~JPjyTY8?8u;Md@x*E2%3<6LsY>GofDS5PZ=Olk&DYTIhRT&_D(66PezT( zKk=#<5`Kb;>1pECT9`6H;cHRDbQuvP(!z-R7=_!6h?dZ4L{u8hh)8}wY+ffgoWY2c zaTRZw_a2D2=g%pOmt;1K7cZoM@mgAy#;cE> znDJsyy%?{En!?8GL~QP}S*^&K#VYp*rsPKgr!z|>I1QCpYV_Qre!7957(s9stN4HS zKRoE}U#s#%e=tzBtC)XKKQS__)MI zWuc>&cSMc0DQ|~g_;6(MK|yKq$S*vDrPchxDEdTsuhA>>=;bFCq3*I?sFSBDDB|QB z<9vm%2x-GTk#;p#z8Y!b4M@|ETf4moX*c&mT0UR@9zT6{ANOuXUshlL_5LdC{w=RU z0S0r!kyoq>`1&966KUte`%OMb=ice-f7)M-ofo{CJiPFy)qH)WXT#HpG}G5V0WS-} zw4*KNMc}iaqtqlm1iCZj#7N&hDz>uCt2o7*@L7*qe2sic_LpnF*YN!Y; z+=xspq%(f>CcW0dRcvWj+^x4=KQ1xloZ@qg^8E088(kE)Hhcu5&7D*~CNJ0RbmyXA z{eV1D7|C;rBi6(Y+%!33i^{a5$#+h%S%6#NlFW+r#8L{oD5;3fT*s28M#8S!UFvU) z4>qcmR;x0}WVYQQ8D*PdEW+tLr?`U(b$N1kDp4t9bDU8L2FGQSUh8G0%4X(cVV`Z3 z?59#l=`$FW?xebuhEG7^tmhOz2Wiu#G-6UrN=+Wwq|}neaZa(BGLtxtrSK)cI8Ns| z#UBK9x)8bhPZP-Zu_h%1l3wd&O`kx1-YD5mr4Y!^GAi9k3k&2IQE<9IMofwcq{$D_>W)1{X)CVuNK1!xJED;}$LR*?pZ8dlFW51@`$xUp`uOSn$Yp-f)aDHblgqEp$+RAiN1 zAt|NZe65IjRW70gHhy`A4iu~=`hAOh)Ymy#og+f~eYsjESpIIxl%3^E>8{RUx|*GF z+X7cG`m{uf_n*y7T~Rfy*PE`bKgIgWZ7is-gamv%LsB6D#Liq2;2)PF+EPw<$mtq? zCb2>#C!g$@`nf;hIm4X%4IWxCe*{l#b&5UpusS7{eu`cSehSTUlA6CSW)F?pn`6;zJ2GWmG#g-P3oe>nT7C0hUVEt*eB_O3R!qbRia|!5Zyezl`WQKd{8jx>~d=Cmwt^~!@qFfL% zBiXdVv~?lb1k6sa5&XBV3&q1d56R_~0=6HLvehvDuxO}PCt{V=t2=6^hv+FC0>>j z{iH|fnD?c`3%1;sqFqj$1R*Qp*`;bUUn}wYwGa=xc=@5o15w_?dtZv#W;2|}a$kzZ z#NyDTZ`23l9PvDhkSQxPna9!=geE5yq3*<9sLKpZb`&A);k}TS6Pi4+2!WR|0@I<% z9)IC>Xd(*F2u&LPDsn*+Ub7!=z|Ch@sV4-sx2x2jPn&xR4yWuW>;r4D2g=^j5 zyGs4<{8i-Y23~WXZt$no5TerK;asBFM2J6uo-c?H&HGXeRn0--zoF6uNW5$A98A#T zzpiP#Bw#d8O^uhWVMf^~V8;7}$+BWbBbMlp0K1t1jsNZ!JZl*Dth3?hu1|<|pt}xj zjM8^=F-*+*ev2}BXMKyrD6NWxD7k`==8D7lv5KP~it(ph?GRxeze6U=S|q*JXQ?dH z)bSOwln|t&YVq>?{)kwOJQA6Fa7mx$&J}{R8U^d~+oXh&AxIHxVryk4XKZU_mNW}k zXDaM%CUGllZ5sWzth4;Q6G2A5W=T_nj1Fy3+{L+iT}b3E*6UzvJn)EKPp3qdjq?0l z6%u(Zqs^UEm&kAv5@!uJsvvE;L`JNMNuq8@uzcEU7OBr!f2;{FA zmF}d41@ga9aJoQ7Oo|Dl$s?OUTGBX!;>@&}MDo5A&Ll+AU#f_0`9%hta3qgyAsm}= zx&7-LQv6}SjGgKa=jhSsQ7nr)wq-{cmru875Ca6{K8rGWA$KgcIH03) zY6$hG%^$Qigu0&C{y+> zS%P?W7R}C>Z?TdXgDQ>U{7so@E2>GfYSZ<}BDEzI+krt!NZq1Y%D;ECTfy_;OM!7%o?LS3AC?pUvsp zvPCJ*MW61|4{OLvL|)q2A&JR3$sX*Gwgk8=k?fOdQ@v2b^b_c89d*Ppk94j5f^k; z0!TOkg&}MoZ8DgU4L|f$h7yZDFvC4|983Kl79ECWFBbW&v!&_r$bDB-C?pkIBBPT> z^jC_`6LZliV8U9;v@R6nLXyLk8ekMV8e`zCj|N+*ABPT$b?*2!Oz#LgGZ%@%k=lk# zmU&Qmt#^wBv&82?*@3eH_!`IRKGrBJt{%-U7OvApj4pRl9q{Cu1HBjp>rjVAV{#5O zVoS_*GP&Xh6#@zkq_jjs!Xz&lq0n&|N)=E@4v|O_6X7jp9|$-kRf;=fe|R0}=z1U# zedmzqne@csV%Sp;kVp(DG^21_3}6v%dlc6I>;OiqJPCX zFQSR*LBL5%BbmeOe*dUCw+m)UHkpU}suxOGz8YPvYmfLa_5-3~Lg)CtL$2-Ye<;y^v13bo&+IZ=<|3bh30t9vk{_xz04xO-z35 z*G^bkEV4=k5&c#STvhj35=Xe<5y%8=(2cxRN4)%cf8q9MC{g%FqQbrL@>~5?^GYG3 zP|ZV@&4H=-wHQztjMwR`z&2U0QnSHs7Gme-V23@9A;CO4xyw+p5!i~n#{xN(v_Hu& zE!GgG@K@9a7{$O|c83>&DD8^b0&F=NP{dNGC(HHD4gNl@%% zn#kx4-^)_m=I^jhdn)qMrad2N%q7X36l>3qlGsT>o%n%sSaJF^cKhLSPxdYuaKA+6 zmWo@wP_lf7SC;*z?-^0v!#gRe+Q}5+=&g~`KPjDWj5&q2|GheDevYZqS0Iyb-0Rli zr7W!$W4}z30YSH#)?LIu%FdQQRad{e2)+NvX-GBFAMqD%H`1bT%}Dz~mcQVyBA1co zHD@!@iEcP5Ir=fgz>YJbW+hz|Z|8d5?`Gdc3d*6t{Gxp8WF)skj)i=E6 zJbmL&s{tsbvBH-SQ%nGL3tkokQ08hvq?9;v+5!e8k(1KM5;B={JhB)KD@n?Mm2MY3 zn*l3rLP`AcaJFzDV-5H*loecIj5Fdp!NDkYH*bS<6a9eJY!~@``ccD0 zvhl!0ypRI8=wejKanU98#BdRN>ID}?)bxal=(aNN>_GZ*FuI(T;>JaH&B(l`T(?fU z4_48e29(V8VVSePikleiP)Kk>Ooz%0+P>_-E53dxREhF-XDv&O8G!}FDsGsb8388k zr9u|kODq_(Y--RyHEMYd6m$@oe4|`PL7fa~H5IRVB5V_Bri#A?FQ-q%bD`oY{uLtU-o#)n(yj3CoDqdDn>LvAXOrzupAgPeO#hZG``FD{ zN%en>gGt;LIKHX@@MR&u_5t8G44;qkc4sH+4XY48zh3h_;~)C9Y1?^Qwn)7~kBVplh#w@Ms^6&>l8lRN- zp|r6)o@8|WO;i1&8*mFXE|1l9D2tfr;Iho1Gu1tzJl3pE)Pr_(>cciUw5GZX5fW6Z zPIXVtG|04@jHz8eK)V#7ynhro!hZ+h#jIp_QUe-yE;h)9Tkw=Lh>qbVt>dX#TBDgt z$zrtUvqBIuctdBmaQjiKUE3ejCrd-E01?;iQe$E)Xw`;FW0em6snP9wxR;)VWb>n1 zadxYe^x_4m@o@(D<6eK)g@VkZSXBLt5Gk~Go5=4&Qkr3v?15qBg%mKXkE720;#T~* zn4XwnWly~r)`*(IhV_hgZ3L74ZOy^3SXJXzzBAKpYob)AVdW!e)N|+2MpLj8g+r<- zG;2m~#TznYFa1`$eMSyLAMU9b0y}yoM3k!Wg-S`FPq*TgqYAozGb1QP_P-`IgXc-~ zTs^q?Ev|QLAl6(hn{a$HH5v7*3R${>~KyV=YWG z34e_mikXD&hE&lPx3jzobtEl@je*i!WExdu@GgMblT3oJT`SmbwH3x`3#VRMYm;MD zua`tG$DAzKh}fNYS(7Unc%2}|4ls>zB@DrXV~l{)uT`A>?SQ#AD?Ri##~z{g=VGG> z{(TQ+%DzWv^@VVzuR-ANKq*oc0B|(Y)l~WLoE_tnb9OMPn6qQfo;f#nCdVo8k22%u zwWT@N&bh`&gfj7Ipk%zBb2B;ggLBGbm3@IyPe{tE?T^L$c8^2Nyy6{u^jh~Y8p9K` zlf}a?Q`5PQT0oR((EY1kR`!Rdpd230yJUQFD;NL36x8F92mix5k%!OjrUUohmNL?>j1;~^u&KK z^02jQ{+!Y^8Vl&Xj?UtIK2qZ|dd|k)KTrXjy+)|@pNyj8rZgXSf5*s=m!Nlqi@S@P z)52ZWG9Optr{epWx)J@-0|6DISOaVIALQ=s# zkVr|zsp|ifp;Qr1FYS)(_jqefszt1gga!6Y=|QKX=xFXA)#!=&N9?Hw|46tNMbFee z8P^~{WZ=>swD?3(tm$bI4ZCL=qjH>H&`h8EoWPZ`rRj5u=Q{KD2e@~wyzc;uFJ*Bz z>W6!du}`sC&JpOZ6xe$j1jD0`MsFCsF=k1ni!_FjcuSObHgVdRLfn{vf5OpK3s1}S zOyaAW16(Y=O3p^V68|9_Q}{!avD;DjK1M7+};hM@QmH? zQ-2k?x`EeRup0`@w=Wp?X_iqtd*&chzWMf}{MFdIm{*gB7yh)`imy_N;ftvE4)uI{ zB1A{oMGb5Nw6IBbMIF~ms#)PAs4X_55}u7d;FIi+##3_2L^nNhs${L(;%z1n$)-po z2ca3BDu#k}iX^`Bd|7nWQii*2`}nrzlD;raXP-nj&qPt$(_O4mQ;+q_a2y27srMU& zbb&V)iTplifMBbDm6Da1gW`o0n0hZ$m$Rw&J@mw&C41@tS}JM^PraWcyWR&bGlVLM z%kZ4gQlMbZ1p7yl^35)f>aQXSIA~NU?ros7d%M7OLwm)8jyw#wH&$y%Q#ep+O*G2w zW_^Fq+PMpB4JeBXa#=*>#$S>&8|g5CDBo0ry%Qtl;Yuxf<3^TCB!{KdRWFo4PkIH~ zKaD&QARDCF5lfqQ_Vq=GeQi&~iUBNmtf-y0d%GMU^r&e3 zP!Ss6&zY18Nk8o`+>W_K;Ta+6*Zo!Gf~34=g+a{d1HYUIm6>Gy(B6pkcvP(ajh}Qo zRQzQ|*3ZAb0NfRYXJq{3dea81T;81oly?*>tL#%{RLUq!BN;58TR1`V1e^wA>zQR*c5 zQ|YBCe>3de@WPDU@EU*N_HGb`XY7Wz`m4y*4ZP-p-LTRG#fiS?Qz>MB=&w|teB9qA zd!O8!u}{A2FWlZIqHxtG3mL?h%@Ds-3x43QBv-HSx(oKo(H6%f(J@EF63IpxZ&l;| z>~EaCdw!p>dzQBfm~v5g=I%McUrDa+;dK}6o>hYL%0*0c&N3~D?3&m+)iG!Kn`Q5q zZOD|xvY+QK+&*qZ;h8(;a(^YcI)>L>uwzyVu1Ah~qF=<^RT(K{x9G1_uZ;TJWbc(~ z#$MU)FWlZMqVUYU@^pVCxq5}yU9?xs$&zHRs1#AJXs=YSywcw$d#}7KW3Rl?U%0(j zMB$lx7LQ*w1eO<>Bk3Co%apSx8n6OwnB zeQ$|r1?$R$5xn_C;7`PEB64$#N<;{Msfj6E7S=!1#2$cvox9HFhG`o#HvyC*T91$i zv*WaxiF&6!D0R%CC|c>NHDH}PPQZ*`;kyH7)BG*^>1fde^i%Bk)Em#kZu9X;&evL7 z9Bop<(^#d7d3EZC__hoBhK{6De&_?`##DW?RKb?^W~tHalqxt#f2hN=(E<9h)0(Xs zj{m`dKzx=y>b%2BgX-l|3iNV#GG#jPlKCDMFWPw3s@*wmTPv=8N-}o${r6U;&I0zo|X3CP_q>b4pWxFDDxZo3BXv$~x;DJpQiZ8_MGPa!TgDj1^D>kwVi=_YwTB~`q=?04X&vpE z(qkB32m1Iz^Xut}Ei|*I9u}I#>TS^&#?9?|vr|SWxa~j;78hQM0vWfY2QtdSoQuuf zyJut_R8pF{0Z9>@b}+^!a}iu-#i^M?m7&pquRzb>PO}d~i1d+{zSHazMh+vmeNQ4t znRc2{HNF8TSGH)U**`}W%;JtVHkd7qhJdu`+8bpMz7;jiwtDQ315j)Uze&ZIi}08m z)I^Ar@yy7~S-u*lh_cL*dTi|AzZLDj@zU-H;rt~sWtqvE--(N%AyjtfQxvYyK*|j8 zDt{%pymMZ+-^-+^EehiN8DoOcBrS-EgkSSWtsSju3g3<5in)H><6Qbj?C?7S97;Nb znkY+;@B~*u+TL#|rQpE(gzQ*d!npT=vp+i%EpiHJLm%{`x?7`-V?*IWz}diQSi`lE z30&N)ZTc>dQ%UzD{j#C;76p!p-QMq|W?>wng=dTWK8U7;oJoctV6>4msOSotAH}_vzBqx_37iWje8efHIyyw8VB-qv)C3=Uq3XF5UWe zj2wnmv0GoNCad)wjVkEAa@N5tU96J3yjPl%C#_lXgBtjEMD5LQk`=GQXHzkzNzS#y z+gg~W_OUm$sMozWDhiDAQ*171;+H?$=cp- z8m8Wz-PsbWo`0(#M0#SzP_nB02g8^EkN-jO_z+M3+?$JuV*2O9lqvi4&;L)my1z|L zx9{ryu9ubhW{bXwvV2g)HCuE)^5vf`BE=D#ElS(feIFw)xvQJr>)vSYUEK>NBK8`) zx);%xY1(K!4`mhM?n>mF2JX6cbw^x{@9Oq5wa~8ae#K_%uI??<$m~-KGW(&^!|cqv zx+Ct#c6FP~R|eg`tNTmFNXTHEaAX)8R{o@7MwC>r4-%5EB6f9uFhi+gMpW7zX;R~@ zbp5PRyu59)D7^bEceMTe`F4LHWsXoeH7*!~v1)E@kx z#MwNF!e`PGdM>(7SI_C5(2I>6hS=LZA*#kF_WC^Jv!V)S+i589|KH$i~pJdq%VDRJdf9ikZ4kDNY|^-{||f*eHCX z?@*@yoxagusOfg!Xzu>Fd5BA7KHun1sHO;dUj`cTqjypvxqPGFG4hhW5xv(fWNzPR zBk|CB;?*hB$lVPns|a_uO%HcnzEQ;0xNqcVY9Zg~F^bJr-{^7E$n1*>GW*KuVRmNU zDB^z1H!_*8jJw}A`i(IX;>y7EGT2(p+VEFwSoxC*--uMO4$#CvfRGQNl>OOZy z7BXUsl7koMOO%7E&FN=fB_L$f!v5w&Cw8yu#nJly+1H%2kuC_@QQE|q%L8sUojXuE zry8_}$~YRe+#atC1v^Sn!qTR5&lSg1!rUy=@@bod-w3(U%}%;w_6{S5G3M-!8CByO zbGl>px~PKL*0V-bNT1&A-16$L6yW|?)S~=Om*PhFQ7XoCx|T?xF+)P)AM|LD`N$%@ zMfR*H{ic^vM-<3?$dn}tM+8&@}L4j>+6s6J7}*}W85UTd+7H@Ru)+d=2jmLSMGN_{)VD~JT< zKk$aa)e)CI4jWWDFdFcn^|4yDT4!jz5B@qh=J43w%ol6?YO5^9|da(K*o zI@QoU8U3njarNz6j+f=aEguNwbWDHE}<$~22OzRD; zpkAx&rK@$g{-TRVX?Iu98EsZe!G2gox>`qp*MSmk%4^lC0Z$3zDYBM^CmQ_vx_YfM z8OsLa+zDF4a5>tgQ%hsDgShiuTFt{rf)dYr1ka>%ZH#UWooNQ~GRnja;!7f)`*R9| zD7y#-krz_HAifP%a)bDGdSV8VJ@sM`BWem8#MAipJ=y~jw1Nh@+_Kym?EyI>J=~LB ze5)0AxD6s(O~aT82Ct-r1$q*<&m<{LGl-8fW2em`;+sJR8i@x6#o zHe2X$oWF%kSsdqI`U|%^&Z2PTIHzo%_=~@iT&^>(TUlV=Nq1l4Oi+7SjuKbFX#+xZ zm^z1Gxt>N2g7`}%|HmEldPep$305OhmcBXFU%0(*MB$nH=Ar&da`g?byI|ieAjKql zLmkiPyoB=ce!A_g;*y%yW8F9ea(xczeh4;`6lMpH|!2qm*TMAB`pkYE|y= z!+2Q`hnCW;ih!awf+a~PYB3KIjh>WNur}8t8wEgmuh1450O{6|3Z`#bIMktztGsBA zN8t#XsG)mRYI`T>5=d0)eateQ(2v_u-=&UboR3-bOin($ z(~!FK$%hXZISePmKKVe^WSx9?TU5a;+ty(AQ!>15Wikn$j7WY^1OIbTduceQ(wLZ;8Fg+r5zqZxKlUViq?*t)s2gh7{7pL{iuI+D$juev+zg0Xw#Nli!CcP-x zu$v;BZ5d_y-xS(2et5zZ#A^B;!0cm0`@rl&>^W`C#Yy2gZJ|v6J3XhzQq%38)5Ts^ z=EL^8P*xGo=_=&QkL^j9j-X-H?$VFF}We zF3;&8@=XJGU7l0K)wt*6XKEqO>4l2TR?q3qX=L{E3o`o^)5Gk{o>RpAnCE0NUm1G8 z=X9=@gSxP3p3@^!SfzPRq=J3OQS+QOWhhm6PSWn!ogkBH;WK zdSadvdpdlcQ)yxxhq&9KXQN1=O%fhE<7RmoPOqr@^cg|%&X^QQURq3$dDo_34dT|} zSPqo7R9Yi#{DZZ1dP)ZVERq#*wJv`uF!x{Rb=_#h^|F8M;}=ohS;I~vuIE?>qeLKr z3LRO*6Y_Ng6+jSsy{0RFD)ueA(Z@bV^v+^r^5F~Vc+&om`7Et=?dL+)=b`~Bl49-_ zxdwtKMc+n0efBtt^}J5Sh6N;CvV8tSRdKq%3VSRCuOhC`bq(ibL4iw59_J_0&WDRk zKBQh^@+5yXc3$vm^6}IU{{FSPzTy2uIyjG3+$8e*Mn8cEVccb-5hB71DG(y^5>&|z{7dPH8F=>8gMnAn z6b=#D%saa*FO{}Lh(y+Ydq!&?73MbkGqdAYHfr#~$wpGocQHe=jomhP-a={)MI04F25Ry!VtjmTy4XZjH3>6d~;!J&|^Gf;904 zq+P9%_PZja{U$eQneCzy*ziL{nrRnbkCz4Q;)zzfs8ka-kjFpOW*`&8Q(8(hh|?I} zTBN0H4vftk1=BN_%*S5MT&{LW4lKU^wSk=lwMI~B(azYQLAx8O*z-d{nFnfYzia70 z4ac$bEwH25Zz~ne^cARv-bvt@+f~ugW8~GZ3*R8R7yMW+^7}@jW_%_4V0?KY1&r?_ zP$f6MJLriSU-s0C@r|e{Y~H!3gvs)pCRi-1dJbaWY9B#5 zu~6d|x@_N3He$H@Yx|_+>q@VD`7Pk(QQq$JXJlqU4pckD(0C=+0&k6u1nE=UD{cqF zsKGhx;4m`zMxSm6_p-FQ9lS7MY{VNFn+r8#b9)ieZtjV+tS0)NBBb5j6KPpZ^xKP& z_U7EAWj4`jM1>V1%{0*$<7Gh;Z3eAc6b84_pF*=pG?*rrRV zi8zJYYO9Ti*d=n)tu(gkg;Hi;69vk7;rP6s-B`{_)dl8!MKR|PFUbBP7uUps?9V7u z_66C+xQDRSs!a0UQ#-jzi7N}SRc(B7P$airQh0)XNntFx?OMWRH-S)Y2_qtu#2i6i zr|BT{r6|j%=v`}k$0A?;H9i`qu@%%KVyv)TL%7gFp!*uaxn9;-2h-Z{&!Ec31A>|& z5|1P(<9gChGL$OTljN|GD!{FJHPkB=kv&uTdeRkO6-T^JpeKfS*;5aQS3t(1k$9&H zC0uKaPjq}ZcWc&pCRS1p2-h*M!wCdBJKu$Em+MWD>OcNc4d~D-wSGK19OdmkdlukX z!ElBFM&n3U@QN{`(2UM)QB!ju*_)8bH@I~qJIT`ONcMc*b=r)McmpJRzJ_F9R)n;> zdLk_=l6_kd(*B_*(y}7ij~5~B-rS_Q)hTtpwg{ufQh1O^Gm&fsFAE}B^Pshudf*uL z$0$9CVdFYOqF3|G8of9Tx5`!knhjBdrW3dRN)#yVPbSo1s*JSmm&hgWs)UHN+}akUdj6VjTf}9I=kl6GN=*>F^=e z(}m*2nUsL6I8Lz9?o_am#0Or_&I(@5LVLim+w3#7W(~AXc{w0$a-H&6M?)pFb$(YU z_cnBz$88Hh+=_hp;U|sS zobYq4g+Mp_Jl4w^Q!E7hTy3esOe)|fNl-@kIVVG@0)EP2BlUn=9c%DYY9o85boe<8 z`Z)X?p(h4E+0)^JpM!CoKUTppTL*pE^I7Mkb#s)WPNpSXv!yUXTEr z;tjy&1sd3VOA*rE*b`}4!RAMckoK>+NpovA18gd(4WCb>nPBq(UKRwKj^%RU2noUD zNb^UiC5bfcqgBGpQ?jTDg)wF8fS@L+q0@;me<2E#W+D^DoSjMn?D?5u&mjhw3vczQ zTN54#fH{vcxdG-~AK5;K{de6|eCI&4D$YRPOfJorh+-$wJc+(e)6)EjD9fi_T}X2P z`SK%88nro*<_Q)8-AHqdmo=t*2&8$mr3y2tK$;{<8Ik5+&{iL32{a0%DaVi025w!f zAx){1?3vP$W`L$}q&ZAa3~92b!-q8G(mbX&{Tn_rFU_-(dO()uDIfwWasmN}&a)y) zxtu0y=L0$ZQX$A&z++(#HsnZ*DvliQj@p?6Io^p(z5%Es$LF)O zI&wTOfgHsfAjk7G-`g;atk(MuxKo5UwXeoq%wIx9$0+9@n8PpVo8%!qbp1KOm$*nG+Bm zZz0eP2#@iy#uN(y2#>Nf@{i2<5PmgWs)UH9#m;kUdj6AgrP( z91sTd!~h|CI(&d|yN(pJ({+7T z5b|d9S5XLgLzK6B=Pa0nG?->z^CmVH2a|V2EzSWZUxZA)!K;JG=drXpnB0{Blj04) z79s6la+BuPbOxAIavOGuG!slt;AKHD>6j-pMU%tIAE2Hj ztaOc82{0WY-$oT$kfm%RFx3HS?sP)UpNj&e;m8CvXRERRgMO+QbcjLc{M&ts*MtlL zbk3nn4+hYAA`$8Yoh5JE^MTHXpe&zub%D+;$d?~<(vZywI*+pu=mwpuy{s|CLV(Uy zmMYAo0(6oDWdxmnLR)>D)j+2lHc}0^Rj~#-r82T-N(Y@oXbK0NReEBelRX_i&^d_H zfogQ*T$x=aVp-`nE-OmEwmDv+6Kc-T)rbfn9j=W`@EgkqFNpmzDNQ?(&b&w_o*xE` z6iEN*#nE>2v#&X4V<$L>`_?xxHu7VAHk~_AI;R@6hsy2RNVz?Z`=WM~qJ*VQ=bn3= zC}~Z1nU+t(PB%k-bP$|=O!za69ERQ7Q!$3$=#?-oRE=-!Ngznagx?TVFdKW;ytX;s zbsVv->8>zdE3f0_QR{3t+P|SpaVETniZQ2*b6wkPElg>zu!9;3LP2vP&|n6KfbT*1 zNeE~%PC~!b5d-ZydI63Zk&Ge8Cs=LW4<28%eAIcRp^0{e zbBbfqB(uOmUPytHTE2=Zxmmi8o|su;Pd%6=MNQ$8S~lP)y9UnHvDl>Oc(nf12@p|; z+YH?{BNGAj=Ew-zGI%Nfmmi82(UxX-%#kTM!_LE$W=CClyf`XY09yH5iRpg{F|&)Q zU!VOV%G;e4%rg!;(@qK1rX{qu{iCU8hc0_s+`bxP(SBy;Vr0VYw`yyv_w3N){Z-h{ z%j8ukb?>_)cs?V?pj^{G#vFs{)o>n>X3jDE1ifC+u&gm+k)$|si}DE6mb5653`LDl*pgv!N>zLqfsadDWLhEj4HY2|7&_;nx8%OqWO7~64aOs;LR9)w9c}) zVE2c+wn8)(GUGiJ+sPDu0bkf>PX0(lK6@%c{^)Y43l$Yz;D-^06t>Dkr?!sNn|mvD z`E!a532K{4s}AN)q}>E$zxg^km1DGTbnWPT-uTf0h`>Bwzjqh4n-i@e0G5I7YIdJZ zogta>c&jqDr9O4ZoNk{?6IAhYg6f;wT`@G#qO-HhqO8lh%jFw7 z>Tc???vi%U>A+02r@E`E&7p}-t==BQDYA_YaMVRKLGFMb^Asu_2}oq?yBHm4J<>H&O}=# zTG(A!4falqpu81AS0Dw@Gu-4*QkhH}stYF6ot!0ytC&hXZ=x5D$A z>OLg?u^hBo%~p977dqF27T8Us4t1uwM~a|ORmwtE%2aoq@x>@2ya(f=yMmXS%>9t~ z2P1QLCAFaqMva0+b+l=!dqlm`7@4SyV7j1L#qW7RW2$>}D;R3Fs^w}h4lzMBHOAOQ z-1R1o)T$8FV7PV=Fs!?xGSO+4)vNBj8f5E;Do*?&>BxVC}l0(F*86$Mf+9E;AM)_r8g7RIvio zb!r{(pX-4;AU(~YT4NY8AQi(=q$=7IdyRCpF%sT-v%*K?0;ZB6Gh=&$Du(bRNEi)* z4k|fj2&wj!gRx4jUanNDq-7b|tEgn^@^(-k<~r?;?);#!e+o9QyM(I~j9-Xitx>IE zaCFKYoFX4UJwb3*fhdSp2g(&?RD)sC-QA;NZ*g)ms={lOHXQv}L_?^`-Y=$?{5c#a z+c$j8v64+L=T5QrazaRjz3q?pMRr2pP)ZG&cL5X)1RBp#Gl*g&+3Qa z&k6KrivHX~e|A3{f1W~rcASkrkETC=raucFfj{q{KkuPGn|I*PHu`hjIruX~f4)I~ zzDs}JyAyvtNPk{(F8;iN{&XINKa=$536I8~zoI{b=i$$p^k>=m__K=sJeU5wi2nSR z{``^t?7!gub#?bFaYRuZ#>-$-B#9QWvC$@hdv7MFw;y77F)#<)W*a!_yY4#@lsU5B;;VNO{_y%yLbdQ@DJKLL?;As zk%2^~=!NDk5rd^yVi{Imi&Z#%BQD_lt+;}^gm?}|@EcO^gh9GTgizlrT3{P?;8&m6 zg+EDg4$Gccf$Ef~fhYaqDV)ItY?}B93q#@?T*5VEeK8A(VbKSBZ~)ySq6a1dk%e?x zgs?s;Ho(h>0r(J#Pw;(A{D9cFh{G1_0KLSGhU2bho@;Puv;#1D1{en*8>b{2=PVkB zF&gL87>C&y+l$@id1LQ~u|dSfa$*Yj5Nmv`b?@QaJ5l4o$#}X7KbPOlo9;#~_Xd@H z$ppH&qX^~kc3hM(?na_<$|K6N!^yxeq+&O;@?Nkox}<2vlH04gKRqs*Un`yW8J1R6 z_vgz0qSd8}w-753ZSjbl4$<31d>+ov}oUN@n%V4^@@KdKP7w6ql3YBIY!>pSDwnaw<6 zn-ZD|^Kg9;S_a%-A4&xHE*^Lh|?W;qN%JyAPsR(+yuykhIVk3l?-0yX(G zQ4Jf}OIfe1c}9(3LOveotMn;i(`=4SvV&}x&GWUTx)Ur_mhSNl&tJMbY%JXo1cq1F z1JGKy)pHwVcS9XpN;t9v)cqw*4+GZ^>vi4ROh2_Si>NPoJ}AEI#86mf1ANqUs>X)G zXn6+ga!|;w08_8R|7-An0sjvXwP2WM3L1;xlj*GDocOikENJ;cQLv+6I)wzk6p2F- zpKBYG$0$#6Y$b^FkiCa3W{g>3mx292bp&EpX~VRLFH`hI^G$Fy2)!n;nMn~VR`o#l z4+&ABNz-DI?l^7$7B|TuKYIVMs{)A9a$!MGvvB-y;aIYX<~Q_;v0O+&3Jb@NgF8ZW zXZfg@5ydhFI!?#~PU%Rol?y2p@xg+WH!h=?xtPCve5*o z0`c5N-Ch=SKusH-0hv2vL^Sty%)KoZ$@SffWOB?)skSyYmq|_`JkDytt+h*sDhQXI z7!+ro6HFJ%l2{ow%5&+VChSs1GPb$h*;eEe5SK->GP!(4>*u=D$_Jfx5qT0s zJr1kZRYVf%9|hne{Q&tT_0SGXjf|z1l8IL^Ws7+Da61qA1+hzko|Vp+#(D*QCF0Y` zqoz9*=6VXR`kAI2ENq~|MFbJQRI9ty&^G+k6sD30D-A%i8nM%S3{Q~Ch!?kOK82Dz zmysjYT2ZxQI@wIP2MAci^CV_&*@CZ&nxu=5NdzOlFVU6MP69(|MA#UgsD-vIgaPR0 zwZN?qg9ATeFR;^(MQ~g+6ax^eZ(;LNOo8KvNh*XQO$x!PxK5yYY}MuF=-gI4y}=Zg z^Gj~l;o6o9%TQl|)AA`v&8gJjjmIF0!FpMhM%dcPhT&A9_u2;dtuDX6%ewI8Pn@HXD%N_~iH=j2IgY+pL(-0RgbCdk!9RU}b#v>;=L{GM2jV%b^gGzhLv$z~I0DnMlC@JeIv2xE7W@Q+3^Z{G<^u7x7bkpy_*h zqE?QU5}}b)vF1Zn4K+5m#tAy!6bf({NK6aCp9%DGXzQL0Z6$HvD7)3oj(87y?s~@$ zqZA3Z&tbnzkm5^Z-C(MgPl3CIV{LXmi+D-^I4(^pdnK7~JxKJ@&E^m7L$iFC99^a_ zWdiQ1FGcnzY5&Gx|A11nGXhJ<`dOObYuA^%gtL z-sYG0;fe6JWc}W4^&*pI-QR~j#744$pP{1=R?xbS9)%O`&Q%h~dkJpNx?AjEeH?$1 zBaf9Um8w2QOX4tRJtH6dGlE(LF5?Rh;u zqFz@OOiKj$HL=4xp*;)0VMm+pKzn+FeuPM#izC18pnQaa%m}$nkbgwZDGBnM4LCob z1jGf~byj6a+nPzU4$C!)9oA59AaSz9x>kV8s}JIUtLc>@b87-mi9_f4o3cc5eE(60 zvXJf*bmm?Cmx=(<+u;gy5L;iYY~9C7T2}(rx(YwEUdsjN3%kGIB-)v#U`mLKx0?(s zX<9|MZB1J~(&^G;EhzMHy13-sMkBecSc}S6NxgNnZK$~0yM%fx*$~RH+m+N?Nxag@ zHax8z$6ZHL4?|4p?Ntck_^AityiR%x;YW77hP)_dmzHNqj>#L%@)6oaaW`M>DdO96 zH(wE)Z`N>CIl8%<=P++qAzH88bx9Bi{Sg7$`KUDFD)Wrs8JlHenYp1c)!cNqvqTurc}IST>e1I;=Q?iqeS$2foOM7HP0;*NF5T}BJ<5&RMXei2eGh70a4D+tRemT zM32n3w3l;M%D2HoJ=oS=*Q8;Zvo7gF78!+$BnL>&`lPn4Aqo1QK1xWdzC{|BCZgk_ zZz+lW`UGH2)pfSa=abl{c&JcJi=G8k9FaUnHT~)&vPw%wN=h-A8?mOcy2#5Tqjv7y zj^||3ntiC5H$`@9GQclNNlt^n;+nCUXtk39PGq!7-N*(q{dk-Xv1>G4WS?RWHI;;t z3MlHo)@ReX=LO$H4f|~k@sWkCHzqv8+azdk4Nk${K9qwi-$yd z90lK$M?mo$ttWD8>}M_PN^{8k;#+W~D)@$7E9ibfFVsRuG-H(#=h7V@lbK(~J9SPK zsnLlv%k$R5G(*OVze>^U?tEz4PZg3ts9XV8>WuTU+%Af{W70A<7dQA=T&J~O#h!c| z#R=iCtUuGMX#P;&9d{8~R`f)nXzRGi<5V)dD62kOd@}x+yzc`L+==y;M%e4_!{zwGG5 z0M92dMis9i?KjA$DxpU$f?C=TIGK#d#z6ED$#XUM~3 zxg_95>p~bb!XR2<(uyi6#kPj_u+Jahu}`pY)7|>jj!^oH4+=A)aTtoxYC3*ln0#8T#r%KLHv=oNbiD zRjfBfjS$ogf^`kOj*%RAUonUxM2SDGqA`8 zO%dN~>&|MZuNvSuH8>5SAC_O>85P&7YE^?eW3UZ%RIczb7>gR(hQJZC3PDAi(gwme zK1JzDEgRxPXkX%ct6{yNrSb>HiUAX%=Q%p^petx{BoHClbo|*+!#BdJtDy}LP%~&$ zaeV{D{%od@l1iYRF@00Y=d@NeeX9I}kQmGHL@%IYlOV>2MU%~xkeV1wtC?uSqUP9H zdcr1XHl&72oDHp3#gXqp<8b;45#1*m$!tWo5JcOoqlM<=%mSZk7!8g3YM_!8!7wxy zH6ZW6oiu}A%z~idFE1@&*hi8PVX{*~)9_Nn4-lk40FYXM+ZD_Kj$;Dji`QItJ@`50 z)haE^(@3`bwaM~y#UznkGrW>%1U0b-w10^ObsL-IkWPjciOz)yJ`b6!YpHss1jPNH zTYSdfbOL=tW9BNe@gMR#LP_a}Px@%*4YboC^x6lbE)ehXRkK|rMkQ3XV_e z8@Mc3h}moC$Ji3>*P^F7wgX#`9=BpTHON3>81|E?@WXNooLMK~wOw6mBXvZtMUa_# z*{DK=H-Q2((2B6d4^#lPrlE1fv^8{!la&={?~8lAA*^;y+O#b`Y&d7Avzkvxa{~Q^ zC{l$J$`PPVg*y3!;OqlZ5Ul{l6=GARKI*d(-`_M!$q6xx)oSSr_4iSmHo(VeP(E9e zAxOjj=KN= diff --git a/docs/_build/doctrees/_autosummary/engforge.dynamics.doctree b/docs/_build/doctrees/_autosummary/engforge.dynamics.doctree deleted file mode 100644 index fb12f0dc09fe1f2c88022827d9fc96cfd1503339..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13108 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.dynamics.valid_mtx.doctree b/docs/_build/doctrees/_autosummary/engforge.dynamics.valid_mtx.doctree deleted file mode 100644 index c38714e9e264285104386e903cffc45f281da7e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4086 zcmbVP&2A*O5!OmOBaMDWE3J2tWLFy*fo%!#%;b=Ru`mn+jt_yb3Xs1`ylHc~IYU}( zveV6$Mh64V!9fJ@X66NQ%M&DzV8D-(d(QcaobLG%77jAN0L@~NUG-JfSJhv2{`T*~ zjqr1aRUxFF4Oy0Hlkv*Coy??l&b9U5`13#eFa4S8mF%W6b(wPSHlUFTsj`x5|Ju7g zsavV4;r#q|#ZxPdZjXzO=!)&v{!H{-$4aaC(w2M9^>kv&DIaFHn&mRBhSyBV?6V}d zGf(Gm?BQ?ujO=-%_D0bD+DCi41%q|gizC-dT6e^j>(0HnbPtu(++WsX=60F2r5x85 z-jlamGONh5?NqURQvbtC-#w@)m`Gj<8w{6*!w!AnL&&0lXF1EypyBg)% zj?&TZDqdEj-_*tESJv_}XBNJm{-QL+*vyt?qXv-?Os_@>tF5W(JZI%?yR`-uc|R;G zc>LmGvmT2L*O5Bovn8No48)J&p?Djh{sjMb@P7~gbMh8|l`{Bv2ArgxB2Ml+#DcCr zJ3l>>`ZPCLt@vqUVr$2_chBw#Vh7l;6?eTd9U?-_fBoj&a( zl?1T1E>|+Azp#y!<$1^zI?@YALLiz979H1XwPR8}U6#xf2bNvLs71@z3S4Jy2X+j? z#i$b46(0EtjJ;W|URDL8QrRg=j-X$2Pk#Rrw|_d%iJSjFCmN7PZMhV;FDX$FJv}`& zll!q*4#SI!2LbWp021m1`HE~*63MfK))o+rI5iJ2Aoe0>=*-Q3BWxIquyqWx5%E0V?;a3EqtcdUw=hV#@)r zFi@r!UAHr-l?sUfb9WPKQUcgkUi@9W`iloIlPK2GUR#=H=fTcT#7Tr3_I^wm5>j?Q zBv@*+U2aZIcUgF{#%vVFe>4|~lY5Q_uQ!WZ)a#_yv30GvoSB?S?ZrRcHZZZb1t|Vs zkpkLS&JfoAMG*i%GY_%P0EK~ks!|gUYJj1f4_dRg^v@WTUCvDr_ZzQpOgOMW~m|Kph z(T71~QidGKyzBm+sTw`4VK&z_wJmDvFU8@d>rJ`lC9|kjEHZ`xz_Pr+VlTdsh~Wy$ z-TAUE6;=n7xzzY+7ccI_5V_-tF;*MPmo_gRxC5Gpbe$(Nj5)c7q)%L3B&o@1%&KtZ zvnb(;2T5`xtw@^j18&zsW6`=Kq&k9rVWcg%Bk<=#FvXU`B z50gw*Y^=zUxs}^ZU7*JH;Y5X9Z5iUdhw&b9 zic93@QRs&X{EjSCGMCoBdi0*_7raOS3P(w%0kD0Nj2UdF%5Xmr))v*v(Fo#dSln7+ z^bn){$h#+`84Q4CVtJ16*f1jTV(`w-ehxhQp&8xv^)2xy49A=5+SET;g95fs0`)(eubgi zCV#3?)D?hw9M*A}D3h`|v?r;+AeAEUvDkoefDosz>H?%sA4%cMXHEil$R3kQJwXmM ztZ+;`QPtx$J(*MTD#Kza(s#?1N6zG9o}qqkVS?Zo9q!zd6k1maN3T)|zUPQ#gV{&( zFES*nnnX^!b6Z?r)Ax_tiClu>MJl3iNfd`o;y@A-=Lkk2wJgXL{GHL)&X?XDuSltp z2QhA&vT+F2dPBd z$p%~-B~+M=UbJ;t67`V!h;TkOs!f8R`qrAT)$Xm_*lXSz4jr%D4}vW%G5VAByXHIS zYoLwP)I$;s7=LFOQc-{Qv*} diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.costs.CostLog.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.costs.CostLog.doctree deleted file mode 100644 index 3b80c665c959967608945a39847316a38435df52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51900 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 diff --git a/docs/_build/doctrees/_autosummary/engforge.eng.costs.CostModel.doctree b/docs/_build/doctrees/_autosummary/engforge.eng.costs.CostModel.doctree deleted file mode 100644 index dfb4cfd248acd7d45def114994d18e018c207cd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352784 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