How prosimengineering/prosim_calc works
Prosim is an Electron desktop application for importing Nastran FEA files, browsing and editing normalized model/results data, and running fastener-joint calculations. The main user workflow is selecting a project/file, parsing and normalizing it into a solver-independent dataset, then querying and viewing categories or opening the calculation workspace. The graph also preserves the fastener library and supporting engineering packages. The README is empty, and several main-process and library paths are unsampled, so those areas are shown without guessed call relationships.
Main entry points: dataModel.ts Standard FEA dataset · App.tsx Application shell · ipc.ts Typed IPC contract · CalcWorkspace.tsx Calculation workspace
Components 25
Desktop experience
- Application shell
apps/desktop/src/renderer/App.tsx - Data browser
apps/desktop/src/renderer/components/MainWorkspace.tsx - Calculation workspace
apps/desktop/src/renderer/calc/CalcWorkspace.tsx - Fastener definitions
apps/desktop/src/renderer/calc/FastenerDefinitionsTable.tsx - Typed IPC contract
apps/desktop/src/shared/ipc.ts - Preload bridge
apps/desktop/src/preload/index.ts
Import and parsing
- Import worker
apps/desktop/src/main/importWorkerEntry.ts - Worker protocol
apps/desktop/src/main/importWorkerProtocol.ts - Parser registry
apps/desktop/src/main/parserRegistrySetup.ts - Parser registry contract
packages/core/src/parser.ts - Nastran OP2 parser
packages/fea-parsers/nastran/src/feaParser.ts - OP2 decoding
packages/fea-parsers/nastran/src/op2Reader.ts - OP2 datablocks
packages/fea-parsers/nastran/src/container/datablockDemuxer.ts - Nastran BDF parser
packages/fea-parsers/nastran-bdf/src/feaParser.ts
Engineering domain
- Standard FEA dataset
packages/core/src/dataModel.ts - Dataset query layer
packages/core/src/query.ts - Units and quantities
packages/core/src/units.ts - Fastener joint calculations
packages/modules/fastener-joint/src/fastenerJoint.ts - FEA assembly
packages/modules/fastener-joint/src/feaAssembly.ts - Plate force derivation
packages/modules/fastener-joint/src/middlePlateForceDerivation.ts - Calculation registry
packages/calc-engine/src/registry.ts
Application state
- Project storage
apps/desktop/src/main/projectsStore.ts - Fastener library storage
apps/desktop/src/main/libraryStore.ts - Settings storage
apps/desktop/src/main/settingsStore.ts
Other components
- Engineer
Connections 19
- Engineer → Application shell: uses
apps/desktop/src/renderer/App.tsx - Application shell → Data browser: renders
apps/desktop/src/renderer/App.tsx - Application shell → Calculation workspace: renders
apps/desktop/src/renderer/App.tsx - Application shell → Typed IPC contract: requests data
apps/desktop/src/renderer/App.tsx - Data browser → Typed IPC contract: requests data
apps/desktop/src/renderer/components/MainWorkspace.tsx - Calculation workspace → Fastener definitions: renders
apps/desktop/src/renderer/calc/CalcWorkspace.tsx - Calculation workspace → Typed IPC contract: requests data
apps/desktop/src/renderer/calc/CalcWorkspace.tsx - Typed IPC contract → Preload bridge: exposed by
apps/desktop/src/shared/ipc.ts - Import worker → Parser registry: creates registry
apps/desktop/src/main/importWorkerEntry.ts - Import worker → Worker protocol: exchanges messages
apps/desktop/src/main/importWorkerEntry.ts - Parser registry → Parser registry contract: uses contract
apps/desktop/src/main/parserRegistrySetup.ts - Parser registry contract → Standard FEA dataset: normalizes into
packages/core/src/parser.ts - Nastran OP2 parser → OP2 decoding: decodes with
packages/fea-parsers/nastran/src/feaParser.ts - OP2 decoding → OP2 datablocks: demultiplexes
packages/fea-parsers/nastran/src/op2Reader.ts - Nastran BDF parser → Standard FEA dataset: normalizes into
packages/fea-parsers/nastran-bdf/src/feaParser.ts - Nastran OP2 parser → Standard FEA dataset: normalizes into
packages/fea-parsers/nastran/src/feaParser.ts - Dataset query layer → Standard FEA dataset: queries
packages/core/src/query.ts - Fastener joint calculations → Standard FEA dataset: uses domain model
packages/modules/fastener-joint/src/fastenerJoint.ts - FEA assembly → Plate force derivation: derives forces with
packages/modules/fastener-joint/src/feaAssembly.ts