ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/applications/hydrodynamics/ApproximationModel.cpp
(Generate patch)

Comparing trunk/OOPSE-4/src/applications/hydrodynamics/ApproximationModel.cpp (file contents):
Revision 2634 by tim, Fri Mar 17 23:20:35 2006 UTC vs.
Revision 2749 by tim, Wed May 10 01:44:48 2006 UTC

# Line 48 | Line 48 | namespace oopse {
48   #include "applications/hydrodynamics/Ellipsoid.hpp"
49   #include "applications/hydrodynamics/CompositeShape.hpp"
50   #include "math/LU.hpp"
51 + #include "utils/simError.h"
52   namespace oopse {
53   /**
54   * Reference:
# Line 57 | Line 58 | ApproximationModel::ApproximationModel(StuntDouble* sd
58   */
59  
60   ApproximationModel::ApproximationModel(StuntDouble* sd, SimInfo* info): HydrodynamicsModel(sd, info){
60 /*
61    DynamicProperty::const_iterator iter;
61  
63    iter = extraParams.find("Viscosity");
64    if (iter != extraParams.end()) {
65        boost::any param = iter->second;
66        viscosity = boost::any_cast<double>(param);
67    }else {
68        std::cout << "ApproximationModel Error\n" ;
69    }
70
71    iter = extraParams.find("Temperature");
72    if (iter != extraParams.end()) {
73        boost::any param = iter->second;
74        temperature = boost::any_cast<double>(param);
75    }else {
76        std::cout << "ApproximationModel Error\n" ;
77    }    
78 */
62   }
63  
64   bool ApproximationModel::calcHydroProps(Spheric* spheric, double viscosity, double temperature) {
# Line 89 | Line 72 | bool ApproximationModel::calcHydroProps(CompositeShape
72      return internalCalcHydroProps(static_cast<Shape*>(compositeShape), viscosity, temperature);
73   }
74  
75 <
93 < bool ApproximationModel::internalCalcHydroProps(Shape* shape, double viscosity, double temperature) {
75 > void ApproximationModel::init() {
76      if (!createBeads(beads_)) {
77 <        std::cout << "can not create beads" << std::endl;
78 <        return false;
77 >      sprintf(painCave.errMsg, "ApproximationModel::init() : Can not create beads\n");
78 >      painCave.isFatal = 1;
79 >      simError();        
80      }
81  
82 + }
83 +
84 + bool ApproximationModel::internalCalcHydroProps(Shape* shape, double viscosity, double temperature) {
85 +
86      bool ret = true;
87      HydroProps cr;
88      HydroProps cd;
89      calcHydroPropsAtCR(beads_, viscosity, temperature, cr);
90 <    calcHydroPropsAtCD(beads_, viscosity, temperature, cd);
90 >    //calcHydroPropsAtCD(beads_, viscosity, temperature, cd);
91      setCR(cr);
92      setCD(cd);
93      
# Line 124 | Line 111 | bool ApproximationModel::calcHydroPropsAtCR(std::vecto
111                  Vector3d Rij = beads[i].pos - beads[j].pos;
112                  double rij = Rij.length();
113                  double rij2 = rij * rij;
114 <                double sumSigma2OverRij2 = ((beads[i].radius*beads[i].radius) + (beads[i].radius*beads[i].radius)) / rij2;                
114 >                double sumSigma2OverRij2 = ((beads[i].radius*beads[i].radius) + (beads[j].radius*beads[j].radius)) / rij2;                
115                  Mat3x3d tmpMat;
116                  tmpMat = outProduct(Rij, Rij) / rij2;
117                  double constant = 8.0 * NumericConstant::PI * viscosity * rij;
# Line 141 | Line 128 | bool ApproximationModel::calcHydroPropsAtCR(std::vecto
128  
129      //invert B Matrix
130      invertMatrix(B, C);
131 <
131 >    
132      //prepare U Matrix relative to arbitrary origin O(0.0, 0.0, 0.0)
133      std::vector<Mat3x3d> U;
134      for (int i = 0; i < nbeads; ++i) {
# Line 169 | Line 156 | bool ApproximationModel::calcHydroPropsAtCR(std::vecto
156              
157              Xiott += Cij;
158              Xiotr += U[i] * Cij;
159 <            Xiorr += -U[i] * Cij * U[j] + (6 * viscosity * volume) * I;            
159 >            //Xiorr += -U[i] * Cij * U[j] + (6 * viscosity * volume) * I;    
160 >            Xiorr += -U[i] * Cij * U[j];
161          }
162      }
163  
# Line 287 | Line 275 | bool ApproximationModel::calcHydroPropsAtCD(std::vecto
275                  Vector3d Rij = beads[i].pos - beads[j].pos;
276                  double rij = Rij.length();
277                  double rij2 = rij * rij;
278 <                double sumSigma2OverRij2 = ((beads[i].radius*beads[i].radius) + (beads[i].radius*beads[i].radius)) / rij2;                
278 >                double sumSigma2OverRij2 = ((beads[i].radius*beads[i].radius) + (beads[j].radius*beads[j].radius)) / rij2;                
279                  Mat3x3d tmpMat;
280                  tmpMat = outProduct(Rij, Rij) / rij2;
281                  double constant = 8.0 * NumericConstant::PI * viscosity * rij;
# Line 332 | Line 320 | bool ApproximationModel::calcHydroPropsAtCD(std::vecto
320              
321              Xitt += Cij;
322              Xitr += U[i] * Cij;
323 <            Xirr += -U[i] * Cij * U[j] + (6 * viscosity * volume) * I;            
323 >            //Xirr += -U[i] * Cij * U[j] + (6 * viscosity * volume) * I;            
324 >            Xirr += -U[i] * Cij * U[j];
325          }
326      }
327  
# Line 460 | Line 449 | bool ApproximationModel::calcHydroPropsAtCD(std::vecto
449        
450   }
451  
452 < /*
452 >
453   void ApproximationModel::writeBeads(std::ostream& os) {
454      std::vector<BeadParam>::iterator iter;
455      os << beads_.size() << std::endl;
# Line 470 | Line 459 | void ApproximationModel::writeBeads(std::ostream& os)
459      }
460  
461   }
473 */
462  
463  
464 +
465   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines