{"id":17596241,"url":"https://github.com/lamm-mit/fieldcompleter","last_synced_at":"2025-04-30T04:50:55.547Z","repository":{"id":240764453,"uuid":"544954889","full_name":"lamm-mit/FieldCompleter","owner":"lamm-mit","description":"GAN/convolutional and Transformer models to predict missing mechanical information given limited known data in part of the domain, and further characterize the composite geometries from the recovered mechanical fields for 2D and 3D complex microstructures","archived":false,"fork":false,"pushed_at":"2023-04-23T08:13:01.000Z","size":250,"stargazers_count":18,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T12:41:38.741Z","etag":null,"topics":["analysis","computer-vision","convolutional-neural-networks","deep-learning","deep-neural-networks","design","engineering","fracture","materials","materials-informatics","non-destructive-testing","science","strain","stress","testing","transformers"],"latest_commit_sha":null,"homepage":"https://onlinelibrary.wiley.com/doi/10.1002/adma.202301449","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lamm-mit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-03T14:27:33.000Z","updated_at":"2025-02-28T01:30:55.000Z","dependencies_parsed_at":"2024-05-20T20:08:14.831Z","dependency_job_id":"84a1cfb8-3280-40c9-8908-0061b10cfe10","html_url":"https://github.com/lamm-mit/FieldCompleter","commit_stats":null,"previous_names":["lamm-mit/fieldcompleter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamm-mit%2FFieldCompleter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamm-mit%2FFieldCompleter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamm-mit%2FFieldCompleter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lamm-mit%2FFieldCompleter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lamm-mit","download_url":"https://codeload.github.com/lamm-mit/FieldCompleter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251644827,"owners_count":21620630,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analysis","computer-vision","convolutional-neural-networks","deep-learning","deep-neural-networks","design","engineering","fracture","materials","materials-informatics","non-destructive-testing","science","strain","stress","testing","transformers"],"created_at":"2024-10-22T08:24:31.662Z","updated_at":"2025-04-30T04:50:55.527Z","avatar_url":"https://github.com/lamm-mit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FieldCompleter\n\nZ. Yang, M.J. Buehler, “Fill in the Blank: Transferrable Deep Learning Approaches to Recover Missing Physical Field Information,” Adv. Materials, https://doi.org/10.1002/adma.202301449, 2023\n\nSolving materials engineering tasks is often hindered by limited information, such as in inverse problems with only boundary data information or design tasks with a simple objective but a vast search space. To address these challenges, we leverage multiple deep learning (DL) architectures to predict missing mechanical information given limited known data in part of the domain, and further characterize the composite geometries from the recovered mechanical fields for 2D and 3D complex microstructures. In 2D, we utilize a conditional generative adversarial network (GAN) to complete partially masked field maps and predict the composite geometry with convolutional models with great accuracy and generality by making precise predictions on field data with mixed stress/strain components, hierarchical geometries, distinct materials properties and various types of microstructures including ill-posed inverse problems. In 3D, a Transformer-based architecture is implemented to predict complete 3D mechanical fields from input field snapshots. The model manifests excellent performance regardless of microstructural complexity and recovers the entire bulk field even from a single surface field image, allowing internal structural characterization from only boundary measurements. The frameworks provide efficient ways for analysis and design with incomplete information and allow the direct inverse translation from properties back to materials structures.\n\n![Overall workflow](https://github.com/lamm-mit/FieldCompleter/blob/main/Figure.png)\n\n## 2D Mechanical Field Completion using a DeepFill Model\n**Working directory**\n```\n2D_field_completer\n```\n**Requirements**\n```\nconda env create -f environment.yml\n```\n**Dataset**\n- Example dataset: Stress field (\u0026sigma;\u003csub\u003e11\u003c/sub\u003e) in the 2D digital composites with linear elasticity under uniaxial tension.\n- The dataset can be found in the following link: https://www.dropbox.com/sh/6zkcrw2xzjtjugc/AACWo-znV2ntQC-zcvPc3KDea?dl=0.\n\n**Training**\n- We use transfer learning starting from a pretrained model trained on Places2 dataset (http://places2.csail.mit.edu/download.html).\n- The pretrained checkpoint can be found here: https://www.dropbox.com/sh/eiy0n6xjc0e2a05/AADvGvn75n0WObEqBFwEletQa?dl=0.\n- The hyperparameters and training details can be modified via the configuration file **train-S11-pretrained.yaml**.\n```\npython3 train.py --config configs/train-S11-pretrained.yaml\n```\n\n**Testing**\n- The testing part is stored in **test.ipynb** including 2D field completion and inverse translation from field to geometry. \n- The pretrained checkpoints for DeepFill model and CNN model can be found here: https://www.dropbox.com/sh/1d37uqr0nj73ky9/AADMBbRw8iZgLKy2o4fJlfW3a?dl=0. The paths to checkpoints need to be specified in **test.ipynb**.\n\n## 3D Mechanical Field Completion using a Transformer model\n**Working directory**\n```\n3D_field_completer\n```\n**Requirements**\n```\nconda env create -f environment.yml\n```\n**Dataset**\n- Example dataset: Stress field (\u0026sigma;\u003csub\u003e11\u003c/sub\u003e) in the 3D digital composites with linear elasticity under uniaxial compression.\n- The dataset can be found in the following link: https://www.dropbox.com/sh/5gntfr7ittue5fh/AACE2D-GOeTHhR2zCMcUCXila?dl=0. **S11.npy** store matrix represent all 3D stress fields. **labels_train.npy** and **labels_test.npy** are train/test sequences representing geometries of 3D composites. \n\n**Training**\n- The training starts from scratch.\n- The hyperparameters and training details can be modified directly in **vivit.py**.\n```\npython3 train.py \n```\n\n**Testing**\n- The testing part is stored in **test.ipynb** including 3D field completion and inverse translation from field to geometry. \n- The pretrained checkpoints for ViViT model and CNN model can be found here: https://www.dropbox.com/sh/ulz37l3ang5hfjf/AAB1dr2yX2AJw26bGSE582S4a?dl=0. The paths to checkpoints need to be specified in **test.ipynb**.\n\n\n```\n@article{YangBuehlerAdvMat_2023,\n    title   = {Fill in the Blank: Transferrable Deep Learning Approaches to Recover Missing Physical Field Information},\n    author  = {Z. Yang and M.J. Buehler},\n    journal = {Advanced Materials},\n    year    = {2023},\n    volume  = {},\n    pages   = {},\n    url     = {https://doi.org/10.1002/adma.202301449}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flamm-mit%2Ffieldcompleter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flamm-mit%2Ffieldcompleter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flamm-mit%2Ffieldcompleter/lists"}