Skip to content

Commit d29a2ea

Browse files
committed
started flooxs planning
1 parent 25d4a2f commit d29a2ea

8 files changed

Lines changed: 395 additions & 4 deletions

File tree

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,14 @@ nul
5151
# Mac crap
5252
.DS_Store
5353

54+
# TCAD tools (require registration, cannot redistribute)
55+
lookupTableGeneration/FLOOXS_*/
56+
57+
# TCAD simulation outputs (keep .gitkeep and templates)
58+
lookupTableGeneration/simulations/*.out
59+
lookupTableGeneration/simulations/*.log
60+
lookupTableGeneration/simulations/*.str
61+
5462
# Binary/generated files
5563
*.png
5664
*.jpg

AGENTS.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ PiezoD/
2828
│ ├── tests/ # Test suite (empty)
2929
│ ├── examples/ # Usage examples
3030
│ └── archive/ # Legacy/experimental scripts
31-
├── lookupTableGeneration/ # COMSOL simulation scripts
32-
│ ├── simulationControl.py # COMSOL automation
33-
│ ├── postProcessTables.m # Post-processing
34-
│ ├── simulation.template # COMSOL template
31+
├── lookupTableGeneration/ # FLOOXS TCAD simulation (Docker)
32+
│ ├── Dockerfile # FLOOXS build instructions
33+
│ ├── docker-compose.yml # Container service definition
34+
│ ├── simulations/ # Input/output directory
35+
│ ├── postProcessTables.m # Post-processing (legacy)
3536
│ └── lookupTable.mat # Generated data
3637
├── Docs/ # Website (jemdoc)
3738
│ ├── html/ # Generated HTML
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Simulation outputs
2+
simulationInputs/
3+
simulationOutputs/
4+
*.out
5+
6+
# Data files
7+
*.mat
8+
9+
# Documentation
10+
*.md
11+
12+
# Legacy scripts
13+
*.py
14+
*.m
15+
simulation.template
16+
17+
# OS files
18+
.DS_Store
19+
Thumbs.db
20+
21+
# Git
22+
.git/
23+
.gitignore

lookupTableGeneration/Dockerfile

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
FROM ubuntu:24.04
2+
3+
RUN apt-get update && apt-get install -y --no-install-recommends \
4+
build-essential \
5+
cmake \
6+
tcl \
7+
tcl-dev \
8+
tk \
9+
tk-dev \
10+
libsuitesparse-dev \
11+
libplplot-dev \
12+
plplot-tcl \
13+
libopenblas-dev \
14+
&& rm -rf /var/lib/apt/lists/*
15+
16+
# Copy FLOOXS source (user must provide this folder)
17+
COPY FLOOXS_2026/ /opt/flooxs/
18+
19+
# Set environment
20+
ENV FLXSHOME=/opt/flooxs
21+
ENV PL_LIBRARY=/usr/share/plplot5.15.0/tcl/
22+
23+
# Build FLOOXS
24+
WORKDIR /opt/flooxs/src
25+
RUN mkdir -p release && cd release && cmake .. && make -j$(nproc)
26+
27+
# Create working directory for simulations
28+
WORKDIR /work
29+
30+
# The built executable
31+
ENTRYPOINT ["/opt/flooxs/src/release/flooxs"]

lookupTableGeneration/README.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Lookup Table Generation
2+
3+
Generate dopant profile lookup tables for PiezoD using FLOOXS TCAD process simulation.
4+
5+
## Prerequisites
6+
7+
- Docker (with Compose)
8+
- FLOOXS source code (free for academic/research use, requires registration)
9+
10+
Request access: http://www.flooxs.ece.ufl.edu/index.php/Download
11+
12+
## Setup
13+
14+
1. Download FLOOXS source code after registration
15+
2. Extract to `FLOOXS_2026/` in this folder (gitignored, not committed)
16+
3. Build the Docker image (one time):
17+
18+
```bash
19+
docker compose build
20+
```
21+
22+
## Usage
23+
24+
Run a simulation:
25+
26+
```bash
27+
docker compose run --rm flooxs input.tcl
28+
```
29+
30+
Input/output files go in `simulations/` which is mounted into the container.
31+
32+
Interactive shell (for debugging):
33+
34+
```bash
35+
docker compose run --rm flooxs /bin/bash
36+
```
37+
38+
## Workflow
39+
40+
1. Generate inputs - Python script creates FLOOXS input files in `simulations/`
41+
2. Run simulations - `docker compose run` executes FLOOXS on each input
42+
3. Post-process - Python/MATLAB extracts profiles and builds lookup table
43+
44+
## Parameter Space
45+
46+
| Parameter | Values |
47+
|-----------|--------|
48+
| Dopants | Boron, Phosphorus, Arsenic |
49+
| Doses | 2e14, 2e15, 2e16 cm^-2 |
50+
| Energies | 20, 50, 80 keV |
51+
| Anneal times | 15, 30, 45, 60, 75, 90, 105, 120 min |
52+
| Anneal temps | 900, 1000, 1100 C |
53+
| Oxidation | With/without passivation oxide |
54+
55+
Total: 3 x 3 x 3 x 8 x 3 x 2 = 1296 simulations
56+
57+
## Files
58+
59+
| File | Description |
60+
|------|-------------|
61+
| `docker-compose.yml` | Container service definition |
62+
| `Dockerfile` | FLOOXS build instructions |
63+
| `simulations/` | Input/output directory (mounted in container) |
64+
| `postProcessTables.m` | MATLAB post-processor (legacy) |
65+
| `simulation.template` | TSUPREM-4 template (legacy, needs conversion) |
66+
| `simulationControl.py` | Python 2 runner (legacy, needs rewrite) |
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
services:
2+
flooxs:
3+
build: .
4+
image: piezod/flooxs:2026
5+
volumes:
6+
- ./simulations:/work
7+
working_dir: /work

0 commit comments

Comments
 (0)