GaussTetra

PURPOSE ^

GAUSSTETRA - get Gauss point for tetra elements

SYNOPSIS ^

function [num_gauss,first_gauss_vol_coord,second_gauss_vol_coord,third_gauss_vol_coord,fourth_gauss_vol_coord,gauss_weights]=GaussTetra(order)

DESCRIPTION ^

GAUSSTETRA - get Gauss point for tetra elements

   This routine computes gaussian points on a reference tetra, in terms of their volume coordinates. 
   The number of gaussian points returned depends on the order of integration ('order'). The order of 
   integration can be computed from the polynomial degree p that needs to be integrated. The formula is: 
   order = (p+1) /2 
   order=1, num_gauss=1. Can integrate polynomials of degree 0 to 1

   Usage:
      [num_gauss,first_gauss_vol_coord,second_gauss_vol_coord,third_gauss_vol_coord,fourth_gauss_vol_coord,gauss_weights]=GaussTetra(order)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [num_gauss,first_gauss_vol_coord,second_gauss_vol_coord,third_gauss_vol_coord,fourth_gauss_vol_coord,gauss_weights]=GaussTetra(order)
0002 %GAUSSTETRA - get Gauss point for tetra elements
0003 %
0004 %   This routine computes gaussian points on a reference tetra, in terms of their volume coordinates.
0005 %   The number of gaussian points returned depends on the order of integration ('order'). The order of
0006 %   integration can be computed from the polynomial degree p that needs to be integrated. The formula is:
0007 %   order = (p+1) /2
0008 %   order=1, num_gauss=1. Can integrate polynomials of degree 0 to 1
0009 %
0010 %   Usage:
0011 %      [num_gauss,first_gauss_vol_coord,second_gauss_vol_coord,third_gauss_vol_coord,fourth_gauss_vol_coord,gauss_weights]=GaussTetra(order)
0012 
0013 if order==1,
0014     num_gauss=1;
0015     gauss_weights=2*sqrt(2)/3*1;
0016     first_gauss_vol_coord=0.250000000000000;
0017     second_gauss_vol_coord=0.250000000000000;
0018     third_gauss_vol_coord=0.250000000000000;
0019     fourth_gauss_vol_coord=0.250000000000000;
0020 
0021 elseif order==2,
0022     
0023     num_gauss=4;
0024     gauss_weights=2*sqrt(2)/3*[0.250000000000000, 0.250000000000000, 0.250000000000000, 0.250000000000000];
0025     first_gauss_vol_coord=[ 0.585410196624969, 0.138196601125011, 0.138196601125011, 0.138196601125011];
0026     second_gauss_vol_coord=[ 0.138196601125011, 0.585410196624969, 0.138196601125011, 0.138196601125011];
0027     third_gauss_vol_coord=[ 0.138196601125011, 0.138196601125011, 0.585410196624969, 0.138196601125011];
0028     fourth_gauss_vol_coord=[0.138196601125011, 0.138196601125011, 0.138196601125011, 0.585410196624969];
0029 
0030 elseif order==3,
0031     
0032     num_gauss=5;
0033     gauss_weights=2*sqrt(2)/3*[ -0.800000000000000, 0.450000000000000, 0.450000000000000, 0.450000000000000, 0.450000000000000];
0034     first_gauss_vol_coord=[ 0.250000000000000, 0.500000000000000, 0.166666666666667,0.166666666666667, 0.166666666666667];
0035     second_gauss_vol_coord=[ 0.250000000000000, 0.166666666666667, 0.500000000000000,0.166666666666667, 0.166666666666667];
0036     third_gauss_vol_coord=[ 0.250000000000000, 0.166666666666667, 0.166666666666667,0.500000000000000, 0.166666666666667];
0037     fourth_gauss_vol_coord=[0.250000000000000, 0.166666666666667, 0.166666666666667,0.166666666666667, 0.500000000000000];
0038 
0039 elseif order==4,
0040     
0041     num_gauss=11;
0042     gauss_weights=2*sqrt(2)/3*[-0.013155555555556, 0.007622222222222, 0.007622222222222,0.007622222222222, 0.007622222222222, 0.024888888888889, 0.024888888888889, 0.024888888888889, 0.024888888888889, 0.024888888888889, 0.024888888888889];
0043     first_gauss_vol_coord=[ 0.250000000000000, 0.785714285714286, 0.071428571428571,0.071428571428571, 0.071428571428571, 0.399403576166799,0.399403576166799, 0.399403576166799, 0.100596423833201, 0.100596423833201, 0.100596423833201];
0044     second_gauss_vol_coord=[0.250000000000000, 0.071428571428571, 0.785714285714286,0.071428571428571, 0.071428571428571, 0.399403576166799,0.100596423833201, 0.100596423833201, 0.399403576166799, 0.399403576166799, 0.100596423833201];
0045     third_gauss_vol_coord=[ 0.250000000000000, 0.071428571428571, 0.071428571428571,0.785714285714286, 0.071428571428571, 0.100596423833201,0.399403576166799, 0.100596423833201, 0.399403576166799, 0.100596423833201, 0.399403576166799];
0046     fourth_gauss_vol_coord=[0.250000000000000, 0.071428571428571, 0.071428571428571,0.071428571428571, 0.785714285714286, 0.100596423833201,0.100596423833201, 0.399403576166799, 0.100596423833201, 0.399403576166799, 0.399403576166799];
0047 
0048 
0049 elseif order==5,
0050     
0051     num_gauss=15;
0052     gauss_weights=2*sqrt(2)/3*[0.030283678097089, 0.006026785714286, 0.006026785714286,...
0053                  0.006026785714286, 0.006026785714286, 0.011645249086029,...
0054                  0.011645249086029, 0.011645249086029, 0.011645249086029,...
0055                  0.010949141561386, 0.010949141561386, 0.010949141561386,...
0056                  0.010949141561386, 0.010949141561386, 0.010949141561386];
0057     first_gauss_vol_coord=[ 0.250000000000000, 0.000000000000000, 0.333333333333333,...
0058                  0.333333333333333, 0.333333333333333, 0.727272727272727,...
0059                  0.090909090909091, 0.090909090909091, 0.090909090909091,...
0060                  0.066550153573664, 0.066550153573664, 0.066550153573664,...
0061                  0.433449846426336, 0.433449846426336, 0.433449846426336];
0062     second_gauss_vol_coord=[0.250000000000000, 0.333333333333333, 0.000000000000000,...
0063                  0.333333333333333, 0.333333333333333, 0.090909090909091,...
0064                  0.727272727272727, 0.090909090909091, 0.090909090909091,...
0065                  0.066550153573664, 0.433449846426336, 0.433449846426336,...
0066                  0.066550153573664, 0.066550153573664, 0.433449846426336];
0067     third_gauss_vol_coord=[0.250000000000000, 0.333333333333333, 0.333333333333333,...
0068                  0.000000000000000, 0.333333333333333, 0.090909090909091,...
0069                  0.090909090909091, 0.727272727272727, 0.090909090909091,...
0070                  0.433449846426336, 0.066550153573664, 0.433449846426336,...
0071                  0.066550153573664, 0.433449846426336, 0.066550153573664];
0072     fourth_gauss_vol_coord=[ 0.250000000000000, 0.333333333333333, 0.333333333333333,...
0073                  0.333333333333333, 0.000000000000000, 0.090909090909091,...
0074                  0.090909090909091, 0.090909090909091, 0.727272727272727,...
0075                  0.433449846426336, 0.433449846426336, 0.066550153573664,...
0076                  0.433449846426336, 0.066550153573664, 0.066550153573664];
0077 
0078 
0079 elseif order==6,
0080     
0081     num_gauss=24;
0082     gauss_weights=2*sqrt(2)/3*[ 0.006653791709695, 0.006653791709695, 0.006653791709695,...
0083                  0.006653791709695, 0.001679535175887, 0.001679535175887,...
0084                  0.001679535175887, 0.001679535175887, 0.009226196923942,...
0085                  0.009226196923942, 0.009226196923942, 0.009226196923942,...
0086                  0.008035714285714, 0.008035714285714, 0.008035714285714,...
0087                  0.008035714285714, 0.008035714285714, 0.008035714285714,...
0088                  0.008035714285714, 0.008035714285714, 0.008035714285714,...
0089                  0.008035714285714, 0.008035714285714, 0.008035714285714];
0090     first_gauss_vol_coord=[ 0.356191386222545, 0.214602871259152, 0.214602871259152,...
0091                  0.214602871259152, 0.877978124396166, 0.040673958534611,...
0092                  0.040673958534611, 0.040673958534611, 0.032986329573173,...
0093                  0.322337890142276, 0.322337890142276, 0.322337890142276,...
0094 
0095                  0.063661001875018, 0.063661001875018, 0.063661001875018,...
0096                  0.063661001875018, 0.063661001875018, 0.063661001875018,...
0097                  0.269672331458316, 0.603005664791649, 0.269672331458316,...
0098                  0.603005664791649, 0.269672331458316, 0.603005664791649];
0099     second_gauss_vol_coord=[0.214602871259152, 0.356191386222545, 0.214602871259152, ...
0100                  0.214602871259152, 0.040673958534611, 0.877978124396166, ...
0101                  0.040673958534611, 0.040673958534611, 0.322337890142276, ...
0102                  0.032986329573173, 0.322337890142276, 0.322337890142276,...
0103 
0104                  0.063661001875018, 0.063661001875018, 0.269672331458316, ...
0105                  0.603005664791649, 0.269672331458316, 0.603005664791649, ...
0106                  0.063661001875018, 0.063661001875018, 0.063661001875018, ...
0107                  0.063661001875018, 0.603005664791649, 0.269672331458316];
0108     third_gauss_vol_coord=[ 0.214602871259152, 0.214602871259152, 0.356191386222545, ...
0109                  0.214602871259152, 0.040673958534611, 0.040673958534611, ...
0110                  0.877978124396166, 0.040673958534611, 0.322337890142276, ...
0111                  0.322337890142276, 0.032986329573173, 0.322337890142276,...
0112 
0113                  0.269672331458316, 0.603005664791649, 0.063661001875018, ...
0114                  0.063661001875018, 0.603005664791649, 0.269672331458316,...
0115                  0.063661001875018, 0.063661001875018, 0.603005664791649,...
0116                  0.269672331458316, 0.063661001875018, 0.063661001875018];
0117     fourth_gauss_vol_coord=[0.214602871259152, 0.214602871259152, 0.214602871259152,...
0118                  0.356191386222545, 0.040673958534611, 0.040673958534611,...
0119                  0.040673958534611, 0.877978124396166, 0.322337890142276,...
0120                  0.322337890142276, 0.322337890142276, 0.032986329573173,...
0121 
0122                  0.603005664791649, 0.269672331458316, 0.603005664791649,...
0123                  0.269672331458316, 0.063661001875018, 0.063661001875018,...
0124                  0.603005664791649, 0.269672331458316, 0.063661001875018,...
0125                  0.063661001875018, 0.063661001875018, 0.063661001875018];
0126 else
0127     error('GaussTria error message: order not supported yet');
0128 end

Generated on Sun 29-Mar-2009 20:22:55 by m2html © 2003