Repository files navigation

RecurDyn ProcessNet with Python

Automates RecurDyn operations with ProcessNet and Python.
For initial setups, please follow this link (Korean).
For official tutorials provided by FunctionBay Inc., refer to this link (Korean).

Detailed instructions are provided in Tutorial.ipynb

For useful tips, check out Tips.md (Korean)

Setup

Set rdSolverDir to "<YOUR_RECURDYN_INSTALL_DIR>\Bin\Solver\RDSolverRun.exe" in GlobalVariables.py.

Simulate using GUI solver

gui_demo

Call analysis.doe_gui.RunDOE_GUI with arguments.
You can modify DOE scenario by editing line 56~65 in analysis/doe_gui.py`
This method is not parallelizable.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
RunDOE_GUI(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_GUI",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
)

Simulate using batch solver

This method is far more stable and parallelizable compared to GUI solvers.
It is highly recommended to run DOEs using batch solvers, especially you're handling large, complex model.

batch_demo

Call analysis.doe_batch.RunDOE_Batch with arguments.
You can control DOE scenario by editing line 59~67 in analysis/doe_batch.py
This method is parallelizable, but consumes corresponding number of RecurDyn licenses.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
  • NumParallelBatches: int Number of parallelized DOE runners (*.bat) to create.
    • The total number of simulations of your DOE will be splited by NumParallelBatches. For example, if you define DOE with 100 simulations and set this argument to 4, RunDOE_Batch will configure 4 parallelized DOE runners with each of them containing 25 simulations.
  • NumBatRunsOnThisPC: int Number of runners to immediately execute on your current machine. Defaults to NumParallelBatches. Value should be within range of [0, NumParallelBatches].
    • This argument is configured to run DOE on multiple machines. Comprehensively, if you set NumParallelBatches to 10 and set NumBatRunsOnThisPC to 3, only the first 3 runners (*.bat) are executed immediately on current machine. You can transfer rest of the 7 runners with corresponding subfolders (which contains *.rmd and *.rss + $\alpha$ files) in ModelFileDir to other machines and execute them by hand. In this case, you need additional processing to modify RecurDyn solver path defined in runner files.
RunDOE_Batch(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_Batch",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
NumParallelBatches=5,
)

Export data from results using analysis.export_data.rplt2csv

Numeric simulation results are stored in *.rplt format.
Variable names should be exactly the same to the ones in the *.rplt.
To explicitly check variable names, simply import *.rplt file on RecurDyn GUI. Variables to be exported are defined in GlobalVariables.GlobVar.DataExportTargets.

rplt2csv(f"{os.getcwd()}/TestDOE_Batch")

The function will recursively scan for all *.rplt files in the argument directory, and export variables in DataExportTargets in *.csv format.

About

RecurDyn automation using Python and ProcessNet

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

RecurDyn ProcessNet with Python

Automates RecurDyn operations with ProcessNet and Python.
For initial setups, please follow this link (Korean).
For official tutorials provided by FunctionBay Inc., refer to this link (Korean).

Detailed instructions are provided in Tutorial.ipynb

For useful tips, check out Tips.md (Korean)

Setup

Set rdSolverDir to "<YOUR_RECURDYN_INSTALL_DIR>\Bin\Solver\RDSolverRun.exe" in GlobalVariables.py.

Simulate using GUI solver

gui_demo

Call analysis.doe_gui.RunDOE_GUI with arguments.
You can modify DOE scenario by editing line 56~65 in analysis/doe_gui.py`
This method is not parallelizable.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
RunDOE_GUI(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_GUI",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
)

Simulate using batch solver

This method is far more stable and parallelizable compared to GUI solvers.
It is highly recommended to run DOEs using batch solvers, especially you're handling large, complex model.

batch_demo

Call analysis.doe_batch.RunDOE_Batch with arguments.
You can control DOE scenario by editing line 59~67 in analysis/doe_batch.py
This method is parallelizable, but consumes corresponding number of RecurDyn licenses.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
  • NumParallelBatches: int Number of parallelized DOE runners (*.bat) to create.
    • The total number of simulations of your DOE will be splited by NumParallelBatches. For example, if you define DOE with 100 simulations and set this argument to 4, RunDOE_Batch will configure 4 parallelized DOE runners with each of them containing 25 simulations.
  • NumBatRunsOnThisPC: int Number of runners to immediately execute on your current machine. Defaults to NumParallelBatches. Value should be within range of [0, NumParallelBatches].
    • This argument is configured to run DOE on multiple machines. Comprehensively, if you set NumParallelBatches to 10 and set NumBatRunsOnThisPC to 3, only the first 3 runners (*.bat) are executed immediately on current machine. You can transfer rest of the 7 runners with corresponding subfolders (which contains *.rmd and *.rss + $\alpha$ files) in ModelFileDir to other machines and execute them by hand. In this case, you need additional processing to modify RecurDyn solver path defined in runner files.
RunDOE_Batch(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_Batch",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
NumParallelBatches=5,
)

Export data from results using analysis.export_data.rplt2csv

Numeric simulation results are stored in *.rplt format.
Variable names should be exactly the same to the ones in the *.rplt.
To explicitly check variable names, simply import *.rplt file on RecurDyn GUI. Variables to be exported are defined in GlobalVariables.GlobVar.DataExportTargets.

rplt2csv(f"{os.getcwd()}/TestDOE_Batch")

The function will recursively scan for all *.rplt files in the argument directory, and export variables in DataExportTargets in *.csv format.

About

RecurDyn automation using Python and ProcessNet

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RecurDyn ProcessNet with Python

Automates RecurDyn operations with ProcessNet and Python.
For initial setups, please follow this link (Korean).
For official tutorials provided by FunctionBay Inc., refer to this link (Korean).

Detailed instructions are provided in Tutorial.ipynb

For useful tips, check out Tips.md (Korean)

Setup

Set rdSolverDir to "<YOUR_RECURDYN_INSTALL_DIR>\Bin\Solver\RDSolverRun.exe" in GlobalVariables.py.

Simulate using GUI solver

gui_demo

Call analysis.doe_gui.RunDOE_GUI with arguments.
You can modify DOE scenario by editing line 56~65 in analysis/doe_gui.py`
This method is not parallelizable.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
RunDOE_GUI(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_GUI",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
)

Simulate using batch solver

This method is far more stable and parallelizable compared to GUI solvers.
It is highly recommended to run DOEs using batch solvers, especially you're handling large, complex model.

batch_demo

Call analysis.doe_batch.RunDOE_Batch with arguments.
You can control DOE scenario by editing line 59~67 in analysis/doe_batch.py
This method is parallelizable, but consumes corresponding number of RecurDyn licenses.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
  • NumParallelBatches: int Number of parallelized DOE runners (*.bat) to create.
    • The total number of simulations of your DOE will be splited by NumParallelBatches. For example, if you define DOE with 100 simulations and set this argument to 4, RunDOE_Batch will configure 4 parallelized DOE runners with each of them containing 25 simulations.
  • NumBatRunsOnThisPC: int Number of runners to immediately execute on your current machine. Defaults to NumParallelBatches. Value should be within range of [0, NumParallelBatches].
    • This argument is configured to run DOE on multiple machines. Comprehensively, if you set NumParallelBatches to 10 and set NumBatRunsOnThisPC to 3, only the first 3 runners (*.bat) are executed immediately on current machine. You can transfer rest of the 7 runners with corresponding subfolders (which contains *.rmd and *.rss + $\alpha$ files) in ModelFileDir to other machines and execute them by hand. In this case, you need additional processing to modify RecurDyn solver path defined in runner files.
RunDOE_Batch(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_Batch",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
NumParallelBatches=5,
)

Export data from results using analysis.export_data.rplt2csv

Numeric simulation results are stored in *.rplt format.
Variable names should be exactly the same to the ones in the *.rplt.
To explicitly check variable names, simply import *.rplt file on RecurDyn GUI. Variables to be exported are defined in GlobalVariables.GlobVar.DataExportTargets.

rplt2csv(f"{os.getcwd()}/TestDOE_Batch")

The function will recursively scan for all *.rplt files in the argument directory, and export variables in DataExportTargets in *.csv format.

About

RecurDyn automation using Python and ProcessNet

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RecurDyn ProcessNet with Python

Automates RecurDyn operations with ProcessNet and Python.
For initial setups, please follow this link (Korean).
For official tutorials provided by FunctionBay Inc., refer to this link (Korean).

Detailed instructions are provided in Tutorial.ipynb

For useful tips, check out Tips.md (Korean)

Setup

Set rdSolverDir to "<YOUR_RECURDYN_INSTALL_DIR>\Bin\Solver\RDSolverRun.exe" in GlobalVariables.py.

Simulate using GUI solver

gui_demo

Call analysis.doe_gui.RunDOE_GUI with arguments.
You can modify DOE scenario by editing line 56~65 in analysis/doe_gui.py`
This method is not parallelizable.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
RunDOE_GUI(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_GUI",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
)

Simulate using batch solver

This method is far more stable and parallelizable compared to GUI solvers.
It is highly recommended to run DOEs using batch solvers, especially you're handling large, complex model.

batch_demo

Call analysis.doe_batch.RunDOE_Batch with arguments.
You can control DOE scenario by editing line 59~67 in analysis/doe_batch.py
This method is parallelizable, but consumes corresponding number of RecurDyn licenses.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
  • NumParallelBatches: int Number of parallelized DOE runners (*.bat) to create.
    • The total number of simulations of your DOE will be splited by NumParallelBatches. For example, if you define DOE with 100 simulations and set this argument to 4, RunDOE_Batch will configure 4 parallelized DOE runners with each of them containing 25 simulations.
  • NumBatRunsOnThisPC: int Number of runners to immediately execute on your current machine. Defaults to NumParallelBatches. Value should be within range of [0, NumParallelBatches].
    • This argument is configured to run DOE on multiple machines. Comprehensively, if you set NumParallelBatches to 10 and set NumBatRunsOnThisPC to 3, only the first 3 runners (*.bat) are executed immediately on current machine. You can transfer rest of the 7 runners with corresponding subfolders (which contains *.rmd and *.rss + $\alpha$ files) in ModelFileDir to other machines and execute them by hand. In this case, you need additional processing to modify RecurDyn solver path defined in runner files.
RunDOE_Batch(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_Batch",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
NumParallelBatches=5,
)

Export data from results using analysis.export_data.rplt2csv

Numeric simulation results are stored in *.rplt format.
Variable names should be exactly the same to the ones in the *.rplt.
To explicitly check variable names, simply import *.rplt file on RecurDyn GUI. Variables to be exported are defined in GlobalVariables.GlobVar.DataExportTargets.

rplt2csv(f"{os.getcwd()}/TestDOE_Batch")

The function will recursively scan for all *.rplt files in the argument directory, and export variables in DataExportTargets in *.csv format.

About

RecurDyn automation using Python and ProcessNet

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

RecurDyn ProcessNet with Python

Automates RecurDyn operations with ProcessNet and Python.
For initial setups, please follow this link (Korean).
For official tutorials provided by FunctionBay Inc., refer to this link (Korean).

Detailed instructions are provided in Tutorial.ipynb

For useful tips, check out Tips.md (Korean)

Setup

Set rdSolverDir to "<YOUR_RECURDYN_INSTALL_DIR>\Bin\Solver\RDSolverRun.exe" in GlobalVariables.py.

Simulate using GUI solver

gui_demo

Call analysis.doe_gui.RunDOE_GUI with arguments.
You can modify DOE scenario by editing line 56~65 in analysis/doe_gui.py`
This method is not parallelizable.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
RunDOE_GUI(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_GUI",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
)

Simulate using batch solver

This method is far more stable and parallelizable compared to GUI solvers.
It is highly recommended to run DOEs using batch solvers, especially you're handling large, complex model.

batch_demo

Call analysis.doe_batch.RunDOE_Batch with arguments.
You can control DOE scenario by editing line 59~67 in analysis/doe_batch.py
This method is parallelizable, but consumes corresponding number of RecurDyn licenses.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
  • NumParallelBatches: int Number of parallelized DOE runners (*.bat) to create.
    • The total number of simulations of your DOE will be splited by NumParallelBatches. For example, if you define DOE with 100 simulations and set this argument to 4, RunDOE_Batch will configure 4 parallelized DOE runners with each of them containing 25 simulations.
  • NumBatRunsOnThisPC: int Number of runners to immediately execute on your current machine. Defaults to NumParallelBatches. Value should be within range of [0, NumParallelBatches].
    • This argument is configured to run DOE on multiple machines. Comprehensively, if you set NumParallelBatches to 10 and set NumBatRunsOnThisPC to 3, only the first 3 runners (*.bat) are executed immediately on current machine. You can transfer rest of the 7 runners with corresponding subfolders (which contains *.rmd and *.rss + $\alpha$ files) in ModelFileDir to other machines and execute them by hand. In this case, you need additional processing to modify RecurDyn solver path defined in runner files.
RunDOE_Batch(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_Batch",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
NumParallelBatches=5,
)

Export data from results using analysis.export_data.rplt2csv

Numeric simulation results are stored in *.rplt format.
Variable names should be exactly the same to the ones in the *.rplt.
To explicitly check variable names, simply import *.rplt file on RecurDyn GUI. Variables to be exported are defined in GlobalVariables.GlobVar.DataExportTargets.

rplt2csv(f"{os.getcwd()}/TestDOE_Batch")

The function will recursively scan for all *.rplt files in the argument directory, and export variables in DataExportTargets in *.csv format.

About

RecurDyn automation using Python and ProcessNet

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RecurDyn ProcessNet with Python

Automates RecurDyn operations with ProcessNet and Python.
For initial setups, please follow this link (Korean).
For official tutorials provided by FunctionBay Inc., refer to this link (Korean).

Detailed instructions are provided in Tutorial.ipynb

For useful tips, check out Tips.md (Korean)

Setup

Set rdSolverDir to "<YOUR_RECURDYN_INSTALL_DIR>\Bin\Solver\RDSolverRun.exe" in GlobalVariables.py.

Simulate using GUI solver

gui_demo

Call analysis.doe_gui.RunDOE_GUI with arguments.
You can modify DOE scenario by editing line 56~65 in analysis/doe_gui.py`
This method is not parallelizable.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
RunDOE_GUI(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_GUI",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
)

Simulate using batch solver

This method is far more stable and parallelizable compared to GUI solvers.
It is highly recommended to run DOEs using batch solvers, especially you're handling large, complex model.

batch_demo

Call analysis.doe_batch.RunDOE_Batch with arguments.
You can control DOE scenario by editing line 59~67 in analysis/doe_batch.py
This method is parallelizable, but consumes corresponding number of RecurDyn licenses.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
  • NumParallelBatches: int Number of parallelized DOE runners (*.bat) to create.
    • The total number of simulations of your DOE will be splited by NumParallelBatches. For example, if you define DOE with 100 simulations and set this argument to 4, RunDOE_Batch will configure 4 parallelized DOE runners with each of them containing 25 simulations.
  • NumBatRunsOnThisPC: int Number of runners to immediately execute on your current machine. Defaults to NumParallelBatches. Value should be within range of [0, NumParallelBatches].
    • This argument is configured to run DOE on multiple machines. Comprehensively, if you set NumParallelBatches to 10 and set NumBatRunsOnThisPC to 3, only the first 3 runners (*.bat) are executed immediately on current machine. You can transfer rest of the 7 runners with corresponding subfolders (which contains *.rmd and *.rss + $\alpha$ files) in ModelFileDir to other machines and execute them by hand. In this case, you need additional processing to modify RecurDyn solver path defined in runner files.
RunDOE_Batch(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_Batch",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
NumParallelBatches=5,
)

Export data from results using analysis.export_data.rplt2csv

Numeric simulation results are stored in *.rplt format.
Variable names should be exactly the same to the ones in the *.rplt.
To explicitly check variable names, simply import *.rplt file on RecurDyn GUI. Variables to be exported are defined in GlobalVariables.GlobVar.DataExportTargets.

rplt2csv(f"{os.getcwd()}/TestDOE_Batch")

The function will recursively scan for all *.rplt files in the argument directory, and export variables in DataExportTargets in *.csv format.

About

RecurDyn automation using Python and ProcessNet

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RecurDyn ProcessNet with Python

Automates RecurDyn operations with ProcessNet and Python.
For initial setups, please follow this link (Korean).
For official tutorials provided by FunctionBay Inc., refer to this link (Korean).

Detailed instructions are provided in Tutorial.ipynb

For useful tips, check out Tips.md (Korean)

Setup

Set rdSolverDir to "<YOUR_RECURDYN_INSTALL_DIR>\Bin\Solver\RDSolverRun.exe" in GlobalVariables.py.

Simulate using GUI solver

gui_demo

Call analysis.doe_gui.RunDOE_GUI with arguments.
You can modify DOE scenario by editing line 56~65 in analysis/doe_gui.py`
This method is not parallelizable.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
RunDOE_GUI(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_GUI",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
)

Simulate using batch solver

This method is far more stable and parallelizable compared to GUI solvers.
It is highly recommended to run DOEs using batch solvers, especially you're handling large, complex model.

batch_demo

Call analysis.doe_batch.RunDOE_Batch with arguments.
You can control DOE scenario by editing line 59~67 in analysis/doe_batch.py
This method is parallelizable, but consumes corresponding number of RecurDyn licenses.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
  • NumParallelBatches: int Number of parallelized DOE runners (*.bat) to create.
    • The total number of simulations of your DOE will be splited by NumParallelBatches. For example, if you define DOE with 100 simulations and set this argument to 4, RunDOE_Batch will configure 4 parallelized DOE runners with each of them containing 25 simulations.
  • NumBatRunsOnThisPC: int Number of runners to immediately execute on your current machine. Defaults to NumParallelBatches. Value should be within range of [0, NumParallelBatches].
    • This argument is configured to run DOE on multiple machines. Comprehensively, if you set NumParallelBatches to 10 and set NumBatRunsOnThisPC to 3, only the first 3 runners (*.bat) are executed immediately on current machine. You can transfer rest of the 7 runners with corresponding subfolders (which contains *.rmd and *.rss + $\alpha$ files) in ModelFileDir to other machines and execute them by hand. In this case, you need additional processing to modify RecurDyn solver path defined in runner files.
RunDOE_Batch(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_Batch",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
NumParallelBatches=5,
)

Export data from results using analysis.export_data.rplt2csv

Numeric simulation results are stored in *.rplt format.
Variable names should be exactly the same to the ones in the *.rplt.
To explicitly check variable names, simply import *.rplt file on RecurDyn GUI. Variables to be exported are defined in GlobalVariables.GlobVar.DataExportTargets.

rplt2csv(f"{os.getcwd()}/TestDOE_Batch")

The function will recursively scan for all *.rplt files in the argument directory, and export variables in DataExportTargets in *.csv format.

About

RecurDyn automation using Python and ProcessNet

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

RecurDyn ProcessNet with Python

Automates RecurDyn operations with ProcessNet and Python.
For initial setups, please follow this link (Korean).
For official tutorials provided by FunctionBay Inc., refer to this link (Korean).

Detailed instructions are provided in Tutorial.ipynb

For useful tips, check out Tips.md (Korean)

Setup

Set rdSolverDir to "<YOUR_RECURDYN_INSTALL_DIR>\Bin\Solver\RDSolverRun.exe" in GlobalVariables.py.

Simulate using GUI solver

gui_demo

Call analysis.doe_gui.RunDOE_GUI with arguments.
You can modify DOE scenario by editing line 56~65 in analysis/doe_gui.py`
This method is not parallelizable.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
RunDOE_GUI(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_GUI",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
)

Simulate using batch solver

This method is far more stable and parallelizable compared to GUI solvers.
It is highly recommended to run DOEs using batch solvers, especially you're handling large, complex model.

batch_demo

Call analysis.doe_batch.RunDOE_Batch with arguments.
You can control DOE scenario by editing line 59~67 in analysis/doe_batch.py
This method is parallelizable, but consumes corresponding number of RecurDyn licenses.

Arguments

  • ModelFileDir: str Absolute path of model file (*.rdyn).
  • TopFolderName: str Folder name to create at ModelFileDir.
    • Each of simulation results will be saved in this folder.
  • NumCPUCores: int Number of CPU threads to use per simulation.
    • Must be one of [0(Auto),1,2,4,8,16].
  • EndTime: float Simulation end time.
  • NumSteps: int Number of time steps.
  • NumParallelBatches: int Number of parallelized DOE runners (*.bat) to create.
    • The total number of simulations of your DOE will be splited by NumParallelBatches. For example, if you define DOE with 100 simulations and set this argument to 4, RunDOE_Batch will configure 4 parallelized DOE runners with each of them containing 25 simulations.
  • NumBatRunsOnThisPC: int Number of runners to immediately execute on your current machine. Defaults to NumParallelBatches. Value should be within range of [0, NumParallelBatches].
    • This argument is configured to run DOE on multiple machines. Comprehensively, if you set NumParallelBatches to 10 and set NumBatRunsOnThisPC to 3, only the first 3 runners (*.bat) are executed immediately on current machine. You can transfer rest of the 7 runners with corresponding subfolders (which contains *.rmd and *.rss + $\alpha$ files) in ModelFileDir to other machines and execute them by hand. In this case, you need additional processing to modify RecurDyn solver path defined in runner files.
RunDOE_Batch(
ModelFileDir=f"{os.getcwd()}/SampleModel.rdyn",
TopFolderName="TestDOE_Batch",
NumCPUCores=8,
EndTime=1,
NumSteps=100,
NumParallelBatches=5,
)

Export data from results using analysis.export_data.rplt2csv

Numeric simulation results are stored in *.rplt format.
Variable names should be exactly the same to the ones in the *.rplt.
To explicitly check variable names, simply import *.rplt file on RecurDyn GUI. Variables to be exported are defined in GlobalVariables.GlobVar.DataExportTargets.

rplt2csv(f"{os.getcwd()}/TestDOE_Batch")

The function will recursively scan for all *.rplt files in the argument directory, and export variables in DataExportTargets in *.csv format.

About

RecurDyn automation using Python and ProcessNet

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages