소스 정보
- 저장소
- Soljourner/claude-engineering-skills
- 최근 소스 활동
- 2025년 11월 7일 22:15
- 감지된 SKILL.md 언어
- 영어
- 스타
- 60
- 포크
- 16
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/Soljourner/claude-engineering-skills --skill ansys-simulation명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Query loss coefficients for pipes, valves, fittings in pump systems
SKILL.md 표시 중
SOC 직업 분류 기준
| name | ansys-simulation |
| description | Automate ANSYS Fluent CFD simulations via Python scripting and journal files |
| category | integrations |
| domain | fluids |
| complexity | advanced |
| dependencies | [] |
Comprehensive guide for automating ANSYS Fluent CFD (Computational Fluid Dynamics) simulations using Python scripting, journal files, and the PyAnsys ecosystem.
ANSYS Fluent is a leading commercial CFD solver used for simulating fluid flow, heat transfer, and related phenomena in complex geometries. This skill covers automation approaches for:
ANSYS products require commercial licenses managed through the ANSYS License Manager:
Fluent License Types:
License Server Setup:
# Set license server environment variable
export ANSYSLMD_LICENSE_FILE=1055@license-server.company.com
# Or in Windows
set ANSYSLMD_LICENSE_FILE=1055@license-server.company.com
License Checkout: Licenses are checked out when starting Fluent and returned on exit
HPC Licensing: Additional licenses required for parallel runs (typically cores/4)
-t flag to specify number of processors for HPC licensingPyAnsys provides a Pythonic interface to ANSYS products, enabling:
# Install PyFluent (for Fluent automation)
pip install ansys-fluent-core
# Install other PyAnsys packages as needed
pip install ansys-mapdl-core # For Mechanical
pip install ansys-dpf-core # For post-processing
pip install ansys-geometry # For geometry operations
from ansys.fluent.core import launch_fluent
# Launch Fluent session
session = launch_fluent(precision='double', processor_count=4, mode='solver')
# Access TUI commands
session.tui.file.read_case('case_file.cas')
# Execute commands
session.tui.solve.iterate(100)
# Clean exit
session.exit()
Journal files are text-based scripts containing TUI commands executed sequentially by Fluent.
; Comments start with semicolon
; Commands follow TUI menu structure
/file/read-case case_file.cas
/solve/initialize/initialize-flow
/solve/iterate 1000
/file/write-data result.dat
/exit yes
# Run Fluent in batch mode with journal file
fluent 3ddp -g -i journal.jou > fluent.log
# Flags:
# 3ddp: 3D double precision
# -g: Run without GUI
# -i: Input journal file
# -t4: Use 4 processors
Via PyFluent:
from ansys.fluent.core import launch_fluent
solver = launch_fluent(precision='double', processor_count=4)
# Import geometry
solver.tui.file.import_.cad_geometry(
'geometry.scdoc',
'yes' # Confirm import
)
Via Journal File:
/file/import/cad-geometry geometry.step yes
Mesh Generation Strategy:
PyFluent Meshing:
from ansys.fluent.core import launch_fluent
meshing = launch_fluent(precision='double', processor_count=4, mode='meshing')
# Import geometry
meshing.workflow.InitializeWorkflow(WorkflowType='Watertight Geometry')
# Set meshing parameters
meshing.meshing.GlobalSettings.set_state({
'MaxSize': 0.1,
'MinSize': 0.001,
'GrowthRate': 1.2
})
# Generate mesh
meshing.meshing.GenerateMesh()
# Switch to solver
solver = meshing.switch_to_solver()
Journal File Meshing:
/mesh/scale 0.001 0.001 0.001
/mesh/check
/mesh/repair-improve/repair
Turbulence Models:
Material Properties:
PyFluent Physics Setup:
# Enable energy equation
solver.tui.define.models.energy('yes')
# Set turbulence model (k-omega SST)
solver.tui.define.models.viscous.kw_sst('yes')
# Define material properties
solver.tui.define.materials.change_create(
'water-liquid',
'water',
'yes',
'constant',
998.2, # Density
'yes',
'constant',
0.001003 # Viscosity
)
# Assign material to cell zone
solver.tui.define.boundary_conditions.fluid(
'fluid-zone',
'yes',
'water',
'no',
'no',
'no',
'no',
0,
'no',
0,
'no',
0,
'no',
'no'
)
Journal File Physics:
/define/models/energy yes no no no no
/define/models/viscous kw-sst yes
/define/materials/change-create air air yes constant 1.225 yes constant 1.7894e-05
Common BC Types:
PyFluent BC Setup:
# Velocity inlet
solver.tui.define.boundary_conditions.velocity_inlet(
'inlet',
'yes',
'no',
'yes',
'yes',
'no',
10, # Velocity magnitude (m/s)
'no',
0,
'no',
0,
'no',
300, # Temperature
'no'
)
# Pressure outlet
solver.tui.define.boundary_conditions.pressure_outlet(
'outlet',
'yes',
'no',
0, # Gauge pressure
'no',
300,
'no',
'yes'
)
# Wall with no-slip
solver.tui.define.boundary_conditions.wall(
'wall',
'yes',
'no',
'no',
0,
'no',
0,
'no',
'yes',
'no',
0
)
Solution Methods:
PyFluent Solver Configuration:
# Set pressure-velocity coupling
solver.tui.solve.set.p_v_coupling(24) # 24 = Coupled
# Set discretization schemes
solver.tui.solve.set.discretization_scheme.pressure(12) # Second order
solver.tui.solve.set.discretization_scheme.mom(1) # Second order upwind
solver.tui.solve.set.discretization_scheme.k(1)
solver.tui.solve.set.discretization_scheme.omega(1)
# Set under-relaxation factors
solver.tui.solve.set.under_relaxation.pressure(0.3)
solver.tui.solve.set.under_relaxation.mom(0.7)
# Initialize flow field
solver.tui.solve.initialize.initialize_flow()
# Run iterations
solver.tui.solve.iterate(1000)
Convergence Criteria:
# Set residual convergence criteria
solver.tui.solve.monitors.residual.convergence_criteria(
'1e-6', # continuity
'1e-6', # x-velocity
'1e-6', # y-velocity
'1e-6', # z-velocity
'1e-6', # energy
'1e-6', # k
'1e-6' # omega
)
Data Extraction:
# Create surface for reporting
solver.tui.surface.iso_surface(
'pressure',
'iso-surface-1',
'fluid-zone',
'()',
101325
)
# Export data
solver.tui.file.export.ascii(
'surface-data.csv',
'iso-surface-1',
'()',
'yes',
'pressure',
'velocity-magnitude',
'()'
)
# Calculate force on wall
solver.tui.report.forces.wall_forces(
'yes',
'wall-zone',
'()',
'yes',
'no',
'yes'
)
Visualization:
# Generate contour plot (requires GUI mode or visualization package)
solver.tui.display.set.contours.filled_contours('yes')
solver.tui.display.contour(
'pressure',
'pressure',
0,
0,
'surface-1',
'()'
)
# Save image
solver.tui.display.save_picture('pressure_contour.png')
#!/bin/bash
# batch_fluent.sh
# Set license server
export ANSYSLMD_LICENSE_FILE=1055@license-server.com
# Set number of processors
NPROCS=8
# Run Fluent in batch mode
fluent 3ddp -g -t${NPROCS} -i simulation.jou > fluent_${NPROCS}cores.log 2>&1
# Check exit status
if [ $? -eq 0 ]; then
echo "Simulation completed successfully"
else
echo "Simulation failed - check log file"
exit 1
fi
@echo off
REM batch_fluent.bat
set ANSYSLMD_LICENSE_FILE=1055@license-server.com
set NPROCS=8
"C:\Program Files\ANSYS Inc\v241\fluent\ntbin\win64\fluent.exe" 3ddp -g -t%NPROCS% -i simulation.jou > fluent.log 2>&1
if %ERRORLEVEL% EQU 0 (
echo Simulation completed successfully
) else (
echo Simulation failed - check log file
exit /b 1
)
import subprocess
import os
from pathlib import Path
def run_fluent_batch(journal_file, num_procs=4, log_file='fluent.log'):
"""
Run Fluent in batch mode with journal file.
Args:
journal_file: Path to journal file
num_procs: Number of processors
log_file: Output log file name
Returns:
bool: True if successful, False otherwise
"""
# Set license server
os.environ['ANSYSLMD_LICENSE_FILE'] = '1055@license-server.com'
# Build command
cmd = [
'fluent',
'3ddp', # 3D double precision
'-g', # No GUI
f'-t{num_procs}', # Number of processors
'-i', journal_file
]
# Run simulation
with open(log_file, 'w') as log:
result = subprocess.run(
cmd,
stdout=log,
stderr=subprocess.STDOUT,
text=True
)
return result.returncode == 0
# Example usage
if __name__ == '__main__':
success = run_fluent_batch(
journal_file='simulation.jou',
num_procs=8,
log_file='fluent_run.log'
)
if success:
print("Simulation completed successfully")
else:
print()
import numpy as np
from ansys.fluent.core import launch_fluent
def parametric_study(velocities, case_file):
"""
Run parametric study varying inlet velocity.
Args:
velocities: List of inlet velocities to test
case_file: Base case file
"""
results = {}
for velocity in velocities:
print(f"Running simulation with velocity = {velocity} m/s")
# Launch Fluent
solver = launch_fluent(precision='double', processor_count=4)
# Read base case
solver.tui.file.read_case(case_file)
# Modify inlet velocity
solver.tui.define.boundary_conditions.velocity_inlet(
'inlet',
'yes', 'no', 'yes', 'yes', 'no',
velocity,
'no', 0, 'no', 0, 'no', 300, 'no'
)
# Initialize and solve
solver.tui.solve.initialize.initialize_flow()
solver.tui.solve.iterate(500)
# Extract results
# (Add result extraction here)
# Save case and data
output_file = f'result_v{velocity}.cas.h5'
solver.tui.file.write_case_data(output_file)
solver.exit()
results[velocity] = output_file
return results
# Run parametric study
velocities = np.linspace(, , )
results = parametric_study(velocities, )
-print flag in journal files for debugging