function out = model % % Mirror.m % % Model exported on Jun 10 2016, 21:34 by COMSOL 5.2.0.220. % Author: Ivar KJELBERG import com.comsol.model.* import com.comsol.model.util.* model = ModelUtil.create('Model'); model.modelPath('C:\Users\ikj\Desktop'); model.label('Mirror.mph'); model.comments(['Untitled\n\n']); model.param.set('T0', '20[degC]'); model.param.set('DT', '0[K]'); model.param.set('Diam', '1[m]'); model.param.set('Thick', '0.1[m]'); model.param.set('kxy', '1[N/um]'); model.param.set('kz', '1000[N/um]'); model.modelNode.create('comp1'); model.geom.create('geom1', 3); model.mesh.create('mesh1', 'geom1'); model.geom('geom1').create('wp1', 'WorkPlane'); model.geom('geom1').feature('wp1').set('unite', 'on'); model.geom('geom1').feature('wp1').geom.create('c1', 'Circle'); model.geom('geom1').feature('wp1').geom.feature('c1').set('r', 'Diam/2'); model.geom('geom1').feature('wp1').geom.create('c2', 'Circle'); model.geom('geom1').feature('wp1').geom.feature('c2').set('pos', {'0' 'Diam/2/sqrt(2)'}); model.geom('geom1').feature('wp1').geom.feature('c2').set('r', 'Thick/2'); model.geom('geom1').feature('wp1').geom.create('rot1', 'Rotate'); model.geom('geom1').feature('wp1').geom.feature('rot1').set('keep', true); model.geom('geom1').feature('wp1').geom.feature('rot1').set('rot', '120 240'); model.geom('geom1').feature('wp1').geom.feature('rot1').selection('input').set({'c2'}); model.geom('geom1').create('ext1', 'Extrude'); model.geom('geom1').feature('ext1').setIndex('distance', 'Thick', 0); model.geom('geom1').feature('ext1').selection('input').set({'wp1'}); model.geom('geom1').run; model.selection.create('sel2', 'Explicit'); model.selection('sel2').geom('geom1', 2); model.selection('sel2').set([7 13 21]); model.selection.create('sel3', 'Explicit'); model.selection('sel3').geom('geom1', 2); model.selection('sel3').set([4 8 14 22]); model.selection.create('sel4', 'Explicit'); model.selection('sel4').geom('geom1', 1); model.selection('sel4').set([4 5 25 34]); model.selection('sel2').label('Explicit 2 B SF'); model.selection('sel3').label('Explicit 3 B top'); model.selection('sel3').set('groupcontang', true); model.selection('sel4').label('Explicit 4 E top'); model.selection('sel4').set('groupcontang', true); model.variable.create('var1'); model.variable('var1').model('comp1'); model.variable('var1').set('Uave', 'aveop1(u)'); model.variable('var1').set('Vave', 'aveop1(v)'); model.variable('var1').set('Wave', 'aveop1(w)'); model.material.create('mat1', 'Common', 'comp1'); model.cpl.create('aveop1', 'Average', 'geom1'); model.cpl('aveop1').selection.named('sel3'); model.coordSystem.create('sys2', 'geom1', 'Cylindrical'); model.physics.create('solid', 'SolidMechanics', 'geom1'); model.physics('solid').feature('lemm1').create('te1', 'ThermalExpansion', 3); model.physics('solid').create('gr1', 'Gravity', 3); model.physics('solid').feature('gr1').selection.all; model.physics('solid').create('spf1', 'SpringFoundation2', 2); model.physics('solid').feature('spf1').selection.named('sel2'); model.result.table.create('mm1', 'Table'); model.result.table.create('tbl1', 'Table'); model.massProp.create('mass1', 'MassProperties'); model.view('view1').set('renderwireframe', true); model.view('view2').axis.set('abstractviewxscale', '0.0015691869193688035'); model.view('view2').axis.set('ymin', '-0.5250000357627869'); model.view('view2').axis.set('xmax', '0.7757851481437683'); model.view('view2').axis.set('abstractviewyscale', '0.0015691869193688035'); model.view('view2').axis.set('abstractviewbratio', '-0.050000011920928955'); model.view('view2').axis.set('abstractviewtratio', '0.050000011920928955'); model.view('view2').axis.set('abstractviewrratio', '0.20142656564712524'); model.view('view2').axis.set('xmin', '-0.7757851481437683'); model.view('view2').axis.set('abstractviewlratio', '-0.20142656564712524'); model.view('view2').axis.set('ymax', '0.5250000357627869'); model.material('mat1').propertyGroup('def').set('youngsmodulus', '70E9'); model.material('mat1').propertyGroup('def').set('poissonsratio', '0.27'); model.material('mat1').propertyGroup('def').set('density', '2500'); model.material('mat1').propertyGroup('def').set('thermalexpansioncoefficient', {'2E-6' '0' '0' '0' '2E-6' '0' '0' '0' '2E-6'}); model.physics('solid').feature('lemm1').feature('te1').set('Tref', 'T0'); model.physics('solid').feature('lemm1').feature('te1').set('minput_temperature', 'T0+DT'); model.physics('solid').feature('spf1').set('SpringType', 'kTot'); model.physics('solid').feature('spf1').set('kTot', {'kxy'; '0'; '0'; '0'; 'kxy'; '0'; '0'; '0'; 'kz'}); model.mesh('mesh1').run; model.result.table('mm1').label('Maximum and minimum values'); model.result.table('mm1').comments('Max/min surface'); model.result.table('tbl1').label('Table 1'); model.result.table('tbl1').comments('Line Average 1 (solid.disp)'); model.massProp('mass1').set('densitySource', 'fromPhysics'); model.study.create('std1'); model.study('std1').create('stat', 'Stationary'); model.sol.create('sol1'); model.sol('sol1').study('std1'); model.sol('sol1').attach('std1'); model.sol('sol1').create('st1', 'StudyStep'); model.sol('sol1').create('v1', 'Variables'); model.sol('sol1').create('s1', 'Stationary'); model.sol('sol1').feature('s1').create('fc1', 'FullyCoupled'); model.sol('sol1').feature('s1').feature.remove('fcDef'); model.result.numerical.create('av1', 'AvLine'); model.result.numerical.create('max1', 'MaxSurface'); model.result.numerical.create('max2', 'MaxSurface'); model.result.numerical.create('max3', 'MaxSurface'); model.result.numerical.create('min1', 'MinSurface'); model.result.numerical.create('min2', 'MinSurface'); model.result.numerical.create('min3', 'MinSurface'); model.result.numerical('av1').selection.named('sel4'); model.result.numerical('av1').set('probetag', 'none'); model.result.numerical('max1').selection.named('sel3'); model.result.numerical('max1').set('probetag', 'none'); model.result.numerical('max2').selection.named('sel3'); model.result.numerical('max2').set('probetag', 'none'); model.result.numerical('max3').selection.named('sel3'); model.result.numerical('max3').set('probetag', 'none'); model.result.numerical('min1').selection.named('sel3'); model.result.numerical('min1').set('probetag', 'none'); model.result.numerical('min2').selection.named('sel3'); model.result.numerical('min2').set('probetag', 'none'); model.result.numerical('min3').selection.named('sel3'); model.result.numerical('min3').set('probetag', 'none'); model.result.create('pg1', 'PlotGroup3D'); model.result('pg1').create('surf1', 'Surface'); model.result('pg1').create('con1', 'Contour'); model.result('pg1').create('mms1', 'MaxMinSurface'); model.result('pg1').feature('surf1').create('def', 'Deform'); model.result('pg1').feature('con1').create('def1', 'Deform'); model.result('pg1').feature('mms1').create('def1', 'Deform'); model.sol('sol1').attach('std1'); model.result.numerical('av1').set('descr', 'sqrt((u-Uave)^2+(v-Vave)^2)'); model.result.numerical('av1').set('expr', 'sqrt((u-Uave)^2+(v-Vave)^2)'); model.result.numerical('av1').set('table', 'tbl1'); model.result.numerical('av1').set('unit', [native2unicode(hex2dec({'00' 'b5'}), 'unicode') 'm']); model.result.numerical('max1').set('unit', [native2unicode(hex2dec({'00' 'b5'}), 'unicode') 'm']); model.result.numerical('max1').set('table', 'tbl1'); model.result.numerical('max1').set('descr', 'max(u-Uave)'); model.result.numerical('max1').set('expr', 'u-Uave'); model.result.numerical('max1').set('descractive', true); model.result.numerical('max1').set('descr', 'max(u-Uave)'); model.result.numerical('max2').set('unit', [native2unicode(hex2dec({'00' 'b5'}), 'unicode') 'm']); model.result.numerical('max2').set('table', 'tbl1'); model.result.numerical('max2').set('descr', 'max(v-Vave)'); model.result.numerical('max2').set('expr', 'v-Vave'); model.result.numerical('max2').set('descractive', true); model.result.numerical('max2').set('descr', 'max(v-Vave)'); model.result.numerical('max3').set('unit', [native2unicode(hex2dec({'00' 'b5'}), 'unicode') 'm']); model.result.numerical('max3').set('table', 'tbl1'); model.result.numerical('max3').set('descr', 'max(w-Wave)'); model.result.numerical('max3').set('expr', 'w-Wave'); model.result.numerical('max3').set('descractive', true); model.result.numerical('max3').set('descr', 'max(w-Wave)'); model.result.numerical('min1').set('unit', [native2unicode(hex2dec({'00' 'b5'}), 'unicode') 'm']); model.result.numerical('min1').set('table', 'tbl1'); model.result.numerical('min1').set('descr', 'min(u-Uave)'); model.result.numerical('min1').set('expr', 'u-Uave'); model.result.numerical('min1').set('descractive', true); model.result.numerical('min1').set('descr', 'min(u-Uave)'); model.result.numerical('min2').set('unit', [native2unicode(hex2dec({'00' 'b5'}), 'unicode') 'm']); model.result.numerical('min2').set('table', 'tbl1'); model.result.numerical('min2').set('descr', 'min(v-Vave)'); model.result.numerical('min2').set('expr', 'v-Vave'); model.result.numerical('min2').set('descractive', true); model.result.numerical('min2').set('descr', 'min(v-Vave)'); model.result.numerical('min3').set('unit', [native2unicode(hex2dec({'00' 'b5'}), 'unicode') 'm']); model.result.numerical('min3').set('table', 'tbl1'); model.result.numerical('min3').set('descr', 'min(w-Wave)'); model.result.numerical('min3').set('expr', 'w-Wave'); model.result.numerical('min3').set('descractive', true); model.result.numerical('min3').set('descr', 'min(w-Wave)'); model.result.numerical('av1').setResult; model.result.numerical('max1').appendResult; model.result.numerical('max2').appendResult; model.result.numerical('max3').appendResult; model.result.numerical('min1').appendResult; model.result.numerical('min2').appendResult; model.result.numerical('min3').appendResult; model.result('pg1').label('Stress (solid)'); model.result('pg1').feature('surf1').set('unit', 'MPa'); model.result('pg1').feature('surf1').set('descr', 'von Mises stress'); model.result('pg1').feature('surf1').set('expr', 'solid.mises'); model.result('pg1').feature('surf1').feature('def').set('descr', ''); model.result('pg1').feature('surf1').feature('def').set('expr', {'u' 'v' 'w-Wave'}); model.result('pg1').feature('surf1').feature('def').set('scale', '130649.99423782623'); model.result('pg1').feature('surf1').feature('def').set('scaleactive', false); model.result('pg1').feature('con1').set('inheritplot', 'surf1'); model.result('pg1').feature('con1').feature('def1').set('descr', ''); model.result('pg1').feature('con1').feature('def1').set('expr', {'u' 'v' 'w-Wave'}); model.result('pg1').feature('con1').feature('def1').set('scale', '1485.5398610206494'); model.result('pg1').feature('con1').feature('def1').set('scaleactive', false); model.result('pg1').feature('mms1').set('expr', 'w-Wave'); model.result('pg1').feature('mms1').set('inheritplot', 'surf1'); model.result('pg1').feature('mms1').set('precision', '4'); model.result('pg1').feature('mms1').set('unit', [native2unicode(hex2dec({'00' 'b5'}), 'unicode') 'm']); model.result('pg1').feature('mms1').set('descr', 'w-Wave'); model.result('pg1').feature('mms1').feature('def1').set('descr', ''); model.result('pg1').feature('mms1').feature('def1').set('expr', {'u' 'v' 'w-Wave'}); model.result('pg1').feature('mms1').feature('def1').set('scale', '723.967418535719'); model.result('pg1').feature('mms1').feature('def1').set('scaleactive', false); out = model;