rcarson3 / pyfepx Goto Github PK
View Code? Open in Web Editor NEWPython tools to process FEpX data, orientation methods, intragrain deformation metrics, dislocation density methods, and superconvergence methods
License: MIT License
Python tools to process FEpX data, orientation methods, intragrain deformation metrics, dislocation density methods, and superconvergence methods
License: MIT License
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.
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.
Add a new function that computes the least squares convergence through the superconvergene patch test method. I'll need to update the code a bit to make this feasible to take into account the quadrature weights.
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 .
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.
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.
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.
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.
I must have missed this when trying to figure out the some of the equivalent matlab code for OdfPf, but the triangulation function and obtaining the barycentric weights was already supported in SciPy. Here's a great write-up of it on stack exchange: https://codereview.stackexchange.com/questions/41024/faster-computation-of-barycentric-coordinates-for-many-points. Several issues should now be easier in that conversion from matlab to python.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.