Skip to content

doc: Add tutorial to understand cyclic models#3160

Open
rafacanton wants to merge 29 commits into
mainfrom
rcanton/tuto_cyclic
Open

doc: Add tutorial to understand cyclic models#3160
rafacanton wants to merge 29 commits into
mainfrom
rcanton/tuto_cyclic

Conversation

@rafacanton
Copy link
Copy Markdown
Collaborator

No description provided.

This reverts commit baf04a5.
This reverts commit 254bc63.
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 29, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.93%. Comparing base (3e74fd1) to head (a735ca6).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #3160       +/-   ##
===========================================
+ Coverage   44.86%   82.93%   +38.07%     
===========================================
  Files          93       93               
  Lines       11600    11602        +2     
===========================================
+ Hits         5204     9622     +4418     
+ Misses       6396     1980     -4416     

@rafacanton rafacanton closed this Apr 29, 2026
@rafacanton rafacanton reopened this Apr 29, 2026
@PProfizi PProfizi added tutorials Related to PyDPF-Core tutorials deploy-pr-doc For deploying a PR's documentation labels Apr 29, 2026
@PProfizi
Copy link
Copy Markdown
Contributor

@rafacanton sorry about that it looks like there is currently an issue with the PyAnsys action for deploying the doc of a PR. You can ignore that.

When a model possesses cyclic symmetry, only one sector (the base sector) is solved.
DPF can read these results in different ways depending on the ``read_cyclic`` option
passed to a result operator. This tutorial demonstrates the four modes available
(``0``, ``1``, ``2``, ``3``) and shows how to perform phase sweeping on the expanded
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rafacanton did you choose to showcase a phase sweep because this is what people usually do?
I fear that by focusing on phase sweeps we may loose the generic topic of dealing with cyclic symmetries.
Performing phase sweeps could be in another tutorial.
Or are we performing one simply because the only cyclic example we have is this one and it requires a phase sweep to show the expanded displacement field?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would have preferred to showcase how to extract expanded results and use them along with expanded/non-expanded meshes.

Copy link
Copy Markdown
Contributor

@PProfizi PProfizi May 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What I mean is that this is very harmonic-frequency-analysis-oriented while the goal of the tutorial is to show how to deal with cyclic models in general.

# provides the number of sectors, node counts on the base sector, and the
# mapping between low and high boundary nodes.
#
# The |TimeFreqSupport| describes how solution sets map to harmonic indices and
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This too is specific to frequency domain analyses, but we are presenting the CyclicSupport.


###############################################################################
# Get the CyclicSupport from the ResultInfo. The CyclicSupport allows to understand
# the cyclic information of the model. We can see that we have only 1 stage with 8
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have any example with several stages?
If the goal of the tutorial is to present the CyclicSupport, which happens to store information about stages, maybe we need a better example.

print(f"read_cyclic=3, first field entities: {len(disp_rc3[0])}")

###############################################################################
# Phase sweeping on expanded results
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok so it's not that this is not great and I don't want it here, it's more that I think it deserves its own tutorial so that people can find this information better.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 5, 2026

The documentation for this pull request will be available at https://dpf.docs.pyansys.com/pull/3160. Please allow some time for the documentation to be deployed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

deploy-pr-doc For deploying a PR's documentation tutorials Related to PyDPF-Core tutorials

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants