OnScale Cloud Failures Answered

Hello, I have been getting failure reports when trying to run my code. I included my code below. Can you please help?

 

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
symbx freqint = 1e+6 /* Determined Drive Frequency (Hz)
c 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.0007 * $coordFactor
symb x_pzt = 0.01 * $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 = 4 * ( $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
regn void
blok watr $xmin $xmax $y_pzt_t $ymax

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
c blok watr $xmin $x_particle $y_particle_b $y_particle_t /* water rectangle chip location (X: 0-0.00052, Y: 0.016-0.0165)

c ***Chip or Bead Properties***
blok watr $xmin $x_particle $y_particle_b $y_particle_t /* Water rectangle chip location (X: 0-0.00052, Y: 0.016-0.0165)
c blok si $xmin $x_particle $y_particle_b $y_particle_t /* Si rectangle chip location (X: 0-0.00052, Y: 0.016-0.0165)
c blok arald1 $xmin $x_particle $y_particle_b $y_particle_t /* Epoxy rectangle chip location (X: 0-0.00052, Y: 0.016-0.0165)
c circle2d arald1 $xmin $y_particle_b $x_particle /* circle bead defined as arald1 to define an interface to apply a load to

c *****************************

blok air $xmin $xmax $ymin $y_pzt_t
c blok pmt3 $xmin $x_pzt $y_pzt_b $y_pzt_t /*PZT block
end


c Plot Modl
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 5
map watr 1
map air 2
map pmt3 3
map si 4
map arald1 5

end

grph
c line off
c nvew 2 1
c arrow pole
c plot piez
c plot matr piez
c 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 * *
c hist func_1
c 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
c symb ttime = 4e-5
c symb ttime = 8e-5
c symb ttime = 12e-5

symb ttime = 1 * $numbercyc * $timeperiod

symb nexec = $ttime / $step
symb nloops = 30
symb nexec2 = $nexec / $nloops


c Set up Plotting
grph
nvew 2 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 apmx
c plot ydsp
c plot yvel
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

5 comments

  • Official comment

    Hi Tiffany,

    Your model is reporting 'Data manager contains bad values' which means it is going unstable. One trick to try when this happens is to lower the time stability factor of your model to 0.8 (it is currently at 0.95).

    In this case it stabilises the model.

    Best Regards,

    Chloe

    Comment actions Permalink
  • Hello Chloe, I tried lowering the stability factor, increasing my meshing, and replacing the absr to impd. But it still fails especially at higher frequencies. The error report is saying there is a memory issue. Please let me know what I can do to solve this problem. Additionally, I am not sure why I am getting a reflection from the top boundary. I included my updated code below. Please note I changed the boundary conditions back once impd did not work. I am attempting the sweep from 500kHz to 2 MHz (32 simulations).

     

    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 :SonicMEMS CORNELL
    c MODEL DESCRIPTION :
    c DATE CREATED :28 Aug 2020
    c VERSION :2.0
    c *************************************************************************************************************

    mp
    omp * * /* Number of CPUs to be used in the execution.
    end

    titl Focusing_Neuralproject

    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
    symbx freqint = 1e+6 /* Determined Drive Frequency (Hz)
    c 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 = 40 /* 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.0007 * $coordFactor
    symb x_pzt = 0.01 * $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
    c symb ymax = 0.046 * $coordFactor
    symb ymax = 0.05 * $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 = 2 * ( ( $ylen - $y_pzt_t ) / $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
    regn void
    blok watr $xmin $xmax $y_pzt_t $ymax

    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
    c blok watr $xmin $x_particle $y_particle_b $y_particle_t /* water rectangle chip location (X: 0-0.00052, Y: 0.016-0.0165)

    c ***Chip or Bead Properties***
    c blok si $xmin $x_particle $y_particle_b $y_particle_t /* Water rectangle chip location (X: 0-0.00052, Y: 0.016-0.0165)
    c blok si $xmin $x_particle $y_particle_b $y_particle_t /* Si rectangle chip location (X: 0-0.00052, Y: 0.016-0.0165)
    c blok arald1 $xmin $x_particle $y_particle_b $y_particle_t /* Epoxy rectangle chip location (X: 0-0.00052, Y: 0.016-0.0165)
    circle2d arald1 $xmin $y_particle_b $x_particle /* circle bead defined as arald1 to define an interface to apply a load to

    c *****************************

    blok air $xmin $xmax $ymin $y_pzt_t
    c blok pmt3 $xmin $x_pzt $y_pzt_b $y_pzt_t /*PZT block
    end


    c Plot Modl
    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 impd
    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
    c 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.8 /*time stability factor

    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 5
    map watr 1
    map air 2
    map pmt3 3
    map si 4
    map arald1 5

    end

    c grph
    c line off
    c nvew 2 1
    c arrow pole
    c plot piez
    c plot matr piez
    c arrow off
    c 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 = $y_pzt_t * $coordFactor
    hist xyz aprs $xloc * * $yloc * *
    c hist func_1
    c 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
    c symb ttime = 4e-5
    c symb ttime = 8e-5
    c symb ttime = 12e-5
    c symb ttime = 1e-5
    symb ttime = 1 * $numbercyc * $timeperiod

    symb nexec = $ttime / $step
    symb nloops = 30
    symb nexec2 = $nexec / $nloops


    c Set up Plotting
    grph
    nvew 2 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 apmx
    c plot ydsp
    c plot yvel
    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
    c out yvmx
    out yvel
    c 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

    Comment actions Permalink
  • Hi Tiffany,

     

    If there is a memory issue, here is a blog that will hopefully help you overcome this.

     

    Also if you are sweeping from 500 kHz to 2 MHz ensure that you sweep from the largest simulation to the smallest so enough memory is assigned (i.e. use 2 MHz as your start value and 500 kHz as your smallest). This should stop the failures.

     

    Best Regards,

    Chloe

    Comment actions Permalink
  • I will read the article you sent. However, I switched the starting value and I still get crashing. Additionally, it crashes sometimes when I run one at a time. 

    Comment actions Permalink
  • Tiffany,

     

    In this case you will likely need to override the estimate as mentioned in the blog post.

     

    Best Regards,

    Chloe

    Comment actions Permalink

Please sign in to leave a comment.

Didn't find what you were looking for?

New post