def analyze_model(model_file, report_file, **filters):
    with PdfPages(report_file) as pdf:
        modal_composites, column_units, column_descriptions = load_modal_composites(model_file, **filters)
        for base_key in ('m_dominant', 'omega', 'sigma_cr'):
            plot_modal_composite(base_key, modal_composites, column_units, column_descriptions)

            pdf.savefig()
            plt.close() # Prevents memory leaks
def dynamic_load_modal_composites(model_file,
                                  search_buffer=10**-10,
                                  **filters):
    modal_composites, column_units, column_descriptions = load_modal_composites(
        model_file, **filters)

    if modal_composites.size != 0:
        return modal_composites, column_units, column_descriptions

    a = filters.pop('a_fix')
    filters.update({
        'a_min': a - search_buffer,
        'a_max': a + search_buffer,
    })

    logging.warn(
        "Could not find the exact value of a requested, expanding search condition to %(a_min)s <= a <= %(a_max)s",
        filters)
    return load_modal_composites(model_file, **filters)
Пример #3
0
def analyze_models(viscoelastic_model_file, elastic_model_file, report_file,
                   **filters):
    with PdfPages(report_file) as pdf:
        elastic, column_units, column_descriptions = load_modal_composites(
            elastic_model_file, **filters)
        viscoelastic, _, _ = load_modal_composites(viscoelastic_model_file,
                                                   **filters)

        omega = elastic['omega']
        omega_d = viscoelastic['omega']
        sigma_d = viscoelastic['sigma_cr']
        D = compute_damage(omega, omega_d)
        sigma_eff = compute_effective_stress(omega, omega_d, sigma_d)

        modal_composites = append_fields(elastic,
                                         names=['D', 'sigma_eff'],
                                         data=[D, sigma_eff],
                                         usemask=False)
        plot_modal_composite(modal_composites, column_units,
                             column_descriptions)

        pdf.savefig()
        plt.close()  # Prevents memory leaks