[cig-commits] [commit] rajesh-petsc, rajesh-petsc-schur: completed the implementation of p_to_nodes_petsc (53fbc9c)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Wed Nov 5 19:02:25 PST 2014
Repository : https://github.com/geodynamics/citcoms
On branches: rajesh-petsc,rajesh-petsc-schur
Link : https://github.com/geodynamics/citcoms/compare/464e1b32299b15819f93efd98d969cddb84dfe51...f97ae655a50bdbd6dac1923a3471ee4dae178fbd
>---------------------------------------------------------------
commit 53fbc9c11a28b3f5d6ea6ae15f957d6fdcdd01e3
Author: Rajesh Kommu <rajesh.kommu at gmail.com>
Date: Wed Aug 20 12:29:28 2014 -0700
completed the implementation of p_to_nodes_petsc
>---------------------------------------------------------------
53fbc9c11a28b3f5d6ea6ae15f957d6fdcdd01e3
lib/Nodal_mesh.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/lib/Nodal_mesh.c b/lib/Nodal_mesh.c
index 7ad63c7..e168d0b 100644
--- a/lib/Nodal_mesh.c
+++ b/lib/Nodal_mesh.c
@@ -214,7 +214,33 @@ void velo_from_element_d(E,VV,m,el,sphere_key)
PetscErrorCode p_to_nodes_petsc(struct All_variables *E,
Vec PVec, Vec PNVec, int lev )
{
+ PetscErrorCode ierr;
+ PetscScalar *P[2], *PN[2]; // 2 instead of NCS(=14) to save space
+ int e, element,node, j;
+
+ ierr = VecGetArray(PVec, &P[1]); CHKERRQ(ierr); --P[1];
+ ierr = VecGetArray(PNVec, &PN[1]); CHKERRQ(ierr); --PN[1];
+
+ for(node = 1; node <= E->lmesh.NNO[lev]; ++node )
+ PN[1][node] = 0.0;
+
+ for(element = 1; element <= E->lmesh.NEL[lev]; element++)
+ for(j = 1; j <= enodes[E->mesh.nsd]; j++)
+ {
+ node = E->IEN[lev][1][element].node[j];
+ PN[1][node] += P[1][element] * E->TWW[lev][1][element].node[j];
+ }
+
+ (E->exchange_node_f)(E, PN, lev);
+
+ for(node = 1; node <= E->lmesh.NNO[lev]; node++)
+ PN[1][node] *= E->MASS[lev][1][node];
+
+ ++P[1]; ierr = VecRestoreArray(PVec, &P[1]); CHKERRQ(ierr);
+ ++PN[1]; ierr = VecRestoreArray(PNVec, &PN[1]); CHKERRQ(ierr);
+
PetscFunctionReturn(0);
+
}
void p_to_nodes(E,P,PN,lev)
More information about the CIG-COMMITS
mailing list