Skip to content

Commit 11da827

Browse files
victorsacekVictor Sacek
andauthored
Correction in the exported value of melting rate in the dPhi files (#163)
Co-authored-by: Victor Sacek <victorsacek@Victors-MacBook-Pro-3.local>
1 parent 0e9db75 commit 11da827

2 files changed

Lines changed: 19 additions & 3 deletions

File tree

src/DMSwarm_move.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ PetscErrorCode moveSwarm(int dimensions, PetscReal dt)
421421
float dphi = (tp-Ts)/(L + facX);
422422
if (dphi<0.0) dphi=0.0;
423423

424-
dPhi_array[p]=dphi;
424+
dPhi_array[p]+=dphi;
425425
Phi_array[p]+=dphi;
426426

427427
X_array[p] = 1.0/(1.0-Phi_array[p]);
@@ -650,7 +650,7 @@ PetscErrorCode moveSwarm(int dimensions, PetscReal dt)
650650
float dphi = (tp-Ts)/(L + facX);
651651
if (dphi<0.0) dphi=0.0;
652652

653-
dPhi_array[p]=dphi;
653+
dPhi_array[p]+=dphi;
654654
Phi_array[p]+=dphi;
655655

656656
X_array[p] = 1.0/(1.0-Phi_array[p]);

src/DMT.cpp

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <petscksp.h>
22
#include <petscdmda.h>
33

4+
#include <petscdmswarm.h>
45
#include <petsctime.h>
56

67
PetscErrorCode montaKeThermal_general_2d(PetscReal *Ke, PetscReal *Me, PetscReal *Fe);
@@ -38,6 +39,8 @@ extern long GaussQuad;
3839

3940
extern long T_NE;
4041

42+
extern DM dms;
43+
4144
extern PetscReal *TKe, *TCe, *TFe, *TCe_fut, *TMe, *Ttotal, *Ttotal_b;
4245

4346
extern PetscReal *T_vec_aux_ele;
@@ -556,7 +559,7 @@ PetscErrorCode write_pressure(int cont, PetscInt binary_out)
556559

557560
PetscErrorCode write_geoq_(int cont, PetscInt binary_out)
558561
{
559-
562+
PetscErrorCode ierr=0;
560563
char variable_name[100];
561564

562565
PetscFunctionBeginUser;
@@ -582,6 +585,11 @@ PetscErrorCode write_geoq_(int cont, PetscInt binary_out)
582585
}
583586

584587
if (magmatism_flag==PETSC_TRUE){
588+
589+
PetscInt nlocal,bs,p;
590+
591+
ierr = DMSwarmGetLocalSize(dms,&nlocal);CHKERRQ(ierr);
592+
585593
sprintf(variable_name,"X_depletion");
586594
write_all_(cont,X_depletion,variable_name,binary_out);
587595

@@ -590,6 +598,14 @@ PetscErrorCode write_geoq_(int cont, PetscInt binary_out)
590598

591599
sprintf(variable_name,"dPhi");
592600
write_all_(cont,dPhi,variable_name,binary_out);
601+
602+
PetscReal *dPhi_array;
603+
604+
ierr = DMSwarmGetField(dms,"dPhi",&bs,NULL,(void**)&dPhi_array);CHKERRQ(ierr);
605+
for (p=0; p<nlocal; p++) {
606+
dPhi_array[p] = 0.0;
607+
}
608+
ierr = DMSwarmRestoreField(dms,"dPhi",&bs,NULL,(void**)&dPhi_array);CHKERRQ(ierr);
593609
}
594610

595611
PetscFunctionReturn(0);

0 commit comments

Comments
 (0)