# System Configuration

> **Critical**: These are the ONLY paths and environments to be used unless explicitly reconfigured by the user.

---

## Python Environment

**Environment Name**: `atomizer`

**Path**: `c:/Users/antoi/anaconda3/envs/atomizer/python.exe`

**Usage**: ALL Python scripts and commands MUST use this environment.

### Examples:
```bash
# Correct
"c:/Users/antoi/anaconda3/envs/atomizer/python.exe" script.py

# WRONG - Never use test_env
"c:/Users/antoi/anaconda3/envs/test_env/python.exe" script.py
```

---

## NX/Simcenter Installation

**Active Installation**: NX 2412

**Base Path**: `C:\Program Files\Siemens\NX2412`

**Key Directories**:
- NX Binaries: `C:\Program Files\Siemens\NX2412\NXBIN`
- Material Library: `C:\Program Files\Siemens\NX2412\UGII\materials`
- Python Stubs: `C:\Program Files\Siemens\NX2412\ugopen\pythonStubs`

### Critical Files:
- **run_journal.exe**: `C:\Program Files\Siemens\NX2412\NXBIN\run_journal.exe`
- **Material Library**: `C:\Program Files\Siemens\NX2412\UGII\materials\physicalmateriallibrary.xml`

### PROHIBITED Paths:
- ❌ `C:\Program Files\Siemens\Simcenter3D_2412` - DO NOT USE
- ❌ Any path containing "Simcenter3D" - DO NOT USE

**Reason**: NX2412 is the primary CAD/CAE environment. Simcenter3D_2412 is a separate installation and should not be accessed unless explicitly configured by the user.

---

## NX Journal Execution

**Command Template**:
```bash
"C:/Program Files/Siemens/NX2412/NXBIN/run_journal.exe" <journal_script.py> -args <arg1> <arg2>
```

**Example**:
```bash
"C:/Program Files/Siemens/NX2412/NXBIN/run_journal.exe" "optimization_engine/import_expressions.py" -args "studies/beam/model/Beam.prt" "studies/beam/model/Beam_study_variables.exp"
```

---

## NXOpen Python Stubs (for Intellisense)

**Path**: `C:\Program Files\Siemens\NX2412\ugopen\pythonStubs`

**VSCode Configuration** (`.vscode/settings.json`):
```json
{
  "python.analysis.extraPaths": [
    "C:\\Program Files\\Siemens\\NX2412\\ugopen\\pythonStubs"
  ],
  "python.analysis.typeCheckingMode": "basic"
}
```

---

## Material Library Access

**Library File**: `C:\Program Files\Siemens\NX2412\UGII\materials\physicalmateriallibrary.xml`

**Format**: MatML XML format

**Properties Available**:
- `Mass_Density__RHO__6` (kg/mm³)
- `Youngs_Modulus_E__31` (Pa)
- `PoissonsRatio` (dimensionless)
- `Yield_Strength_32` (Pa)
- `Thermal_Expansion_A__34` (1/°C)
- `Thermal_Conductivity__K__35` (mW/mm/°C)
- `Specific_Heat_CP__23` (mJ/kg/°C)

**Common Materials**:
- AISI_Steel_1005 (E=200 GPa, ρ=7872 kg/m³, ν=0.25)
- AISI_Steel_4340 (E=193 GPa, ρ=7850 kg/m³, ν=0.284)
- Aluminum_6061-T6 (E=69 GPa, ρ=2700 kg/m³, ν=0.33)
- Titanium_Ti-6Al-4V (E=114 GPa, ρ=4430 kg/m³, ν=0.34)

---

## Nastran Solver

**Solver Path**: Embedded in NX2412 installation

**Input Files**: `.dat` (Nastran bulk data)

**Output Files**:
- `.op2` (binary results - use pyNastran)
- `.f06` (text results - human readable)

**Material Units in .dat files**:
- Young's Modulus: Pa (Pascals)
- Density: kg/mm³
- Poisson's Ratio: dimensionless

---

## Future Expansion

If using a different NX or Simcenter version, the user will explicitly configure:

1. Update this file with new paths
2. Update `nx_updater.py` configuration
3. Update `.vscode/settings.json` for new stub paths

**Until then**: ALWAYS use NX2412 paths as documented above.

---

## Validation Checklist

Before running any NX-related operation, verify:

- ✅ Python command uses `atomizer` environment
- ✅ NX paths point to `NX2412` (NOT Simcenter3D_2412)
- ✅ Material library accessed from `NX2412\UGII\materials`
- ✅ Journal script uses `NX2412\NXBIN\run_journal.exe`

---

**Last Updated**: 2025-11-17
**Maintained By**: Antoine Letarte
**Critical Importance**: HIGH - Incorrect paths will cause system failures
