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);

Сгенерируйте mesh и решите проблему.

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-D) значение установлено на 'on'.

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

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

свернуть все

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

Введенный в R2017a