00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef EXINTERNALFORCEFUNCTOR_H
00014 #define EXINTERNALFORCEFUNCTOR_H
00015 #include "shells/fem/definitions.h"
00016
00017 #include "ImperfectThickness.h"
00018
00019 #include <functional>
00020
00021
00022 namespace shells {
00023 class ExInternalForce;
00024 struct SElementS;
00025 struct SVertexS;
00026 }
00027
00028
00029 class shells::ExInternalForce :
00030 public std::unary_function<shells::SElementS *, void > {
00031
00032 public:
00033 ExInternalForce(const double& thick, const double& dtime)
00034 :_impfThickness(), _thick(thick), _dtime(dtime) {}
00035 ~ExInternalForce(){}
00036
00037 void operator()(shells::SElementS * const element);
00038
00039 private:
00040 static double _xref[3][MAXVAL];
00041 static double _xcur[3][MAXVAL];
00042 static double _intelem[3][MAXVAL];
00043
00044 ImperfectThickness _impfThickness;
00045
00046 const double& _thick;
00047 const double& _dtime;
00048 };
00049
00050 #endif