Code Monkey home page Code Monkey logo

rvesimulator's Introduction

BessaGroup

Website for the research group based on the JekyllSerif Theme.

Installing Ruby & Jekyll

If this is your first time using Jekyll, please follow the Jekyll docs and make sure your local environment (including Ruby) is setup correctly.

How to Collaborate

  1. Fork the repository to your account
  2. Create a new branch
  3. Do some contribution/improvement
  4. Test changes locally
  5. Create a pull request to original repository

To run the repo locally, modify the baseurl: in the _cofig.yml. Change the value to ''

Then, navigate to the theme directory and run:

bundle install

To start the Jekyll local development server.

bundle exec jekyll serve

To build the theme.

bundle exec jekyll build

rvesimulator's People

Contributors

jiaxiangyi96 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

rvesimulator's Issues

API source is in root folder of documentation

Problem

  • The API documentation is generated with apisource; this works fine but the api is now not in a separate folder (e.g. they are spread out in the /source folder.
  • You are also missing the source/api.rst file

Possible solution

Adapt the new way of generating API documentation from the bessa-pypi-template. This will generate the documentation in _autosummary,

Link to paper

Problem

The README.md file does not have a link to the paper (draft).

Possible solution

Add a link to the paper (draft) in the README.md file.

Assignees:
Labels:

rvesimulator/README.md

Lines 9 to 16 in ea31752

---
[**Documentation**](https://bessagroup.github.io/rvesimulator/)
| [**Installation**](https://bessagroup.github.io/rvesimulator/get_started.html)
| [**GitHub**](https://github.com/bessagroup/rvesimulator)
| [**Tutorials**](https://github.com/bessagroup/rvesimulator/tree/main/tutorials)
---

Installation requirements and requirements.txt are different

Problem

In your repository, you have a requirements.txt and setup.cfg file:

  • In the setup.cfg; there are install_requires listed:
install_requires =
    numpy
    pandas
    matplotlib
    scipy

However, the requirements in requirements.txt are version dependent, thus different:

matplotlib>=3.6.2
numpy>=1.23.5
scipy>=1.9.3
pandas>=1.53

Possible solution

Change your setup.cfg to read the requirements file as install_requires:

install_requires = file: requirements.txt

Name of example folder does not match the name of the example folder in diagram

Problem

The name of the folder in the diagram is abaqus_sim_main, but the name of the folder in the text is abaqus_script

Assignees:
Labels:

Once you have your script ready as the following format, then you can put your script to a folder you want. Here I want
to show a simple example about the folder structure of your own script and :any:`abaqus2py` module.
.. literalinclude:: abaqus2py.txt
:language: text
:lines: 1-13
The above case, the folder **abaqus_script** is parallel to the repo folder **rvesimulator**.
Then you can run your simulation by:

PK2 stress in post processing is not symmetric

This is in reference to the hyperelastic RVE case 9ab1931, but the issue could be present in other cases as well. In the post processing step, we retrieve the applied deformation gradient $\bar{\mathbf{F}}$ and obtain the homogenized 1st Piola-Kirchhoff stress $\bar{\mathbf{P}}$. However, when I compute the 2nd Piola-Kirchhoff stress $\bar{\mathbf{S}} \coloneqq \bar{\mathbf{F}}^{-1}\bar{\mathbf{P}} $, I get a non-symmetric matrix, which shouldn't be the case. There seems to be a bug in the post processing and this needs to be investigated and resolved.

.gitattributes file

I see a .gitattributes file in your repo, which seems similar to .gitignore. Do you need this file? What is its purpose?

test

folder_index : int, optional
first fodler index, by default None
sub_folder_index : int, optional
second folder index, by default None
third_folder_index : int, optional
third folder index, by default None

Add docstrings to modules

Problem

Your functions and classes have docstrings, but the python files itself (=modules) not.
These can explain the need of that particular module

Possible solution

Add docstrings with a description of the modules to all .py files in your package

many nested if statement; consider first checking for the non-normal behaviour (if not None)

if folder_index is None:
if sub_folder_index is None:
self.folder_info["current_work_directory"] = "case_" + str(
third_folder_index
)
else:
if third_folder_index is None:
self.folder_info[
"current_work_directory"
] = "point_" + str(sub_folder_index)
else:
self.folder_info["current_work_directory"] = (
"point_"
+ str(sub_folder_index)
+ "/case_"
+ str(third_folder_index)
)
else:
if sub_folder_index is None:
raise ValueError("provide sub_folder_index")
elif third_folder_index is None:
raise ValueError("provide third_folder_index")
else:
self.folder_info["current_work_directory"] = (
"gen_"
+ str(folder_index)
+ "/point_"
+ str(sub_folder_index)
+ "/case_"
+ str(third_folder_index)
)

Check for working installation is not implemented

Problem

In step 4., whenever you want to check the installation. The logging message 'Impoerted rvesimulator' is not shown.
Althought, the package is correctly imported

Possible solution

  1. Implement the logging message
  2. Remove the logging message check from the documentation

Assignees:
Labels:

4. In order to check your installation you can use
.. code-block:: console
$ python -c "import rvesimulator"
>>> 2023-07-05 14:56:40,015 - Imported rvesimulator (version: 1.x.x)

Add a requirements_dev.txt file

Problem

It would be nice to add a requirements_dev.txt file that bundles the requirements for the package, testing, documentation building, flake8 check and package building.

Possible solution

Add a requirements_dev.txt file in the root folder:

# Core package requirements
-r ./requirements.txt

# Linting
flake8

# Testing
-r ./tests/requirements.txt

# Documentation
-r ./docs/requirements.txt

# Building
setuptools>=43.0.0
build
wheel

Note: this is not required for the BRG coding guidelines, just a suggestion :)

Note down the requirements for the `folder_info` keys

Problem

This comment shows me that I need to have specific keys in the folder_info dictionary. But these requirements are not present here

Possible solution

Create a step-by-step approach with an example what is possible and necessary in the folder_info dictionary.

Assignees:
Labels:

.. note::
where ``folder_info`` is a dictionary indicates where to find your abaqus script and where to run and save your simulation.
In the way, it has a bit strict requirement on the folder structure of your script. For the ``sim_info`` dictionary, it encode the design
of experiment to abaqus simulation. Also, the **job_name** and **platform** are important keys in the dictionary, you have to include them in your
``sim_info`` dictionary.

Add option to output results in .vtk format for ParaView

Currently, we only have the option to output results in .odb format, native to Abaqus. Since we have issues with licenses on local machines, it would be be very useful to have result output as .vtk, so that we can visualize our results on ParaView.

I found a few repos which might have some useful stuff for getting this done:

Description is missing the how to use the microstructure module

Problem

The description in this documentation page describes the microstructure module but does not provide any information on how to use it.

Solution

Add a section how the module is build and how to use it.

Assignees:
Labels:

Generating the micro-structures is a non-trival problem because there are many
requirements such as the partiles should not overlap between each other,
different shapes of partcles should provide, the particles also shoulf obey the periodical
boundary conditions, and so on.
With regular shapes, such as disk,
ellipse in 2D scenario, sphere in 3D scenario; we can obtain the analytical
formula to describe their shapes. Therefore, it provides much more information
to design an algorithm to generate the micro-structures.
Moreover, most of those algorithms are based on techniques like Monte Carlo Simulation,
Melocular dynamics and so forth, so there are no same micro-structures from two different realizations.
What's more, if the shapes are arbitrary then the generation of micro-structure becomes
very difficult as an NP hard problem.

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.