Giter Club home page Giter Club logo

pyfepx's People

Contributors

rcarson3 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

pyfepx's Issues

Better Fortran code documentation

The Fortran has fairly poor documentation on all fronts. Comments need to be added through out the code to explicitly say what each function does. The function calls that are callable from Python need to have additional comments showing how they can be called from Python.

Update data reads to be faster by preallocating data structures AOT

Since we know how many frames, processors, elements, and coords there are in the simulation we have enough information to preallocate all of the data before we start reading all of the data. Then by using the partitioning system used in FEpX we can create an index for the lower and upper bounds of the coords and elements that belong to each processor. Once we do this, we can easily just read the data into this structure all at once. I have a feeling simulations with a lot of data would benefit greatly from this. The big reason I think this would be faster is that for each processor we append it to a temporary list and then convert that over to a numpy array before adding it to our data dictionary.

Consistent Naming of Variables, Modules, and Functions

The current naming of all the above includes a mix mash of the original names from the MATLAB code that this code base was originally based on and my evolving feelings towards how to name all of the above. While a breaking a change, I believe it would greatly help to have a single consistent style that we use across all variables and names. We should probably just follow the PEP8 naming standards: https://www.python.org/dev/peps/pep-0008/#naming-conventions . By following this standard, we can probably just use built in linters such as those that follow PEP8. If we do this it might also help with #7 .

Misori bug fixes

The current version of the Misori module does not include the bug fixes which allowed us to invert several different matrices. (bartonStats and misorientationStats)

Next, the misorientationGrain call needs to be updated to accept angle-axis vectors as an input.

misorientationBartonTensor and misorientationTensor need to be updated so they output the axial vector as well as a 4 x n x nframe matrix.

These fixes should be easy to fix since the code has already been written and tested, but just needs to be merged into the master branch.

Fortran gradient calculation bugs

Currently the Fortran code potentially contains a bug where a memory allocation error occurs when the python data is passed in.

I haven't had a ton of time to find this exact bug behind it. However, I recommend that users use the python scalar and vector gradient alternatives until this bug has been found.

Update code to no longer require iopro

With TextAdapter now being available with the exact same functions as iopro there's no longer a need to include iopro in the python library. All of the iopro calls and imports need to be replaced with TextAdapter imports and calls. This should be a pretty simple issue to fix due to the very few iopro calls and imports that exist in the library.

More consistent Python Documentation Style

The current code base has varying styles of documentation styles. One consistent form needs to be created, and then the documentation needs to be refactored to be consistent with this style.

I'm open to suggestions on a consistent documentation style to use. My current thoughts are a short description of the function; description of input variables which includes a statement about them and expected dimensions of each variable; description of output variables which includes a statement about them and expected dimensions of each variable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.