Package: matflow
MatFlowMatFlow is a framework for running reproducible workflows in materials science developed in the EPSRC programme grantLightForm, a research programme on light alloy formability. It is a python program that interacts with software (open-source and proprietary) used in materials science via extensions (see supported extensions below). It is particularly suited for hybrid workflows
(involving experimental data and computational work), like for example HPC model calibration. Outputs,together with details of the worflow are automatically stored in an open source file format for post-processing, which Matflow can automatically upload to data repositories likeZenodo.Seethis repositoryfor information regarding a MatFlow installation.ExtensionsMatFlow uses extension packages to interact with arbitrary software. Here is a list of current MatFlow extensions.Released/in-progress extensionsSoftwareDescriptionStatusVersionDAMASKDüsseldorf Advanced Material Simulation Kit (crystal plasticity)ReleasedMTEXMatlab toolbox for analyzing and modeling crystallographic texturesReleasedformableFormability analyses in PythonReleasedDefDAPA python library for correlating EBSD and HRDIC data.ReleasedAbaqusFinite element analysisIn-progressNeperPolycrystal generation and meshingReleased/In-progressExample inputs/outputsLabelAttributesOutput from tasksInput to tasksODFcrystal_symmetryspeciment_symmetryeuler_angleseuler_angle_labelsweightsorientation_coordinate_systemget_model_textureestimate_ODFsample_texturemicrostructure_seedspositionorientationsgrid_sizephase_labelgenerate_microstructure_seedsgenerate_volume_elementorientationseuler_angleseuler_angle_labelsorientation_coordinate_systemsample_texturegenerate_volume_elementvolume_elementgridsizeoriginorientationsgrain_orientation_idxgrain_phase_label_idxphase_labelsvoxel_grain_idxvoxel_homogenization_idxgenerate_volume_elementvisualise_volume_elementsimulate_volume_element_loadingload_casetotal_timenum_incrementsdef_grad_aimdef_grad_ratestressrotationgenerate_load_casesimulate_volume_element_loadingvolume_element_response...simulate_volume_element_loadingSpecifying default run optionsDefault run options (i.e. options passed to the scheduler) can be specified in a few ways. Firstly, within the workflow file,run_optionsspecified at the top-level will be used for any tasks that do not have arun_optionsspecified. If a taskdoeshave arun_optionskey specified, the globalrun_optionswill not be used at all for that task.Additionally, you can specify default run options in the MatFlow configuration file (config.yml, by default generated in~/.matflow) with the optionsdefault_run_optionsanddefault_sticky_run_options. The "sticky" defaults are merged with any run options specified in the workflow file (with workflow-specified options taking precedence), whereas the "non-sticky" defaults are only used if no run options are supplied for a task. If no run options are supplied for a task, then both the "sticky" and "non-sticky" defaults will be used (with the "non-sticky" defaults taking precedence over the "sticky" defaults). Similar keys exist for task preparation and processing run options:default_preparation_run_options,default_sticky_preparation_run_optionsanddefault_processing_run_options,default_sticky_processing_run_options.