Electrowetting on dielectric
|
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> ¶ms, 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