Multistage
The class DLD from mnflow.mfda.cad.dld.theme.multistage
(multistage.DLD) aims at configuring a DLD system with multiple stages,
wherein each stage can be potentially a full DLD block, completely
displacing sufficiently large particles towards its accumulation sidewall.
Different stages can have different configurations including gap, diameter,
pillar shape, etc.
More information about this scheme can be found from Davis et. al. (2006).
- class mnflow.mfda.cad.dld.theme.multistage.DLD(num_stage=None, opt_multi_inlet=None, opt_filter=None, opt_preload=None, opt_collection=None, offset=None, config_multi_inlet=None, config=None, config_stages=None, verbose=None, opt_process_upon_init=None, opt_write_upon_init=None, opt_save_image=None, opt_enable_infer_width=None, opt_enable_infer_sidewall_width=None, top_cell_name=None, *args, **kwargs)
A DLD system with a multistage theme.
Constructor
Parameters
Overall config
- num_stageint, optional
Number of stages; it can also be inferred automatically if other provided params are sufficient, by default None
- opt_multi_inletbool, optional
Whether to include a multi-inlet upstream of system, can be configured to serve as a single-inlet as well, by default None
- opt_filterbool, optional
Whether to include a filter in upstream of the overall structure, by default None
- opt_preloadbool, optional
Whether to include a preload in upstream of the overall structure, by default None
- opt_collectionbool, optional
Whether to include a collection component in downstream of the overall structure, by default None
- offsetlist/tuple, optional
Offset of stage when snapping to upstream neighboring stage, by default None
Multi_inlet
- config_multi_inletdict, optional
Config of multi-inlet component, by default None
Homogeneous configs of stages
- configdict, optional
Mainly for configurations to be applied to all stages homogeneously; yet, list of values is also supported for many params (keys of dict) denoting that the param needs to be applied to all stages heterogeneously according to order of value in list, e.g.,
'd_c':[5, 2]would be a valid key-value of dict for a two-stage system, wherein the upstreammost stage is supposed to have a critical diameter of \(5~\mu m\), appended by a stage with critical diameter of \(2~\mu m\), by default None.- Note:
This param is added solely for convenience of user; any configurations for each stage can be passed explicitly using
config_stages. Theconfig, however, can make it more convenient to assign a set of similar configs to all stages instead of writing them separately for each stage.Homogeneous assignment of a param to stage(s) is done only when the param is NOT available in corresponding stage(s) of
config_stages.
Heterogeneously configs of stages
- config_stageslist, optional
List of dict, wherein each dict contains configs of one stage, by default None
Internal config
- verbosebool, optional
verbose, by default None
- opt_process_upon_initbool, optional
Whether to invoke the
processmethod from inside the constructor to design the system, by default True- opt_write_upon_initbool, optional
Whether to invoke the
writemethod from inside the constructor to write the GDS/DXF layout file, by default None- opt_save_imagebool, optional
Whether to invoke the
save_imagemethod from inside the constructor to save layout as png file(s), by default None- opt_enable_infer_widthbool, optional
Whether to enable automatic inference of stages widths, enables inference when
Nwandwidthare not provided for a stage. by default None- opt_enable_infer_sidewall_widthbool, optional
Whether to enable automatic inference of stages sidewall widths, enables inference when
sidewall_widthis not provided for a stage, by default None- top_cell_namestr
Name of top cell to be created as needed.
- static find_widest_stage_box(config_stages, config_stages_from_config)
Finds the stage with widest bounding box.
- static find_widest_stage_inlet(config_stages, config_stages_from_config)
Finds the stage with widest inlet.
- Note:
Width of inlet of a given stage:
Nw*pitch_w.
- get_die_info()
Returning the die information.
- static get_merged_config(config_default, config)
Merges (with override)
configintoconfig_defaultand returns mergedconfigandconfig_autocontaining configs determined automatically for core.DLD and block.DLD.
- static infer_count_stage(*arg)
Infer count of stages from provided arguments. It scans args and returns the max length of list/tuple it finds. Otherwise, it returns 1.
- static infer_sidewall_width(config_stages, config_stages_from_config)
Infer sidewall width of stages from provided arguments. It aims at adjusting sidewall width of stages so the outermost edge of sidewalls line up well.
- Note:
config_stages_from_configis updated in-place in case inference is done.
- static infer_width(config_stages, config_stages_from_config)
Infer width of stages from provided arguments. It finds the widest stage and extract the channel width and sidewall width.
- Note:
config_stages_from_configis updated in-place in case inference is done.
- process(*args, **kwargs)
A method attribute to be overriden in child classes.