This example demonstrates the use of the commands 'FEM change displacement_bc'. For quasi-static problems it is usually necessary to solve a sequence of problems just with a different set of boundary conditions. For example, in problems involving inverse dynamics, the movement of the bone is typically known from gait analysis (eg. during knee flexion or jaw movement). This movement also typically prescribes the movement of the muscle attachment area, and hence serves as boundary conditions for problms involving muscle mechanics. Instead of writing for each time step a seperate ipinit file, one can use this command to define the dirichlet boundary conditions within the comfile.
# # EXAMPLE 52c : CHANGING DIRICHLET BC FOR QUASI-STATIC PROBLEMS # # This example demonstrates the use of the commands 'FEM change displacement_bc'. # For quasi-static problems it is usually necessary to solve a sequence of # problems just with a different set of boundary conditions. For example, in # problems involving inverse dynamics, the movement of the bone is typically # known from gait analysis (eg. during knee flexion or jaw movement). This movement # also typically prescribes the movement of the muscle attachment area, and hence # serves as boundary conditions for problms involving muscle mechanics. Instead # of writing for each time step a seperate ipinit file, one can use this command # to define the dirichlet boundary conditions within the comfile. # # If the example path is not set, default to current directory if (! defined $example) { $example = "./"; } # Drop off the trailing / in the example path $chopped = chop $example; if ($chopped ne "/") { $example .= $chopped; } # Set the output directory $output = "."; if (! -d $output) { mkdir $output,0700; } FEM define para ;r; $example/MyRunParameter FEM define coordinate 3,1 FEM define base ;r; $example/displacement # # Read in data for a unit cube # FEM define node ;r; $example/UnitCube FEM define elem ;r; $example/UnitCube FEM define fiel ;r; $example/UnitCube FEM define elem ;r; $example/UnitCube field FEM define fibr ;r; $example/UnitCube FEM define elem ;r; $example/UnitCube fibre # # Simply defines a mechanics problem # FEM define equa ;r; $example/displacement FEM define mate ;r; $example/displacement # # Writes/Exports reference configuration # FEM update solution from geometry FEM update field from solution FEM export elem; $output/DefUnitCube0 field element 1 as cube FEM export nodes; $output/DefUnitCube0 field as cube # # Defines the initial condition. If using the commands 'FEM change disp', one does # specifies in the ipinit file only the nodes which are considered to be the # dirichlet boundary conditions (degrees of freedom which are allowed to change). # It's value is in this context not of importance, if one uses first the command # 'FEM change disp init' and could therefor be any value. Typically, it is best # to choose them as 0. # FEM define init ;r; $example/displacement for ($i=1;$i<3;$i++) { # # This command initialises all dirichlet boundary conditions to 0. This is important, # because the dirichlet bc always define the change from its current state to the next # one. This should be done at the beginning of each time step since otherwise the # the changes to the dirichlet bc just get accumulated. # FEM change disp init 2,4,6,8 if ($i == 1) { # # By 'FEM change disp rotate', one can specify te rotation angle, the axis and the nodes # which should be changed. Eg. the example below, sets the boundary conditions in way # which is equivalent to rotating the right side of the reference cube by 22.5 degrees # around the x-axis. Note, only nodes which you specified as boundary nodes will be # effected from the changes. # # By 'FEM change disp trans', one can specify a translation (add a vector) to the # current/reference state. ' FEM change disp trans by 0.25,0,0' is the same as a # strech of 0.25 units in the x-direction. # FEM change disp rotate by 22.5 nodes 2,4,6,8 axis -1,0,0 FEM change disp trans by 0.25,0,0 nodes 2,4,6,8 } else { # # Instead of using explicit angles, one also can specify a 4x3 transformation matrix. The # matrix is defined in the following way: # - - # | r_11 r_12 r_13 t_x | # tmatrix = | r_21 r_22 r_23 t_y | # | r_31 r_32 r_33 t_z | # - - # = r_11,r_12,r_13,r_21,r_22,r_23,r_31,r_32,r_33,t_x,t_y,t_z # # Hence, the command below is responsible for rotating the current state by -22.5 degrees # around the x-axis and moving it -0.25 units along the x-axis. The result is, the # rotation and translation from ($i==1) is reversed and we end up with a unit cube. # FEM change disp tmatrix nodes 2,4,6,8 matrix 1,0,0,-0.25,0,0.92387953251129,-0.38268343236509,0,0,0.38268343236509,0.92387953251129,0 } # # Define the solver parameters # FEM define solv ;r; $example/displacement FEM solve iter 20 # # Write/Export the current state for visualisation # FEM update field from solution FEM export nodes;$output/DefUnitCube${i} field as cube } # # The results can be visualised by the command View_Result.com # The time slider allows one to look at the different load steps. #
Name Modified Size
example_52c.com 23-Aug-2006 4.6k MyRunParameter.ippara 23-Aug-2006 6.0k UnitCube.ipelem 23-Aug-2006 666 UnitCube.ipelfb 23-Aug-2006 292 UnitCube.ipelfd 23-Aug-2006 434 UnitCube.ipfibr 23-Aug-2006 1.1k UnitCube.ipfiel 23-Aug-2006 13k UnitCube.ipnode 23-Aug-2006 12k View_Results.com 23-Aug-2006 1.6k displacement.ipbase 23-Aug-2006 12k displacement.ipequa 23-Aug-2006 2.0k displacement.ipinit 23-Aug-2006 49k displacement.ipmate 23-Aug-2006 2.3k displacement.ipsolv 16-Aug-2010 2.4k displacement.ipsolv.old 13-Apr-2007 2.3k
Name Modified Size
examples_5_52_52c.tar.gz 17-Aug-2010 16k
Status | Tested | Real time (s) | |
i686-linux | |||
cm | Success | Sun Mar 6 00:03:37 2016 | 3 |
cm-debug | Success | Sat Mar 5 00:27:20 2016 | 17 |
mips-irix | |||
cm | Success | Sun Aug 19 01:51:04 2007 | 20 |
cm-debug | Success | Wed Aug 15 02:34:16 2007 | 143 |
cm-debug-clear-malloc | Failure | Mon Aug 20 06:14:16 2007 | 138 |
last break | Sat Aug 26 01:21:00 2006 | 346 | |
cm-debug-clear-malloc7 | Failure | Tue Aug 21 02:39:00 2007 | 12 |
last break | Mon Aug 28 01:39:00 2006 | 42 | |
cm64 | Success | Sun Aug 19 01:51:42 2007 | 20 |
cm64-debug | Success | Tue Aug 21 02:38:46 2007 | 161 |
rs6000-aix | |||
cm | Success | Wed Mar 4 01:09:36 2009 | 4 |
cm-debug | Success | Mon Mar 2 01:22:19 2009 | 47 |
cm64 | Success | Wed Mar 4 01:09:36 2009 | 3 |
cm64-debug | Success | Tue Mar 3 01:23:35 2009 | 45 |
x86_64-linux | |||
cm | Success | Sun Mar 6 00:01:04 2016 | 1 |
cm-debug | Failure | Sun Mar 6 00:02:14 2016 | 7 |
last break | Mon Dec 7 00:02:00 2015 | 7 | |
last success | Sun Dec 6 00:03:00 2015 | 9 |
mips-irix | |||
SIGABRT | cm-debug-clear-malloc7: | exit due to SIGABRT signal. |
i686-linux | |||
Success | cm: | cmiss_test.log.retain. | |
Success | cm-debug: | cmiss_test.log.retain. | |
mips-irix | |||
Success | cm: | cmiss_test.log.retain. | |
Success | cm-debug: | cmiss_test.log.retain. | |
Success | cm-debug-clear-malloc: | cmiss_test.log.retain. | |
Success | cm-debug-clear-malloc7: | cmiss_test.log.retain. | |
Success | cm64: | cmiss_test.log.retain. | |
Success | cm64-debug: | cmiss_test.log.retain. | |
rs6000-aix | |||
Success | cm: | cmiss_test.log.retain. | |
Success | cm-debug: | cmiss_test.log.retain. | |
Success | cm64: | cmiss_test.log.retain. | |
Success | cm64-debug: | cmiss_test.log.retain. | |
x86_64-linux | |||
Success | cm: | cmiss_test.log.retain. | |
Success | cm-debug: | cmiss_test.log.retain. |
i686-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
mips-irix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug-clear-malloc: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug-clear-malloc7: | ndiff test: no significant differences with generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
rs6000-aix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
x86_64-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. |
i686-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
mips-irix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Failure | cm-debug-clear-malloc: | ndiff test: significant differences with generic answer. | |
Failure | cm-debug-clear-malloc7: | ndiff test: significant differences with generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
rs6000-aix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
x86_64-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Failure | cm-debug: | ndiff test: significant differences with generic answer. |
i686-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
mips-irix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug-clear-malloc: | ndiff test: no significant differences with generic answer. | |
Missing | cm-debug-clear-malloc7: | output file not generated for ndiff; generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
rs6000-aix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
x86_64-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. |
i686-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
mips-irix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug-clear-malloc: | ndiff test: no significant differences with generic answer. | |
Missing | cm-debug-clear-malloc7: | output file not generated for ndiff; generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
rs6000-aix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
x86_64-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. |
Html last generated: Sun Mar 6 05:50:23 2016
Input last modified: Mon Aug 16 11:19:14 2010