Metadata-Version: 2.1
Name: thermoblock
Version: 23.7.0.dev2
Summary: Flux simulation toy building library.
Author: PhysicsCore contributors
License: BSD 3-Clause License
        
        Copyright (c) 2023, Physicscore contributors (https://github.com/physicscore)
        All rights reserved.
        
        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions are met:
        
        1. Redistributions of source code must retain the above copyright notice, this
           list of conditions and the following disclaimer.
        
        2. Redistributions in binary form must reproduce the above copyright notice,
           this list of conditions and the following disclaimer in the documentation
           and/or other materials provided with the distribution.
        
        3. Neither the name of the copyright holder nor the names of its
           contributors may be used to endorse or promote products derived from
           this software without specific prior written permission.
        
        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
        AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        
Project-URL: Bug Tracker, https://github.com/physicscore/thermoblock/issues
Project-URL: Source, https://github.com/physicscore/thermoblock
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE

[![PyPI badge](http://img.shields.io/pypi/v/thermoblock.svg)](https://pypi.python.org/pypi/thermoblock)
[![Anaconda-Server Badge](https://anaconda.org/physicscore/thermoblock/badges/version.svg)](https://anaconda.org/physicscore/thermoblock)
[![License: BSD 3-Clause](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](LICENSE)

# thermoblock

## About

Flux simulation toy building library.

## Installation

```sh
python -m pip install thermoblock
```


<!-- # Legacy Alart‼️
This repository is being renovated...! 🚧👷‍♂️ Coming soon!

# What can I do with this?

This program is for simulating the heat flux of solid stuff or any stuff...
It can be used for any material if the user updates some information of new material and make a form by an equation.
Users may calculate any flux if they modify the formula in the main module containing the physical engine.

You can adjust specific heat conductivity capacity and density to the material u made in the program. (or another physical character u need.)

The basic materials are iron and copper. Users can use the information of those two material. And User can add other information needed for simulation by the UI, or just typing in the program.


# Physical Idea of the Program.
The main idea is to split the solid into blocks like toy blocks 🧱 and calculate the flux between the blocks.

The calculating mechanism is defined as a method in the 'RObject' class which is the solid object consisting of the blocks.

The 'block' object is the unit object of the solid like a Lego block, each block in the solid has its own index.

So 'block' should have indices (a set of indexes in 3 dimensions) and the solid stuff, 'RObject' has a set of indices.
Users can make any object by equation of the object in 3D rectangular coordinates.
  **(I'm making the circular and spherical coordinate system too.)

The copper stick and the iron stick sample object are also in the main module, so the user can just try making it by command line with
```
  from mainmodule import *
  a = iron stick();
```
The sample object is just like an experiment material, which I used in the 'general physics experiment class' at my school.

# Setting up the environment

program language: python /
required module: numpy, vpython, tkinter

There is a `setup.sh` shell script for setting up the environment. I don't recommend this program for window user because it is very annoying to use vpython with window. 윈도우 극혐...
But there are many easy way to run the linux os in the window so user would be better to run the program in that way.

# Development progress situation

### List of functions I want to add to the program.
- multi-process (most important, since the process is too slow now...)
- fantastic UI
- equation editor

### UI
- user can choose the environment either 'open' or 'close'.
- there are two example simulations
      setting one end of the metal stick at 100℃ and one end of the metal stick, 0℃  and the other part is 20℃ .
- the UI is not working properly...

# Developer
It was just my homework in the visual physics course at my school...
My e-mail address is 'luysunyoung9@gmail.com'.
I'm studying at the dept. of physics at the University of Seoul. -->
