ansys / ansys/pyfluent

High-level documentation gap: Journaling vs first-class PyFluent Python APIs

Open
#4,750 0 comments 0 reactions 0 assignees View on GitHub
documentation
Dominant language
Python
Stars
497
Forks
77
Avg merge
22h 37m
Merged PRs (30d)
45

Description

## Summary

The PyFluent documentation needs a **prominent, high-level section** that clearly explains the distinction between **journal-generated Python** and **first-class PyFluent Python APIs**.

At present, the User Guide includes a journaling page that explains how PyFluent scripts can be generated from Fluent under certain constraints (e.g. meshing workflow GUI actions are journaled, solver GUI actions are not, etc.). However, the documentation does **not** make clear that:

* Journal output is **not** first-class PyFluent code
* Many PyFluent-specific abstractions and best practices are **never** represented in journal output
* Journaled code reflects only commands issued to Fluent, not effective Python usage

This leads users to incorrectly treat journal output as the canonical or recommended way to write PyFluent scripts.

## Problem Statement

### What the docs currently imply

By focusing on how to generate PyFluent scripts via journaling—without strong caveats—the documentation implicitly suggests that:

* Journaled Python is a good starting point for PyFluent development
* Journals represent idiomatic or recommended PyFluent usage

### What is actually true

1. **Journal output is not first-class PyFluent script**
Journaled code is a mechanical record of commands sent to Fluent. It is not designed to:

* Be idiomatic Python
* Reflect PyFluent abstractions
* Demonstrate good structure, reuse, or composition

2. **Journal output is inherently limited**
It contains only:

* Commands issued to Fluent

It does *not* include:

* Program logic (control flow, functions, composition)
* Queries or inspection of solver state
* Error handling or validation
* Integration with the wider Python ecosystem (NumPy, pandas, plotting, automation, etc.)

3. **Key PyFluent abstractions are never journaled**
Many PyFluent-specific APIs and higher-level constructs simply do not appear in journal output, so users relying on journals will never discover them.

## Why This Matters

### Cultural and behavioural impact

* **Legacy users are strongly conditioned to rely on journals** and often treat them as the "ground truth" for automation.
* **If some internal Ansys staff were to reinforce this mindset**, it would spread the idea that journaling is the correct or preferred approach.
* This may result in users producing brittle, verbose, and inefficient scripts while missing the real value of PyFluent.

### User profile reality

* Many PyFluent users are *not* professional software developers.
* Programming is a tool, not their primary discipline.
* Without clear guidance, these users naturally gravitate to journaling because it feels familiar and safe.

This makes it essential that the documentation actively **educates users**, rather than passively allowing legacy workflows to dominate.

## Proposed Documentation Changes

1. **Add a prominent, high-level documentation section** (not a buried subsection) titled along the lines of:

* "Journaling vs First-Class PyFluent Python APIs"

2. Clearly state that:

* Journal-generated Python is **not** first-class PyFluent code
* Journals should be treated as a *recording/debugging aid*, not a development model

3. Explicitly position the recommended learning path as:

* Python fundamentals
* PyFluent online documentation
* Curated PyFluent examples

4. Explain why journaled code:

* Is not idiomatic
* Is not efficiently structured
* Does not represent the full PyFluent API surface

5. Encourage a mindset shift:

* PyFluent as a Python API first
* Journaling as a secondary, limited tool

## Acceptance Criteria

* A new, clearly visible documentation section explaining journaling vs first-class PyFluent usage
* Explicit statements that journal output is not idiomatic or recommended PyFluent code
* Clear guidance on how users should learn and write PyFluent scripts effectively
* Documentation language that actively discourages over-reliance on journaling

## Outcome

This change aims to:

* Set correct expectations for new users
* Help legacy users transition away from journal-centric workflows
* Improve overall script quality and API adoption
* Drive a cultural shift toward treating PyFluent as a modern Python-first interface

Contributor guide

Open the contributing guide

Research direction

Start with the existing User Guide journaling page and inspect the surrounding documentation structure for an appropriate prominent location. Add a section contrasting journal-generated Python with first-class PyFluent APIs, including the recommended learning path and journaling limitations; done means the acceptance criteria are stated clearly for new users.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.