Open KlootwijkBart opened 1 year ago
Hello @KlootwijkBart ,
Thank you for the careful documentation of all of these issues and your patience in waiting for my reply. You indeed caught some bugs and other inadequacies in our examples. I have pushed a new release of fixes. To address your points:
la = LoadsAnalysis(outputs,
instead of la = LoadsAnalysis(outfiles,
. The outputs = load_FAST_out(outfiles)
was done without awareness of the vector magnitude outputs, but if you pass in the output file strings, they will be read with awareness of those new channels. Does that make sense?multiprocessing
must be run from a script under a if __name__ == "__main__"
instance. Once I tried this in the post_BatchRun.py
example, passing in multiple cores via la.process_outputs(cores=3, ...
worked fine. Without that, then there were some abstruse errors. I am still fuzzy on how this works in a Jupyter environment, but it seems to be okay there. Let me know if this fix works for you.Cheers, Garrett
Hi @gbarter
Thank you for clarifying and adjusting the examples. I implemented the changes and everything works as expected now.
Best,
Dear developing team,
I am trying to use the pCrunch tools to post-process a bunch of DLCs from OpenFAST runs in Python. However, I am encountering some problems. I installed the latest release through conda, as explained in the README. Following the
example.ipynb
script, I set up my script as follows. Please find my questions below.1) My first question deals with the
magnitude_channels
parameter. I understand from the context that it combines the vector components of e.g. a force vector, and returns the magnitude of the force. In the example script, the moment componentsRootMxc1
,RootMyc1
andRootMzc1
together make up the magnitudeRootMc1
, which is then passed to thefatigue_channels
. However, when I do this, I get the following warning after runningla.process_outputs()
: Channel 'RootMc1' not included in DEL calculation. Also, when I call enterla.summary_stats['RootMc1']
in the console, I get a KeyError. Could you please clarify what the magnitude channel should do, and whether I misunderstand its use?When I change the
fatigue_channels
to a dictionary containing the moment components instead of the magnitude, it runs as expected:2) The first few times I tried to run the script using multiple cores. However, it seems to hang when parallel processing is enabled. When I use serial post-processing, the script takes about 45 seconds to run and finishes successfully. Using parallel processing, however, the program still didn't return anything after half an hour. For me, currently the time it takes to perform serial processing is acceptable, but it would be handy to make use of the parallel processing capability in the future. Is this a bug that you are aware of?
3) Lastly, I am most interested in calculating the fatigue damage. Could you please provide some guidance as to how this is done using pCrunch? The DELs seem fine, but when I enter
la.damage
in the console, all I get are NaNs:I look forward to your help.
Best,