[PYTHON] Essayez l'analyse de transfert de chaleur non stationnaire de 1,5 dimension avec Heatrapy

J'ai essayé une analyse de transfert de chaleur non stationnaire unidimensionnelle en utilisant le heatrapy de open source. Récemment, je fais une relation passionnée au travail.

Environnement

pip install heatrapy

Ce que tu peux faire

Vous pouvez faire ce qui suit: Vous pouvez faire beaucoup de choses!

【modèle】

--Ta, isolations: conditions aux limites --Q: transfert de chaleur (possible à n'importe quelle position) --h: condition de contact (possible à n'importe quelle position) --Q0: transfert de chaleur en fonction de la température (possible à n'importe quelle position)

image.png

papier

Les théoriques sont résumés dans les articles suivants. Je vous remercie https://www.sciencedirect.com/science/article/pii/S2352711018301298#!

Analyse thermique non stationnaire unidimensionnelle d'un composant

Un exemple dans Documentation.

image.png

[Conditions d'analyse]

【Matériel】

Les données matérielles se trouvent dans le dossier d'installation / heatrapy / database. Si vous l'ajoutez ici, vous pouvez ajouter des matériaux. Chaque nom de fichier dans le dossier de matériaux signifie les valeurs de propriétés physiques suivantes, et les valeurs peuvent dépendre de la température.

--cp: Chaleur spécifique [J / kg ℃] --k: conductivité thermique [W / m K] --rho: densité [kg / m3]

[Exécution]

Même si j'essaie de le déplacer en tant que document, cela ne fonctionne pas. .. .. (Je ne pense pas que ce soit maintenu) J'ai donc regardé le code source et l'ai corrigé.

Lorsque vous exécutez le code ci-dessous, le résultat de l'analyse sera affiché dans example.txt. write_interval est une spécification du nombre de secondes de sortie du résultat. Il existe quatre solveurs disponibles et il semble que vous puissiez les sélectionner en conséquence.

run.py


import heatrapy as ht

example = ht.single_object(amb_temperature=293, materials=('Gd',), borders=(1,11),materials_order=(0,),
                            dx=0.05, dt=1., file_name='example.txt',boundaries=(300,0), Q=[], Q0=[],initial_state=False)

example.compute(timeInterval=30000, write_interval=300, solver='implicit_k(x)')

[Visualisation des résultats]

La documentation dit de voir les résultats dans physplotlib, mais nous utiliserons des pandas pour voir les résultats.

read_data.py


df = pd.read_csv("example.txt")

Lisez le fichier de sortie ci-dessus. Comme indiqué ci-dessous, la température à chaque nœud est sortie sous forme d'historique temporel.

image.png

Regardons le graphique

graph.py


df = pd.read_csv("example.txt")
df=df.drop("heat[1](W)",axis=1)
df=df.drop("heat[-2](J)",axis=1)
df = df.set_index("time(s)")
df.plot(figsize=(15,8))

image.png

Le graphe de l'analyse thermique non stationnaire unidimensionnelle!

Impressions

C'est une excellente bibliothèque. Comme vous pouvez le voir dans l'article, l'analyse thermique et les programmes orientés objet vont très bien ensemble! Si une telle bibliothèque s'agrandit, l'industrie manufacturière n'aura pas à «réinventer les roues», mais c'est encore une histoire.

Recommended Posts

Essayez l'analyse de transfert de chaleur non stationnaire de 1,5 dimension avec Heatrapy
Analyse de conduction thermique bidimensionnelle non stationnaire avec Python
Compression dimensionnelle par auto-encodeur et analyse des composants principaux