00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef MASSFUNCTOR_H
00014 #define MASSFUNCTOR_H
00015 #include "../fem/definitions.h"
00016
00017 #include "SVertexFunctors.h"
00018
00019 #include <functional>
00020
00021
00022 namespace shells {
00023 class InitializeMassFunctor;
00024 class ComputeMassFunctor;
00025 struct SElementS;
00026 struct SVertexS;
00027 }
00028
00029
00030
00031 class shells::InitializeMassFunctor :
00032 public std::unary_function<shells::SVertexS *, void > {
00033 public:
00034 InitializeMassFunctor();
00035 void operator()(shells::SVertexS * const vtx) const;
00036
00037 private:
00038 double _mass;
00039 };
00040
00041
00042
00043 class shells::ComputeMassFunctor :
00044 public std::unary_function<shells::SElementS *, void > {
00045 public:
00046 ComputeMassFunctor(const double& thick):_thick(thick){}
00047 void operator()(shells::SElementS * const element);
00048 ~ComputeMassFunctor(){}
00049
00050 private:
00051 double _xref[SVertexCoordinate::numVar][MAXVAL];
00052 double _masselem[MAXVAL];
00053
00054 double _thick;
00055 };
00056
00057 #endif