Applying a pressure load 回答済み
Hello, I keep getting an error when I run my script. I would like to apply a pressure load in the Y direction starting at the PZT and water interface. Can someone help me understand what I am doing wrong and why I am getting this error. I included the script below. Thank you!
c mem 800 200 /* Allocate 800 megawords of memory - 3 GigaBytes (Not necesarry for Windows Operating Systems)
c NOTE: MEM Command must be first command in file, if used. (Line 1)
rest no
c *************************************************************************************************************
c
c Generated Flex Input File
c
c *************************************************************************************************************
c
c DESIGNER :OnScale - Designer Generated
c MODEL DESCRIPTION :
c DATE CREATED :11 Jul 2020
c VERSION :1.0
c *************************************************************************************************************
mp
omp * * /* Number of CPUs to be used in the execution.
end
titl PZTDisc_2
c *************************************************************************************************************
c
c Define User Variables
c
c *************************************************************************************************************
c
c These variables have been set by the user through the interface.
c
c *************************************************************************************************************
symb coordFactor = 1.0 /* Coordinate conversion factor
symb timeFactor = 1.0 /* Time conversion factor
symb dMassFactor = 1.0 /* Mass conversion factor
c symb freqint = 1e+6 /* Determined Drive Frequency (Hz)
symb freqint = 500e+3 /* Determined Drive Frequency (Hz)
c *************************************************************************************************************
c
c Define Meshing
c
c *************************************************************************************************************
c
c Set the variable for the approximate element size for the model. Must be
c sufficient to represent the wavelengths of interest. Recommended that at least
c 15 elements per wavelength are used.
c
c *************************************************************************************************************
symb freqdamp = $freqint
symb wavevel = 1496 /* Longitudinal wave velocity in material (m/s)
symb wavelgth = $wavevel / $freqint /* Wavelength of sound in material (m)
symb nmesh = 30 /* Elements per wavelength
symb box = $wavelgth / $nmesh
c *************************************************************************************************************
c
c Geometry Locations (XYZ)
c
c *************************************************************************************************************
c Scale Parameters
symb xmin = 0.0 * $coordFactor
symb x_particle = 0.00052 * $coordFactor
symb x_pzt = 0.034 * $coordFactor
symb xmax = 0.034 * $coordFactor
symb ymin = 0.0 * $coordFactor
symb y_pzt_b = 0.004 * $coordFactor
symb y_pzt_t = 0.006 * $coordFactor
symb y_particle_b = 0.016 * $coordFactor
symb y_particle_t = 0.0165 * $coordFactor
symb ymax = 0.046 * $coordFactor
c Determine lengths of the model
symb xlen = ( $xmax - $xmin )
symb ylen = ( $ymax - $ymin )
c ***************************************************
c
c Keypoints in the X-Direction
c
c ***************************************************
symb #keycord x 1 $xmin $x_particle $x_pzt $xlen
symb #get { idx } rootmax x
c ***************************************************
c
c Keypoints in the Y-Direction
c
c ***************************************************
symb #keycord y 1 $ymin $y_pzt_b $y_pzt_t $y_particle_b $y_particle_t $ylen
symb #get { jdx } rootmax y
c *************************************************************************************************************
c
c Indices Locations (IJK)
c
c *************************************************************************************************************
c Grid in I direction, using approximately element size of 'box' and at least 1 element
symb #keyindx i 1 $idx 1 $box 1
symb indgrd = $i$idx
c Grid in J direction, using approximately element size of 'box' and at least 1 element
symb #keyindx j 1 $jdx 1 $box 1
symb jndgrd = $j$jdx
c *************************************************************************************************************
c
c GCON Grid & Geometry Allocation
c
c *************************************************************************************************************
grid $i$idx $j$jdx axiy
geom
keypnt $idx $jdx
end
c *************************************************************************************************************
c
c Driving Conditions
c
c *************************************************************************************************************
c
c A number of predefined waveform functions can be accessed in OnScale. The DATA
c HIST option is used below, other examples include wavelets, gaussians and step
c functions. The manual details the function entries
c
c *************************************************************************************************************
symb freqtimefunc_1 = $freqint
symb timeperiod = 1 / $freqint
symb numbercyc = 3 * ( $xlen / $wavelgth ) /* change the number to multiply the transiant time
c func
c name timefunc_1
c sine $freqtimefunc_1 1.0 0. $numbercyc 0. 0.0 /*frequency amplitude phaseshift nperiod valuadd rampcycle tdelay
c end
func sine $freqint 50.0 0. $numbercyc 0. 0.0 /*drfine (freq amp phaseshift #cycles)
c --------------------------------------------------------------
c Project Material List
c --------------------------------------------------------------
c -------------------------------------------------------------------------
c Global variables used in all the material definitions
c -------------------------------------------------------------------------
c
symb epvacm = 8.854e-12 /* dielectric constant for vacumn
symb freqdamp = 1.e6 if noexist /* specified frequency for damping model
symb rmu0 = 1.2566e-6
symb #msg 5
********************************************************
Damping matched at $freqdamp Hz
Redefine variable 'freqdamp' if device centre frequency
varies significantly from this value
********************************************************
c
c -------------------------------------------------------------------------
c Now define the axis transformation - only posx used in this file
c -------------------------------------------------------------------------
axis
form vctr
defn posx car2 0. 0. 0. 1. 0. 0. 0. 1. 0.
defn negx car2 0. 0. 0. -1. 0. 0. 0. 1. 0.
defn posy car2 0. 0. 0. 0. 1. 0. 0. 0. 1.
defn negy car2 0. 0. 0. 0. -1. 0. 0. 0. 1.
defn posz car2 0. 0. 0. 0. 0. 1. 1. 0. 0.
defn negz car2 0. 0. 0. 0. 0. -1. 1. 0. 0.
end
c -------------------------------------------------------------------------
c Input material properties to program
c -------------------------------------------------------------------------
matr
c --------------------------------------------------------------
c type : BIOLOGICAL :
c name : watr :
c desc : Water at 25C :
c --------------------------------------------------------------
wvsp on
type elas
prop watr 1054.00 1540.00 0.00000 0.010000
vdmp watr $freqdamp db 0.500000 0.00000 1e+6 1.00000 0.010000 1.00000
symb eps = 1
symb aeps = $epvacm * $eps
elec watr $aeps
c --------------------------------------------------------------
c type : GAS :
c name : air :
c desc : Air, room temp :
c --------------------------------------------------------------
wvsp on
type elas
prop air 1.24000 343.000 0.00000 0.
symb eps = 1
symb aeps = $epvacm * $eps
elec air $aeps
c --------------------------------------------------------------
c type : PIEZO :
c name : pmt3 :
c desc : CTS 3203HD :
c --------------------------------------------------------------
symb rho = 7820.00 /* density
symb qdmp = 90.0000 /* Mechanical Q at 1e6
symb qsdmp = 90.0000 /* Mechanical Q at 1e6
symb freqdamp = 1.e6 if noexist
symb freqloss = 1.00000e+06 if noexist /* Frequency that loss was measured at
wvsp off
type lean
c define baseline stiffness coefficients (Constant electric field)
symb c11 = 1.3745e+11
symb c12 = 8.79e+10
symb c13 = 9.23e+10
symb c14 = 0
symb c15 = 0
symb c16 = 0
symb c22 = 1.3745e+11
symb c23 = 9.23e+10
symb c24 = 0
symb c25 = 0
symb c26 = 0
symb c33 = 1.2574e+11
symb c34 = 0
symb c35 = 0
symb c36 = 0
symb c44 = 2.2279e+10
symb c45 = 0
symb c46 = 0
symb c55 = 2.2279e+10
symb c56 = 0
symb c66 = 2.4779e+10
prop pmt3 $rho
$c11 $c12 $c13 $c14 $c15 $c16 $c22
$c23 $c24 $c25 $c26 $c33 $c34 $c35
$c36 $c44 $c45 $c46 $c55 $c56 $c66
c define baseline dielectric coefficients
symb epxx = 1305.8
symb epyy = 1305.8
symb epzz = 1200.2
c scale material properties as specified above
symb aepxx = $epvacm * $epxx
symb aepyy = $epvacm * $epyy
symb aepzz = $epvacm * $epzz
elec pmt3 $aepxx $aepyy $aepzz
c define baseline piezoelectric coupling coefficients
symb ex1 = 0 /* coupling constant
symb ex2 = 0 /* coupling constant
symb ex3 = 0 /* coupling constant
symb ex4 = 0 /* coupling constant
symb ex5 = 16.054 /* coupling constant
symb ex6 = 0 /* coupling constant
symb ey1 = 0 /* coupling constant
symb ey2 = 0 /* coupling constant
symb ey3 = 0 /* coupling constant
symb ey4 = 16.054 /* coupling constant
symb ey5 = 0 /* coupling constant
symb ey6 = 0 /* coupling constant
symb ez1 = -9.44 /* coupling constant
symb ez2 = -9.44 /* coupling constant
symb ez3 = 22.495 /* coupling constant
symb ez4 = 0 /* coupling constant
symb ez5 = 0 /* coupling constant
symb ez6 = 0 /* coupling constant
piez pmt3 1 1 $ex1 1 2 $ex2 1 3 $ex3 1 4 $ex4 1 5 $ex5 1 6 $ex6 &
2 1 $ey1 2 2 $ey2 2 3 $ey3 2 4 $ey4 2 5 $ey5 2 6 $ey6 &
3 1 $ez1 3 2 $ez2 3 3 $ez3 3 4 $ez4 3 5 $ez5 3 6 $ez6
rdmp pmt3 $freqdamp q $qdmp $qsdmp 1e+6 1.0
axis pmt3 posy /* relate materials local system to global system
c --------------------------------------------------------------
c type : MISC :
c name : si :
c desc : Silicon, generic :
c --------------------------------------------------------------
wvsp on
type elas
prop si 2330 7526 4346 0.01
vdmp si $freqdamp db 0.1 0.3 1e+6 1 0.01 1
thrm si 702 124 124 124 1.0 0 0 27
symb eps = 11.9
symb aeps = $epvacm * $eps
elec si $aeps
elec void $epvacm
c --------------------------------------------------------------
c type : EPOXY :
c name : arald1 :
c desc : Araldite MY750/HY956EN :
c --------------------------------------------------------------
wvsp on
type elas
prop arald1 1146 2658 1237 0.01
vdmp arald1 $freqdamp db 4 12.59 1e+6 1 0.01 1
symb eps = 3.5
symb aeps = $epvacm * $eps
elec arald1 $aeps
elec void $epvacm
end
c *************************************************************************************************************
c
c Primitive Definitions
c
c *************************************************************************************************************
site
c regn void
blok watr $i1 $i4 $j3 $j6
c blok si 0.0 0.001 0.026 0.027 0.0 0.0 /* rectangle chip location
c blok watr 0.0 0.0005 0.026 0.027 0.0 0.0 /* square chip location
blok arald1 $i1 $i2 $j4 $j5 /* rectangle chip location (X: 0-0.00052, Y: 0.016-0.0165)
blok air $i1 $i4 $j1 $j2
blok pmt3 $i1 $i3 $j2 $j3
end
c Plot Model
grph
nvew 2 1 /* Set up 2 views
plot matr i $i1 $i4 j $j1 $j6 /* Plot Model
mirr x on /* Apply visual symmetry
plot matr /* Replot Model
end
term
c *************************************************************************************************************
c
c Boundary Definitions
c
c *************************************************************************************************************
boun
side xmin symm
side xmax absr
side ymin absr
side ymax absr
end
c *************************************************************************************************************
c
c Calculated Properties
c
c *************************************************************************************************************
c
c By default, Flex only calculates the minimum required data set, typically this
c means only velocities. This is done for memory efficiency. Should other
c properites be required (e.g. displacements, stresses, strains, pressure), then
c these must be requested by the CALC command. The manual lists all these options
c
c *************************************************************************************************************
calc
pres acoustic /* calculate acoustic pressure
max aprs none apmx /* calculate min/max acoustic pressure
disp y /* calculate displacements
end
c *************************************************************************************************************
c
c Piezoelectric Load Definitions
c
c *************************************************************************************************************
c piez
c wndo auto piez
c defn load_1 6.28
c symb bxmin = 0.0 * $coordFactor - $box
c symb bymin = 0.006 * $coordFactor - $box
c symb #get { is js * } clsnode $bxmin $bymin *
c symb bxmax = 0.01 * $coordFactor + $box
c symb bymax = 0.006 * $coordFactor + $box
c symb #get { ie je * } clsnode $bxmax $bymax *
c nod2 pmt3 watr $is $ie $js $je * *
c bc load_1 volt functimefunc_1 10.0 0.0
c
c defn load_2 6.28
c nod2 pmt3 air
c bc load_2 grnd
c slvr drct
c end
c *************************************************************************************************************
c
c Pressure Load Definitions
c
c *************************************************************************************************************
plod
pdef pld1 func /*define a load
c matr vctr1 air out
vctr vct1 0 1 0 /*define the vector
c sdef load_1 vector_1 $i1 $i2 $j2 $j2 /*apply a load in the vector direction
c sdef pld1 vct1 $i1 $i3 $j3 $j3 /*apply a load in the vector direction
end
time * * 0.95
c *************************************************************************************************************
c
c Process Model
c
c *************************************************************************************************************
c
c Issue process (PRCS) command. Checks model integrity, and calculates stable
c time step. NOTE: Process command must always be issued
c
c *************************************************************************************************************
c symb #msg c Checking Model Integrity......
prcs
grph
colr user size 5 /* how many materials are defined in this model
colr user 1 0.0 0.0 1.0
colr user 2 0.0 1.0 1.0
colr user 3 0.0 1.0 0.0
colr user 4 1.0 0.0 0.0 /* Si chip (red)
colr user 5 1.0 1.0 0.0 /* arald1 chip (yellow)
colr tabl matr 7
map watr 1
map air 2
map pmt3 3
map si 4
map arald1 5
end
grph
line off
nvew 2 1
arrow pole
plot piez
plot matr piez
arrow off
end
term
c *************************************************************************************************************
c
c Choose Time Histories To Store
c
c *************************************************************************************************************
c
c Save field (such as displacement or pressure) from a node or element for all
c time steps with POUT command. Histories are referenced by order of
c specification. Histories will be saved in the Flex History file (flxhst).
c
c *************************************************************************************************************
pout
rate 1
symb xloc = 0.0 * $coordFactor
symb yloc = 0.015 * $coordFactor
hist xyz aprs $xloc * * $yloc * *
hist functimefunc_1
histname electrode vq all
end
c *************************************************************************************************************
c
c Run the Model
c
c *************************************************************************************************************
c
c Specify the number of time steps to be run. Can be set to auto by using
c 'Ringdown'.
c
c *************************************************************************************************************
c User defined runtime for the model
symb #get { step } timestep
symb ttime = 4e-5
c symb ttime = 8e-5
c symb ttime = 12e-5
c symb ttime = 3 * $numbercyc * $timeperiod
symb nexec = $ttime / $step
symb nloops = 10
symb nexec2 = $nexec / $nloops
c Set up Plotting
grph
nvew 1 1
set imag tiff
end
c Set up Snapshot file
c Create run plot procedure
proc plot save
c Run some timesteps
exec $nexec2
c Plot model
grph
plot aprs
plot ydsp
imag
end
c data
c out yvel
c out ydsp
c out xvel
c out aprs
c end
data
file out 'water_output_data.flxdato'
out modl
out aprs
out apmx
out yvmx
out yvel
out xvel
end
c
c data
c file out 'snapshot.mat'
c form out matlab output_data
c out yvel
c c out ydsp
c out xvel
c c out aprs
c end
c
end$ proc
c Run model then wait
proc plot $nloops
term
c *************************************************************************************************************
c
c Save symbol variables to file for later use
c
c *************************************************************************************************************
symb #get { labl } jobname
symb #save '$labl.symb'
stop /* return to command prompt
2件のコメント
Hi Tiffany!
The issue is in the site blok command. You are using nodal indices to define the block region but the command takes xyz co-odrinates (see command ref) so if you change $i1 to $x1 and $j3 to $y3 etc you will see the model plot:
Best Regards,
Chloe
Hello Chloe,
Thank you for the reply. I updated the site block as you suggested but it still does not run. Should I also be using the same syntax for defining the pressure region for the plod command? I attached my updated code below.
c mem 800 200 /* Allocate 800 megawords of memory - 3 GigaBytes (Not necesarry for Windows Operating Systems)
c NOTE: MEM Command must be first command in file, if used. (Line 1)
rest no
c *************************************************************************************************************
c
c Generated Flex Input File
c
c *************************************************************************************************************
c
c DESIGNER :OnScale - Designer Generated
c MODEL DESCRIPTION :
c DATE CREATED :11 Jul 2020
c VERSION :1.0
c *************************************************************************************************************
mp
omp * * /* Number of CPUs to be used in the execution.
end
titl PZTDisc_2
c *************************************************************************************************************
c
c Define User Variables
c
c *************************************************************************************************************
c
c These variables have been set by the user through the interface.
c
c *************************************************************************************************************
symb coordFactor = 1.0 /* Coordinate conversion factor
symb timeFactor = 1.0 /* Time conversion factor
symb dMassFactor = 1.0 /* Mass conversion factor
c symb freqint = 1e+6 /* Determined Drive Frequency (Hz)
symb freqint = 500e+3 /* Determined Drive Frequency (Hz)
c *************************************************************************************************************
c
c Define Meshing
c
c *************************************************************************************************************
c
c Set the variable for the approximate element size for the model. Must be
c sufficient to represent the wavelengths of interest. Recommended that at least
c 15 elements per wavelength are used.
c
c *************************************************************************************************************
symb freqdamp = $freqint
symb wavevel = 1496 /* Longitudinal wave velocity in material (m/s)
symb wavelgth = $wavevel / $freqint /* Wavelength of sound in material (m)
symb nmesh = 30 /* Elements per wavelength
symb box = $wavelgth / $nmesh
c *************************************************************************************************************
c
c Geometry Locations (XYZ)
c
c *************************************************************************************************************
c Scale Parameters
symb xmin = 0.0 * $coordFactor
symb x_particle = 0.00052 * $coordFactor
symb x_pzt = 0.034 * $coordFactor
symb xmax = 0.034 * $coordFactor
symb ymin = 0.0 * $coordFactor
symb y_pzt_b = 0.004 * $coordFactor
symb y_pzt_t = 0.006 * $coordFactor
symb y_particle_b = 0.016 * $coordFactor
symb y_particle_t = 0.0165 * $coordFactor
symb ymax = 0.046 * $coordFactor
c Determine lengths of the model
symb xlen = ( $xmax - $xmin )
symb ylen = ( $ymax - $ymin )
c ***************************************************
c
c Keypoints in the X-Direction
c
c ***************************************************
symb #keycord x 1 $xmin $x_particle $x_pzt $xlen
symb #get { idx } rootmax x
c ***************************************************
c
c Keypoints in the Y-Direction
c
c ***************************************************
symb #keycord y 1 $ymin $y_pzt_b $y_pzt_t $y_particle_b $y_particle_t $ylen
symb #get { jdx } rootmax y
c *************************************************************************************************************
c
c Indices Locations (IJK)
c
c *************************************************************************************************************
c Grid in I direction, using approximately element size of 'box' and at least 1 element
symb #keyindx i 1 $idx 1 $box 1
symb indgrd = $i$idx
c Grid in J direction, using approximately element size of 'box' and at least 1 element
symb #keyindx j 1 $jdx 1 $box 1
symb jndgrd = $j$jdx
c *************************************************************************************************************
c
c GCON Grid & Geometry Allocation
c
c *************************************************************************************************************
grid $i$idx $j$jdx axiy
geom
keypnt $idx $jdx
end
c *************************************************************************************************************
c
c Driving Conditions
c
c *************************************************************************************************************
c
c A number of predefined waveform functions can be accessed in OnScale. The DATA
c HIST option is used below, other examples include wavelets, gaussians and step
c functions. The manual details the function entries
c
c *************************************************************************************************************
symb freqtimefunc_1 = $freqint
symb timeperiod = 1 / $freqint
symb numbercyc = 3 * ( $xlen / $wavelgth ) /* change the number to multiply the transiant time
c func
c name timefunc_1
c sine $freqtimefunc_1 1.0 0. $numbercyc 0. 0.0 /*frequency amplitude phaseshift nperiod valuadd rampcycle tdelay
c end
func sine $freqint 50.0 0. $numbercyc 0. 0.0 /*drfine (freq amp phaseshift #cycles)
c --------------------------------------------------------------
c Project Material List
c --------------------------------------------------------------
c -------------------------------------------------------------------------
c Global variables used in all the material definitions
c -------------------------------------------------------------------------
c
symb epvacm = 8.854e-12 /* dielectric constant for vacumn
symb freqdamp = 1.e6 if noexist /* specified frequency for damping model
symb rmu0 = 1.2566e-6
symb #msg 5
********************************************************
Damping matched at $freqdamp Hz
Redefine variable 'freqdamp' if device centre frequency
varies significantly from this value
********************************************************
c
c -------------------------------------------------------------------------
c Now define the axis transformation - only posx used in this file
c -------------------------------------------------------------------------
axis
form vctr
defn posx car2 0. 0. 0. 1. 0. 0. 0. 1. 0.
defn negx car2 0. 0. 0. -1. 0. 0. 0. 1. 0.
defn posy car2 0. 0. 0. 0. 1. 0. 0. 0. 1.
defn negy car2 0. 0. 0. 0. -1. 0. 0. 0. 1.
defn posz car2 0. 0. 0. 0. 0. 1. 1. 0. 0.
defn negz car2 0. 0. 0. 0. 0. -1. 1. 0. 0.
end
c -------------------------------------------------------------------------
c Input material properties to program
c -------------------------------------------------------------------------
matr
c --------------------------------------------------------------
c type : BIOLOGICAL :
c name : watr :
c desc : Water at 25C :
c --------------------------------------------------------------
wvsp on
type elas
prop watr 1054.00 1540.00 0.00000 0.010000
vdmp watr $freqdamp db 0.500000 0.00000 1e+6 1.00000 0.010000 1.00000
symb eps = 1
symb aeps = $epvacm * $eps
elec watr $aeps
c --------------------------------------------------------------
c type : GAS :
c name : air :
c desc : Air, room temp :
c --------------------------------------------------------------
wvsp on
type elas
prop air 1.24000 343.000 0.00000 0.
symb eps = 1
symb aeps = $epvacm * $eps
elec air $aeps
c --------------------------------------------------------------
c type : PIEZO :
c name : pmt3 :
c desc : CTS 3203HD :
c --------------------------------------------------------------
symb rho = 7820.00 /* density
symb qdmp = 90.0000 /* Mechanical Q at 1e6
symb qsdmp = 90.0000 /* Mechanical Q at 1e6
symb freqdamp = 1.e6 if noexist
symb freqloss = 1.00000e+06 if noexist /* Frequency that loss was measured at
wvsp off
type lean
c define baseline stiffness coefficients (Constant electric field)
symb c11 = 1.3745e+11
symb c12 = 8.79e+10
symb c13 = 9.23e+10
symb c14 = 0
symb c15 = 0
symb c16 = 0
symb c22 = 1.3745e+11
symb c23 = 9.23e+10
symb c24 = 0
symb c25 = 0
symb c26 = 0
symb c33 = 1.2574e+11
symb c34 = 0
symb c35 = 0
symb c36 = 0
symb c44 = 2.2279e+10
symb c45 = 0
symb c46 = 0
symb c55 = 2.2279e+10
symb c56 = 0
symb c66 = 2.4779e+10
prop pmt3 $rho
$c11 $c12 $c13 $c14 $c15 $c16 $c22
$c23 $c24 $c25 $c26 $c33 $c34 $c35
$c36 $c44 $c45 $c46 $c55 $c56 $c66
c define baseline dielectric coefficients
symb epxx = 1305.8
symb epyy = 1305.8
symb epzz = 1200.2
c scale material properties as specified above
symb aepxx = $epvacm * $epxx
symb aepyy = $epvacm * $epyy
symb aepzz = $epvacm * $epzz
elec pmt3 $aepxx $aepyy $aepzz
c define baseline piezoelectric coupling coefficients
symb ex1 = 0 /* coupling constant
symb ex2 = 0 /* coupling constant
symb ex3 = 0 /* coupling constant
symb ex4 = 0 /* coupling constant
symb ex5 = 16.054 /* coupling constant
symb ex6 = 0 /* coupling constant
symb ey1 = 0 /* coupling constant
symb ey2 = 0 /* coupling constant
symb ey3 = 0 /* coupling constant
symb ey4 = 16.054 /* coupling constant
symb ey5 = 0 /* coupling constant
symb ey6 = 0 /* coupling constant
symb ez1 = -9.44 /* coupling constant
symb ez2 = -9.44 /* coupling constant
symb ez3 = 22.495 /* coupling constant
symb ez4 = 0 /* coupling constant
symb ez5 = 0 /* coupling constant
symb ez6 = 0 /* coupling constant
piez pmt3 1 1 $ex1 1 2 $ex2 1 3 $ex3 1 4 $ex4 1 5 $ex5 1 6 $ex6 &
2 1 $ey1 2 2 $ey2 2 3 $ey3 2 4 $ey4 2 5 $ey5 2 6 $ey6 &
3 1 $ez1 3 2 $ez2 3 3 $ez3 3 4 $ez4 3 5 $ez5 3 6 $ez6
rdmp pmt3 $freqdamp q $qdmp $qsdmp 1e+6 1.0
axis pmt3 posy /* relate materials local system to global system
c --------------------------------------------------------------
c type : MISC :
c name : si :
c desc : Silicon, generic :
c --------------------------------------------------------------
wvsp on
type elas
prop si 2330 7526 4346 0.01
vdmp si $freqdamp db 0.1 0.3 1e+6 1 0.01 1
thrm si 702 124 124 124 1.0 0 0 27
symb eps = 11.9
symb aeps = $epvacm * $eps
elec si $aeps
elec void $epvacm
c --------------------------------------------------------------
c type : EPOXY :
c name : arald1 :
c desc : Araldite MY750/HY956EN :
c --------------------------------------------------------------
wvsp on
type elas
prop arald1 1146 2658 1237 0.01
vdmp arald1 $freqdamp db 4 12.59 1e+6 1 0.01 1
symb eps = 3.5
symb aeps = $epvacm * $eps
elec arald1 $aeps
elec void $epvacm
end
c *************************************************************************************************************
c
c Primitive Definitions
c
c *************************************************************************************************************
site
c regn void
blok watr $x1 $x4 $y3 $y6
c blok si 0.0 0.001 0.026 0.027 0.0 0.0 /* rectangle chip location
c blok watr 0.0 0.0005 0.026 0.027 0.0 0.0 /* square chip location
blok arald1 $x1 $x2 $y4 $y5 /* rectangle chip location (X: 0-0.00052, Y: 0.016-0.0165)
blok air $x1 $x4 $y1 $y2
blok pmt3 $x1 $x3 $y2 $y3
end
c Plot Model
grph
nvew 2 1 /* Set up 2 views
plot matr i $i1 $i4 j $j1 $j6 /* Plot Model
mirr x on /* Apply visual symmetry
plot matr /* Replot Model
end
term
c *************************************************************************************************************
c
c Boundary Definitions
c
c *************************************************************************************************************
boun
side xmin symm
side xmax absr
side ymin absr
side ymax absr
end
c *************************************************************************************************************
c
c Calculated Properties
c
c *************************************************************************************************************
c
c By default, Flex only calculates the minimum required data set, typically this
c means only velocities. This is done for memory efficiency. Should other
c properites be required (e.g. displacements, stresses, strains, pressure), then
c these must be requested by the CALC command. The manual lists all these options
c
c *************************************************************************************************************
calc
pres acoustic /* calculate acoustic pressure
max aprs none apmx /* calculate min/max acoustic pressure
disp y /* calculate displacements
end
c *************************************************************************************************************
c
c Piezoelectric Load Definitions
c
c *************************************************************************************************************
c piez
c wndo auto piez
c defn load_1 6.28
c symb bxmin = 0.0 * $coordFactor - $box
c symb bymin = 0.006 * $coordFactor - $box
c symb #get { is js * } clsnode $bxmin $bymin *
c symb bxmax = 0.01 * $coordFactor + $box
c symb bymax = 0.006 * $coordFactor + $box
c symb #get { ie je * } clsnode $bxmax $bymax *
c nod2 pmt3 watr $is $ie $js $je * *
c bc load_1 volt functimefunc_1 10.0 0.0
c
c defn load_2 6.28
c nod2 pmt3 air
c bc load_2 grnd
c slvr drct
c end
c *************************************************************************************************************
c
c Pressure Load Definitions
c
c *************************************************************************************************************
plod
pdef pld1 func /*define a load
c matr vctr1 air out
vctr vct1 0 1 0 /*define the vector
c sdef load_1 vector_1 $i1 $i2 $j2 $j2 /*apply a load in the vector direction
sdef pld1 vct1 $i1 $i3 $j3 $j3 /*apply a load in the vector direction
end
time * * 0.95
c *************************************************************************************************************
c
c Process Model
c
c *************************************************************************************************************
c
c Issue process (PRCS) command. Checks model integrity, and calculates stable
c time step. NOTE: Process command must always be issued
c
c *************************************************************************************************************
c symb #msg c Checking Model Integrity......
prcs
grph
colr user size 5 /* how many materials are defined in this model
colr user 1 0.0 0.0 1.0
colr user 2 0.0 1.0 1.0
colr user 3 0.0 1.0 0.0
colr user 4 1.0 0.0 0.0 /* Si chip (red)
colr user 5 1.0 1.0 0.0 /* arald1 chip (yellow)
colr tabl matr 7
map watr 1
map air 2
map pmt3 3
map si 4
map arald1 5
end
grph
line off
nvew 2 1
arrow pole
plot piez
plot matr piez
arrow off
end
term
c *************************************************************************************************************
c
c Choose Time Histories To Store
c
c *************************************************************************************************************
c
c Save field (such as displacement or pressure) from a node or element for all
c time steps with POUT command. Histories are referenced by order of
c specification. Histories will be saved in the Flex History file (flxhst).
c
c *************************************************************************************************************
pout
rate 1
symb xloc = 0.0 * $coordFactor
symb yloc = 0.015 * $coordFactor
hist xyz aprs $xloc * * $yloc * *
hist functimefunc_1
histname electrode vq all
end
c *************************************************************************************************************
c
c Run the Model
c
c *************************************************************************************************************
c
c Specify the number of time steps to be run. Can be set to auto by using
c 'Ringdown'.
c
c *************************************************************************************************************
c User defined runtime for the model
symb #get { step } timestep
symb ttime = 4e-5
c symb ttime = 8e-5
c symb ttime = 12e-5
c symb ttime = 3 * $numbercyc * $timeperiod
symb nexec = $ttime / $step
symb nloops = 10
symb nexec2 = $nexec / $nloops
c Set up Plotting
grph
nvew 1 1
set imag tiff
end
c Set up Snapshot file
c Create run plot procedure
proc plot save
c Run some timesteps
exec $nexec2
c Plot model
grph
plot aprs
plot ydsp
imag
end
c data
c out yvel
c out ydsp
c out xvel
c out aprs
c end
data
file out 'water_output_data.flxdato'
out modl
out aprs
out apmx
out yvmx
out yvel
out xvel
end
c
c data
c file out 'snapshot.mat'
c form out matlab output_data
c out yvel
c c out ydsp
c out xvel
c c out aprs
c end
c
end$ proc
c Run model then wait
proc plot $nloops
term
c *************************************************************************************************************
c
c Save symbol variables to file for later use
c
c *************************************************************************************************************
symb #get { labl } jobname
symb #save '$labl.symb'
stop /* return to command prompt
サインインしてコメントを残してください。
お探しのものを見つけられませんでしたか?
新規投稿