File size: 4,279 Bytes
6c3f19f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
---
license: unknown
language:
- en
tags:
- OneScience
- fluid dynamics
- topology optimization
- Gaussian processes
- physics-informed learning
frameworks: PyTorch
---

<p align="center">
  <strong>
    <span style="font-size: 30px;">GP_for_TO</span>
  </strong>
</p>

# Model Overview

GP_for_TO (Physics-informed GP-TO) is a physics-informed Gaussian-process framework for topology optimization developed by researchers at Northwestern University. It jointly optimizes material distributions and physical state variables in complex design domains without requiring an explicit mesh discretization.

Paper: Simultaneous and Meshfree Topology Optimization with Physics-informed Gaussian Processes
https://arxiv.org/abs/2408.03490

# Model Description

GP_for_TO uses a Gaussian-process architecture whose mean function is parameterized by a deep neural network. It provides a mesh-free approach to fluid topology optimization problems such as minimizing dissipated power in Stokes flow.

# Usage

## 1. OneCode

Use the online OneCode environment for an intelligent, one-click AI for Science (AI4S) programming experience:

[Launch OneCode for one-click AI4S programming](https://web-2069360198568017922-iaaj.ksai.scnet.cn:58043/home)

## 2. Manual Setup

**Hardware Requirements**

- A GPU or DCU is recommended.
- A CPU can be used for import checks and small-scale pipeline validation, but full training and inference will be slow.
- DCU users must install DTK in advance. DTK 25.04.2 or later, or the OneScience-recommended version for the target cluster, is recommended.


### Download the Model Package

```bash
modelscope download --model OneScience/GP_for_TO --local_dir ./GP_for_TO
cd GP_for_TO
```

### Set Up the Runtime Environment


**DCU Environment**

```bash
# Activate DTK and Conda first
conda create -n onescience311 python=3.11 -y
conda activate onescience311
# Installation with uv is also supported
pip install onescience[cfd-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/  --trusted-host mirrors.onescience.ai
```

**GPU Environment**
```bash
# Activate Conda first
conda create -n onescience311 python=3.11 -y libstdcxx-ng=12 libgcc-ng=12 gcc_linux-64=12 gxx_linux-64=12
conda activate onescience311
# Installation with uv is also supported
pip install onescience[cfd-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/  --trusted-host mirrors.onescience.ai
```


### Training Data
The method does not rely on pregenerated topology structures or labeled physical fields. Instead, it samples spatial points within the design domain and constructs physics-informed training signals from the governing Stokes-flow equations, boundary conditions, dissipated-power objective, and material volume-fraction constraint. The paper evaluates four fluid topology optimization cases—Rugby, Pipe Bend, Diffuser, and Double Pipe—and compares the results against COMSOL solutions obtained with the SIMP method.

### Training

The default training configuration retains the original settings: `N_col_domain=10000`, `N_train_per_BC=25`, `num_iter=50000`, and `diff_method=Numerical`.

```bash
python scripts/train.py
```
### Model Weights
This repository will provide GP_for_TO model weights in the `weights/` directory. The weights will be uploaded soon.

## Inference

```bash
python scripts/inference.py
```

By default, inference loads `weight/gp_for_to.pt` and produces:

```text
result/inference/predictions.npz
result/inference/inference_summary.json
```

`predictions.npz` contains five arrays: `x`, `u`, `v`, `p`, and `ro`.

## Result Visualization

```bash
python scripts/result.py
```


# Official OneScience Resources

| Platform | OneScience Repository | Skills Repository |
| --- | --- | --- |
| Gitee | https://gitee.com/onescience-ai/onescience | https://gitee.com/onescience-ai/oneskills |
| GitHub | https://github.com/onescience-ai/OneScience | https://github.com/onescience-ai/oneskills |

# Citations and License

- Original GP_for_TO paper: [Simultaneous and Meshfree Topology Optimization with Physics-informed Gaussian Processes](https://arxiv.org/abs/2408.03490).
- This repository retains the relevant source and attribution notices. Follow all applicable license requirements when using, modifying, or distributing its contents.