source: issm/trunk/src/c/modules/DragCoefficientAbsGradientx/DragCoefficientAbsGradientx.cpp@ 15396

Last change on this file since 15396 was 15396, checked in by Mathieu Morlighem, 12 years ago

merged trunk-jpl and trunk for revision 15394

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