Форум программистов, компьютерный форум CyberForum.ru

Python: научные вычисления

Войти
Регистрация
Восстановить пароль
 
GSerge
0 / 0 / 0
Регистрация: 07.11.2014
Сообщений: 78
#1

Сделать изменение температуры на 2д сетке - Python

09.12.2016, 11:43. Просмотров 213. Ответов 1
Метки нет (Все метки)

Приветствую! Учусь в универе. Дали лабораторку по дисциплине "геометрические модели и расчетные сетки". нужно сделать изменение температуры на 2д сетке. Т.е. использовать gmsh - fenics(python) - paraview(для анимации).

есть .geo файл с содержанием такого кода:
Код
Line Loop(46) = {2, -8, -7, -6, 9, 16, 15, 11, 10, 17, -18, 19, 23, -29, -28, -27, 30, 44, 45, 40, 41, 42, 43, 32, -1};
Plane Surface(47) = {46};
Physical Line(48) = {2, 8, 7, 6, 9, 16, 15, 11, 10, 17, 18, 19, 23, 29, 28, 27, 30};
Physical Line(49) = {1, 32, 43, 42, 41, 40, 45, 44};
Physical Surface(50) = {47};

Line Loop(51) = {3, 4, 5, 6, 7, 8};
Plane Surface(52) = {51};
Physical Line(53) = {3, 4, 5};
Physical Line(54) = {8, 7, 6};
Physical Surface(55) = {52};

Line Loop(56) = {14, 16, 15, 11, 12, -13};
Plane Surface(57) = {56};
Physical Line(58) = {14, 13, 16, 15, 11, 12};
Physical Surface(59) = {57};
после конвертации в .xml создаются еще 2 файла: physical_region.xml и facet_region.xml

и есть такой файл: engine.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from dolfin import *
 
# Create mesh and define function space
mesh = Mesh("engine.xml")
parts = MeshFunction("size_t", mesh, "engine_facet_region.xml")
 
ds = Measure("ds")[parts]
 
V = FunctionSpace(mesh, "Lagrange", 1)
 
u0 = interpolate(Constant(0.0), V)
t = 0.0
T = 1.0
dt = (T - t) / (30.0)
 
# Define boundary condition
u01 = Constant(0.5)
bc1 = DirichletBC(V, u01, parts, 48)
u02 = Constant(0.0)
bc2 = DirichletBC(V, u02, parts, 49)
 
u03 = Constant(0.5)
bc3 = DirichletBC(V, u03, parts, 53)
u04 = Constant(1.0)
bc4 = DirichletBC(V, u04, parts, 54)
 
u05 = Constant(1.5)
bc5 = DirichletBC(V, u05, parts, 58)
 
bc = [bc1, bc2, bc3, bc4, bc5]
 
# Define variational problem
u = TrialFunction(V)
v = TestFunction(V)
f = 0.0#Expression("10*exp(-(pow(x[0] - 0.5, 2) + pow(x[1] - 0.5, 2)) / 0.02)")
g = Constant(0.0)#Expression("sin(5*x[0])")
a = 1.0/dt*u*v*dx + inner(grad(u), grad(v))*dx
L = 1.0/dt*u0*v*dx #+ g*v*ds(48) #+ f*v*dx 
 
# Compute solution
u = Function(V)
 
# Save solution in VTK format
file = File("withtime.pvd")
file << u0
 
# Compute solution
while t < T:
    t += dt
    if t > T/3:
        # Define boundary condition
    #   bc1 = DirichletBC(V, u02, parts, 46)
    #   bc2 = DirichletBC(V, u01, parts, 47)
    #   bc = [bc1, bc2]
        
        solve(a == L, u, bc)
        u0.assign(u)
    file << u0
 
# Plot solution
plot(u, interactive=True)
при запуске этого файла выдает ошибку:
Сделать изменение температуры на 2д сетке

преподаватель сказал прогуглить домены. Я смог найти только инициализацию phisical_region.xml файла
Python
1
subdomains = MeshFunction("size_t", mesh, "yourmeshfile_physical_region.xml")
Теперь основной вопрос: Как дальше пользоваться переменной subdomains? как нужно изменить мой код чтобы он работал без ошибок?

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2016, 11:43     Сделать изменение температуры на 2д сетке
Посмотрите здесь:

Двумерный массив изменение температуры - Turbo Pascal
Нужно написать программу: дана металическая пластина, температура в определенных точках задается матрицей. Эта температура меняется через n...

Изменение скорости в зависимости от температуры - C#
Задание: реализовать один из алгоритм - изменение скорости в зависимости от температуры сам процес: 1.вводим температуры и...

Изменение цвета точки в зависимости от значения температуры - C++
Всем привет. У меня следующий вопрос. Есть следующие исходные данные: координаты точки и температура в этой точке. Также есть значения...

Задача по МКТ - определить изменение температуры газа - Термодинамика и МКТ
Внутренняя энергия некоторого воображаемого газа определяется формулой u=a*ln(T/T0)+b*ln(P/P0) где a=3кдж, b=7 кдж,T0=200К, P0=10...

Изменение объёма ёмкости при увеличении температуры жидкости - SolidWorks
Добрый день. Есть ёмкость в виде стеклянной трёх литровой банки которую мы заполняет водой при разной температуре. Я её смоделировал по...

Изменение температуры среды за счет выделения теплоты организмом - Термодинамика и МКТ
В концертном зале V=30000 м³ находятся n=3000 слушателей. Когда зал не обеспечен вентиляцией, то каким будет изменение ∆Т воздуха в зале...

Как сделать так, чтоб при вводе температуры, в окошке отображался город с такой же температурой - Visual Basic .NET
Я неправильно сделала сначала, думала, что надо выбрать город, и в окошке будет отображаться температура.. А надо наоборот, сделать так,...

Как сделать так, чтоб при вводе температуры, в окошке отображался город с такой же температурой - Visual Basic .NET
Я неправильно сделала сначала, думала, что надо выбрать город, и в окошке будет отображаться температура.. А надо наоборот, сделать так,...

Как сделать изменение ссылки? - PHP
Изображение на сайте, через тег img src, грузится с imageshak.us . Как сделать чтобы оно так же грузилось с imageshak.us , но чтобы на...

Игра по сетке - C++ Builder
Создал пинбол, хочу с другом поиграть по сетке, как это можно осуществить???


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GSerge
0 / 0 / 0
Регистрация: 07.11.2014
Сообщений: 78
10.12.2016, 06:25  [ТС]     Сделать изменение температуры на 2д сетке #2
Подскажите как такое гуглить? примеры использования physical_region...
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru