Changeset 32347 for trunk/psModules/src/objects/models/pmModel_QGAUSS.c
- Timestamp:
- Sep 6, 2011, 1:02:53 PM (15 years ago)
- Location:
- trunk/psModules/src/objects
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
models/pmModel_QGAUSS.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects
- Property svn:ignore
-
old new 5 5 *.la 6 6 *.lo 7 pmSourceIO_CMF_PS1_V1.c 8 pmSourceIO_CMF_PS1_V2.c 9 pmSourceIO_CMF_PS1_V3.c
-
- Property svn:ignore
-
trunk/psModules/src/objects/models/pmModel_QGAUSS.c
r31670 r32347 240 240 } 241 241 242 // integrate the model to get the full flux 242 243 psF64 PM_MODEL_FLUX (const psVector *params) 243 244 { … … 251 252 shape.sxy = PAR[PM_PAR_SXY]; 252 253 253 // Area is equivalent to 2 pi sigma^2254 254 psEllipseAxes axes = psEllipseShapeToAxes (shape, 20.0); 255 psF64 Area = 2.0 * M_PI * axes.major * axes.minor;256 257 // the area needs to be multiplied by the integral of f(z)255 float AspectRatio = axes.minor / axes.major; 256 257 // flux = 2 \pi \int f(r) r dr 258 258 norm = 0.0; 259 259 260 # define DZ 0.25 261 262 float f0 = 1.0; 260 # define DR 0.25 261 262 // f = f(r) * r 263 float f0 = 0.0; 263 264 float f1, f2; 264 for (z = DZ; z < 150; z += DZ) { 265 f1 = 1.0 / (1 + PAR[PM_PAR_7]*z + pow(z, ALPHA)); 266 z += DZ; 267 f2 = 1.0 / (1 + PAR[PM_PAR_7]*z + pow(z, ALPHA)); 265 for (float r = DR; r < 150; r += DR) { 266 z = 0.5 * PS_SQR(r / axes.major); 267 f1 = r / (1 + PAR[PM_PAR_7]*z + pow(z, ALPHA)); 268 r += DR; 269 z = 0.5 * PS_SQR(r / axes.major); 270 f2 = r / (1 + PAR[PM_PAR_7]*z + pow(z, ALPHA)); 268 271 norm += f0 + 4*f1 + f2; 269 272 f0 = f2; 270 273 } 271 norm *= D Z/ 3.0;272 273 psF64 Flux = PAR[PM_PAR_I0] * Area * norm;274 norm *= DR / 3.0; 275 276 psF64 Flux = PAR[PM_PAR_I0] * norm * 2.0 * M_PI * AspectRatio; 274 277 275 278 return(Flux);
Note:
See TracChangeset
for help on using the changeset viewer.
