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 object. The axes object 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 object. The axes object 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 object. The axes object 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);

Сгенерируйте mesh и решите задачу.

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

      Temperature: [1541x21 double]
    SolutionTimes: [0 0.5000 1 1.5000 2 2.5000 3 3.5000 4 4.5000 5 ... ]
       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 object. The axes object contains an object of type patch.

Входные параметры

свернуть все

Начальные условия тепловой модели в виде InitialConditions свойство ThermalModel объект.

Геометрический тип области в виде 'Edge', 'Face', или 'Vertex' для 2D или 3-D модели модели или 'Cell' для 3-D модели.

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

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

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

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

свернуть все

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

Введенный в R2017a