agentleFS
equinorequinor/neqsim-community-skills/skills/process/neqsim-dynamic-process-preparation/SKILL.md

neqsim-dynamic-process-preparation

Skill4 starsChanged 5 months agoApache-2.0View on GitHub

Prepare NeqSim ProcessSystem and ProcessModel flowsheets for dynamic simulation, including equipment holdup, mechanical-design, and volume-readiness checks. USE WHEN: a task needs to convert a steady-state NeqSim process into a dynamic-ready model before runTransient calculations.

The file

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use this skill when an agent must prepare a NeqSim ProcessSystem or multi-area ProcessModel for dynamic calculations.

    line 16
  2. Distinctive:

    When a user asks to turn a steady-state NeqSim process into a dynamic-ready process.

    line 20
  3. Very specific:

    When a ProcessSystem or ProcessModel needs equipment volumes, holdups, or initial liquid levels before transient simulation.

    line 21
  4. Very specific:

    When an agent needs a documented workflow for run(), storeInitialState(), setTimeStep(...), and runTransient().

    line 22
  5. Distinctive:

    When mechanical design should be estimated with NeqSim classes before dynamic calculations.

    line 23
  6. Distinctive:

    No proprietary vessel-sizing, control, or dynamic stability criteria are included.

    line 125

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Dynamic Process Preparation

Use this skill when an agent must prepare a NeqSim ProcessSystem or multi-area ProcessModel for dynamic calculations. It focuses on model-readiness checks, mechanical-design handoff, equipment holdup and volume initialization, and the transient run sequence.

When to Use

  • When a user asks to turn a steady-state NeqSim process into a dynamic-ready process.
  • When a ProcessSystem or ProcessModel needs equipment volumes, holdups, or initial liquid levels before transient simulation.
  • When an agent needs a documented workflow for run(), storeInitialState(), setTimeStep(...), and runTransient().
  • When mechanical design should be estimated with NeqSim classes before dynamic calculations.

Inputs

  • process_name: public process or model name used in reports.
  • process_kind: ProcessSystem or ProcessModel.
  • equipment: dynamic candidate equipment records with name, equipment_type, optional length_m, diameter_m, liquid_level_fraction, and requires_mechanical_design.
  • time_step_seconds: proposed transient time step.
  • total_time_seconds: optional total transient duration.
  • initialization_basis: steady-state case, public design point, or synthetic example basis.

Outputs

  • dynamic_ready: boolean indicator for whether the supplied preparation metadata passes basic checks.
  • equipment_actions: per-equipment actions such as enable dynamic mode, estimate mechanical design, set vessel geometry, and set initial level.
  • estimated_volumes_m3: geometric cylindrical volume estimates for public readiness checks when dimensions are supplied.
  • neqsim_sequence: NeqSim API sequence for initialization and transient execution.
  • warnings: missing information or setup gaps that should be fixed before transient calculations.

Engineering Method

The Python class DynamicProcessPreparationModel is a public planning and validation helper. It does not run NeqSim itself. It checks that a dynamic-ready NeqSim workflow has the minimum metadata needed to initialize dynamic equipment and points the user to the NeqSim APIs that should do the real work.

For vessels and separators, geometric volume is estimated as:

$$ V = \frac{\pi D^2}{4} L $$

where $D$ is internal diameter and $L$ is vessel length. This is only a readiness and reporting estimate. For design-grade work, use the appropriate NeqSim mechanical-design classes and qualified engineering review.

Python Usage Pattern

from dynamic_process_preparation import DynamicProcessPreparationModel

model = DynamicProcessPreparationModel()
plan = model.evaluate(
    process_name="public separator train",
    process_kind="ProcessSystem",
    time_step_seconds=10.0,
    equipment=[
        {
            "name": "V-001",
            "equipment_type": "separator",
            "length_m": 4.0,
            "diameter_m": 1.0,
            "liquid_level_fraction": 0.25,
            "requires_mechanical_design": True,
        }
    ],
)

print(plan.dynamic_ready)
print(plan.estimated_volumes_m3["V-001"])
print(plan.neqsim_sequence)

NeqSim implementation pattern:

# process is a neqsim.process.processmodel.ProcessSystem or a ProcessModel area process
separator.setCalculateSteadyState(False)
separator.initMechanicalDesign()
design = separator.getMechanicalDesign()
design.calcDesign()
separator.setSeparatorLength(4.0)
separator.setInternalDiameter(1.0)
separator.setLiquidLevel(0.25)

process.run()
process.storeInitialState()
process.setTimeStep(10.0)
process.runTransient()

For ProcessModel, prepare each contained ProcessSystem and preserve cross-area stream object references before running the model-level transient workflow.

Validation Checklist

  • The steady-state process converges before dynamic conversion.
  • Dynamic candidate units are identified and documented.
  • Dynamic units that support it call setCalculateSteadyState(False).
  • Separators or vessels have geometry, initial levels, and holdup basis.
  • Mechanical design is initialized and calculated where NeqSim supports it.
  • storeInitialState() is called after the steady-state initialization run.
  • Time step and total simulation time are documented.
  • Dynamic results are checked for mass balance, pressure realism, and controller stability.

Common Mistakes

SymptomCauseFix
Transient run starts from an unrealistic statestoreInitialState() was skipped after steady-state initializationRun the process, inspect state, then call storeInitialState() before runTransient()
Separator level jumps or becomes nonphysicalGeometry or initial liquid level was missingSet vessel length, internal diameter, and liquid level before transient runs
Equipment behaves steady-state during transientDynamic mode was not enabledCall setCalculateSteadyState(False) on supported dynamic equipment
ProcessModel area coupling changes unexpectedlyCross-area streams were copied instead of shared by object referenceKeep explicit shared stream objects between areas and document boundaries

Limitations

  • The Python helper does not execute NeqSim or replace NeqSim dynamic simulation.
  • Geometric volume checks are public readiness estimates, not pressure-vessel design.
  • No proprietary vessel-sizing, control, or dynamic stability criteria are included.
  • Human review is required before engineering or operational decisions.

Related NeqSim Functionality

  • neqsim.process.processmodel.ProcessSystem#run() — steady-state initialization before dynamic simulation.
  • neqsim.process.processmodel.ProcessSystem#storeInitialState() — stores the initialized state for transient calculations.
  • neqsim.process.processmodel.ProcessSystem#setTimeStep(double) and runTransient() — transient execution.
  • neqsim.process.processmodel.ProcessModel — multi-area process composition where contained systems should be prepared consistently.
  • neqsim.process.equipment.separator.Separator#setCalculateSteadyState(boolean), setSeparatorLength(double), setInternalDiameter(double), and setLiquidLevel(double) — separator dynamic preparation.
  • neqsim.process.mechanicaldesign.separator.SeparatorMechanicalDesign — NeqSim separator mechanical-design and sizing support.

In Python these classes are reachable through the neqsim package, for example from neqsim import jneqsim.

References

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.