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

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

CHG: got rid of the include/include.h headere file, finally :)

File size: 980 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 "../../toolkits/toolkits.h"
9#include "../../EnumDefinitions/EnumDefinitions.h"
10
11void ThicknessAbsMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters,bool process_units, int weight_index){
12
13 /*Intermediary*/
14 int i;
15 Element* element=NULL;
16
17 /*output: */
18 IssmDouble J=0;
19 IssmDouble J_sum;
20
21 /*Compute Misfit: */
22 for (i=0;i<elements->Size();i++){
23 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
24 J+=element->ThicknessAbsMisfit(process_units,weight_index);
25 }
26
27 /*Sum all J from all cpus of the cluster:*/
28 #ifdef _HAVE_MPI_
29 MPI_Reduce (&J,&J_sum,1,MPI_DOUBLE,MPI_SUM,0,IssmComm::GetComm() );
30 MPI_Bcast(&J_sum,1,MPI_DOUBLE,0,IssmComm::GetComm());
31 J=J_sum;
32 #endif
33
34 /*Assign output pointers: */
35 *pJ=J;
36}
Note: See TracBrowser for help on using the repository browser.