Giter VIP home page Giter VIP logo

fc-taylor's Introduction

FC-Taylor Program

A full constraint (FC) Taylor program useful for generating discrete yield surface data from the crystallographic texture of an alloy. The discrete yield surface data can further be used to calibrate the phenomenological Yld2004-18p yield surface with the application. The program uses the hypoelastic implementation in the SIMLab Crystal Mechanics Model (SCMM-hypo) for solving the single crystal response of each individual grain. Download the latest version of the FC-Taylor application here.

FC-Taylor image

Usage

See the SCMM-hypo manual or the Home tab of the FC-Taylor application for details.

Building the Application

To build the FC-Taylor application follow these simple steps.

Compiling and building for Windows on Windows

  1. Clone the project from Github (git clone --recursive https://github.com/frodal/FC-Taylor.git)
  2. Install Microsoft Visual Studio
  3. Install the Intel oneAPI Base and HPC Toolkits including the Intel Visual Fortran Compiler
  4. Install Node.js
  5. Install Python
  6. Run the BuildProjectWindows.bat script, by double-clicking it or using the command line, to compile, build and package the application for Windows x64

Compiling and building for Linux on Linux or using the Windows Subsystem for Linux (WSL)

  1. Clone the project from Github (git clone --recursive https://github.com/frodal/FC-Taylor.git)
  2. Install the Intel oneAPI Base and HPC Toolkits including the Intel Visual Fortran Compiler (Alternatively install the GNU compilers sudo apt-get install gfortran gcc g++)
  3. Install the Node Version Manager
  4. Install Node.js (nvm install node)
  5. Install Python 3 and pip3 (sudo apt-get install python3 python3-pip)
  6. Run the BuildProjectLinux.sh script, by using the command line, to compile and build the application for Linux x64

Compiling and building for MacOS on MacOS (darwin)

Your on your own, see the Linux build information for tips.

Update GUI dependencies

  • Check which dependencies that have updates available with npm outdated using the command line in the FC-Taylor/GUI directory
  • Update all GUI dependencies by running npm update using the command line in the FC-Taylor/GUI directory, note that this will not update to an update with a greater major version number
  • Update only Electron by running npm install --save-dev electron@latest using the command line in the FC-Taylor/GUI directory
  • Update only Electron-packager by running npm install --save-dev electron-packager@latest using the command line in the FC-Taylor/GUI directory
  • Update only Electron-installer-windows by running npm install --save-dev electron-installer-windows@latest using the command line in the FC-Taylor/GUI directory
  • etc.

See also the GUIwrapper repository

Contributing

To contribute:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contact

Bjørn Håkon Frodal - @frodal - [email protected]

fc-taylor's People

Contributors

dependabot[bot] avatar frodal avatar

Stargazers

 avatar

Watchers

 avatar

fc-taylor's Issues

Refactor code

Refactor the JavaScript code into several packages/modules/files

Calibration for full 3D stress states

Set a flag wether to use 3D or 2D calibration based on the generated stress points, i.e., if the stress points generated are for plane stress or not.

Tests

Implement some tests in order to test newly implemented features

Centrosymmetry

Centrosymmetry should be written centrosymmetry and not centro-symmetry.

Add build script

Add a build script to compile the Fortran source, move the binary to ./GUI/Core, package the application, and create an installer (setup.exe)

Duplicate grains should increase weight

When several grains with the exact same orientation is given as input, the grains should be lumped so that the weight of the orientation is added and not computed several times.

Max CPU cores allowed

When the amount of cores requested is greater than the amount of available cores, the amount should be restricted to the available amount. This will not impact the solver as openMP handles this, but the output time interval will be affected.

Importing material data

When importing material data using the Kalidindi hardening model, and then changing to the Voce hardening model, the hardening parameters are not numbers! Some more error checking should be done when importing data.

Correct normalized yield stress along RD/ED

The normalized yield stress along RD/ED should be one. This might not be the case when a low amount of stress points is generated. Try to correct the normalized stress after calibration and then run another one.

Download new version from GUI?

Add a menu item to download a new version if the old one is outdated or force download if version is deprecated.
This will be OS dependent

  • Windows (Download installer)
  • Linux (Download package)
  • Darwin (?)

Setup error codes

Use some error codes in the FC-Taylor core, and handle these errors in the GUI.
E.g., If the texture input cannot be read, an error code should be returned(written to stdout or stderr) and handled by displaying an informative message to the user. Related to #10

Grain orientation spreadsheet

Create a way of defining some grain orientations in the app to be used (spreadsheet), without the need of a texture file. This spreadsheet should maybe also display the orientations loaded from a texture file.

Add navigation bar

Add a navigation bar with different tabs for loading texture input, material input, other input, job input, job output, visualization, and calibration. Related to #13, #14, #17

Parse stdout

Parse stdout and display only "useful"/minimal information to the user from core

Texture generation

Create a way of generating a texture based on common texture components and random texture

Update build script

Update build script with commands to clean up build files, i.e., main.obj and pyinstaller build files
And copy license.md to the GUI folder

  • Copy and update License
  • Clean build files

Dedicated post on my homepage about FC-Taylor

Create a dedicated post on my homepage about FC-Taylor and its newest version number, so that the help menu items can be redirect the user there for more info etc. Add a submit issue form as well.

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.