Changeset 17289


Ignore:
Timestamp:
02/16/14 21:16:52 (11 years ago)
Author:
seroussi
Message:

NEW: new analytical force for 3d case

Location:
issm/trunk-jpl/src/c
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r17288 r17289  
    66#include "../solutionsequences/solutionsequences.h"
    77
    8 //#define FSANALYTICAL 3
     8//#define FSANALYTICAL 4
    99
    1010/*Model processing*/
     
    29032903                        forcex=fx3(x_coord,y_coord);
    29042904                        forcey=fy3(x_coord,y_coord);
     2905                #elif FSANALYTICAL == 4
     2906                        forcex=fx4(x_coord,y_coord,z_coord);
     2907                        forcey=fy4(x_coord,y_coord,z_coord);
     2908                        forcez=fz4(x_coord,y_coord,z_coord);
    29052909                #else
    29062910                        _error_("FS analytical not implemented yet");
  • issm/trunk-jpl/src/c/shared/FSanalyticals/FSanalytical3.cpp

    r17288 r17289  
    2323        return functiony;
    2424}
     25IssmDouble fx4(IssmDouble x,IssmDouble y,IssmDouble z){   
     26        IssmDouble functionx;
     27
     28        functionx = 4*pow(x, 2)*y*z*pow(x - 1, 2)*(z - 1) + 4*pow(x, 2)*y*z*(y - 1)*(2*y - 1)*(z - 1) + 2*pow(x, 2)*y*pow(x - 1, 2)*(y - 1)*(2*y - 1) + 4*pow(x, 2)*z*pow(x - 1, 2)*(y - 1)*(z - 1) + 2*pow(x, 2)*z*pow(x - 1, 2)*(2*y - 1)*(z - 1) - 4*x*pow(y, 2)*z*(x - 1)*(y - 1)*(z - 1) - 2*x*pow(y, 2)*z*(2*x - 1)*(y - 1)*(z - 1) - 4*x*y*z*(x - 1)*pow(y - 1, 2)*(z - 1) + 16*x*y*z*(x - 1)*(y - 1)*(2*y - 1)*(z - 1) - 2*x*y*z*(2*x - 1)*pow(y - 1, 2)*(z - 1) - 2*pow(y, 2)*z*(x - 1)*(2*x - 1)*(y - 1)*(z - 1) + 4*y*z*pow(x - 1, 2)*(y - 1)*(2*y - 1)*(z - 1) - 2*y*z*(x - 1)*(2*x - 1)*pow(y - 1, 2)*(z - 1) + y - 1.0L/2.0L;
     29
     30        return functionx;
     31}
     32IssmDouble fy4(IssmDouble x,IssmDouble y,IssmDouble z){   
     33        IssmDouble functiony;
     34
     35        functiony = 4*pow(x, 2)*y*z*(x - 1)*(y - 1)*(z - 1) + 2*pow(x, 2)*y*z*(x - 1)*(2*y - 1)*(z - 1) + 2*pow(x, 2)*z*(x - 1)*(y - 1)*(2*y - 1)*(z - 1) - 4*x*pow(y, 2)*z*(x - 1)*(2*x - 1)*(z - 1) - 4*x*pow(y, 2)*z*pow(y - 1, 2)*(z - 1) - 2*x*pow(y, 2)*(x - 1)*(2*x - 1)*pow(y - 1, 2) + 4*x*y*z*pow(x - 1, 2)*(y - 1)*(z - 1) + 2*x*y*z*pow(x - 1, 2)*(2*y - 1)*(z - 1) - 16*x*y*z*(x - 1)*(2*x - 1)*(y - 1)*(z - 1) + 2*x*z*pow(x - 1, 2)*(y - 1)*(2*y - 1)*(z - 1) - 4*x*z*(x - 1)*(2*x - 1)*pow(y - 1, 2)*(z - 1) + x - 4*pow(y, 2)*z*(x - 1)*pow(y - 1, 2)*(z - 1) - 2*pow(y, 2)*z*(2*x - 1)*pow(y - 1, 2)*(z - 1) - 1.0L/2.0L;
     36
     37        return functiony;
     38}
     39IssmDouble fz4(IssmDouble x,IssmDouble y,IssmDouble z){   
     40        IssmDouble functionz;
     41
     42        functionz = 2*pow(x, 2)*y*z*(x - 1)*(y - 1)*(2*y - 1) + 2*pow(x, 2)*y*(x - 1)*(y - 1)*(2*y - 1)*(z - 1) - 2*x*pow(y, 2)*z*(x - 1)*(2*x - 1)*(y - 1) - 2*x*pow(y, 2)*(x - 1)*(2*x - 1)*(y - 1)*(z - 1) + 2*x*y*z*pow(x - 1, 2)*(y - 1)*(2*y - 1) - 2*x*y*z*(x - 1)*(2*x - 1)*pow(y - 1, 2) + 2*x*y*pow(x - 1, 2)*(y - 1)*(2*y - 1)*(z - 1) - 2*x*y*(x - 1)*(2*x - 1)*pow(y - 1, 2)*(z - 1);
     43
     44        return functionz;
     45}
  • issm/trunk-jpl/src/c/shared/FSanalyticals/fsanalyticals.h

    r17285 r17289  
    1616IssmDouble fx3(IssmDouble x_coord, IssmDouble y_coord);
    1717IssmDouble fy3(IssmDouble x_coord, IssmDouble y_coord);
     18IssmDouble fx4(IssmDouble x_coord, IssmDouble y_coord, IssmDouble z_coord);
     19IssmDouble fy4(IssmDouble x_coord, IssmDouble y_coord, IssmDouble z_coord);
     20IssmDouble fz4(IssmDouble x_coord, IssmDouble y_coord, IssmDouble z_coord);
    1821
    1922#endif //ifndef _SHARED_ANALYTICALS_H_
Note: See TracChangeset for help on using the changeset viewer.