Exemplo n.º 1
0
def models_related_to_report(data):
    """What models are required for this data['report']

    Args:
        data (dict): simulation
    Returns:
        list: Named models, model fields or values (dict, list) that affect report
    """
    r = data['report']
    res = template_common.report_fields(data, r, _REPORT_STYLE_FIELDS) + [
        'bendingMagnet',
        'electronBeam',
        'geometricSource',
        'rayFilter',
        'simulation.istar1',
        'simulation.npoint',
        'simulation.sourceType',
        'sourceDivergence',
        'wiggler',
    ]
    if r == 'initialIntensityReport' and len(data['models']['beamline']):
        res.append([data['models']['beamline'][0]['position']])
    #TODO(pjm): only include items up to the current watchpoint
    if template_common.is_watchpoint(r):
        res.append('beamline')
    for f in template_common.lib_files(data):
        res.append(f.mtime())
    return res
Exemplo n.º 2
0
def models_related_to_report(data):
    """What models are required for this data['report']

    Args:
        data (dict): simulation
    Returns:
        list: Named models, model fields or values (dict, list) that affect report
    """
    r = data['report']
    res = template_common.report_fields(data, r, _REPORT_STYLE_FIELDS) + [
        'bendingMagnet',
        'electronBeam',
        'geometricSource',
        'rayFilter',
        'simulation.istar1',
        'simulation.npoint',
        'simulation.sourceType',
        'sourceDivergence',
        'wiggler',
    ]
    if r == 'initialIntensityReport' and len(data['models']['beamline']):
        res.append([data['models']['beamline'][0]['position']])
    #TODO(pjm): only include items up to the current watchpoint
    if template_common.is_watchpoint(r):
        res.append('beamline')
    for f in template_common.lib_files(data):
        res.append(f.mtime())
    return res
Exemplo n.º 3
0
def models_related_to_report(data):
    r = data['report']
    if r == 'animation':
        return []
    res = template_common.report_fields(data, r, _REPORT_STYLE_FIELDS) + [
        'beamlines',
        'elements',
    ]
    if r == 'bunchReport':
        res += ['bunch', 'simulation.visualizationBeamlineId']
    elif r == 'twissReport' or r == 'twissReport2':
        res += ['simulation.{}'.format(_beamline_id_for_report(r))]
    return res
Exemplo n.º 4
0
def models_related_to_report(data):
    """What models are required for this data['report']

    Args:
        data (dict): simulation
    Returns:
        list: Named models, model fields or values (dict, list) that affect report
    """
    if data['report'] == 'animation':
        return []
    res = ['beam', 'simulationGrid', 'conductors', 'conductorTypes']
    if data['report'] != 'fieldComparisonReport':
        res.append(template_common.report_fields(data, data['report'], _REPORT_STYLE_FIELDS))
    return res
Exemplo n.º 5
0
def models_related_to_report(data):
    """What models are required for this data['report']

    Args:
        data (dict): simulation
    Returns:
        list: Named models, model fields or values (dict, list) that affect report
    """
    if data['report'] == 'animation':
        return []
    res = ['beam', 'simulationGrid', 'conductors', 'conductorTypes']
    if data['report'] != 'fieldComparisonReport':
        res.append(template_common.report_fields(data, data['report'], _REPORT_STYLE_FIELDS))
    return res
Exemplo n.º 6
0
def models_related_to_report(data):
    """What models are required for this data['report']

    Args:
        data (dict): simulation
    Returns:
        list: Named models, model fields or values (dict, list) that affect report
    """
    r = data['report']
    if r not in ('beamPreviewReport', 'laserPreviewReport'):
        return []
    return template_common.report_fields(data, r, _REPORT_STYLE_FIELDS) + [
        'simulation.sourceType',
        'electronBeam',
        'electronPlasma',
        'laserPulse',
        'simulationGrid',
    ]
Exemplo n.º 7
0
def models_related_to_report(data):
    """What models are required for this data['report']

    Args:
        data (dict): simulation
    Returns:
        list: Named models, model fields or values (dict, list) that affect report
    """
    r = data['report']
    if r not in ('beamPreviewReport', 'laserPreviewReport'):
        return []
    return template_common.report_fields(data, r, _REPORT_STYLE_FIELDS) + [
        'simulation.sourceType',
        'electronBeam',
        'electronPlasma',
        'laserPulse',
        'simulationGrid',
    ]
Exemplo n.º 8
0
def models_related_to_report(data):
    """What models are required for this data['report']

    Args:
        data (dict): simulation
    Returns:
        list: Named models, model fields or values (dict, list) that affect report
    """
    r = data['report']
    res = []
    if r == 'twissReport' or 'bunchReport' in r:
        res = template_common.report_fields(data, r, _REPORT_STYLE_FIELDS) + [
            'bunch', 'bunchSource', 'bunchFile'
        ]
        for f in template_common.lib_files(data):
            if f.exists():
                res.append(f.mtime())
    if r == 'twissReport':
        res += ['elements', 'beamlines', 'simulation.activeBeamlineId']
    return res
Exemplo n.º 9
0
def models_related_to_report(data):
    """What models are required for this data['report']

    Args:
        data (dict): simulation
    Returns:
        list: Named models, model fields or values (dict, list) that affect report
    """
    if data['report'] == 'animation' or data['report'] == 'optimizerAnimation':
        return []
    res = ['simulationGrid']
    res.append(_non_opt_fields_to_array(data.models.beam))
    for container in ('conductors', 'conductorTypes'):
        for m in data.models[container]:
            res.append(_non_opt_fields_to_array(m))
    if data['report'] != 'fieldComparisonReport':
        res.append(
            template_common.report_fields(data, data['report'],
                                          _REPORT_STYLE_FIELDS))
    return res
Exemplo n.º 10
0
def models_related_to_report(data):
    """What models are required for this data['report']

    Args:
        data (dict): simulation
    Returns:
        list: Named models, model fields or values (dict, list) that affect report
    """
    r = data['report']
    if r == 'animation':
        return []
    res = template_common.report_fields(data, r, _REPORT_STYLE_FIELDS) + [
        'beam',
        'ellipticalDistribution',
        'energyPhaseDistribution',
        'solenoid',
        'sphericalDistribution',
        'twissDistribution',
    ]
    for f in template_common.lib_files(data):
        res.append(f.mtime())
    return res