exponenta event banner

findThermalIC

Поиск начальных температурных условий, назначенных геометрической области

Описание

пример

tica = findThermalIC(thermalmodel.InitialConditions,RegionType,RegionID) возвращает начальное температурное условие, назначенное указанной области.

Примеры

свернуть все

Создайте нестационарную тепловую модель с тремя гранями.

thermalmodel = createpde('thermal','transient');
geometryFromEdges(thermalmodel,@lshapeg);
pdegplot(thermalmodel,'FaceLabels','on')
ylim([-1.1 1.1])
axis equal

Figure contains an axes. The axes contains 4 objects of type line, text.

Задайте начальные температуры для каждой грани.

thermalIC(thermalmodel,10,'Face',1);
thermalIC(thermalmodel,20,'Face',2);
thermalIC(thermalmodel,30,'Face',3);

Проверьте исходные условия для грани 1.

ticaFace1 = findThermalIC(thermalmodel.InitialConditions,'Face',1)
ticaFace1 = 
  GeometricThermalICs with properties:

            RegionType: 'face'
              RegionID: 1
    InitialTemperature: 10

Проверьте исходные температурные характеристики для граней 2 и 3.

tica = findThermalIC(thermalmodel.InitialConditions,'Face',[2 3]);
ticaFace2 = tica(1)
ticaFace2 = 
  GeometricThermalICs with properties:

            RegionType: 'face'
              RegionID: 2
    InitialTemperature: 20

ticaFace3 = tica(2)
ticaFace3 = 
  GeometricThermalICs with properties:

            RegionType: 'face'
              RegionID: 3
    InitialTemperature: 30

Создайте геометрию, состоящую из трех вложенных цилиндров, и включите геометрию в нестационарную тепловую модель.

gm = multicylinder([5 10 15],2)
gm = 
  DiscreteGeometry with properties:

       NumCells: 3
       NumFaces: 9
       NumEdges: 6
    NumVertices: 6
       Vertices: [6x3 double]

thermalmodel = createpde('thermal','transient');
thermalmodel.Geometry = gm;
pdegplot(thermalmodel,'CellLabels','on','FaceAlpha',0.5)

Figure contains an axes. The axes contains 3 objects of type quiver, patch, line.

Установите начальные температуры для каждой ячейки.

thermalIC(thermalmodel,0,'Cell',1);
thermalIC(thermalmodel,100,'Cell',2);
thermalIC(thermalmodel,0,'Cell',3);

Проверьте исходные условия для ячейки 1.

ticaCell1 = findThermalIC(thermalmodel.InitialConditions,'Cell',1)
ticaCell1 = 
  GeometricThermalICs with properties:

            RegionType: 'cell'
              RegionID: 1
    InitialTemperature: 0

Проверьте исходные условия для ячеек 2 и 3.

tica = findThermalIC(thermalmodel.InitialConditions,'Cell',[2:3]);
ticaCell2 = tica(1)
ticaCell2 = 
  GeometricThermalICs with properties:

            RegionType: 'cell'
              RegionID: 2
    InitialTemperature: 100

ticaCell3 = tica(2)
ticaCell3 = 
  GeometricThermalICs with properties:

            RegionType: 'cell'
              RegionID: 3
    InitialTemperature: 0

Создайте тепловую модель и включите квадратную геометрию.

thermalmodel = createpde('thermal','transient');
gm = @squareg;
geometryFromEdges(thermalmodel,gm);
pdegplot(thermalmodel,'FaceLabels','on')
ylim([-1.1 1.1])
axis equal

Figure contains an axes. The axes contains 2 objects of type line, text.

Задайте свойства материала, источник тепла, задайте исходные и граничные условия.

thermalProperties(thermalmodel,'ThermalConductivity',500,...
                               'MassDensity',200,...
                               'SpecificHeat',100);
internalHeatSource(thermalmodel,2);                            
thermalBC(thermalmodel,'Edge',[1 3],'Temperature',100);
thermalIC(thermalmodel,0);

Создайте сетку и решите проблему.

generateMesh(thermalmodel);
tlist = 0:0.5:10;
result1 = solve(thermalmodel,tlist)
result1 = 
  TransientThermalResults with properties:

      Temperature: [1541x21 double]
    SolutionTimes: [1x21 double]
       XGradients: [1541x21 double]
       YGradients: [1541x21 double]
       ZGradients: []
             Mesh: [1x1 FEMesh]

Проверьте текущие активные исходные температурные характеристики.

tica = findThermalIC(thermalmodel.InitialConditions,'Face',1)
tica = 
  GeometricThermalICs with properties:

            RegionType: 'face'
              RegionID: 1
    InitialTemperature: 0

Теперь возобновите анализ и решите проблему в течение времени от 10 до 15 секунд. В качестве исходного условия используйте ранее полученный раствор в течение 10 секунд. Поскольку 10 секунд - последний элемент в tlist, не требуется указывать индекс времени решения. По умолчанию thermalIC использует последний индекс решения.

ic = thermalIC(thermalmodel,result1);

Решить проблему

tlist = 10:0.5:15;
result2 = solve(thermalmodel,tlist);

Проверьте текущие активные исходные температурные характеристики.

tica = findThermalIC(thermalmodel.InitialConditions,'Face',1)
tica = 
  NodalThermalICs with properties:

    InitialTemperature: [1541x1 double]

pdeplot(thermalmodel,'XYData',tica.InitialTemperature)

Figure contains an axes. The axes contains an object of type patch.

Входные аргументы

свернуть все

Исходные условия тепловой модели, указанные как InitialConditions свойство ThermalModel объект.

Тип геометрической области, указанный как 'Edge', 'Face', или 'Vertex' для модели 2-D или модели 3-D, или 'Cell' для модели 3-D.

Типы данных: char | string

Идентификатор геометрической области, заданный как вектор положительных целых чисел. Поиск идентификаторов регионов с помощью pdegplot функции с помощью 'FaceLabels' (3-D) или 'EdgeLabels' (2-й) набор значений к'on'.

Типы данных: double

Выходные аргументы

свернуть все

Тепловое начальное условие для конкретного региона, возвращенного как GeometricThermalICs Свойства или объект NodalThermalICs Properties.

Представлен в R2017a