Code Monkey home page Code Monkey logo

audunarn / anystructure Goto Github PK

View Code? Open in Web Editor NEW
49.0 12.0 16.0 35.52 MB

ANYstructure is the ultimate steel structure design tool for plate fields and cylinders. Weight optimization for all structures with machine learning capabilities. Calculations are based on DNV standards and rules.

License: MIT License

Python 99.71% JavaScript 0.29%
dnvgl-os-c101 design-of-offshore-steel-structures buckling fatigue-analysis analysis-framework plate-thickness beam-section gui-based dnvgl-rp-c201 optimization-tools

anystructure's People

Contributors

audunarn avatar lewiuberg avatar rubendebruin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

anystructure's Issues

Missing package scikit-learn

Hello,

When installing the requirements from scratch and then running main.py, an error occurs because sklearn cannot be found.
This can be resolved by installing scikit-learn. So I think this needs to be added to the requirements.

The same applies when installing using pip install anystructure

Regards,
Frederik

ANYinsight

More insight into the results to be added. What fails and what is OK.

Failed to load dynlib/dll 'shcore'. Most likely this dynlib/dll was not found when the application was frozen.

hello i am facing this error when i try to open program
Traceback (most recent call last):
File "PyInstaller\loader\pyimod03_ctypes.py", line 77, in init
File "ctypes_init_.py", line 376, in init
FileNotFoundError: Could not find module 'shcore' (or one of its dependencies). Try using the full path with constructor syntax.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "main.py", line 23, in
File "main.py", line 11, in main
File "ctypes_init_.py", line 446, in getattr
File "PyInstaller\loader\pyimod03_ctypes.py", line 79, in init
pyimod03_ctypes.install..PyInstallerImportError: Failed to load dynlib/dll 'shcore'. Most likely this dynlib/dll was not found when the application was frozen.

Geometry optimization completion

The code contains a geometry optimization code. It will automatically calulate the best plate field length and number of plate fields for a selected distance. It is 70% complete and is not activated in the application. It will be a significat enhancement to complete it.

optimize_geometry.py

Vectorize

Many calculations can be vectorized.

Running on linux

Hello,

I wanted to run ANYstructure on linux and I managed to do so. I did need to implement the following 2 changes:

  1. main_application.py, line 330: change \ to / I think using os.path.join() would solve the problem, or to keep the string concatenation os.sep might also work.
  2. main_application.py, line 67: vista theme did not work, but changing to classic did the trick.

Kind regards

More info:
stackoverflow for 1

Loading built-in section

Hello,

I was testing the linux modifications on windows and came across the following issue:
When loading the built-in sections, the file is not found. This is because the .csv file with the sections is in ANYstructure_local, which is a sub-dir of the directory containing main.py.

Using original thickness when doing minimum plate thickness check in optimization

file: optimize.py
at about line 400 in method any_constraints_all

    # Minimum plate thickeness
    if chk[1]:
        if not obj.get_plate_thk()>calc_object[0].get_dnv_min_thickness(lat_press)/1000:
            return False

to be replaced by

    # Minimum plate thickeness
    if chk[1]:
        if not calc_object[0].get_plate_thk()>calc_object[0].get_dnv_min_thickness(lat_press)/1000:
            return False

Cost in optimization algorithm

Implement a non dimensional cost number. Should be dependent on weight and weld length. But how to choose which one matters the most.....

Bending stress in 3.3 unstiffened curved panel / 3.4 unstiffened circular cylinders

Hi Audun,

I think there is a small bug in the code for unstiffened curved.

calc_structure.py:
In the function unstiffened_shell, the sign for the bending stress is set zero or the absolute value depending on the sign (line 2961). This is fine, but changes the value of smsd.

A bit further in the code, '3.4 unstiffened circular cylinders', the same is done for sm0sd (line 3135). However, this uses the value of smsd, which is changed earlier, resulting in the bending stress not correctly being taken into account.

I would suggest moving the calculation of sa0sd, sm0sd to the beginning of the function, only doing it once and used these values in the further calculations.

Hope my explanation is clear.
Regards,
Frederik

Multiple optimization (MultiOpt) not working.

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\tkinter_init_.py", line 1699, in call
return self.func(*args)
File "C:\Users\any\Code\PyStructural\ANY_structural\optimize_multiple_window.py", line 396, in run_optimizaion
fp['p_ext']['loaded'], fp['p_ext']['ballast'], fp['p_ext']['part'] = 0,0,0
KeyError: 'p_ext'
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\tkinter_init_.py", line 1699, in call
return self.func(*args)
File "C:\Users\any\Code\PyStructural\ANY_structural\optimize_multiple_window.py", line 396, in run_optimizaion
fp['p_ext']['loaded'], fp['p_ext']['ballast'], fp['p_ext']['part'] = 0,0,0
KeyError: 'p_ext'

Section 6.2 buckling longitudinal plate

Hi @audunarn

In calc_structures: unstiffened_plate_buckling()
line 1515: sxRd = Cxfy/gammaM if not all([sig_x1<0, sig_x2<0]) else 1
should be:
sxRd = Cx
fy/gammaM if not all([sig_x1<0, sig_x2<0]) else fy/gammaM
I think.

Resistance factor for tension is yield divided by material factor, not 1

Regards,
Frederik

Approval / Certification

I'm asking this question because I'm running into this myself and am wondering if you or anyone else had given it some thought already.

Some day (soon) people will start using this executable and will be producing reports with it. But how can they be sure that what comes out is correct? Some software packages manage to get an "approved" stamp from some certification authority while others do not.

It would be nice if some sponsor (DNVGL...?) would review the code and give it an approval or a recommendation.

Optimization timer not correct.

After implementing multiprocessing, the timer for optimizing a plate field is somewhat strange. Also it is located the wrong place.

Testing

A better testing framework must be implemented.

Cache results

Results should be cached. That way recalculations is not required all the time.

calc_structure

Hello,

I get the following error when running the program (both via the GUI and If I run the code itself with example_data.py):

  File "/home/frederik/theScriptingEngineer/Python/ANYstructure/ANYstructure_local/calc_structure.py", line 1895, in stiffened_panel
    stf_pl_data['UF Plate side'] = res_iter_pl.fun[0]
TypeError: 'float' object is not subscriptable

Unfortunately I don't understand the code enough to propose a solution...

GUI

Hi!

I see you made plans to shift to Kivy, is this still something you are considering?

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.