Electrowetting on dielectric
/export/home/gkanscha/ANS/submissions/Salgado/include/Material.h
Go to the documentation of this file.
00001 #ifndef _MATERIAL_PARAMETERS_H_
00002 #define _MATERIAL_PARAMETERS_H_
00003 
00004 #include <cmath>
00005 #include <utility>
00006 
00010 enum TestCase{
00011   TEST_CASE_MOVE, 
00012   TEST_CASE_SPLIT, 
00013   TEST_CASE_MERGE 
00014 };
00015 
00025 struct material_function{
00026   public:
00033     material_function( const double _m1 = 1., const double _m2 = 1., const double _delta = 1. );
00039     material_function( const std::pair<double, double> &params, const double _delta );
00043     double deriv( const double x ) const;
00047     double max_deriv() const;
00051     double operator()( const double x ) const;
00055     double average( const double x, const double y ) const;
00056   private:
00057     const double avg, 
00058                  diff, 
00059                  delta; 
00060 
00063     double value ( const double x ) const;
00064 };
00065 
00077 struct GLPotential{
00078   public:
00082     GLPotential();
00086     double operator()( const double x ) const;
00087   private:
00091     const double max_second_deriv;
00092   public:
00097     const double A;
00098 };
00099 
00112 struct InterfaceEnergy{
00113   public:
00119     InterfaceEnergy( const double gamma, const double theta_s );
00123     double operator()( const double x ) const;
00124   private:
00125     const double coeff, 
00126                  max_second_deriv; 
00127   public:
00132     const double B;
00133 };
00134 
00155 struct Material_Parameters{
00156   public:
00157     Material_Parameters( const double epsilon1, const double epsilon2, const double epsilon3,
00158                          const double K1, const double K2, const double M1, const double M2,
00159                          const double rho1, const double rho2, const double beta1, const double beta2,
00160                          const double eta1, const double eta2, const double _lambda, const double _gamma,
00161                          const double theta_s, const double _delta, const double _alpha );
00162     Material_Parameters( std::pair<double, double> _epsilon, const double epsilon3,
00163                          std::pair<double, double> _K, 
00164                          std::pair<double, double> _M, std::pair<double, double> _rho,
00165                          std::pair<double, double> _beta, 
00166                          std::pair<double, double> _eta, const double _lambda, const double _gamma,
00167                          const double theta_s, const double _delta, const double _alpha );
00168     material_function epsilon, K, M, rho, beta, eta;
00169     const double lambda, gamma, delta, alpha, epsilon_plate;
00170     GLPotential W;
00171     InterfaceEnergy gamma_fs;
00172 };
00173 
00174 #endif //_MATERIAL_PARAMETERS_H_
00175