Example 128: Correcting conflicting scale factors of lines shared by several elements

This example uses the command "fem update line" which corrects conflicting scale factors for a line that is shared among two or more elements. Conflicting scale factors have occured when running problems such as face fitting with multiple versions of a node and perhaps also inconsistent Xi-directions. The error (conflicting scale factors) may be caused because during the fitting not all dof's are fitted and thus the new changed values that are used by one element (vesion x) may conflict with the old value still used by another element (version y). Fem update line searches all lines in the mesh and set conflicing scale factors to the highest value. As there is not included a procedure in this example that causes this conflict (e.g. face fitting), a file with conflicting scale factors is initially read in to cause this error to occur.

Note that the line between node 104 and 109 has inconsistent Xi directions for the elements 43 (xi3) and 44 (xi1). This causes Cmgui to draw two lines which do not overlap due to the difference in scale factors. The line between nodes 109 and 110 has similar Xi directions and Cmgui draws only one line. The difference in the scale factors of this line for element 44 and 47 does thus not show up unless it is explicitly told in the command file that it should draw one line for each element for example by creating an element group for each element and draw the elements seperately. The pictures underneath show only the top faces of the 3D elements (xi2 =1) which includes the lines affected by the conflicting scale factors before and after correcting the scale factors. So far the command is only implemented for 3D cubic hermite elements.

Created by Espen Remme November 2002.
 
 


The comfile run by this example is as follows:

#Example_128  Correcting conflicting scale factors 

$off=100;
$offi=000;
$offr=200;
$tot_itt=3;

fem def para;r;threeElem;example;   # Declares array dimensions   
fem def coord;r;threeElem;example;  # Defines the coordinate system
fem def nodes;r;initMesh;example;   # Reads in nodal information
fem def bases;r;threeElem;example;  # Defines tri-cubic Hermite basis functions
                                    # Scale factors calculated from arithmetic mean arc length
fem def element;r;initMesh;example; # Reads in element information

fem def bases;r;threeElem_readse;example; # Defines tri-cubic Hermite basis functions
                                          # Scale factors read in - Element based
fem define line;r;editedLines;example;    # Reads in scale factors

# Export geometry to view in Cmgui
fem export node;initialMesh as initialMesh offset $offi
fem export elem;initialMesh as initialMesh offset_node $offi offset_elem $offi

fem up line  # Sets conflicting scale factors to the same (largest) value

fem define line;w;resetLines  # Writes out new scale factors

# Export geometry to view in Cmgui
fem export node;finalMesh as finalMesh offset $offr
fem export elem;finalMesh as finalMesh offset_node $offr offset_elem $offr

fem q

Additional testing commands:

#Testing example 128

$off=100;
$offi=000;
$offr=200;
$tot_itt=3;

fem def para;r;threeElem;example;   # Declares array dimensions   
fem def coord;r;threeElem;example;  # Defines the coordinate system
fem def nodes;r;initMesh;example;   # Reads in nodal information
fem def bases;r;threeElem;example;  # Defines tri-cubic Hermite basis functions
                                    # Scale factors calculated from arithmetic mean arc length
fem def element;r;initMesh;example; # Reads in element information

fem def bases;r;threeElem_readse;example; # Defines tri-cubic Hermite basis functions
                                          # Scale factors read in - Element based
fem define line;r;editedLines;example;    # Reads in scale factors

# Export geometry to view in Cmgui
fem export node;initialMesh as initialMesh offset $offi
fem export elem;initialMesh as initialMesh offset_node $offi offset_elem $offi

fem up line  # Sets conflicting scale factors to the same (largest) value

fem define line;w;resetLines  # Writes out new scale factors

# Export geometry to view in Cmgui
fem export node;finalMesh as finalMesh offset $offr
fem export elem;finalMesh as finalMesh offset_node $offr offset_elem $offr

fem q

Files used by this example are:

Name                     Modified     Size

example_128.com 21-Nov-2002 1.2k draw.com 21-Nov-2002 663 editedLines.ipline 21-Nov-2002 15k finalMesh.exelem 21-Nov-2002 18k finalMesh.exnode 21-Nov-2002 18k initMesh.ipelem 21-Nov-2002 3.3k initMesh.ipnode 21-Nov-2002 46k initialMesh.exelem 21-Nov-2002 18k initialMesh.exnode 21-Nov-2002 18k resetLines.ipline 21-Nov-2002 15k test_output.com 21-Nov-2002 1.2k threeElem.ipbase 21-Nov-2002 4.4k threeElem.ipcoor 21-Nov-2002 570 threeElem.ippara 21-Nov-2002 5.9k threeElem_readse.ipbase 21-Nov-2002 4.4k

Download the entire example:

Name                      Modified     Size

examples_1_12_128.tar.gz 18-Aug-2006 45k

Testing status by version:

StatusTestedReal time (s)
i686-linux
cmSuccessSun Mar 6 00:01:30 20160
cm-debugSuccessSat Mar 5 00:01:48 20160
mips-irix
cmSuccessSun Aug 19 01:25:13 20073
cm-debugSuccessWed Aug 15 01:21:34 20076
cm-debug-clear-mallocSuccessSat Aug 18 01:32:19 200715
cm-debug-clear-malloc7SuccessMon Aug 20 01:28:56 200714
cm64SuccessSun Aug 19 01:28:18 20073
cm64-debugSuccessTue Aug 21 01:21:12 20075
cm64-debug-clear-mallocSuccessThu Apr 1 10:09:56 20044
rs6000-aix
cmSuccessWed Mar 4 01:07:55 20090
cm-debugSuccessMon Mar 2 01:06:14 20091
cm64SuccessWed Mar 4 01:06:44 20091
cm64-debugSuccessTue Mar 3 01:11:50 20091
x86_64-linux
cmSuccessSun Mar 6 00:01:00 20160
cm-debugSuccessSat Mar 5 00:01:11 20161

Testing status by file:


Html last generated: Sun Mar 6 05:50:05 2016

Input last modified: Tue Mar 2 19:21:18 2004


CMISS Help / Examples / 1 / 12 / 128