feat: Update create-study skill with Phase 1.3 logging and create UAV arm test study
Phase 1.3.1 Complete - Logging Integration: 1. Updated .claude/skills/create-study.md: - Added IMPORTANT section on structured logging from Phase 1.3 - Documents logger import and initialization - Lists all structured logging methods (trial_start, trial_complete, etc.) - References drone_gimbal_arm as template 2. Created studies/uav_arm_optimization/: - Multi-objective NSGA-II study (50 trials) - Same type as drone_gimbal_arm but renamed for UAV context - Full integration with Phase 1.3 logging system - Configuration: minimize mass + maximize frequency - Running to validate complete logging system Benefits: - All future studies created via skill will have consistent logging - Production-ready error handling and file logging from day 1 - Color-coded console output for better monitoring - Automatic log rotation (50MB, 3 backups) Related: Phase 1.2 (Configuration), Phase 1.3 (Logger), Phase 1.3.1 (Integration) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -237,6 +237,18 @@ Generate a complete Python script based on protocol:
|
||||
- Storage location
|
||||
- Results display and dashboard instructions
|
||||
|
||||
**IMPORTANT**: Always include structured logging from Phase 1.3:
|
||||
- Import: `from optimization_engine.logger import get_logger`
|
||||
- Initialize in main(): `logger = get_logger("{study_name}", study_dir=results_dir)`
|
||||
- Replace all print() with logger.info/warning/error
|
||||
- Use structured methods:
|
||||
- `logger.study_start(study_name, n_trials, sampler)`
|
||||
- `logger.trial_start(trial.number, design_vars)`
|
||||
- `logger.trial_complete(trial.number, objectives, constraints, feasible)`
|
||||
- `logger.trial_failed(trial.number, error)`
|
||||
- `logger.study_complete(study_name, n_trials, n_successful)`
|
||||
- Error handling: `logger.error("message", exc_info=True)` for tracebacks
|
||||
|
||||
**Template**: Use [studies/drone_gimbal_arm_optimization/run_optimization.py](../studies/drone_gimbal_arm_optimization/run_optimization.py:1) as reference
|
||||
|
||||
### 4. reset_study.py
|
||||
|
||||
BIN
studies/uav_arm_optimization/1_setup/model/Beam.prt
Normal file
BIN
studies/uav_arm_optimization/1_setup/model/Beam.prt
Normal file
Binary file not shown.
BIN
studies/uav_arm_optimization/1_setup/model/Beam_fem1.fem
Normal file
BIN
studies/uav_arm_optimization/1_setup/model/Beam_fem1.fem
Normal file
Binary file not shown.
BIN
studies/uav_arm_optimization/1_setup/model/Beam_fem1_i.prt
Normal file
BIN
studies/uav_arm_optimization/1_setup/model/Beam_fem1_i.prt
Normal file
Binary file not shown.
BIN
studies/uav_arm_optimization/1_setup/model/Beam_sim1.sim
Normal file
BIN
studies/uav_arm_optimization/1_setup/model/Beam_sim1.sim
Normal file
Binary file not shown.
@@ -0,0 +1 @@
|
||||
4.289393245091135
|
||||
@@ -0,0 +1,333 @@
|
||||
# Auto-generated journal for solving Beam_sim1.sim
|
||||
import sys
|
||||
sys.argv = ['', r'C:\Users\antoi\Documents\Atomaste\Atomizer\studies\uav_arm_optimization\1_setup\model\Beam_sim1.sim', None, 'beam_half_core_thickness=5.543272595780111', 'beam_face_thickness=2.36655422332811', 'holes_diameter=27.930376572591207', 'hole_count=13.212098121132765'] # Set argv for the main function
|
||||
"""
|
||||
NX Journal Script to Solve Simulation in Batch Mode
|
||||
|
||||
This script opens a .sim file, updates the FEM, and solves it through the NX API.
|
||||
Usage: run_journal.exe solve_simulation.py <sim_file_path>
|
||||
|
||||
Based on recorded NX journal pattern for solving simulations.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import NXOpen
|
||||
import NXOpen.Assemblies
|
||||
import NXOpen.CAE
|
||||
|
||||
|
||||
def main(args):
|
||||
"""
|
||||
Open and solve a simulation file with updated expression values.
|
||||
|
||||
Args:
|
||||
args: Command line arguments
|
||||
args[0]: .sim file path
|
||||
args[1]: solution_name (optional, e.g., "Solution_Normal_Modes" or None for default)
|
||||
args[2+]: expression updates as "name=value" pairs
|
||||
"""
|
||||
if len(args) < 1:
|
||||
print("ERROR: No .sim file path provided")
|
||||
print("Usage: run_journal.exe solve_simulation.py <sim_file_path> [solution_name] [expr1=val1] [expr2=val2] ...")
|
||||
return False
|
||||
|
||||
sim_file_path = args[0]
|
||||
|
||||
# Parse solution name if provided (args[1])
|
||||
solution_name = args[1] if len(args) > 1 and args[1] != 'None' else None
|
||||
|
||||
# Extract base name from sim file (e.g., "Beam_sim1.sim" -> "Beam")
|
||||
import os
|
||||
sim_filename = os.path.basename(sim_file_path)
|
||||
part_base_name = sim_filename.split('_sim')[0] if '_sim' in sim_filename else sim_filename.split('.sim')[0]
|
||||
|
||||
# Parse expression updates from args[2+] as "name=value" pairs
|
||||
expression_updates = {}
|
||||
for arg in args[2:]:
|
||||
if '=' in arg:
|
||||
name, value = arg.split('=', 1)
|
||||
expression_updates[name] = float(value)
|
||||
|
||||
print(f"[JOURNAL] Opening simulation: {sim_file_path}")
|
||||
print(f"[JOURNAL] Detected part base name: {part_base_name}")
|
||||
if solution_name:
|
||||
print(f"[JOURNAL] Will solve specific solution: {solution_name}")
|
||||
else:
|
||||
print(f"[JOURNAL] Will solve default solution (Solution 1)")
|
||||
if expression_updates:
|
||||
print(f"[JOURNAL] Will update expressions:")
|
||||
for name, value in expression_updates.items():
|
||||
print(f"[JOURNAL] {name} = {value}")
|
||||
|
||||
try:
|
||||
theSession = NXOpen.Session.GetSession()
|
||||
|
||||
# Set load options to load linked parts from directory
|
||||
print("[JOURNAL] Setting load options for linked parts...")
|
||||
import os
|
||||
working_dir = os.path.dirname(os.path.abspath(sim_file_path))
|
||||
|
||||
# Complete load options setup (from recorded journal)
|
||||
theSession.Parts.LoadOptions.LoadLatest = False
|
||||
theSession.Parts.LoadOptions.ComponentLoadMethod = NXOpen.LoadOptions.LoadMethod.FromDirectory
|
||||
|
||||
searchDirectories = [working_dir]
|
||||
searchSubDirs = [True]
|
||||
theSession.Parts.LoadOptions.SetSearchDirectories(searchDirectories, searchSubDirs)
|
||||
|
||||
theSession.Parts.LoadOptions.ComponentsToLoad = NXOpen.LoadOptions.LoadComponents.All
|
||||
theSession.Parts.LoadOptions.PartLoadOption = NXOpen.LoadOptions.LoadOption.FullyLoad
|
||||
theSession.Parts.LoadOptions.SetInterpartData(True, NXOpen.LoadOptions.Parent.All)
|
||||
theSession.Parts.LoadOptions.AllowSubstitution = False
|
||||
theSession.Parts.LoadOptions.GenerateMissingPartFamilyMembers = True
|
||||
theSession.Parts.LoadOptions.AbortOnFailure = False
|
||||
|
||||
referenceSets = ["As Saved", "Use Simplified", "Use Model", "Entire Part", "Empty"]
|
||||
theSession.Parts.LoadOptions.SetDefaultReferenceSets(referenceSets)
|
||||
theSession.Parts.LoadOptions.ReferenceSetOverride = False
|
||||
|
||||
print(f"[JOURNAL] Load directory set to: {working_dir}")
|
||||
|
||||
# Close any currently open sim file to force reload from disk
|
||||
print("[JOURNAL] Checking for open parts...")
|
||||
try:
|
||||
current_work = theSession.Parts.BaseWork
|
||||
if current_work and hasattr(current_work, 'FullPath'):
|
||||
current_path = current_work.FullPath
|
||||
print(f"[JOURNAL] Closing currently open part: {current_path}")
|
||||
# Close without saving (we want to reload from disk)
|
||||
partCloseResponses1 = [NXOpen.BasePart.CloseWholeTree]
|
||||
theSession.Parts.CloseAll(partCloseResponses1)
|
||||
print("[JOURNAL] Parts closed")
|
||||
except Exception as e:
|
||||
print(f"[JOURNAL] No parts to close or error closing: {e}")
|
||||
|
||||
# Open the .sim file (now will load fresh from disk with updated .prt files)
|
||||
print(f"[JOURNAL] Opening simulation fresh from disk...")
|
||||
basePart1, partLoadStatus1 = theSession.Parts.OpenActiveDisplay(
|
||||
sim_file_path,
|
||||
NXOpen.DisplayPartOption.AllowAdditional
|
||||
)
|
||||
|
||||
workSimPart = theSession.Parts.BaseWork
|
||||
displaySimPart = theSession.Parts.BaseDisplay
|
||||
|
||||
print(f"[JOURNAL] Simulation opened successfully")
|
||||
partLoadStatus1.Dispose()
|
||||
|
||||
# Switch to simulation application
|
||||
theSession.ApplicationSwitchImmediate("UG_APP_SFEM")
|
||||
|
||||
simPart1 = workSimPart
|
||||
theSession.Post.UpdateUserGroupsFromSimPart(simPart1)
|
||||
|
||||
# STEP 1: Try to switch to part and update expressions (optional for some models)
|
||||
print(f"[JOURNAL] STEP 1: Checking for {part_base_name}.prt geometry...")
|
||||
geometry_updated = False
|
||||
try:
|
||||
# Find the main part (may not exist for embedded geometry models)
|
||||
bracketPart = None
|
||||
try:
|
||||
bracketPart = theSession.Parts.FindObject(part_base_name)
|
||||
except:
|
||||
pass
|
||||
|
||||
if bracketPart:
|
||||
print(f"[JOURNAL] Found {part_base_name} part, updating geometry...")
|
||||
# Make Bracket the active display part
|
||||
status, partLoadStatus = theSession.Parts.SetActiveDisplay(
|
||||
bracketPart,
|
||||
NXOpen.DisplayPartOption.AllowAdditional,
|
||||
NXOpen.PartDisplayPartWorkPartOption.UseLast
|
||||
)
|
||||
partLoadStatus.Dispose()
|
||||
|
||||
workPart = theSession.Parts.Work
|
||||
|
||||
# CRITICAL: Apply expression changes BEFORE updating geometry
|
||||
expressions_updated = []
|
||||
|
||||
# Apply all expression updates dynamically
|
||||
for expr_name, expr_value in expression_updates.items():
|
||||
print(f"[JOURNAL] Applying {expr_name} = {expr_value}")
|
||||
try:
|
||||
expr_obj = workPart.Expressions.FindObject(expr_name)
|
||||
if expr_obj:
|
||||
# Use millimeters as default unit for geometric parameters
|
||||
unit_mm = workPart.UnitCollection.FindObject("MilliMeter")
|
||||
workPart.Expressions.EditExpressionWithUnits(expr_obj, unit_mm, str(expr_value))
|
||||
expressions_updated.append(expr_obj)
|
||||
print(f"[JOURNAL] {expr_name} updated successfully")
|
||||
else:
|
||||
print(f"[JOURNAL] WARNING: {expr_name} expression not found!")
|
||||
except Exception as e:
|
||||
print(f"[JOURNAL] ERROR updating {expr_name}: {e}")
|
||||
|
||||
# Make expressions up to date
|
||||
if expressions_updated:
|
||||
print(f"[JOURNAL] Making {len(expressions_updated)} expression(s) up to date...")
|
||||
for expr in expressions_updated:
|
||||
markId_expr = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "Make Up to Date")
|
||||
objects1 = [expr]
|
||||
theSession.UpdateManager.MakeUpToDate(objects1, markId_expr)
|
||||
theSession.DeleteUndoMark(markId_expr, None)
|
||||
|
||||
# CRITICAL: Update the geometry model - rebuilds features with new expressions
|
||||
print(f"[JOURNAL] Rebuilding geometry with new expression values...")
|
||||
markId_update = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "NX update")
|
||||
nErrs = theSession.UpdateManager.DoUpdate(markId_update)
|
||||
theSession.DeleteUndoMark(markId_update, "NX update")
|
||||
print(f"[JOURNAL] {part_base_name} geometry updated ({nErrs} errors)")
|
||||
|
||||
# Extract mass from expression p173 if it exists and write to temp file
|
||||
try:
|
||||
mass_expr = workPart.Expressions.FindObject("p173")
|
||||
if mass_expr:
|
||||
mass_kg = mass_expr.Value
|
||||
mass_output_file = os.path.join(working_dir, "_temp_mass.txt")
|
||||
with open(mass_output_file, 'w') as f:
|
||||
f.write(str(mass_kg))
|
||||
print(f"[JOURNAL] Mass from p173: {mass_kg:.6f} kg ({mass_kg * 1000:.2f} g)")
|
||||
print(f"[JOURNAL] Mass written to: {mass_output_file}")
|
||||
except:
|
||||
pass # Expression p173 might not exist in all models
|
||||
|
||||
geometry_updated = True
|
||||
else:
|
||||
print(f"[JOURNAL] {part_base_name} part not found - may be embedded in sim file")
|
||||
except Exception as e:
|
||||
print(f"[JOURNAL] Could not update {part_base_name}.prt: {e}")
|
||||
print(f"[JOURNAL] Continuing with sim-only solve...")
|
||||
|
||||
# STEP 2: Try to switch to FEM part and update (optional for some models)
|
||||
fem_part_name = f"{part_base_name}_fem1"
|
||||
print(f"[JOURNAL] STEP 2: Checking for {fem_part_name}.fem...")
|
||||
fem_updated = False
|
||||
try:
|
||||
# Find the FEM part (may not exist or may have different name)
|
||||
femPart1 = None
|
||||
try:
|
||||
femPart1 = theSession.Parts.FindObject(fem_part_name)
|
||||
except:
|
||||
# Try with _i suffix for idealized FEM
|
||||
try:
|
||||
femPart1 = theSession.Parts.FindObject(f"{fem_part_name}_i")
|
||||
except:
|
||||
pass
|
||||
|
||||
if femPart1:
|
||||
print(f"[JOURNAL] Found FEM part, updating...")
|
||||
# Make FEM the active display part
|
||||
status, partLoadStatus = theSession.Parts.SetActiveDisplay(
|
||||
femPart1,
|
||||
NXOpen.DisplayPartOption.AllowAdditional,
|
||||
NXOpen.PartDisplayPartWorkPartOption.SameAsDisplay
|
||||
)
|
||||
partLoadStatus.Dispose()
|
||||
|
||||
workFemPart = theSession.Parts.BaseWork
|
||||
|
||||
# CRITICAL: Update FE Model - regenerates FEM with new geometry
|
||||
print("[JOURNAL] Updating FE Model...")
|
||||
fEModel1 = workFemPart.FindObject("FEModel")
|
||||
if fEModel1:
|
||||
fEModel1.UpdateFemodel()
|
||||
print("[JOURNAL] FE Model updated with new geometry!")
|
||||
fem_updated = True
|
||||
else:
|
||||
print("[JOURNAL] WARNING: Could not find FEModel object")
|
||||
else:
|
||||
print(f"[JOURNAL] FEM part not found - may be embedded in sim file")
|
||||
except Exception as e:
|
||||
print(f"[JOURNAL] Could not update FEM: {e}")
|
||||
print(f"[JOURNAL] Continuing with sim-only solve...")
|
||||
|
||||
# STEP 3: Switch back to sim part
|
||||
print("[JOURNAL] STEP 3: Switching back to sim part...")
|
||||
try:
|
||||
status, partLoadStatus = theSession.Parts.SetActiveDisplay(
|
||||
simPart1,
|
||||
NXOpen.DisplayPartOption.AllowAdditional,
|
||||
NXOpen.PartDisplayPartWorkPartOption.UseLast
|
||||
)
|
||||
partLoadStatus.Dispose()
|
||||
workSimPart = theSession.Parts.BaseWork
|
||||
print("[JOURNAL] Switched back to sim part")
|
||||
except Exception as e:
|
||||
print(f"[JOURNAL] WARNING: Error switching to sim part: {e}")
|
||||
|
||||
# Note: Old output files are deleted by nx_solver.py before calling this journal
|
||||
# This ensures NX performs a fresh solve
|
||||
|
||||
# Solve the simulation
|
||||
print("[JOURNAL] Starting solve...")
|
||||
markId3 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Visible, "Start")
|
||||
theSession.SetUndoMarkName(markId3, "Solve Dialog")
|
||||
|
||||
markId5 = theSession.SetUndoMark(NXOpen.Session.MarkVisibility.Invisible, "Solve")
|
||||
|
||||
theCAESimSolveManager = NXOpen.CAE.SimSolveManager.GetSimSolveManager(theSession)
|
||||
|
||||
# Get the simulation object
|
||||
simSimulation1 = workSimPart.FindObject("Simulation")
|
||||
|
||||
# Get the solution(s) to solve - either specific or all
|
||||
if solution_name:
|
||||
# Solve specific solution in background mode
|
||||
solution_obj_name = f"Solution[{solution_name}]"
|
||||
print(f"[JOURNAL] Looking for solution: {solution_obj_name}")
|
||||
simSolution1 = simSimulation1.FindObject(solution_obj_name)
|
||||
psolutions1 = [simSolution1]
|
||||
|
||||
numsolutionssolved1, numsolutionsfailed1, numsolutionsskipped1 = theCAESimSolveManager.SolveChainOfSolutions(
|
||||
psolutions1,
|
||||
NXOpen.CAE.SimSolution.SolveOption.Solve,
|
||||
NXOpen.CAE.SimSolution.SetupCheckOption.CompleteDeepCheckAndOutputErrors,
|
||||
NXOpen.CAE.SimSolution.SolveMode.Background
|
||||
)
|
||||
else:
|
||||
# Solve ALL solutions using SolveAllSolutions API (Foreground mode)
|
||||
# This ensures all solutions (static + modal, etc.) complete before returning
|
||||
print(f"[JOURNAL] Solving all solutions using SolveAllSolutions API (Foreground mode)...")
|
||||
|
||||
numsolutionssolved1, numsolutionsfailed1, numsolutionsskipped1 = theCAESimSolveManager.SolveAllSolutions(
|
||||
NXOpen.CAE.SimSolution.SolveOption.Solve,
|
||||
NXOpen.CAE.SimSolution.SetupCheckOption.CompleteCheckAndOutputErrors,
|
||||
NXOpen.CAE.SimSolution.SolveMode.Foreground,
|
||||
False
|
||||
)
|
||||
|
||||
theSession.DeleteUndoMark(markId5, None)
|
||||
theSession.SetUndoMarkName(markId3, "Solve")
|
||||
|
||||
print(f"[JOURNAL] Solve completed!")
|
||||
print(f"[JOURNAL] Solutions solved: {numsolutionssolved1}")
|
||||
print(f"[JOURNAL] Solutions failed: {numsolutionsfailed1}")
|
||||
print(f"[JOURNAL] Solutions skipped: {numsolutionsskipped1}")
|
||||
|
||||
# NOTE: When solution_name=None, we use Foreground mode to ensure all solutions
|
||||
# complete before returning. When solution_name is specified, Background mode is used.
|
||||
|
||||
# Save the simulation to write all output files
|
||||
print("[JOURNAL] Saving simulation to ensure output files are written...")
|
||||
simPart2 = workSimPart
|
||||
partSaveStatus1 = simPart2.Save(
|
||||
NXOpen.BasePart.SaveComponents.TrueValue,
|
||||
NXOpen.BasePart.CloseAfterSave.FalseValue
|
||||
)
|
||||
partSaveStatus1.Dispose()
|
||||
print("[JOURNAL] Save complete!")
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"[JOURNAL] ERROR: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
return False
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
success = main(sys.argv[1:])
|
||||
sys.exit(0 if success else 1)
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T106288_10'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T106288_10'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T113928_10'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T113928_10'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T115452_21'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T115452_21'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T120588_4'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T120588_4'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T132136_36'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T132136_36'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T134884_21'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T134884_21'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T138892_52'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T138892_52'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T140160_11'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T140160_11'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T144120_57'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T144120_57'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T144860_53'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T144860_53'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T147072_45'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T147072_45'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T155360_6'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T155360_6'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T165344_2'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T165344_2'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T172048_1'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T172048_1'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T173684_49'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T173684_49'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T3508_15'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T3508_15'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T46728_3'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T46728_3'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T46728_6'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T46728_6'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T52796_54'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T52796_54'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T55992_32'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T55992_32'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T57492_19'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T57492_19'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T70416_53'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T70416_53'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T78708_46'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T78708_46'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
@@ -0,0 +1,32 @@
|
||||
Nastran BUFFSIZE=32769 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[1])
|
||||
Nastran BUFFPOOL=20.0X $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[4])
|
||||
Nastran DIAGA=128 DIAGB=0 $(c:/program files/siemens/simcenter3d_2412/nxnastran/conf/nastran.rcf[7])
|
||||
Nastran REAL=8545370112 $(Memory limit for MPI and other specialized modules)
|
||||
JID='C:\Users\antoi\Documents\Atomaste\Atomizer\studies\drone_gimbal_arm_optimization\1_setup\model\beam_sim1-solution_1.dat'
|
||||
OUT='./beam_sim1-solution_1'
|
||||
MEM=3846123520
|
||||
MACH='Intel64 Family 6 Model 183 Stepping 1'
|
||||
OPER='Windows 10'
|
||||
OSV=' '
|
||||
MODEL='Intel(R) Core(TM) i7-14700HX (AntoineThinkpad)'
|
||||
CONFIG=8666
|
||||
NPROC=28
|
||||
symbol=DELDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/del' $(program default)
|
||||
symbol=DEMODIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/demo' $(program default)
|
||||
symbol=SSSALTERDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/misc/sssalter' $(program default)
|
||||
symbol=TPLDIR='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/tpl' $(program default)
|
||||
SDIR='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T99240_1'
|
||||
DBS='c:/users/antoi/appdata/local/temp/beam_sim1-solution_1.T99240_1'
|
||||
SCR=yes
|
||||
SMEM=20.0X
|
||||
NEWDEL='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/SSS'
|
||||
DEL='NXNDEF'
|
||||
AUTH='29000@AntoineThinkpad'
|
||||
AUTHQUE=0
|
||||
MSGCAT='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/em64tntl/analysis.msg'
|
||||
MSGDEST='f06'
|
||||
PROG=bundle
|
||||
NEWS='c:/program files/siemens/simcenter3d_2412/nxnastran/scnas/nast/news.txt'
|
||||
UMATLIB='libnxumat.dll'
|
||||
UCRPLIB='libucreep.dll'
|
||||
USOLLIB='libusol.dll'
|
||||
128
studies/uav_arm_optimization/1_setup/optimization_config.json
Normal file
128
studies/uav_arm_optimization/1_setup/optimization_config.json
Normal file
@@ -0,0 +1,128 @@
|
||||
{
|
||||
"study_name": "uav_arm_optimization",
|
||||
"description": "UAV Camera Support Arm - Multi-Objective Lightweight Design",
|
||||
"engineering_context": "Unmanned aerial vehicle camera gimbal arm. Target: lighter than current 145g design while maintaining camera stability under 850g payload. Must avoid resonance with rotor frequencies (80-120 Hz).",
|
||||
|
||||
"optimization_settings": {
|
||||
"protocol": "protocol_11_multi_objective",
|
||||
"n_trials": 30,
|
||||
"sampler": "NSGAIISampler",
|
||||
"pruner": null,
|
||||
"timeout_per_trial": 600
|
||||
},
|
||||
|
||||
"design_variables": [
|
||||
{
|
||||
"parameter": "beam_half_core_thickness",
|
||||
"bounds": [5, 10],
|
||||
"description": "Half thickness of beam core (mm) - affects weight and stiffness"
|
||||
},
|
||||
{
|
||||
"parameter": "beam_face_thickness",
|
||||
"bounds": [1, 3],
|
||||
"description": "Thickness of beam face sheets (mm) - bending resistance"
|
||||
},
|
||||
{
|
||||
"parameter": "holes_diameter",
|
||||
"bounds": [10, 50],
|
||||
"description": "Diameter of lightening holes (mm) - weight reduction"
|
||||
},
|
||||
{
|
||||
"parameter": "hole_count",
|
||||
"bounds": [8, 14],
|
||||
"description": "Number of lightening holes - balance weight vs strength"
|
||||
}
|
||||
],
|
||||
|
||||
"objectives": [
|
||||
{
|
||||
"name": "mass",
|
||||
"goal": "minimize",
|
||||
"weight": 1.0,
|
||||
"description": "Total mass (grams) - minimize for longer flight time",
|
||||
"target": 4000,
|
||||
"extraction": {
|
||||
"action": "extract_mass",
|
||||
"domain": "result_extraction",
|
||||
"params": {
|
||||
"result_type": "mass",
|
||||
"metric": "total"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "fundamental_frequency",
|
||||
"goal": "maximize",
|
||||
"weight": 1.0,
|
||||
"description": "First natural frequency (Hz) - avoid rotor resonance",
|
||||
"target": 150,
|
||||
"extraction": {
|
||||
"action": "extract_frequency",
|
||||
"domain": "result_extraction",
|
||||
"params": {
|
||||
"result_type": "frequency",
|
||||
"mode_number": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
"constraints": [
|
||||
{
|
||||
"name": "max_displacement_limit",
|
||||
"type": "less_than",
|
||||
"threshold": 1.5,
|
||||
"description": "Maximum tip displacement under 850g camera load < 1.5mm for image stabilization",
|
||||
"extraction": {
|
||||
"action": "extract_displacement",
|
||||
"domain": "result_extraction",
|
||||
"params": {
|
||||
"result_type": "displacement",
|
||||
"metric": "max"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "max_stress_limit",
|
||||
"type": "less_than",
|
||||
"threshold": 120,
|
||||
"description": "Maximum von Mises stress < 120 MPa (Al 6061-T6, SF=2.3)",
|
||||
"extraction": {
|
||||
"action": "extract_stress",
|
||||
"domain": "result_extraction",
|
||||
"params": {
|
||||
"result_type": "stress",
|
||||
"metric": "max_von_mises"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "min_frequency_limit",
|
||||
"type": "greater_than",
|
||||
"threshold": 150,
|
||||
"description": "Natural frequency > 150 Hz to avoid rotor frequencies (80-120 Hz safety margin)",
|
||||
"extraction": {
|
||||
"action": "extract_frequency",
|
||||
"domain": "result_extraction",
|
||||
"params": {
|
||||
"result_type": "frequency",
|
||||
"mode_number": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
"simulation": {
|
||||
"model_file": "Beam.prt",
|
||||
"sim_file": "Beam_sim1.sim",
|
||||
"fem_file": "Beam_fem1.fem",
|
||||
"solver": "nastran",
|
||||
"analysis_types": ["static", "modal"]
|
||||
},
|
||||
|
||||
"reporting": {
|
||||
"generate_plots": true,
|
||||
"save_incremental": true,
|
||||
"llm_summary": false
|
||||
}
|
||||
}
|
||||
103
studies/uav_arm_optimization/1_setup/workflow_config.json
Normal file
103
studies/uav_arm_optimization/1_setup/workflow_config.json
Normal file
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"study_name": "drone_gimbal_arm_optimization",
|
||||
"optimization_request": "Multi-objective: minimize mass + maximize natural frequency, subject to displacement < 1.5mm, stress < 120 MPa, frequency > 150 Hz",
|
||||
|
||||
"design_variables": [
|
||||
{
|
||||
"parameter": "beam_half_core_thickness",
|
||||
"bounds": [20, 30],
|
||||
"description": "Half thickness of beam core in mm"
|
||||
},
|
||||
{
|
||||
"parameter": "beam_face_thickness",
|
||||
"bounds": [1, 3],
|
||||
"description": "Thickness of beam face sheets in mm"
|
||||
},
|
||||
{
|
||||
"parameter": "holes_diameter",
|
||||
"bounds": [180, 280],
|
||||
"description": "Diameter of lightening holes in mm"
|
||||
},
|
||||
{
|
||||
"parameter": "hole_count",
|
||||
"bounds": [8, 14],
|
||||
"description": "Number of lightening holes"
|
||||
}
|
||||
],
|
||||
|
||||
"objectives": [
|
||||
{
|
||||
"name": "mass",
|
||||
"goal": "minimize",
|
||||
"weight": 1.0,
|
||||
"extraction": {
|
||||
"action": "extract_mass",
|
||||
"domain": "result_extraction",
|
||||
"description": "Extract total mass from FEA results",
|
||||
"params": {
|
||||
"result_type": "mass",
|
||||
"metric": "total"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "fundamental_frequency",
|
||||
"goal": "maximize",
|
||||
"weight": 1.0,
|
||||
"extraction": {
|
||||
"action": "extract_frequency",
|
||||
"domain": "result_extraction",
|
||||
"description": "Extract first natural frequency from modal analysis",
|
||||
"params": {
|
||||
"result_type": "frequency",
|
||||
"mode_number": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
"constraints": [
|
||||
{
|
||||
"name": "max_displacement_limit",
|
||||
"type": "less_than",
|
||||
"threshold": 1.5,
|
||||
"extraction": {
|
||||
"action": "extract_displacement",
|
||||
"domain": "result_extraction",
|
||||
"description": "Extract maximum displacement from FEA results",
|
||||
"params": {
|
||||
"result_type": "displacement",
|
||||
"metric": "max"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "max_stress_limit",
|
||||
"type": "less_than",
|
||||
"threshold": 120,
|
||||
"extraction": {
|
||||
"action": "extract_stress",
|
||||
"domain": "result_extraction",
|
||||
"description": "Extract maximum von Mises stress",
|
||||
"params": {
|
||||
"result_type": "stress",
|
||||
"metric": "max_von_mises"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "min_frequency_limit",
|
||||
"type": "greater_than",
|
||||
"threshold": 150,
|
||||
"extraction": {
|
||||
"action": "extract_frequency",
|
||||
"domain": "result_extraction",
|
||||
"description": "Extract first natural frequency",
|
||||
"params": {
|
||||
"result_type": "frequency",
|
||||
"mode_number": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
studies/uav_arm_optimization/2_results/study.db
Normal file
BIN
studies/uav_arm_optimization/2_results/study.db
Normal file
Binary file not shown.
146
studies/uav_arm_optimization/NX_FILE_MODIFICATIONS_REQUIRED.md
Normal file
146
studies/uav_arm_optimization/NX_FILE_MODIFICATIONS_REQUIRED.md
Normal file
@@ -0,0 +1,146 @@
|
||||
# NX File Modifications Required for Drone Gimbal Arm Study
|
||||
|
||||
## Overview
|
||||
|
||||
The study uses the same beam model as `simple_beam_optimization` but requires modifications to:
|
||||
1. Add modal analysis (frequency extraction)
|
||||
2. Update loading conditions for the 850g camera payload
|
||||
3. Ensure material properties match Al 7075-T6
|
||||
|
||||
## Critical Modifications
|
||||
|
||||
### 1. Simulation File (Beam_sim1.sim)
|
||||
|
||||
**REQUIRED: Add Modal Analysis Solution**
|
||||
|
||||
You need to add a **second solution** for modal analysis:
|
||||
|
||||
1. **Open** `Beam_sim1.sim` in NX Simcenter
|
||||
2. **Create New Solution**:
|
||||
- Solution Type: `SOL 103 - Normal Modes`
|
||||
- Name: `modal_analysis`
|
||||
- Number of modes: `10` (we only need the first, but calculate more for safety)
|
||||
- Frequency range: `0-500 Hz`
|
||||
|
||||
3. **Use Same Mesh** as the static solution
|
||||
- Link to existing FEM file: `Beam_fem1.fem`
|
||||
|
||||
4. **Boundary Conditions**: Use same constraints as static analysis
|
||||
- Fixed constraint at base (same as static)
|
||||
- No loads needed for modal (it finds natural frequencies)
|
||||
|
||||
### 2. Static Analysis Modifications
|
||||
|
||||
**Update Load Magnitude**:
|
||||
|
||||
The existing static analysis load needs to represent the **850g camera payload**:
|
||||
|
||||
1. **Open Solution 1** (static analysis)
|
||||
2. **Modify Force Magnitude**:
|
||||
- Old value: (whatever is currently there)
|
||||
- **New value**: `8.34 N` (850g × 9.81 m/s²)
|
||||
- Direction: Downward (negative Y or Z depending on your coordinate system)
|
||||
- Location: Tip of beam (where camera attaches)
|
||||
|
||||
Note: 120 MPa stress limit provides safety factor of 2.3 on 6061-T6 yield strength (276 MPa)
|
||||
|
||||
### 3. Material Properties
|
||||
|
||||
**Verify Material is Al 6061-T6**:
|
||||
|
||||
1. **Open Part File**: `Beam.prt`
|
||||
2. **Check Material Assignment**:
|
||||
- Material: `Aluminum 6061-T6`
|
||||
- Yield Strength: ~276 MPa
|
||||
- Young's Modulus: ~68.9 GPa
|
||||
- Density: ~2700 kg/m³
|
||||
- Poisson's Ratio: ~0.33
|
||||
|
||||
3. **If not Al 6061-T6**, update material assignment to match drone application requirements
|
||||
|
||||
### 4. Results Configuration
|
||||
|
||||
**Ensure these results are requested**:
|
||||
|
||||
**For Static Solution (Solution 1)**:
|
||||
- Displacement (VECTOR, all components)
|
||||
- von Mises Stress
|
||||
- Mass properties
|
||||
|
||||
**For Modal Solution (Solution 2)**:
|
||||
- Natural frequencies
|
||||
- Mode shapes (optional, for visualization)
|
||||
|
||||
## What You DON'T Need to Change
|
||||
|
||||
The parametric design variables are already set up correctly in the beam model:
|
||||
- `beam_half_core_thickness` (20-30mm)
|
||||
- `beam_face_thickness` (1-3mm)
|
||||
- `holes_diameter` (180-280mm)
|
||||
- `hole_count` (8-14)
|
||||
|
||||
These parameters will be automatically updated by the optimization loop.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
Before running optimization, verify:
|
||||
|
||||
1. **Two Solutions Exist**:
|
||||
```
|
||||
Solution 1: Static Analysis (SOL 101) - displacement and stress
|
||||
Solution 2: Modal Analysis (SOL 103) - natural frequencies
|
||||
```
|
||||
|
||||
2. **Load is Correct**:
|
||||
- Static load = 8.34 N downward at tip
|
||||
|
||||
3. **Material is Al 7075-T6**
|
||||
|
||||
4. **Both solutions solve successfully** with baseline parameters:
|
||||
```
|
||||
beam_half_core_thickness = 25mm
|
||||
beam_face_thickness = 2mm
|
||||
holes_diameter = 230mm
|
||||
hole_count = 11
|
||||
```
|
||||
|
||||
## Quick Test
|
||||
|
||||
Run a manual solve with baseline parameters to verify:
|
||||
|
||||
Expected Results (approximate):
|
||||
- **Mass**: ~140-150g
|
||||
- **Max Displacement**: ~1-2 mm
|
||||
- **Max Stress**: ~80-100 MPa
|
||||
- **First Frequency**: ~120-140 Hz
|
||||
|
||||
If these are wildly different, check your setup.
|
||||
|
||||
## Extraction Configuration
|
||||
|
||||
The optimization engine will extract:
|
||||
- **Mass**: From Solution 1 mass properties
|
||||
- **Displacement**: Maximum displacement magnitude from Solution 1
|
||||
- **Stress**: Maximum von Mises stress from Solution 1
|
||||
- **Frequency**: First natural frequency (mode 1) from Solution 2
|
||||
|
||||
All extraction is automated - you just need to ensure the solutions are configured correctly.
|
||||
|
||||
## Optional Enhancements
|
||||
|
||||
If you want more realistic results:
|
||||
|
||||
1. **Add Gravity Load**:
|
||||
- Apply -9.81 m/s² gravity in addition to tip load
|
||||
- Represents arm's own weight during flight
|
||||
|
||||
2. **Add Damping** to modal analysis:
|
||||
- Structural damping ratio: ~0.02 (2%)
|
||||
- More realistic frequency response
|
||||
|
||||
3. **Refine Mesh** at stress concentrations:
|
||||
- Around holes
|
||||
- At base constraint
|
||||
- Better stress accuracy
|
||||
|
||||
But these are NOT required for the optimization to run successfully.
|
||||
193
studies/uav_arm_optimization/README.md
Normal file
193
studies/uav_arm_optimization/README.md
Normal file
@@ -0,0 +1,193 @@
|
||||
# Drone Camera Gimbal Support Arm Optimization
|
||||
|
||||
## Engineering Scenario
|
||||
|
||||
**Application**: Professional aerial cinematography drone
|
||||
**Component**: Camera gimbal support arm
|
||||
**Goal**: Lightweight design for extended flight time while maintaining camera stability
|
||||
|
||||
## Problem Statement
|
||||
|
||||
The current production arm weighs **145g** and meets all requirements. Marketing wants to advertise "30% longer flight time" by reducing weight. Your task: optimize the arm geometry to minimize weight while ensuring it doesn't compromise camera stability or structural integrity.
|
||||
|
||||
### Real-World Constraints
|
||||
|
||||
- **Camera Payload**: 850g (camera + gimbal mechanism)
|
||||
- **Maximum Deflection**: 1.5mm (required for image stabilization systems)
|
||||
- **Material**: Aluminum 6061-T6 (aerospace grade)
|
||||
- **Safety Factor**: 2.3 on yield strength (276 MPa)
|
||||
- **Vibration Avoidance**: Natural frequency must be > 150 Hz to avoid coupling with rotor frequencies (80-120 Hz)
|
||||
|
||||
## Multi-Objective Optimization
|
||||
|
||||
This study explores the **trade-off between two competing objectives**:
|
||||
|
||||
### Objectives
|
||||
1. **MINIMIZE Mass** - Every gram saved increases flight time
|
||||
- Target: < 120g (17% weight savings)
|
||||
- Current: 145g baseline
|
||||
|
||||
2. **MAXIMIZE Fundamental Frequency** - Higher frequency = better vibration isolation
|
||||
- Target: > 150 Hz (safety margin above 80-120 Hz rotor range)
|
||||
- Trade-off: Lighter designs typically have lower frequencies
|
||||
|
||||
### Constraints
|
||||
1. **Max Displacement** < 1.5mm under 850g load
|
||||
2. **Max von Mises Stress** < 120 MPa (Al 6061-T6 yield = 276 MPa, SF = 2.3)
|
||||
3. **Natural Frequency** > 150 Hz (hard requirement)
|
||||
|
||||
## Design Variables (Parametric Beam Model)
|
||||
|
||||
- **beam_half_core_thickness**: 20-30 mm (affects stiffness and weight)
|
||||
- **beam_face_thickness**: 1-3 mm (face sheets for bending resistance)
|
||||
- **holes_diameter**: 180-280 mm (lightening holes for weight reduction)
|
||||
- **hole_count**: 8-14 (number of lightening holes)
|
||||
|
||||
## Expected Outcomes
|
||||
|
||||
- **Pareto Front**: Shows designs on the optimal trade-off curve between mass and frequency
|
||||
- **Weight Savings**: 10-20% reduction from 145g baseline
|
||||
- **Constraint Analysis**: Clear visualization of which constraints are active/limiting
|
||||
- **Design Insights**: Understand how design variables affect both objectives
|
||||
|
||||
## Study Configuration
|
||||
|
||||
- **Protocol**: Protocol 11 (Multi-Objective Optimization)
|
||||
- **Sampler**: NSGA-II (genetic algorithm for Pareto fronts)
|
||||
- **Trials**: 30 (sufficient for Pareto front exploration)
|
||||
- **Duration**: ~1-2 hours (2-4 minutes per trial)
|
||||
|
||||
## Files in This Study
|
||||
|
||||
```
|
||||
drone_gimbal_arm_optimization/
|
||||
├── 1_setup/
|
||||
│ ├── model/
|
||||
│ │ ├── Beam.prt # Parametric beam geometry
|
||||
│ │ ├── Beam_sim1.sim # Simulation setup (needs modal analysis!)
|
||||
│ │ └── Beam_fem1.fem # Finite element mesh
|
||||
│ ├── optimization_config.json # Multi-objective config
|
||||
│ └── workflow_config.json # Extractor definitions
|
||||
├── 2_results/ # Created during optimization
|
||||
│ ├── study.db # Optuna database
|
||||
│ ├── optimization_history_incremental.json
|
||||
│ └── ...
|
||||
├── run_optimization.py # Main execution script
|
||||
├── NX_FILE_MODIFICATIONS_REQUIRED.md # IMPORTANT: Read this first!
|
||||
└── README.md # This file
|
||||
```
|
||||
|
||||
## Before You Run
|
||||
|
||||
**CRITICAL**: You MUST modify the NX simulation files before running.
|
||||
|
||||
Read [NX_FILE_MODIFICATIONS_REQUIRED.md](NX_FILE_MODIFICATIONS_REQUIRED.md) for detailed instructions.
|
||||
|
||||
**Summary of Required Changes**:
|
||||
1. Add **Modal Analysis Solution** (SOL 103) to extract natural frequencies
|
||||
2. Update **static load** to 8.34 N (850g camera payload)
|
||||
3. Verify **material** is Al 7075-T6
|
||||
|
||||
## Running the Optimization
|
||||
|
||||
```bash
|
||||
# Quick test (5 trials, ~10-20 minutes)
|
||||
cd studies/drone_gimbal_arm_optimization
|
||||
python run_optimization.py --trials 5
|
||||
|
||||
# Full study (30 trials, ~1-2 hours)
|
||||
python run_optimization.py --trials 30
|
||||
|
||||
# Resume existing study
|
||||
python run_optimization.py --resume
|
||||
```
|
||||
|
||||
## Monitoring in Dashboard
|
||||
|
||||
While optimization runs, monitor in real-time:
|
||||
|
||||
1. **Start Dashboard Backend** (separate terminal):
|
||||
```bash
|
||||
cd atomizer-dashboard/backend
|
||||
python -m uvicorn api.main:app --reload --port 8000
|
||||
```
|
||||
|
||||
2. **Start Dashboard Frontend** (another terminal):
|
||||
```bash
|
||||
cd atomizer-dashboard/frontend
|
||||
npm run dev
|
||||
```
|
||||
|
||||
3. **Open Browser**: http://localhost:3003
|
||||
|
||||
4. **Select Study**: drone_gimbal_arm_optimization
|
||||
|
||||
### Dashboard Features You'll See
|
||||
|
||||
- **Real-time trial updates** via WebSocket
|
||||
- **Pareto front visualization** (mass vs frequency scatter plot)
|
||||
- **Constraint violation tracking** (which trials failed which constraints)
|
||||
- **Progress monitoring** (30 trials total)
|
||||
- **New best notifications** when Pareto front expands
|
||||
|
||||
## Interpreting Results
|
||||
|
||||
### Pareto Front Analysis
|
||||
|
||||
The Pareto front will show:
|
||||
- **Lower-left designs**: Lighter but lower frequency (more prone to vibration)
|
||||
- **Upper-right designs**: Heavier but higher frequency (better vibration isolation)
|
||||
- **Middle region**: Balanced trade-offs
|
||||
|
||||
### Selecting Final Design
|
||||
|
||||
Choose based on flight profile:
|
||||
- **Stable hovering flights**: Select lighter design (mass priority)
|
||||
- **Dynamic maneuvers**: Select higher frequency design (vibration priority)
|
||||
- **Balanced missions**: Mid-Pareto design
|
||||
|
||||
### Constraint Active Check
|
||||
|
||||
Look for designs where:
|
||||
- Displacement constraint is just satisfied (1.4-1.5mm) = efficient use of deflection budget
|
||||
- Frequency constraint is marginally above 150 Hz = not over-designed
|
||||
- Stress well below limit = safety margin confirmed
|
||||
|
||||
## Why This is Realistic
|
||||
|
||||
This scenario reflects real engineering trade-offs in aerospace:
|
||||
|
||||
1. **Weight vs Performance**: Classic aerospace dilemma
|
||||
2. **Multi-Physics Constraints**: Static strength + dynamic vibration
|
||||
3. **Safety Margins**: Realistic stress limits with safety factors
|
||||
4. **Operational Requirements**: Specific to drone camera applications
|
||||
5. **Pareto Decision-Making**: No single "best" design, requires engineering judgment
|
||||
|
||||
## Comparison with Bracket Study
|
||||
|
||||
Unlike the bracket study (single objective), this study shows:
|
||||
- **Multiple optimal solutions** (Pareto set, not single optimum)
|
||||
- **Trade-off visualization** (can't optimize both objectives simultaneously)
|
||||
- **Richer decision support** (choose based on priorities)
|
||||
- **More complex analysis** (static + modal)
|
||||
|
||||
## Next Steps After Optimization
|
||||
|
||||
1. **Review Pareto front** in dashboard
|
||||
2. **Select 2-3 candidate designs** from different regions of Pareto front
|
||||
3. **Detailed FEA verification** of selected candidates
|
||||
4. **Fatigue analysis** for repeated flight cycles
|
||||
5. **Prototype testing** to validate predictions
|
||||
6. **Down-select** based on test results
|
||||
|
||||
## Technical Notes
|
||||
|
||||
- Uses **NSGA-II** multi-objective optimizer (Optuna)
|
||||
- Handles **3 constraints** with penalty methods
|
||||
- Extracts **4 quantities** from 2 different solutions (static + modal)
|
||||
- Fully automated - no manual intervention during run
|
||||
- Results compatible with all dashboard visualization features
|
||||
|
||||
## Questions?
|
||||
|
||||
This study demonstrates the full power of multi-objective optimization for real engineering problems. The Pareto front provides engineering insights that single-objective optimization cannot offer.
|
||||
16
studies/uav_arm_optimization/reset_study.py
Normal file
16
studies/uav_arm_optimization/reset_study.py
Normal file
@@ -0,0 +1,16 @@
|
||||
"""Reset drone gimbal arm optimization study by deleting database."""
|
||||
import optuna
|
||||
from pathlib import Path
|
||||
|
||||
study_dir = Path(__file__).parent
|
||||
storage = f"sqlite:///{study_dir / '2_results' / 'study.db'}"
|
||||
study_name = "drone_gimbal_arm_optimization"
|
||||
|
||||
try:
|
||||
# Delete the study
|
||||
optuna.delete_study(study_name=study_name, storage=storage)
|
||||
print(f"[OK] Deleted study: {study_name}")
|
||||
except KeyError:
|
||||
print(f"[WARNING] Study '{study_name}' not found (database may not exist)")
|
||||
except Exception as e:
|
||||
print(f"[ERROR] Error: {e}")
|
||||
322
studies/uav_arm_optimization/run_optimization.py
Normal file
322
studies/uav_arm_optimization/run_optimization.py
Normal file
@@ -0,0 +1,322 @@
|
||||
"""
|
||||
UAV Arm Optimization - Protocol 11 (Multi-Objective NSGA-II)
|
||||
============================================================
|
||||
|
||||
Multi-objective optimization using NSGA-II to find Pareto front:
|
||||
1. Minimize mass (target < 120g)
|
||||
2. Maximize fundamental frequency (target > 150 Hz)
|
||||
|
||||
Constraints:
|
||||
- Max displacement < 1.5mm (850g camera payload)
|
||||
- Max stress < 120 MPa (Al 6061-T6, SF=2.3)
|
||||
- Natural frequency > 150 Hz (avoid rotor resonance)
|
||||
|
||||
Usage:
|
||||
python run_optimization.py --trials 50
|
||||
python run_optimization.py --trials 5 # Quick test
|
||||
python run_optimization.py --resume # Continue existing study
|
||||
"""
|
||||
|
||||
import sys
|
||||
import json
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
from datetime import datetime
|
||||
|
||||
# Add project root to path
|
||||
project_root = Path(__file__).resolve().parents[2]
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
import optuna
|
||||
from optuna.samplers import NSGAIISampler
|
||||
from optimization_engine.nx_solver import NXSolver
|
||||
from optimization_engine.extractors.extract_displacement import extract_displacement
|
||||
from optimization_engine.extractors.extract_von_mises_stress import extract_solid_stress
|
||||
from optimization_engine.extractors.op2_extractor import OP2Extractor
|
||||
from optimization_engine.extractors.extract_frequency import extract_frequency
|
||||
from optimization_engine.extractors.extract_mass_from_bdf import extract_mass_from_bdf
|
||||
from optimization_engine.logger import get_logger
|
||||
|
||||
# Import central configuration
|
||||
try:
|
||||
import config as atomizer_config
|
||||
except ImportError:
|
||||
atomizer_config = None
|
||||
|
||||
|
||||
def load_config(config_file: Path) -> dict:
|
||||
"""Load configuration from JSON file."""
|
||||
with open(config_file, 'r') as f:
|
||||
return json.load(f)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Run UAV arm multi-objective optimization')
|
||||
parser.add_argument('--trials', type=int, default=50, help='Number of optimization trials')
|
||||
parser.add_argument('--resume', action='store_true', help='Resume existing study')
|
||||
args = parser.parse_args()
|
||||
|
||||
# Get study directory
|
||||
study_dir = Path(__file__).parent
|
||||
results_dir = study_dir / "2_results"
|
||||
results_dir.mkdir(exist_ok=True)
|
||||
|
||||
# Initialize logger with file logging
|
||||
logger = get_logger(
|
||||
"uav_arm",
|
||||
study_dir=results_dir
|
||||
)
|
||||
|
||||
logger.info("=" * 80)
|
||||
logger.info("UAV ARM OPTIMIZATION - PROTOCOL 11 (NSGA-II)")
|
||||
logger.info("=" * 80)
|
||||
logger.info("")
|
||||
logger.info("Engineering Scenario:")
|
||||
logger.info(" Unmanned aerial vehicle camera gimbal support arm")
|
||||
logger.info("")
|
||||
logger.info("Objectives:")
|
||||
logger.info(" 1. MINIMIZE mass (target < 4000g, baseline = 4500g)")
|
||||
logger.info(" 2. MAXIMIZE fundamental frequency (target > 150 Hz)")
|
||||
logger.info("")
|
||||
logger.info("Constraints:")
|
||||
logger.info(" - Max displacement < 1.5mm (850g camera payload)")
|
||||
logger.info(" - Max von Mises stress < 120 MPa (Al 6061-T6, SF=2.3)")
|
||||
logger.info(" - Natural frequency > 150 Hz (avoid rotor resonance 80-120 Hz)")
|
||||
logger.info("")
|
||||
logger.info("Design Variables:")
|
||||
logger.info(" - beam_half_core_thickness: 5-10 mm")
|
||||
logger.info(" - beam_face_thickness: 1-3 mm")
|
||||
logger.info(" - holes_diameter: 10-50 mm")
|
||||
logger.info(" - hole_count: 8-14")
|
||||
logger.info("")
|
||||
logger.info(f"Running {args.trials} trials with NSGA-II sampler...")
|
||||
logger.info("=" * 80)
|
||||
logger.info("")
|
||||
|
||||
# Load configuration
|
||||
opt_config_file = study_dir / "1_setup" / "optimization_config.json"
|
||||
|
||||
if not opt_config_file.exists():
|
||||
logger.error(f"Optimization config not found: {opt_config_file}")
|
||||
sys.exit(1)
|
||||
|
||||
opt_config = load_config(opt_config_file)
|
||||
|
||||
logger.info(f"Loaded optimization config: {opt_config['study_name']}")
|
||||
logger.info(f"Protocol: {opt_config['optimization_settings']['protocol']}")
|
||||
logger.info("")
|
||||
|
||||
# Setup paths
|
||||
model_dir = study_dir / "1_setup" / "model"
|
||||
model_file = model_dir / "Beam.prt"
|
||||
sim_file = model_dir / "Beam_sim1.sim"
|
||||
|
||||
# Initialize NX solver
|
||||
nx_solver = NXSolver(
|
||||
nastran_version=atomizer_config.NX_VERSION if atomizer_config else "2412",
|
||||
timeout=atomizer_config.NASTRAN_TIMEOUT if atomizer_config else 600,
|
||||
use_journal=True,
|
||||
enable_session_management=True,
|
||||
study_name="uav_arm_optimization"
|
||||
)
|
||||
|
||||
def objective(trial: optuna.Trial) -> tuple:
|
||||
"""
|
||||
Multi-objective function for NSGA-II.
|
||||
|
||||
Returns:
|
||||
(mass, frequency): Tuple for NSGA-II (minimize mass, maximize frequency)
|
||||
"""
|
||||
# Sample design variables
|
||||
design_vars = {}
|
||||
for dv in opt_config['design_variables']:
|
||||
design_vars[dv['parameter']] = trial.suggest_float(
|
||||
dv['parameter'],
|
||||
dv['bounds'][0],
|
||||
dv['bounds'][1]
|
||||
)
|
||||
|
||||
logger.trial_start(trial.number, design_vars)
|
||||
|
||||
# Run simulation
|
||||
logger.info("Running simulation...")
|
||||
try:
|
||||
result = nx_solver.run_simulation(
|
||||
sim_file=sim_file,
|
||||
working_dir=model_dir,
|
||||
expression_updates=design_vars,
|
||||
solution_name=None # Solve all solutions (static + modal)
|
||||
)
|
||||
|
||||
if not result['success']:
|
||||
error_msg = result.get('error', 'Unknown error')
|
||||
logger.trial_failed(trial.number, error_msg)
|
||||
trial.set_user_attr("feasible", False)
|
||||
trial.set_user_attr("error", error_msg)
|
||||
# Prune failed simulations instead of returning penalty values
|
||||
raise optuna.TrialPruned(f"Simulation failed: {error_msg}")
|
||||
|
||||
op2_file = result['op2_file']
|
||||
logger.info(f"Simulation successful: {op2_file}")
|
||||
|
||||
# Extract all objectives and constraints
|
||||
logger.info("Extracting results...")
|
||||
|
||||
# Extract mass (grams) from CAD expression p173
|
||||
# This expression measures the CAD mass directly
|
||||
from optimization_engine.extractors.extract_mass_from_expression import extract_mass_from_expression
|
||||
|
||||
prt_file = model_file # Beam.prt
|
||||
mass_kg = extract_mass_from_expression(prt_file, expression_name="p173")
|
||||
mass = mass_kg * 1000.0 # Convert to grams
|
||||
logger.info(f" mass: {mass:.3f} g (from CAD expression p173)")
|
||||
|
||||
# Extract frequency (Hz) - from modal analysis (solution 2)
|
||||
# The drone gimbal has TWO solutions: solution_1 (static) and solution_2 (modal)
|
||||
op2_modal = str(op2_file).replace("solution_1", "solution_2")
|
||||
freq_result = extract_frequency(op2_modal, subcase=1, mode_number=1)
|
||||
frequency = freq_result['frequency']
|
||||
logger.info(f" fundamental_frequency: {frequency:.3f} Hz")
|
||||
|
||||
# Extract displacement (mm) - from static analysis (subcase 1)
|
||||
disp_result = extract_displacement(op2_file, subcase=1)
|
||||
max_disp = disp_result['max_displacement']
|
||||
logger.info(f" max_displacement_limit: {max_disp:.3f} mm")
|
||||
|
||||
# Extract stress (MPa) - from static analysis (subcase 1)
|
||||
stress_result = extract_solid_stress(op2_file, subcase=1, element_type='cquad4')
|
||||
max_stress = stress_result['max_von_mises']
|
||||
logger.info(f" max_stress_limit: {max_stress:.3f} MPa")
|
||||
|
||||
# Frequency constraint uses same value as objective
|
||||
min_freq = frequency
|
||||
logger.info(f" min_frequency_limit: {min_freq:.3f} Hz")
|
||||
|
||||
# Check constraints
|
||||
constraint_values = {
|
||||
'max_displacement_limit': max_disp,
|
||||
'max_stress_limit': max_stress,
|
||||
'min_frequency_limit': min_freq
|
||||
}
|
||||
|
||||
constraint_violations = []
|
||||
for constraint in opt_config['constraints']:
|
||||
name = constraint['name']
|
||||
value = constraint_values[name]
|
||||
threshold = constraint['threshold']
|
||||
c_type = constraint['type']
|
||||
|
||||
if c_type == 'less_than' and value > threshold:
|
||||
violation = (value - threshold) / threshold
|
||||
constraint_violations.append(f"{name}: {value:.2f} > {threshold} (violation: {violation:.1%})")
|
||||
elif c_type == 'greater_than' and value < threshold:
|
||||
violation = (threshold - value) / threshold
|
||||
constraint_violations.append(f"{name}: {value:.2f} < {threshold} (violation: {violation:.1%})")
|
||||
|
||||
if constraint_violations:
|
||||
logger.warning("Constraint violations:")
|
||||
for v in constraint_violations:
|
||||
logger.warning(f" - {v}")
|
||||
trial.set_user_attr("constraint_violations", constraint_violations)
|
||||
trial.set_user_attr("feasible", False)
|
||||
# NSGA-II handles constraints through constraint_satisfied flag - no penalty needed
|
||||
else:
|
||||
logger.info("All constraints satisfied")
|
||||
trial.set_user_attr("feasible", True)
|
||||
|
||||
# Store all results as trial attributes for dashboard
|
||||
trial.set_user_attr("mass", mass)
|
||||
trial.set_user_attr("frequency", frequency)
|
||||
trial.set_user_attr("max_displacement", max_disp)
|
||||
trial.set_user_attr("max_stress", max_stress)
|
||||
trial.set_user_attr("design_vars", design_vars)
|
||||
|
||||
# Log successful trial completion
|
||||
objectives = {"mass": mass, "frequency": frequency}
|
||||
constraints_dict = {
|
||||
"max_displacement_limit": max_disp,
|
||||
"max_stress_limit": max_stress,
|
||||
"min_frequency_limit": min_freq
|
||||
}
|
||||
feasible = len(constraint_violations) == 0
|
||||
logger.trial_complete(trial.number, objectives, constraints_dict, feasible)
|
||||
|
||||
# Return tuple for NSGA-II: (minimize mass, maximize frequency)
|
||||
# Using proper semantic directions in study creation
|
||||
return (mass, frequency)
|
||||
|
||||
except optuna.TrialPruned:
|
||||
# Re-raise pruned exceptions (don't catch them)
|
||||
raise
|
||||
except Exception as e:
|
||||
logger.trial_failed(trial.number, str(e))
|
||||
logger.error("Full traceback:", exc_info=True)
|
||||
trial.set_user_attr("error", str(e))
|
||||
trial.set_user_attr("feasible", False)
|
||||
# Prune corrupted trials instead of returning penalty values
|
||||
raise optuna.TrialPruned(f"Trial failed with exception: {str(e)}")
|
||||
|
||||
# Create Optuna study with NSGA-II sampler
|
||||
study_name = opt_config['study_name']
|
||||
storage = f"sqlite:///{results_dir / 'study.db'}"
|
||||
|
||||
if args.resume:
|
||||
logger.info(f"Resuming existing study: {study_name}")
|
||||
study = optuna.load_study(
|
||||
study_name=study_name,
|
||||
storage=storage,
|
||||
sampler=NSGAIISampler()
|
||||
)
|
||||
logger.info(f"Loaded study with {len(study.trials)} existing trials")
|
||||
else:
|
||||
logger.info(f"Creating new study: {study_name}")
|
||||
study = optuna.create_study(
|
||||
study_name=study_name,
|
||||
storage=storage,
|
||||
directions=['minimize', 'maximize'], # Minimize mass, maximize frequency
|
||||
sampler=NSGAIISampler(),
|
||||
load_if_exists=True # Always allow resuming existing study
|
||||
)
|
||||
|
||||
# Log study start
|
||||
logger.study_start(study_name, n_trials=args.trials, sampler="NSGAIISampler")
|
||||
logger.info("")
|
||||
|
||||
study.optimize(
|
||||
objective,
|
||||
n_trials=args.trials,
|
||||
show_progress_bar=True
|
||||
)
|
||||
|
||||
# Log study completion
|
||||
n_successful = len([t for t in study.trials if t.state == optuna.trial.TrialState.COMPLETE])
|
||||
logger.study_complete(study_name, n_trials=len(study.trials), n_successful=n_successful)
|
||||
|
||||
logger.info("")
|
||||
logger.info(f"Pareto front solutions: {len(study.best_trials)}")
|
||||
logger.info("")
|
||||
|
||||
# Show Pareto front
|
||||
logger.info("Pareto Front (non-dominated solutions):")
|
||||
logger.info("")
|
||||
for i, trial in enumerate(study.best_trials):
|
||||
mass = trial.values[0]
|
||||
freq = trial.values[1] # Frequency is stored as positive now
|
||||
feasible = trial.user_attrs.get('feasible', False)
|
||||
logger.info(f" Solution #{i+1} (Trial {trial.number}):")
|
||||
logger.info(f" Mass: {mass:.2f} g")
|
||||
logger.info(f" Frequency: {freq:.2f} Hz")
|
||||
logger.info(f" Feasible: {feasible}")
|
||||
logger.info("")
|
||||
|
||||
logger.info("Results available in: studies/uav_arm_optimization/2_results/")
|
||||
logger.info("")
|
||||
logger.info("View in Dashboard:")
|
||||
logger.info(" 1. Ensure backend is running: cd atomizer-dashboard/backend && python -m uvicorn api.main:app --reload")
|
||||
logger.info(" 2. Open dashboard: http://localhost:3003")
|
||||
logger.info(" 3. Select study: uav_arm_optimization")
|
||||
logger.info("")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user