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

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

CHG: initial conversion from mpi to issmmpi layer. Starting validation of the new code changes

File size: 894 bytes
RevLine 
[5286]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
[15130]10void ThicknessAbsMisfitx( IssmDouble* pJ, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials,Parameters* parameters, int weight_index){
[5286]11
12 /*Intermediary*/
13 int i;
14 Element* element=NULL;
15
16 /*output: */
[13073]17 IssmDouble J=0;
18 IssmDouble J_sum;
[5286]19
20 /*Compute Misfit: */
21 for (i=0;i<elements->Size();i++){
[13798]22 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
[15130]23 J+=element->ThicknessAbsMisfit(weight_index);
[5286]24 }
25
26 /*Sum all J from all cpus of the cluster:*/
[15838]27 ISSM_MPI_Reduce (&J,&J_sum,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm() );
28 ISSM_MPI_Bcast(&J_sum,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
[5286]29 J=J_sum;
30
31 /*Assign output pointers: */
32 *pJ=J;
33}
Note: See TracBrowser for help on using the repository browser.