Acoustic Radiation Force FEM Tools Documentation

Acoustic Radiation Force FEM Tools Documentation
Acoustic Radiation Force FEM Tools
Documentation
Release 5.3.0
Mark Palmeri
May 13, 2017
Contents
1
Installation
3
2
Code Layout
5
3
Coordinate & Unit Conventions
7
4
Creating Rectilinear Meshes for LS-DYNA
4.1 Syntax . . . . . . . . . . . . . . . . .
4.2 Coordinate System . . . . . . . . . . .
4.3 Units . . . . . . . . . . . . . . . . . .
4.4 Next Steps . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
9
9
10
mesh package
5.1 Submodules . . . . . . . . . . . .
5.2 mesh.CreateStructure module . . .
5.3 mesh.GaussExc module . . . . . .
5.4 mesh.GenMesh module . . . . . .
5.5 mesh.TopLoad module . . . . . . .
5.6 mesh.bc module . . . . . . . . . .
5.7 mesh.calcNodeVol module . . . . .
5.8 mesh.create_pointloads_vtk module
5.9 mesh.fem_mesh module . . . . . .
5.10 mesh.parseElemsNodes module . .
5.11 Module contents . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
11
12
14
15
16
19
19
20
21
22
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
OptiStruct Mesh Conversion
23
7
Simulating Acoustic Radiation Force Excitation
25
8
post
8.1
8.2
8.3
8.4
8.5
9
.
.
.
.
.
27
27
27
27
27
27
Hypermesh Tutorial
9.1 Set Global Properties to LS Dyna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
29
create_disp_dat module . . .
create_disp_vtk module . . .
create_pointloads_vtk module
create_res_sim_mat module .
find_res module . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
9.2
9.3
9.4
Define the Part and Set Material Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Uniform Mesh Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Removing unneeded nodes and surfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
29
30
10 HyperMesh Alternatives
33
11 Examples
11.1 compress_cube_implicit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
35
12 Testing
12.1 top_compress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2 vf105 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
37
37
13 Thermal Modeling (June 2004)
13.1 Overview . . . . . . . . . . .
13.2 Front End . . . . . . . . . . .
13.3 FEM Meshes . . . . . . . . .
13.4 Field II . . . . . . . . . . . .
13.5 Intensity Measurements . . .
13.6 Thermocouple Measurements
13.7 LS-DYNA . . . . . . . . . .
13.8 MATLAB Output . . . . . . .
13.9 Thermal Convolution . . . . .
39
39
39
39
40
40
40
40
41
41
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14 Indices and tables
43
Python Module Index
45
ii
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
Contents:
Contents
1
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
2
Contents
CHAPTER
1
Installation
• You can locally clone this repository: git clone [email protected]:mlp6/fem.git
This approach will work if you have an SSH key uploaded to GitLab. If not, then you can also clone the reportory
using: git clone https://gitlab.oit.duke.edu/mlp6/fem.git
• Add the fem subdirectories to your Matlab path. One approach is to add the following to $HOME/matlab/
startup.m: fem_root = 'PATH/TO/GIT/CLONED/fem'; addpath(fullfile(fem_root,
'mesh')); addpath(fullfile(fem_root, 'field')); addpath(fullfile(fem_root,
'post')); where fem_root is the path of your git-cloned fem repository.
• Siemens proprietary probe definitions can be cloned from the Duke access-restricted repository: https://gitlab.
oit.duke.edu/ultrasound/probes .
• All of the python scripts require python >=3.3.
• Most code can be utilized as importable modules as part of the fem package, or can be executed from the CLI.
Most CLI-executed scripts have help available using the --help flag.
• If you are importing the fem code as a python package, then be sure to properly define PYTHONPATH in your
environment to include the root directory that the fem repository was cloned into.
• There is a pip requirements.txt file available to setup a python virtual environment will all of the necessary packages.
3
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
4
Chapter 1. Installation
CHAPTER
2
Code Layout
This repository contains 3 subdirectories of code:
1. mesh: scripts to generate meshes, apply boundary conditions and simple loads
2. field: Field II scripts to simulate acoustic radiation force excitations to impose as point loads on your model.
The probes submodule can be utilized with these scripts
3. post: scripts to post-process LS-DYNA output for processing / visualization in ls-prepost, Matlab, and Paraview
5
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
6
Chapter 2. Code Layout
CHAPTER
3
Coordinate & Unit Conventions
• The mesh (LS-DYNA) and Field II spatial axis conventions are different (this is unfortunate, but maintained for
legacy compatibility).
• LS-DYNA and mesh-related tools use a rotated, right-hand rule coorindate system:
• Axial extends into -z,
• Lateral extends into +y,
• Elevation extends into -x.
• LS-DYNA is run unitless, but scripts assume and scale quantitites assuming a CGS unit system.
• Field II tools a standard, right-hand rule coordinate system:
• Axial extends into +z,
• Lateral extends into +x,
• Elevation extends into +y.
• Field II internally uses MKS units, but scripts will specify units on the inputs
7
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
8
Chapter 3. Coordinate & Unit Conventions
CHAPTER
4
Creating Rectilinear Meshes for LS-DYNA
Most of the meshes used in first-pass FEM simulations of acoustic radiation force excitations are large rectangular
solids with either uniform cubic 3D elements, or elements with a slight aspect ratio. This document provides an
overview of the process of generating a 3D mesh using tools in this repository (fem/mesh).
Syntax
mesh/GenMesh.py will generate a the rectilinear mesh with user-specified properties. You can specify two opposing corner vertices of the mesh (--n1 and --n2), the element density on each edge (x, y, z), and the names of the
output files for node and element definitions.
Run: python GenMesh.py --help for detailed input syntax.
Coordinate System
Meshes in this code base utilize different conventions for the FEM portion of the code compared to the Field II
simulation component. LS-DYNA mesh conventions are:
• x - elevation
• y - lateral
• z - axial (negative, with transducer face @ z = 0)
Maintaining a right-hand rule convention, for a quarter-symmetry model, x would span a negative range of values for
positive 7 values.
Units
The typical unit system for the mesh is CGS, and this will be assumed in the code that passes data to/from Field II.
9
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
Next Steps
1. Your mesh will be used as an input to Field II to simulate the acoustic radiation force at nodes. This is done
using field/field2dyna.
2. You will need to generate boundary conditions for your mesh (mesh/bc.py)
3. You may want to create structures in your mesh with different material properties (mesh/
CreateStructure.py)
10
Chapter 4. Creating Rectilinear Meshes for LS-DYNA
CHAPTER
5
mesh package
Submodules
mesh.CreateStructure module
CreateStructe – define structures in meshes
mesh.CreateStructure.define_struct_type(args)
Determine the type of structure being defined from the Boolean input arguments
Parameters args – type of geometry
Returns struct_type
mesh.CreateStructure.findStructElemIDs(elefile, structNodeIDs)
find elements that contain nodes in structNodeIDs
Parameters
• elefile (str) – element filename
• structNodeIDs – numpy array
Returns (elems, structElemIds)
mesh.CreateStructure.findStructNodeIDs(nodefile, struct_type, sopts)
find nodes in given geometry
Find node IDs that fall within a specified geometry (sphere, layer, cube, ellipsoid).
Parameters
• nodefile (str) – (default: nodes.dyn)
• struct_type (str) – sphere, layer, ellipsoid, cube
• sopts – struct-specific parameters
11
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
Returns structNodeIDs (dict)
mesh.CreateStructure.main()
mesh.CreateStructure.parse_cli()
read in CLI arguments
mesh.CreateStructure.write_struct_elems(nefile,
partid,
structElemIDs)
Write new elements files with structure elements assigned a new part ID.
elems,
structNodeIDs,
Write new elements files with structure elements assigned a new part ID.
Parameters
• nefile (str) – new element file
• partid (int) – new Part ID
• structNodeIDs –
• structElemIDs –
Returns None
mesh.GaussExc module
GaussExc – Gaussian excitation
mesh.GaussExc.calc_gauss_amp(node_xyz, center=(0.0, 0.0, -2.0), sigma=(1.0, 1.0, 1.0), amp=1.0,
amp_cut=0.05, sym=’qsym’)
calculated the Gaussian amplitude at the node
Parameters
• node_xyz – list of x,y,z node coordinates
• center – list of x,y,z for Gaussian center
• sigma – list of x,y,z Guassian width
• amp – peak Gaussian source amplitude
• amp_cut – lower threshold (pct of max) for amplitude creating a point load
• qsym – mesh symemetry (qsym, hsym, none)
Returns nodeGaussAmp - point load amplitude at the specified node
mesh.GaussExc.calc_tukey_amp(node_xyz,
center=(0.0,
0.0,
-2.0),
sigma=(1.0,
1.0),
tukey_length=1.0, tukey_alpha=0.25, amp=1.0, amp_cut=0.05,
sym=’qsym’)
calculated the Gaussian amplitude at the node
Parameters
• node_xyz – list of x,y,z node coordinates
• center – list of x,y,z for excitation center
• sigma – list of x,y Guassian width
• tukey_length – length of axial extent, centered at center
• tukey_alpha – percentage of rolloff (see scipy documentation)
12
Chapter 5. mesh package
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
• amp – peak Gaussian source amplitude
• amp_cut – lower threshold (pct of max) for amplitude creating a point load
• qsym – mesh symemetry (qsym, hsym, none)
Returns nodeGaussAmp - point load amplitude at the specified node
mesh.GaussExc.check_num_fields(fields)
check for 4 fields
Parameters fields – list (node ID, x, y, z)
mesh.GaussExc.generate_loads(sigma, center, amp=1.0, amp_cut=0.05, sym=’qsym’, direction=-3,
loadfilename=’loads.dyn’, nodefile=’nodes.dyn’, tukey_length=0.0,
tukey_alpha=0.25)
TODO
mesh.GaussExc.main()
mesh.GaussExc.read_cli()
read CLI arguments
mesh.GaussExc.read_node_positions(line)
read node position fields from line in nodefile
Ignore lines that start with ‘$’ (comments) and ‘*’ keywords; Assume that all data entries are comma-delimited
without spaces.
Parameters line – single line string from nodefile
Returns fields 1x4 float list of node ID, x, y, z; None if appropriate
mesh.GaussExc.read_process_nodes(sigma, center, sym=’qsym’, amp=1.0, amp_cut=0.05, nodefile=’nodes.dyn’, tukey_length=0.0, tukey_alpha=0.25)
read nodes and determine if point load should be applied based on spatial position
Parameters
• sigma –
• center –
• sym – default = ‘qsym’
• amp – amplitude (default = 1.0)
• amp_cut – lower amplitude threshold (default = 0.05)
• nodefile – default = ‘nodes.dyn’
• tukey_length – length of Tukey window (0.0 defaults to Gaussian)
• tukey_alpha – percentage of Tukey window to rolloff
Returns load_nodeID_amp list of nodeID, nodeGaussAmp
mesh.GaussExc.sym_scale_amp(fields, nodeGaussAmp, sym, search_tol=0.0001)
scale point load amplitude on symmetry faces / edges
Parameters
• fields – list (node ID, x, y, z)
• nodeGaussAmp – amplitude of point load
• sym – type of mesh symmetry (none, qsym, hsym)
• search_tol – spatial tolerance to find nearby nodes
5.3. mesh.GaussExc module
13
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
Returns nodeGaussAmp symmetry-scaled point load amplitude
mesh.GaussExc.tukey_z_scale(z, center, length, alpha=0.25, points=101)
Parameters
• z – z-coordinate
• center – center of Tukey window
• length – length of Tukey window
• alpha – rolloff (percentage of window)
• points – number of points in Tukey window
Returns z_scale (scale, relative to 1.0)
mesh.GaussExc.write_load_file(loadfilename,
load_nodeID_amp,
direction=-3,
header_comment=’$Generated by GaussExc.py\n’)
write load file
Parameters
• loadfilename –
• load_nodeID_amp – list of int node ID, float amp
• direction – default = -3 (orientation (1, 2, 3) and sign)
• header_comment –
mesh.GenMesh module
GenMesh – mesh generation
mesh.GenMesh.calc_node_pos(xyz=(-1.0, 0.0, -1.0, 1.0, -4.0, 0.0), numElem=(20, 20, 20))
Calculate nodal spatial positions based on CLI specs
Parameters
• xyz – (xmin, xmax, ymin, ymax, zmin, zmax)
• numElem (int) – (xEle, yEle, zEle)
Returns pos - list of lists containing x, y, and z positions
mesh.GenMesh.check_x0_y0(pos)
check model position Check to make sure that nodes exist at (x, y) = (0, 0) so that the focus / peak of an ARF
excitation is captured by the mesh.
Parameters pos – node positions
Raises warning if (0, 0) is not in the mesh
Returns 0/1 (1 = fail)
mesh.GenMesh.main()
mesh.GenMesh.parse_cli()
parse commandline arguments
Defines: –nodefile [nodes.dyn] –elefile [elems.dyn] –partid [1] –xyz [(xmin, xmax, ymin, ymax,...)] –numElem
[(x, y, z)]
mesh.GenMesh.run(xyz, numElem, nodefile=’nodes.dyn’, elefile=’elems.dyn’, partid=1)
14
Chapter 5. mesh package
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
Parameters
• xyz –
• numElem –
• nodefile – default = “nodes.dyn”
• elefile – default = “elems.dyn”
• partid – default = 1
Returns 0
mesh.GenMesh.writeElems(numElem, partid=1, elefile=’elems.dyn’, header_comment=’$ Generated
by GenMesh.py’)
write element file using calculated position data
Parameters
• pos – list of lists of x, y, z positions
• elefile (str) – elems.dyn
• header_comment (str) – what version / syntax of calling command
Returns elems.dyn written (or specified filename)
mesh.GenMesh.writeNodes(pos, nodefile=’nodes.dyn’, header_comment=’$ Generated by GenMesh.py’)
write node file using calculated position data
Parameters
• pos – list of lists of x, y, z positions
• nodefile – nodes.dyn
• header_comment – what version / syntax of calling command
Returns nodes.dyn written (or specified filename)
mesh.TopLoad module
TopLoad.py - Generate compression conditions for the top surface of the specified mesh. Search through the provided
node file, extract the top
layer of nodes and write out point loads for each matching node. Nodes are written in spatiallysorted order.
Copyright 2015-2017 Mark L. Palmeri ([email protected])
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
“AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under the License.
mesh.TopLoad.extract_top_plane_nodes(nodefile, top_face)
Parameters
• nodefile –
5.5. mesh.TopLoad module
15
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
• top_face –
Returns planeNodeIDs
mesh.TopLoad.generate_loads(loadtype=’disp’,
direction=2,
amplitude=-1.0,
loadfile=’topload.dyn’, nodefile=’nodes.dyn’, top_face=(0, 0, 0, 0,
0, 1), lcid=1)
apply loads to
Parameters
• loadtype – ‘disp’, ‘vel’, ‘accel’, ‘force’
• direction – 0 - x, 1 - y, 2 - z
• amplitude – scalar of load type
• loadfile – written loadfile name
• nodefile – ‘nodes.dyn’
• top_face – [0, 0, 0, 0, 0, 1]
• lcid – load curve ID
Returns
mesh.TopLoad.main()
way too complicated for now
mesh.TopLoad.read_cli()
read CLI args
mesh.TopLoad.writeNodeLoads(loadfile, planeNodeIDs, loadtype, direction, amplitude, lcid)
write load keyword file
Parameters
• loadfile – load filename
• planeNodeIDS – array of node IDs
• [str] (loadtype) – disp, vel, accel, force
• direction – [0-2]
• amplitude –
• lcid – LCID
Returns None
mesh.bc module
bc – boundary conditions
mesh.bc.apply_face_bc_only(face_constraints, nodefile=’nodes.dyn’, bcfile=’bc.dyn’)
driver function to apply node BCs just to faces
Parameters
• face_constraints – 3x2 array of strings, face BCs (3), min/max (2)
• nodefile – default - ‘nodes.dyn’
16
Chapter 5. mesh package
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
• bcfile – ‘defauly - ‘bc.dyn’
Returns
mesh.bc.apply_nonreflect(face_constraints,
edge_constraints,
nodefile=’nodes.dyn’,
file=’elems.dyn’, bcfile=’bc.dyn’, segfile=’nonreflect_segs.dyn’)
driver function to generate non-reflecting boundaries
ele-
Parameters
• face_constraints – vector of face constraints, ordered xmin to zmax
• edge_constraints – vector of edge constraints, ordered xmin to zmax
• nodefile – default - ‘nodes.dyn’
• elefile – default - ‘elems.dyn’
• bcfile – default - ‘bc.dyn’
• segfile – default - ‘nonreflect_segs.dyn’
Returns 0 on success
mesh.bc.apply_pml(pml_elems, face_constraints, edge_constraints, nodefile=’nodes.dyn’,
file=’elems.dyn’, pmlfile=’elems_pml.dyn’, bcfile=’bc.dyn’, pml_partID=2)
driver function to apply PML boundary conditions
ele-
Parameters
• pml_elems – 3x2 array of ints specifying thickness of PML elements (5–10) on each PML
layer
• face_constraints – 3x2 array of strings, specifying the BCs on each face (3), min/max
(2)
• edge_constraints – 1x6 vector of BCs on each edge
• nodefile – default - ‘nodes.dyn’
• elefile – default - ‘elems.dyn’
• pmlfile – default - ‘elems_pml.dyn’
• bcfile – ‘defauly - ‘bc.dyn’
• pml_partID – default - 2
Returns
mesh.bc.assign_edge_sym_constraints(bcdict, snic, axes, edge_constraints)
modify/create node BCs for quarter-symmetry edge
Parameters
• bcdict – dict of nodal BCs
• snic – sorted node IDs and coordinates
• axes – spatial axis vectors
• edge_constraints – list with vector indicating edge & constraint (e.g., to specify the edge shared by the xmax and ymin faces to allow just z translation:
(((0,1),(1,0),(0,0)),‘1,1,0,1,1,1’)
Returns bcdict (updated from face assignment)
5.6. mesh.bc module
17
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
mesh.bc.assign_node_constraints(snic, axes, face_constraints)
assign node constraints to prescribed node planes
Nodes shared on multiple faces have are assigned with the following order of precedence: z, y, x
Parameters
• snic – sorted node IDs and coordinates from nodes.dyn
• axes – mesh axes [x, y, z]
• face_constraints – list of DOF strings ordered by ((xmin, max), (ymin, ...) (e.g.,
((‘1,1,1,1,1,1’ , ‘0,1,0,0,1,0’),...)
Returns bcdict - dictionary of node BC to be written to bc.dyn
mesh.bc.assign_pml_elems(sorted_elems, pml_elems, pml_partID=‘2’)
assign PML elements in the sorted element matrix
Parameters
• sorted_elems – sorted element matrix
• pml_elems – list of tuples of # PML elems on each axis edge ([[xmin, max], [ymin,
ymax], ...)
• pml_partID – default = 2
Returns sorted_pml_elems (to be written to new file)
mesh.bc.constrain_sym_pml_nodes(bcdict, snic, axes, pml_elems, edge_constraints)
make sure that all “side” nodes for the PML elements are fully constrained, instead of being assigned the
symmetry constraints
THIS FUNCTION IS NOT NEEDED!!
Parameters
• bcdict –
• snic –
• axes –
• pml_elems –
• edge_constraints –
Returns bcdict
mesh.bc.main()
apply prescribed boundary conditions to nodes/face segments
mesh.bc.read_cli()
read command line arguments
Returns opts (argparse object)
mesh.bc.writeSeg(BCFILE, title, segID, planeNodeIDs)
write face segments to BC input file
Parameters
• BCFILE – file IO object
• title (str) – header comment line
• segID (int) – segment ID #
18
Chapter 5. mesh package
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
• planeNodeIDs – 2D array
Returns segID (inc +1)
mesh.bc.write_bc(bcdict, bc=’bc.dyn’)
write node BCs
Parameters
• bcdict – dict of node BCs, with DOF values
• bcfile – boundary conditions filename (bc.dyn)
mesh.bc.write_nonreflecting(BCFILE, segID)
write non-reflecting boundaries (set segments) to input file with segments
ASSUMES THAT SEGMENT FILE HAS ALREADY BEEN WRITTEN TO AND NOT TERMINATED
WITH *END
Parameters
• BCFILE – file IO object
• segID (int) – maximum segment ID #, assuming started at 1
Returns 0 on success
mesh.bc.write_pml_elems(sorted_pml_elems, pmlfile=’elems_pml.dyn’)
Create a new elements file that the PML elements.
Parameters
• sorted_pml_elems –
• pmlfile – default = elems_pml.dyn
Returns
mesh.calcNodeVol module
mesh.create_pointloads_vtk module
create_pointloads_vtk.py
Creates .vts file, which can be viewed in Paraview, from node and point loads files.
Here is one solution I found for viewing the loads on the inside of the mesh: 1. Load the mesh into Paraview.
2. Press the “Calculator” button on the top left side of Paraview. The calculator filter should open up in the sidebar on
the left. Next, in the text box between “Result Array Name” and above all of the calculator buttons, type “mag(loads)”
without the quotation marks. Next, change the “Result Array Name” from “Result” to something like “load magnitude”. Now, hit the Apply button. This part needs to be done because when the .vts file was created, the loads data
were represented as vectors with non-zero values for the z-components only. Taking the magnitude of the loads vectors
converts them all into scalar values.
3. Now that we have the loads data in scalar form, we can apply a Threshold filter to visualize only the nodes with
non-zero load values. The Threshold filter can be found on the top left, several buttons to the left of the “Calculator”
button. Before applying the Threshold filter, make sure that you are filtering by “load magnitude” and that the lower
threshold is a small non-zero value, like 0.000001. You should now only see the nodes with non-zero load values.
5.7. mesh.calcNodeVol module
19
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
4. In order to visualize these nodes within the context of the mesh, you should hit the eye-shaped button next to the
.vts file in the side bar to allow the entire mesh to appear in the scene. Next, select the .vts file, scroll down to Opacity
in the Properties tab of the sidebar, and change the opacity to around 0.5. You should now be able to see the loads that
were previously hidden inside the mesh.
mesh.create_pointloads_vtk.create_vts(args)
Writes .vts file from node and load files. StructuredGrid format assumes a linear mesh, so if your mesh is
actually non-plaid, this script should be run using with an elements file.
mesh.create_pointloads_vtk.create_vtu(args)
mesh.create_pointloads_vtk.main()
mesh.create_pointloads_vtk.parse_cli()
parse command-line interface arguments
mesh.create_pointloads_vtk.writeCellData(loadout, args)
writes cell part IDs
mesh.create_pointloads_vtk.writeCells(loadout, args)
writes cell connectivity and types to loadout file
mesh.create_pointloads_vtk.writeNodeIDs(loadout, args, numNodes)
writes node IDs to loadout file
mesh.create_pointloads_vtk.writeNodePositions(loadout, args, filetype)
writes opening tags as well as node positions to loadout file. returns array containing number of nodes (index =
0) and number of elements (index = 1).
mesh.create_pointloads_vtk.writePointLoads(loadout, args, numNodes)
writes point loads to loadout file
mesh.fem_mesh module
fem_mesh.py
Generic functions for all meshing functions
Copyright 2015 Mark L. Palmeri ([email protected])
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
“AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under the License.
mesh.fem_mesh.SortElems(elems, axes)
spatially sort node IDs into 3D matrix
Parameters
• elems – element definitions, as read from elems.dyn
• axes – lists of x, y, z axis positions
Returns sorted_elems
mesh.fem_mesh.SortNodeIDs(nic, sort=False)
spatially sort node IDs into 3D matrix
20
Chapter 5. mesh package
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
Parameters
• nic – nodeIDcoords (n matrix [# nodes x 4, dtype = i4,f4,f4,f4])
• sort – False (assume node ordering); True (spatially sort)
Returns [SortedNodeIDs - n matrix (x,y,z), axes]
mesh.fem_mesh.check_version()
check at least python2.7
Needed for argparse compatibility
mesh.fem_mesh.count_header_comment_skips(nodefile)
count file head comments lines
count the number of file head comments lines to skip before the first keyword (line starting with *)
Parameters nodefile – node keyword filename
mesh.fem_mesh.extractPlane(snic, axes, plane)
extract plane node IDs
Extract the node IDs on a specified plane from a sorted node ID & coordinate 3D array.
Parameters
• snic – sorted node IDs & coordinates array
• axes – list of unique coordinates in the x, y, and z dimensions
• plane – list index - index of the plane to extract (x=0, y=1, z=2) coord - coordinate of the
plane to extract (must exist in axes
list)
Returns planeNodeIDs (spatially-sorted 2D node IDs on specified plane)
Example planeNodeIDs = extractPlane(snic,axes,(0,-0.1))
mesh.fem_mesh.load_elems(elefile=’elems.dyn’)
Parameters elefile – elems.dyn
Returns elems
mesh.fem_mesh.load_nodeIDs_coords(nodefile=’nodes.dyn’)
load in node IDs and coordinates
Exclude ‘*’ keyword lines
Parameters nodefile – node filename (nodes.dyn)
Returns nodeIDcoords (numpy array)
mesh.fem_mesh.rm_tmp_file(nodefile_nocmt)
mesh.fem_mesh.strip_comments(nodefile)
strip comments string comment lines starting with $
Parameters nodefile – keyword filename
mesh.parseElemsNodes module
Copyright 2015 Mark L. Palmeri ([email protected])
5.10. mesh.parseElemsNodes module
21
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
“AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under the License.
mesh.parseElemsNodes.main()
Module contents
22
Chapter 5. mesh package
CHAPTER
6
OptiStruct Mesh Conversion
The student version of HyperMesh does not directly export ls-dyna-compatible input decks, but it does export OptiStruct format.
1. OptiStruct_getElemNodes.m reads in the geometry from the optistruct file format.
2. OptiStruct2DYNA.m writes this data to a .k file
The corresponding functions to go the other direction are: #. getElemNodes.m #. DYNA2OptiStruct.m
Note that these scripts only migrate the geometry and don’t maintain any other cards (contacts, part definitions, etc)
through the conversion.
23
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
24
Chapter 6. OptiStruct Mesh Conversion
CHAPTER
7
Simulating Acoustic Radiation Force Excitation
IN PROGRESS
1. field2dyna
Format of dyna*.mat
2. makeLoadsTemps
Format of PointLoads*.dyn
25
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
26
Chapter 7. Simulating Acoustic Radiation Force Excitation
CHAPTER
8
post
create_disp_dat module
create_disp_vtk module
create_pointloads_vtk module
create_res_sim_mat module
find_res module
27
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
28
Chapter 8. post
CHAPTER
9
Hypermesh Tutorial
Rectilinear mesh generation using HyperMesh (Douglas Dumont)
Set Global Properties to LS Dyna
1. Click on the global button in the lower-right.
2. Click the load button beside the template file. Select latest version of LS Dyna key.
3. Click return.
Define the Part and Set Material Properties
1. Goto the Collectors Menu.
2. Click on the up arrow beside collector type.
3. Select Mat to define the collector as a material.
4. Enter a name to describe the part
5. Click on card image. Select the desired material card. Use MATL-TH1 for a thermally isotropic material.
6. Click Create/Edit
7. Enter the properties for the material. For thermal properties, TRO is the material density, TGRLC and TGMULT
should be zero, HC is the heat capacity, and TC is the thermal conductivity for a given material.
8. Return to the main menus.
Uniform Mesh Generation
1. Click on Perf rather than Std besides GFX. This will make mesh generation much faster.
29
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
2. Goto Geometry, then Create Nodes.Enter four nodes to define one face of your mesh. For uniform meshes
without biasing, it is suggested to define nodes along the x-y plane
3. Goto 2-D and select Planes.
4. Select Nodes in the left drop down menu. Click on Nodes and highlight the nodes you are interested in defining
a plane for.
5. Select surface-only in the right drop down menu.
6. Select trimmed and then click on Create.
7. Go back to the 2-D menu and select Automesh.
8. Click on the surface. It should turn from red to white.
9. Click on mesh, making sure interactive mesh is highlighted.
10. Numbers will now appear along the sides of the surface. Selecting these allow defining the number of elements
along that edge.Alternatively, enter the desired element density into elem density and click Set Edge To.
11. Define element densities for all four edges.
12. Click Mesh to generate the mesh. Click Reject to reject a generated mesh.
13. Return to the main menu once a suitable mesh has been generated.
14. The two-dimenional mesh now needs to be dragged to generate a 3-D volume. For example, a planar mesh can
be generated at the face of the transducer and then grown along the z axis to make the model volume.
15. Goto 3-D. Goto Drag.
16. Click drag elems.
17. Click elements. Select all.
18. Click on the arrow button beside N1 N2 N3.
19. Select the direction to drag the mesh in under to create a volume. For a mesh defined in the x-y plane, the z
direction should be specified.
20. Enter the distance to drag the mesh.
21. On Drag defines the element density in the dragged direction. Enter the desired element density.
22. Select Drag+ to drag elements in the + direction. Select Drag - for the reverse.
23. To view the mesh, click on View, then select Iso1.
24. Click return.
25. Sections with different densities can be generated in a similar fashion. First create a plane divided into subsections depending on the number of desired densities. Use Automesh to specify the desired number of edge
elements for each section. Create the planar mesh and drag this new mesh to create a volume.
Removing unneeded nodes and surfaces
1. The volume is almost finished. Now the nodes and surfaces created earlier should be deleted. To do this, click
on Display and turn Elems off. Only the initial nodes and surfaces will now be displayed.
2. Goto Geom
3. Goto Temp Nodes
4. Click nodes and select all.
30
Chapter 9. Hypermesh Tutorial
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
5. Select clear.
6. To remove the surface, goto Tools and then Delete.
7. Select Surfs and click on the surfaces to delete. Select Delete entity.
8. To check the number of elements and nodes, goto Tools and then Count. Select all.
9. Your mesh is almost finished. To write to a ls-dyna file, goto Files and then select Export.
10. Make sure the dyna key is selected and click write as. Enter a file name and click Save.
11. Open the saved .dyn file in your favorite text editor. Search for Shell. This section of the dyna deck defines shell
elements generated from the 2-D automesh command. We only want solid elements. Delete all the nodes under
Shell elements.
12. Enter the desired control cards into deck.
13. Drink a beer. Watch a movie. Work from home. Your mesh is now finished.
9.4. Removing unneeded nodes and surfaces
31
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
32
Chapter 9. Hypermesh Tutorial
CHAPTER
10
HyperMesh Alternatives
Commercial HyperMesh is not cheap, so there are some other considerations:
1. HyperMesh Student Edition (restricted to 1 computer; no direct ls-dyna export)
2. LS-PREPOST
3. http://geuz.org/gmsh/
4. http://www.vmtk.org/
5. http://febio.org/preview/
6. http://sourceforge.net/projects/netgen-mesher/
7. http://wias-berlin.de/software/tetgen/
Keep in mind that tetrahedral elements are not well conditioned for nearly-incompressible materials, so most of these
are not ideal options.
33
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
34
Chapter 10. HyperMesh Alternatives
CHAPTER
11
Examples
All examples are located in examples/, and each example directory should contain a run.sh script that contains
all of the commands that should setup and run each of the models.
compress_cube_implicit
A simple strain elastography compression model with a 0.5 x 1.0 x 3.0 cm mesh of hexahedral elements. 0.5% strain
is applied as a displacement on the top surface with a bottom boundary that can move in-plane. An implicit solver is
used for this model.
35
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
36
Chapter 11. Examples
CHAPTER
12
Testing
There are test scripts / models available for code validation and future development. Please use existing tests if
fixing bug / editing existing features, or create new tests for new features. Ipython notebooks documenting testing,
performance, etc. are also saved in some of the testing directories.
top_compress
Generate a simple 3D hexahedral mesh without any symmetry boundary conditions, and apply a 0.5% top load strain.
vf105
Generate a quarter-symmetry, 3D hexahedral mesh and simulate a typical VF10-5 ARF excitation.
37
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
38
Chapter 12. Testing
CHAPTER
13
Thermal Modeling (June 2004)
Overview
The thermal Finite Element Method (FEM) models should be used to evaluate the soft tissue heating that occurs in
soft tissue due to absorption of ultrasonic energy during ARFI imaging. There are two publications regarding thermal
response of tissues during ARFI imaging that should be read before doing thermal modeling and measurements .
The models allow the user to input transducer specific parameters, such as focal depth, F/#, element dimensions, etc.
Depending on the focal depth that is specified, a pre-made mesh is selected, and Field II is run to solve for the intensity
fields generated by the transducer. These intensity fields are scaled by emperically-determined 𝐼𝑠𝑝𝑡𝑎 values, and then
LS-DYNA is used to solve for the heating and cooling behavior in tissue, using user-specified material properties. The
results are compared with thermocouple measurements in porcine muslce, and then thermal-convolution scripts are
run in MATLAB to solve for the heating associated with different beam spacings, fields-of-view, and focal depths.
Front End
[This still needs to be written (PERL).]
FEM Meshes
The meshes used for the models need to be as small as possible, in terms of node counts and number of elements, to
reduce computation overhead and disk usage. When modeling, low-freqeuncy transducer at deep docal depths, larger
meshes are necessary. This document will be written with the VF10-5, and it’s assocaited mesh, in mind.
Generic meshes are saved as XDCRmaxfocdepth.dyn (e.g., VF105foc25mm.dyn). These meshes are LS-DYNA input deck templates that contain input for the FEM runs, including the node/element information. Field II will be
used to solve for the intesities at these nodal locations (calc_hp). This information is read into MATLAB using
read_dyna_nodes.m, which saves a variable measurementPointsandNodes that contains the node IDs, along with the
x, y, and z coordinates respectively.
39
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
New meshes will need to be generated if you have a transducer that will need to go deeper than one of the current
meshes allows or if the transducer has a doemetry that doesn’t conform to a pre-existing mesh. HyperMesh is a
Windows-based program that can be used to generate meshes that can be exported for use in LS-DYNA. Documentation and tutorials for how to use HyperMesh, along with tutorial exercises can be found in /data/jlb/src/altair/6.0/docs/
. Doug Dumont has also written a nice tutorial on how to use HyperMesh (HyperMesh.pdf).
Field II
Field II is called from within the front end PERL script to solve to the intensity values at each nodal location
for each focal configuration and material attenuation. [The old scripts used to do this are field2dyna.m and fieldprms3d_arfi.m .] The results are saved into MATLAB files called dyna_isptaout_att??.mat, which include the measurementPointsandNodes variable, along with an isptaout variable that has node intensity values for select nodes in
the mesh where ultrasonic energy is absorbed.
Intensity Measurements
The intensity fields that are simulated by Field II need to be scaled up to values that will be used in vivo. This is
accomplished by performing a linear extrapolation of the of small-signal derated intensity fields, as outlined in the
2002 NCRP report . First, intensity measurements are made using a hydrophone in a water tank at low power values
to avoid saturation of the water. [CITE DOCUMENTATION ON MAKING HYDROPHONE MEASUREMENTS]
Thermocouple Measurements
See Kristin Frinkley’s document on making thermocouple measurements (tcprotocol.pdf).
LS-DYNA
LS-DYNA is a non-linear, three-dimensional, finite element analysis program that is used for structural and thermal
modeling in the lab. Documentation for running models in LS-DYNA can be found in /data/jlb/src/lstc/docs/. Details
on the types of elements used in the models are included in the first thermal publications .
Once the intesity values from Field II are scale appropraitely using the hydrophone and thermocouple measurements,
these values must be converted to heat sources to modeling the heating behavior or the tissue, or to initial temperatures
to model the cooling of the tissue. We will start with the later case.
As outlined in the first thermal publication , when heat is applied over a short time period relative to the thermal
conductivity of the materal, the temperature increase can be solved using Equation [inittemp]:
∆𝑇 =
2𝛼𝐼
𝑞𝑣
𝑡=
𝑡.
𝑐𝑣
𝑐𝑣
𝐼 in Equation [inittemp] is the scaled intensity value that was determined in the earlier sections of this document. By
inputing initial temperatures, the FEA can be performed with cruder time steps for cooling response. These initial
temperatures are determined using the MATLAB script make_asc_therm.m, which saves the file inittemps.asc, which
has column data of the form: node ID, initial temp (deg C). This file is then read in as an initial condition into the
LS-DYNA input deck under the card INITIAL_TEMPERATURE_NODE.
Heat sources will need to be generated when the high-intesity ARFI pushing pulses are applied over a greater time
duration relative to the thermal conductivity. If you are in doubt, generate the heat sources and run the simulation.
[NEED TO ADD ALL OF THIS]
40
Chapter 13. Thermal Modeling (June 2004)
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
MATLAB Output
LS-DYNA saves its results in d3plot files. To perform post-processing on these results in MATLAB, these results are
converted to MATLAB format using the function d3plotConvert.m . This function reads in the header of the binary
d3plot file, and creates variables of the relevant data, which in this case is nodal temperature data through time. This
data is saved to dyna_convolve_FR.mat and dyna_convolve_FR_elev.mat, which contain the temperature data on the
two symmetry faces (axial-lateral, and axial-elevation respectively) through time. All other data in the d3plot files is
not saved to the MATLAB result files - if this data is needed, it can be viewed using ls-prepost or saved separated in
MATLAB.
Thermal Convolution
The FEM analyzes the heating and cooling associated with a single ARFI interrogation. To simulate the heating
and cooling assocaited with multiple lines per frame, and multiple frames of ARFI imaging, convulation of the thermal results is performed in MATLAB using convolveFR.m [THIS MIGHT CHANGE - NEED TO ADD LOTS OF
COMMENTS TO CODE ON HOW THIS WORKS - THE INVLUDE THAT CODE (VERBATIM) HERE]
13.8. MATLAB Output
41
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
42
Chapter 13. Thermal Modeling (June 2004)
CHAPTER
14
Indices and tables
• genindex
• modindex
• search
43
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
44
Chapter 14. Indices and tables
Python Module Index
m
mesh, 22
mesh.bc, 16
mesh.create_pointloads_vtk, 19
mesh.CreateStructure, 11
mesh.fem_mesh, 20
mesh.GaussExc, 12
mesh.GenMesh, 14
mesh.parseElemsNodes, 21
mesh.TopLoad, 15
45
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
46
Python Module Index
Index
A
L
apply_face_bc_only() (in module mesh.bc), 16
apply_nonreflect() (in module mesh.bc), 17
apply_pml() (in module mesh.bc), 17
assign_edge_sym_constraints() (in module mesh.bc), 17
assign_node_constraints() (in module mesh.bc), 17
assign_pml_elems() (in module mesh.bc), 18
load_elems() (in module mesh.fem_mesh), 21
load_nodeIDs_coords() (in module mesh.fem_mesh), 21
M
main() (in module mesh.bc), 18
main() (in module mesh.create_pointloads_vtk), 20
main() (in module mesh.CreateStructure), 12
C
main() (in module mesh.GaussExc), 13
main() (in module mesh.GenMesh), 14
calc_gauss_amp() (in module mesh.GaussExc), 12
main() (in module mesh.parseElemsNodes), 22
calc_node_pos() (in module mesh.GenMesh), 14
main() (in module mesh.TopLoad), 16
calc_tukey_amp() (in module mesh.GaussExc), 12
mesh (module), 22
check_num_fields() (in module mesh.GaussExc), 13
mesh.bc (module), 16
check_version() (in module mesh.fem_mesh), 21
mesh.create_pointloads_vtk (module), 19
check_x0_y0() (in module mesh.GenMesh), 14
mesh.CreateStructure (module), 11
constrain_sym_pml_nodes() (in module mesh.bc), 18
count_header_comment_skips()
(in
module mesh.fem_mesh (module), 20
mesh.GaussExc (module), 12
mesh.fem_mesh), 21
create_vts() (in module mesh.create_pointloads_vtk), 20 mesh.GenMesh (module), 14
create_vtu() (in module mesh.create_pointloads_vtk), 20 mesh.parseElemsNodes (module), 21
mesh.TopLoad (module), 15
D
define_struct_type() (in module mesh.CreateStructure), P
parse_cli() (in module mesh.create_pointloads_vtk), 20
11
parse_cli() (in module mesh.CreateStructure), 12
E
parse_cli() (in module mesh.GenMesh), 14
extract_top_plane_nodes() (in module mesh.TopLoad),
R
15
extractPlane() (in module mesh.fem_mesh), 21
read_cli() (in module mesh.bc), 18
read_cli() (in module mesh.GaussExc), 13
F
read_cli() (in module mesh.TopLoad), 16
findStructElemIDs() (in module mesh.CreateStructure), read_node_positions() (in module mesh.GaussExc), 13
read_process_nodes() (in module mesh.GaussExc), 13
11
findStructNodeIDs() (in module mesh.CreateStructure), rm_tmp_file() (in module mesh.fem_mesh), 21
run() (in module mesh.GenMesh), 14
11
G
S
generate_loads() (in module mesh.GaussExc), 13
generate_loads() (in module mesh.TopLoad), 16
SortElems() (in module mesh.fem_mesh), 20
SortNodeIDs() (in module mesh.fem_mesh), 20
47
Acoustic Radiation Force FEM Tools Documentation, Release 5.3.0
strip_comments() (in module mesh.fem_mesh), 21
sym_scale_amp() (in module mesh.GaussExc), 13
T
tukey_z_scale() (in module mesh.GaussExc), 14
W
write_bc() (in module mesh.bc), 19
write_load_file() (in module mesh.GaussExc), 14
write_nonreflecting() (in module mesh.bc), 19
write_pml_elems() (in module mesh.bc), 19
write_struct_elems() (in module mesh.CreateStructure),
12
writeCellData() (in module mesh.create_pointloads_vtk),
20
writeCells() (in module mesh.create_pointloads_vtk), 20
writeElems() (in module mesh.GenMesh), 15
writeNodeIDs() (in module mesh.create_pointloads_vtk),
20
writeNodeLoads() (in module mesh.TopLoad), 16
writeNodePositions()
(in
module
mesh.create_pointloads_vtk), 20
writeNodes() (in module mesh.GenMesh), 15
writePointLoads()
(in
module
mesh.create_pointloads_vtk), 20
writeSeg() (in module mesh.bc), 18
48
Index
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement