source: issm/trunk-jpl/src/c/modules/ThicknessAbsMisfitx/ThicknessAbsMisfitx.cpp@ 13073

Last change on this file since 13073 was 13073, checked in by Eric.Larour, 13 years ago

CHG: extended rest of the code (except for kriging code) to use IssmDouble
and IssmPDouble active and passive types, for use with AD type constructs (using
ADOLC or ADIC in the future).

File size: 991 bytes
Line 
1/*!\file ThicknessAbsMisfitx
2 * \brief: compute misfit between observations and model
3 */
4
5#include "./ThicknessAbsMisfitx.h"
6
7#include "../../shared/shared.h"
8#include "../../include/include.h"
9#include "../../toolkits/toolkits.h"
10#include "../../EnumDefinitions/EnumDefinitions.h"
11
12void ThicknessAbsMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units, int weight_index){
13
14 /*Intermediary*/
15 int i;
16 Element* element=NULL;
17
18 /*output: */
19 IssmDouble J=0;
20 IssmDouble J_sum;
21
22 /*Compute Misfit: */
23 for (i=0;i<elements->Size();i++){
24 element=(Element*)elements->GetObjectByOffset(i);
25 J+=element->ThicknessAbsMisfit(process_units,weight_index);
26 }
27
28 /*Sum all J from all cpus of the cluster:*/
29 #ifdef _HAVE_MPI_
30 MPI_Reduce (&J,&J_sum,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD );
31 MPI_Bcast(&J_sum,1,MPI_DOUBLE,0,MPI_COMM_WORLD);
32 J=J_sum;
33 #endif
34
35 /*Assign output pointers: */
36 *pJ=J;
37}
Note: See TracBrowser for help on using the repository browser.