Index: /issm/trunk/src/c/DataSet/DataSet.cpp
===================================================================
--- /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 3469)
+++ /issm/trunk/src/c/DataSet/DataSet.cpp	(revision 3470)
@@ -967,4 +967,7 @@
 	
 	}
+
+	/*Check that dofcount is positive*/
+	ISSMASSERT(dofcount>0);
 
 	/*Ok, now every object has distributed dofs, but locally, and with a dof count starting from 
Index: /issm/trunk/src/c/objects/Beam.cpp
===================================================================
--- /issm/trunk/src/c/objects/Beam.cpp	(revision 3469)
+++ /issm/trunk/src/c/objects/Beam.cpp	(revision 3470)
@@ -19,10 +19,10 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION Beam constructor {{{1*/
+/*FUNCTION Beam::Beam(){{{1*/
 Beam::Beam(){
 	return;
 }
 /*}}}*/
-/*FUNCTION Beam constructor {{{1*/
+/*FUNCTION Beam::Beam(int id, int* node_ids, int matice_id, int matpar_id, int numpar_id, ElementProperties* properties){{{1*/
 Beam::Beam(int beam_id,int* beam_node_ids, int beam_matice_id, int beam_matpar_id, int beam_numpar_id, ElementProperties* beamproperties): 
 	hnodes(beam_node_ids,2),
@@ -39,5 +39,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam other constructor {{{1*/
+/*FUNCTION Beam::Beam(int id, Hook* hnodes, Hook* hmatice, Hook* hmatpar, Hook* hnumpar, ElementProperties* properties){{{1*/
 Beam::Beam(int beam_id,Hook* beam_hnodes, Hook* beam_hmatice, Hook* beam_hmatpar, Hook* beam_hnumpar, ElementProperties* beam_properties):
 	hnodes(beam_hnodes),
@@ -54,5 +54,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam iomodel constructor {{{1*/
+/*FUNCTION Beam::Beam(int i, IoModel* iomodel){{{1*/
 Beam::Beam(int i,IoModel* iomodel){
 
@@ -101,5 +101,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam destructor {{{1*/
+/*FUNCTION Beam::~Beam(){{{1*/
 Beam::~Beam(){
 	return;
@@ -108,5 +108,5 @@
 
 /*Object management*/
-/*FUNCTION Beam Configure{{{1*/
+/*FUNCTION Beam::Configure{{{1*/
 void  Beam::Configure(void* ploadsin,void* pnodesin,void* pmaterialsin,void* pparametersin){
 
@@ -133,5 +133,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam copy{{{1*/
+/*FUNCTION Beam::copy{{{1*/
 Object* Beam::copy() {
 	
@@ -140,5 +140,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam DeepEcho{{{1*/
+/*FUNCTION Beam::DeepEcho{{{1*/
 void Beam::DeepEcho(void){
 
@@ -154,5 +154,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam Demarshall{{{1*/
+/*FUNCTION Beam::Demarshall{{{1*/
 void  Beam::Demarshall(char** pmarshalled_dataset){
 
@@ -181,5 +181,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam Echo {{{1*/
+/*FUNCTION Beam::Echo {{{1*/
 void Beam::Echo(void){
 
@@ -195,5 +195,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam Marshall{{{1*/
+/*FUNCTION Beam::Marshall{{{1*/
 void  Beam::Marshall(char** pmarshalled_dataset){
 
@@ -226,5 +226,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam MarshallSize{{{1*/
+/*FUNCTION Beam::MarshallSize{{{1*/
 int   Beam::MarshallSize(){
 	
@@ -238,5 +238,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam UpdateFromInputs{{{1*/
+/*FUNCTION Beam::UpdateFromInputs{{{1*/
 void  Beam::UpdateFromInputs(void* vinputs){
 
@@ -306,5 +306,5 @@
 
 /*Object functions*/
-/*FUNCTION Beam ComputePressure{{{1*/
+/*FUNCTION Beam::ComputePressure{{{1*/
 void  Beam::ComputePressure(Vec p_g){
 
@@ -349,10 +349,10 @@
 }
 /*}}}*/
-/*FUNCTION Beam CostFunction{{{1*/
+/*FUNCTION Beam::CostFunction{{{1*/
 double Beam::CostFunction(void*,int,int){
 	ISSMERROR(" not supported yet!");
 }
 /*}}}*/
-/*FUNCTION Beam CreateKMatrix{{{1*/
+/*FUNCTION Beam::CreateKMatrix{{{1*/
 
 void  Beam::CreateKMatrix(Mat Kgg,void* inputs,int analysis_type,int sub_analysis_type){
@@ -374,5 +374,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam CreateKMatrixDiagnosticHutter{{{1*/
+/*FUNCTION Beam::CreateKMatrixDiagnosticHutter{{{1*/
 
 void  Beam::CreateKMatrixDiagnosticHutter(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
@@ -408,5 +408,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam CreatePVector{{{1*/
+/*FUNCTION Beam::CreatePVector{{{1*/
 void  Beam::CreatePVector(Vec pg,void* inputs,int analysis_type,int sub_analysis_type){
 	
@@ -425,5 +425,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam CreatePVectorDiagnosticHutter{{{1*/
+/*FUNCTION Beam::CreatePVectorDiagnosticHutter{{{1*/
 
 void Beam::CreatePVectorDiagnosticHutter( Vec pg, void* vinputs, int analysis_type,int sub_analysis_type){
@@ -551,10 +551,10 @@
 }
 /*}}}*/
-/*FUNCTION Beam Du{{{1*/
+/*FUNCTION Beam::Du{{{1*/
 void  Beam::Du(_p_Vec*,void*,int,int){
 	ISSMERROR(" not supported yet!");
 }
 /*}}}*/
-/*FUNCTION Beam Enum{{{1*/
+/*FUNCTION Beam::Enum{{{1*/
 int Beam::Enum(void){
 
@@ -563,10 +563,10 @@
 }
 /*}}}*/
-/*FUNCTION Beam GetBedList{{{1*/
+/*FUNCTION Beam::GetBedList{{{1*/
 void  Beam::GetBedList(double*){
 	ISSMERROR(" not supported yet!");
 }
 /*}}}*/
-/*FUNCTION Beam GetDofList{{{1*/
+/*FUNCTION Beam::GetDofList{{{1*/
 void  Beam::GetDofList(int* doflist,int* pnumberofdofspernode){
 
@@ -593,5 +593,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam GetDofList1{{{1*/
+/*FUNCTION Beam::GetDofList1{{{1*/
 void  Beam::GetDofList1(int* doflist){
 
@@ -609,8 +609,8 @@
 }
 /*}}}*/
-/*FUNCTION Beam GetId{{{1*/
+/*FUNCTION Beam::GetId{{{1*/
 int    Beam::GetId(void){ return id; }
 /*}}}*/
-/*FUNCTION Beam GetJacobianDeterminant{{{1*/
+/*FUNCTION Beam::GetJacobianDeterminant{{{1*/
 void Beam::GetJacobianDeterminant(double* pJdet,double* z_list, double gauss_coord){
 
@@ -627,5 +627,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam GetMatPar{{{1*/
+/*FUNCTION Beam::GetMatPar{{{1*/
 void* Beam::GetMatPar(){
 
@@ -639,10 +639,10 @@
 }
 /*}}}*/
-/*FUNCTION Beam GetName{{{1*/
+/*FUNCTION Beam::GetName{{{1*/
 char* Beam::GetName(void){
 	return "beam";
 }
 /*}}}*/
-/*FUNCTION Beam GetNodalFunctions{{{1*/
+/*FUNCTION Beam::GetNodalFunctions{{{1*/
 void Beam::GetNodalFunctions(double* l1l2, double gauss_coord){
 	
@@ -656,5 +656,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam GetNodes{{{1*/
+/*FUNCTION Beam::GetNodes{{{1*/
 void  Beam::GetNodes(void** vpnodes){
 	int i;
@@ -675,10 +675,10 @@
 }
 /*}}}*/
-/*FUNCTION Beam GetOnBed{{{1*/
+/*FUNCTION Beam::GetOnBed{{{1*/
 int   Beam::GetOnBed(){
 	ISSMERROR(" not supported yet!");
 }
 /*}}}*/
-/*FUNCTION Beam GetParameterValue{{{1*/
+/*FUNCTION Beam::GetParameterValue{{{1*/
 void Beam::GetParameterValue(double* pvalue, double* value_list,double gauss_coord){
 
@@ -690,35 +690,35 @@
 }
 /*}}}*/
-/*FUNCTION Beam GetShelf{{{1*/
+/*FUNCTION Beam::GetShelf{{{1*/
 int   Beam::GetShelf(){
 	ISSMERROR(" not supported yet!");
 }
 /*}}}*/
-/*FUNCTION Beam GetThicknessList{{{1*/
+/*FUNCTION Beam::GetThicknessList{{{1*/
 void  Beam::GetThicknessList(double* thickness_list){
 	ISSMERROR(" not supported yet!");
 }
 /*}}}*/
-/*FUNCTION Beam Gradj{{{1*/
+/*FUNCTION Beam::Gradj{{{1*/
 void  Beam::Gradj(_p_Vec*, void*, int, int,char*){
 	ISSMERROR(" not supported yet!");
 }
 /*}}}*/
-/*FUNCTION Beam GradjB{{{1*/
+/*FUNCTION Beam::GradjB{{{1*/
 void  Beam::GradjB(_p_Vec*, void*, int, int){
 	ISSMERROR(" not supported yet!");
 }
 /*}}}*/
-/*FUNCTION Beam GradjDrag{{{1*/
+/*FUNCTION Beam::GradjDrag{{{1*/
 void  Beam::GradjDrag(_p_Vec*, void*, int,int ){
 	ISSMERROR(" not supported yet!");
 }
 /*}}}*/
-/*FUNCTION Beam MassFlux{{{1*/
+/*FUNCTION Beam::MassFlux{{{1*/
 double Beam::MassFlux( double* segment,double* ug){
 	ISSMERROR(" not supported yet!");
 }
 /*}}}*/
-/*FUNCTION Beam MaticeConfiguration{{{1*/
+/*FUNCTION Beam::MaticeConfiguration{{{1*/
 void  Beam::MaticeConfiguration(Matice* beam_matice,int beam_matice_offset){
 
@@ -735,5 +735,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam MatparConfiguration{{{1*/
+/*FUNCTION Beam::MatparConfiguration{{{1*/
 void  Beam::MatparConfiguration(Matpar* beam_matpar,int beam_matpar_offset){
 
@@ -751,10 +751,10 @@
 }
 /*}}}*/
-/*FUNCTION Beam Misfit{{{1*/
+/*FUNCTION Beam::Misfit{{{1*/
 double Beam::Misfit(void*,int,int){
 	ISSMERROR(" not supported yet!");
 }
 /*}}}*/
-/*FUNCTION Beam MyRank{{{1*/
+/*FUNCTION Beam::MyRank{{{1*/
 int    Beam::MyRank(void){ 
 	extern int my_rank;
@@ -762,5 +762,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam NodeConfiguration{{{1*/
+/*FUNCTION Beam::NodeConfiguration{{{1*/
 void  Beam::NodeConfiguration(int* beam_node_ids,Node* beam_nodes[2],int* beam_node_offsets){
 
@@ -782,5 +782,5 @@
 }
 /*}}}*/
-/*FUNCTION Beam SurfaceArea{{{1*/
+/*FUNCTION Beam::SurfaceArea{{{1*/
 double Beam::SurfaceArea(void*,int,int){
 	ISSMERROR(" not supported yet!");
Index: /issm/trunk/src/c/objects/DofIndexing.cpp
===================================================================
--- /issm/trunk/src/c/objects/DofIndexing.cpp	(revision 3469)
+++ /issm/trunk/src/c/objects/DofIndexing.cpp	(revision 3470)
@@ -19,5 +19,5 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION DofIndexing default constructor {{{1*/
+/*FUNCTION DofIndexing::DofIndexing(){{{1*/
 DofIndexing::DofIndexing(){
 
@@ -36,10 +36,91 @@
 }
 /*}}}*/
-/*FUNCTION DofIndexing constructor {{{1*/
+/*FUNCTION DofIndexing::DofIndexing(int numberofdofs){{{1*/
 DofIndexing::DofIndexing(int in_numberofdofs){
 	this->Init(in_numberofdofs);
 }
 /*}}}*/
-/*FUNCTION DofIndexing Init: used by constructor {{{1*/
+/*FUNCTION DofIndexing::DofIndexing(DofIndexing* in)  -> copy{{{1*/
+DofIndexing::DofIndexing(DofIndexing* in){ //copy constructor
+
+	int i;
+	this->numberofdofs=in->numberofdofs;
+	this->clone=in->clone;
+
+	for(i=0;i<MAXDOFSPERNODE;i++){
+		this->m_set[i]=in->m_set[i];
+		this->n_set[i]=in->n_set[i];
+		this->f_set[i]=in->f_set[i];
+		this->s_set[i]=in->s_set[i];
+		this->doflist[i]=in->doflist[i];
+	}
+}
+/*}}}*/
+/*FUNCTION DofIndexing::~DofIndexing() {{{1*/
+DofIndexing::~DofIndexing(){ //destructor
+}
+/*}}}*/
+
+/*Object management: */
+/*FUNCTION DofIndexing::DeepEcho{{{1*/
+void DofIndexing::DeepEcho(void){
+
+	int i;
+
+	printf("DofIndexing:\n");
+	printf("   numberofdofs: %i\n",numberofdofs);
+	printf("   clone: %i\n",clone);
+	
+	printf("   set membership: m,n,f,s sets \n");
+	for(i=0;i<numberofdofs;i++){
+		if(i>MAXDOFSPERNODE)break;
+		printf("      dof %i: %i %i %i %i\n",i,m_set[i],n_set[i],f_set[i],s_set[i]);
+	}
+	printf("\n");
+
+	printf("   doflist:|");
+	for(i=0;i<numberofdofs;i++){
+		if(i>MAXDOFSPERNODE)break;
+		printf("%i|",doflist[i]);
+	}
+
+}		
+/*}}}*/
+/*FUNCTION DofIndexing::Demarshall{{{1*/
+void  DofIndexing::Demarshall(char** pmarshalled_dataset){
+
+	char* marshalled_dataset=NULL;
+	int   enum_type;
+
+	/*recover marshalled_dataset: */
+	marshalled_dataset=*pmarshalled_dataset;
+
+	/*get enum type of object since DofIndexing is not directly called by DataSet: */
+	memcpy(&enum_type,marshalled_dataset,sizeof(int)); marshalled_dataset+=sizeof(int);
+
+	memcpy(&numberofdofs,marshalled_dataset,sizeof(numberofdofs));marshalled_dataset+=sizeof(numberofdofs);
+	memcpy(&clone,marshalled_dataset,sizeof(clone));marshalled_dataset+=sizeof(clone);
+	memcpy(&m_set,marshalled_dataset,sizeof(m_set));marshalled_dataset+=sizeof(m_set);
+	memcpy(&n_set,marshalled_dataset,sizeof(n_set));marshalled_dataset+=sizeof(n_set);
+	memcpy(&f_set,marshalled_dataset,sizeof(f_set));marshalled_dataset+=sizeof(f_set);
+	memcpy(&s_set,marshalled_dataset,sizeof(s_set));marshalled_dataset+=sizeof(s_set);
+	memcpy(&doflist,marshalled_dataset,sizeof(doflist));marshalled_dataset+=sizeof(doflist);
+	
+	/*return: */
+	*pmarshalled_dataset=marshalled_dataset;
+	return;
+}
+/*}}}*/
+/*FUNCTION DofIndexing::Echo{{{1*/
+void DofIndexing::Echo(void){
+
+	int i;
+
+	printf("DofIndexing:\n");
+	printf("   numberofdofs: %i\n",numberofdofs);
+	printf("   clone: %i\n",clone);
+}
+/*}}}*/
+/*FUNCTION DofIndexing::Init{{{1*/
 void DofIndexing::Init(int in_numberofdofs){
 
@@ -58,27 +139,5 @@
 }
 /*}}}*/
-/*FUNCTION DofIndexing copy constructor{{{1*/
-DofIndexing::DofIndexing(DofIndexing* in){ //copy constructor
-
-	int i;
-	this->numberofdofs=in->numberofdofs;
-	this->clone=in->clone;
-
-	for(i=0;i<MAXDOFSPERNODE;i++){
-		this->m_set[i]=in->m_set[i];
-		this->n_set[i]=in->n_set[i];
-		this->f_set[i]=in->f_set[i];
-		this->s_set[i]=in->s_set[i];
-		this->doflist[i]=in->doflist[i];
-	}
-}
-/*}}}*/
-/*FUNCTION DofIndexing destructor {{{1*/
-DofIndexing::~DofIndexing(){ //destructor
-}
-/*}}}*/
-
-/*Object management: */
-/*FUNCTION DofIndexing Marshall{{{1*/
+/*FUNCTION DofIndexing::Marshall{{{1*/
 void  DofIndexing::Marshall(char** pmarshalled_dataset){
 
@@ -108,5 +167,5 @@
 }
 /*}}}*/
-/*FUNCTION DofIndexing MarshallSize{{{1*/
+/*FUNCTION DofIndexing::MarshallSize{{{1*/
 int   DofIndexing::MarshallSize(){
 
@@ -121,61 +180,2 @@
 }
 /*}}}*/
-/*FUNCTION DofIndexing Demarshall{{{1*/
-void  DofIndexing::Demarshall(char** pmarshalled_dataset){
-
-	char* marshalled_dataset=NULL;
-	int   enum_type;
-
-	/*recover marshalled_dataset: */
-	marshalled_dataset=*pmarshalled_dataset;
-
-	/*get enum type of object since DofIndexing is not directly called by DataSet: */
-	memcpy(&enum_type,marshalled_dataset,sizeof(int)); marshalled_dataset+=sizeof(int);
-
-	memcpy(&numberofdofs,marshalled_dataset,sizeof(numberofdofs));marshalled_dataset+=sizeof(numberofdofs);
-	memcpy(&clone,marshalled_dataset,sizeof(clone));marshalled_dataset+=sizeof(clone);
-	memcpy(&m_set,marshalled_dataset,sizeof(m_set));marshalled_dataset+=sizeof(m_set);
-	memcpy(&n_set,marshalled_dataset,sizeof(n_set));marshalled_dataset+=sizeof(n_set);
-	memcpy(&f_set,marshalled_dataset,sizeof(f_set));marshalled_dataset+=sizeof(f_set);
-	memcpy(&s_set,marshalled_dataset,sizeof(s_set));marshalled_dataset+=sizeof(s_set);
-	memcpy(&doflist,marshalled_dataset,sizeof(doflist));marshalled_dataset+=sizeof(doflist);
-	
-	/*return: */
-	*pmarshalled_dataset=marshalled_dataset;
-	return;
-}
-/*}}}*/
-/*FUNCTION DofIndexing Echo{{{1*/
-void DofIndexing::Echo(void){
-
-	int i;
-
-	printf("DofIndexing:\n");
-	printf("   numberofdofs: %i\n",numberofdofs);
-	printf("   clone: %i\n",clone);
-}
-/*}}}*/
-/*FUNCTION DofIndexing DeepEcho{{{1*/
-void DofIndexing::DeepEcho(void){
-
-	int i;
-
-	printf("DofIndexing:\n");
-	printf("   numberofdofs: %i\n",numberofdofs);
-	printf("   clone: %i\n",clone);
-	
-	printf("   set membership: m,n,f,s sets \n");
-	for(i=0;i<numberofdofs;i++){
-		if(i>MAXDOFSPERNODE)break;
-		printf("      dof %i: %i %i %i %i\n",i,m_set[i],n_set[i],f_set[i],s_set[i]);
-	}
-	printf("\n");
-
-	printf("   doflist:|");
-	for(i=0;i<numberofdofs;i++){
-		if(i>MAXDOFSPERNODE)break;
-		printf("%i|",doflist[i]);
-	}
-
-}		
-/*}}}*/
Index: /issm/trunk/src/c/objects/DofVec.cpp
===================================================================
--- /issm/trunk/src/c/objects/DofVec.cpp	(revision 3469)
+++ /issm/trunk/src/c/objects/DofVec.cpp	(revision 3470)
@@ -14,8 +14,11 @@
 #include "../EnumDefinitions/EnumDefinitions.h"
 
+/*Object constructors and destructor*/
+/*FUNCTION DofVec::DofVec() {{{1*/
 DofVec::DofVec(){
 	return;
 }
-		
+/*}}}*/
+/*FUNCTION DofVec::DofVec(char* name) {{{1*/
 DofVec::DofVec(char* name){
 
@@ -26,9 +29,6 @@
 
 }
-
-DofVec::~DofVec(){
-	VecFree(&this->vector);
-}
-
+/*}}}*/
+/*FUNCTION DofVec::DofVec(int total_size,char* name) {{{1*/
 DofVec::DofVec(int total_size,char* name){
 
@@ -38,5 +38,6 @@
 	this->vector=NewVec(total_size);
 }
-		
+/*}}}*/
+/*FUNCTION DofVec::DofVec(int total_size,double default_value,char* name) {{{1*/
 DofVec::DofVec(int total_size,double default_value,char* name){
 
@@ -47,5 +48,6 @@
 	VecSet(this->vector,default_value);
 }
-		
+/*}}}*/
+/*FUNCTION DofVec::DofVec(int dofvec_numdofs,int dofvec_numentries,char* name) {{{1*/
 DofVec::DofVec(int dofvec_numdofs,int dofvec_numentries,char* name){
 
@@ -55,5 +57,6 @@
 	this->vector=NewVec(dofvec_numdofs*dofvec_numentries);
 }
-		
+/*}}}*/
+/*FUNCTION DofVec::DofVec(int dofvec_numdofs,int dofvec_numentries,double default_value,char* name) {{{1*/
 DofVec::DofVec(int dofvec_numdofs,int dofvec_numentries,double default_value,char* name){
 
@@ -65,5 +68,6 @@
 
 }
-		
+/*}}}*/
+/*FUNCTION DofVec::DofVec(double* serial_vector,int total_size,char* name) {{{1*/
 DofVec::DofVec(double* serial_vector,int total_size,char* name){
 	
@@ -73,5 +77,6 @@
 	this->vector=SerialToVec(serial_vector,total_size);
 }
-		
+/*}}}*/
+/*FUNCTION DofVec::DofVec(double* serial_vector,int dofvec_numdofs,int dofvec_numentries,char* name) {{{1*/
 DofVec::DofVec(double* serial_vector,int dofvec_numdofs,int dofvec_numentries,char* name){
 	
@@ -81,5 +86,6 @@
 	this->vector=SerialToVec(serial_vector,dofvec_numdofs*dofvec_numentries);
 }
-		
+/*}}}*/
+/*FUNCTION DofVec::DofVec(Vec vec,char* name) {{{1*/
 DofVec::DofVec(Vec vec,char* name){
 
@@ -90,5 +96,6 @@
 	
 }
-		
+/*}}}*/
+/*FUNCTION DofVec::DofVec(Vec vec,int dofvec_numdofs,int dofvec_numentries,char* name) {{{1*/
 DofVec::DofVec(Vec vec,int dofvec_numdofs,int dofvec_numentries,char* name){
 
@@ -98,5 +105,68 @@
 	VecDuplicatePatch(&this->vector,vec);
 }
-	
+/*}}}*/
+/*FUNCTION DofVec::~DofVec {{{1*/
+DofVec::~DofVec(){
+	VecFree(&this->vector);
+}
+/*}}}*/
+
+/*Object management: */
+/*FUNCTION DofVec::copy {{{1*/
+Object* DofVec::copy() {
+
+	DofVec* dofvec=NULL;
+
+	dofvec=new DofVec(*this); 
+
+	/*do the dynamic allocation copy: */
+	VecDuplicatePatch(&dofvec->vector,this->vector);
+
+	return (Object*)dofvec;
+
+}
+/*}}}*/
+/*FUNCTION DofVec::DeepEcho {{{1*/
+void DofVec::DeepEcho(void){
+
+	printf("DofVec:\n");
+	printf("   name: %s\n",this->name);
+	printf("   numdofs: %i\n",this->numdofs);
+	printf("   numentries: %i\n",this->numentries);
+	printf("   totalsize: %i\n",this->numdofs*this->numentries);
+	if(this->vector)VecView(this->vector,PETSC_VIEWER_STDOUT_WORLD);
+}
+/*}}}*/
+/*FUNCTION DofVec::Demarshall {{{1*/
+void  DofVec::Demarshall(char** pmarshalled_dataset){
+
+	char* marshalled_dataset=NULL;
+	int   i;
+	double* serial_vector=NULL;
+
+	/*recover marshalled_dataset: */
+	marshalled_dataset=*pmarshalled_dataset;
+
+	/*this time, no need to get enum type, the pointer directly points to the beginning of the 
+	 *object data (thanks to DataSet::Demarshall):*/
+
+	memcpy(&name,marshalled_dataset,sizeof(name));marshalled_dataset+=sizeof(name);
+	memcpy(&numdofs,marshalled_dataset,sizeof(numdofs));marshalled_dataset+=sizeof(numdofs);
+	memcpy(&numentries,marshalled_dataset,sizeof(numentries));marshalled_dataset+=sizeof(numentries);
+
+	serial_vector=(double*)xmalloc(this->numentries*this->numdofs*sizeof(double));
+	memcpy(serial_vector,marshalled_dataset,this->numentries*this->numdofs*sizeof(double));marshalled_dataset+=this->numentries*this->numdofs*sizeof(double);
+
+	this->vector=SerialToVec(serial_vector,this->numentries*this->numdofs);
+
+	/*Free ressources:*/
+	xfree((void**)&serial_vector);
+
+	/*return: */
+	*pmarshalled_dataset=marshalled_dataset;
+	return;
+}
+/*}}}*/
+/*FUNCTION DofVec::Echo {{{1*/
 void DofVec::Echo(void){
 
@@ -109,15 +179,6 @@
 
 }
-
-void DofVec::DeepEcho(void){
-
-	printf("DofVec:\n");
-	printf("   name: %s\n",this->name);
-	printf("   numdofs: %i\n",this->numdofs);
-	printf("   numentries: %i\n",this->numentries);
-	printf("   totalsize: %i\n",this->numdofs*this->numentries);
-	if(this->vector)VecView(this->vector,PETSC_VIEWER_STDOUT_WORLD);
-}
-
+/*}}}*/
+/*FUNCTION DofVec::Marshall {{{1*/
 void  DofVec::Marshall(char** pmarshalled_dataset){
 
@@ -151,5 +212,6 @@
 	return;
 }
-		
+/*}}}*/
+/*FUNCTION DofVec::MarshallSize {{{1*/
 int   DofVec::MarshallSize(){
 	return sizeof(name)
@@ -159,5 +221,20 @@
 		+sizeof(int); //sizeof(int) for enum type
 }
-
+/*}}}*/
+
+/*Object functions*/
+/*FUNCTION DofVec::Enum {{{1*/
+int DofVec::Enum(void){
+
+	return DofVecEnum();
+
+}
+/*}}}*/
+/*FUNCTION DofVec::GetId {{{1*/
+int DofVec::GetId(void){ 
+	ISSMERROR(" no id function for DofVec class");
+}
+
+/*FUNCTION DofVec::GetName {{{1*/
 char* DofVec::GetName(void){
 	char* string=NULL;
@@ -166,64 +243,11 @@
 	return string;
 }
-
-void  DofVec::Demarshall(char** pmarshalled_dataset){
-
-	char* marshalled_dataset=NULL;
-	int   i;
-	double* serial_vector=NULL;
-
-	/*recover marshalled_dataset: */
-	marshalled_dataset=*pmarshalled_dataset;
-
-	/*this time, no need to get enum type, the pointer directly points to the beginning of the 
-	 *object data (thanks to DataSet::Demarshall):*/
-
-	memcpy(&name,marshalled_dataset,sizeof(name));marshalled_dataset+=sizeof(name);
-	memcpy(&numdofs,marshalled_dataset,sizeof(numdofs));marshalled_dataset+=sizeof(numdofs);
-	memcpy(&numentries,marshalled_dataset,sizeof(numentries));marshalled_dataset+=sizeof(numentries);
-
-	serial_vector=(double*)xmalloc(this->numentries*this->numdofs*sizeof(double));
-	memcpy(serial_vector,marshalled_dataset,this->numentries*this->numdofs*sizeof(double));marshalled_dataset+=this->numentries*this->numdofs*sizeof(double);
-
-	this->vector=SerialToVec(serial_vector,this->numentries*this->numdofs);
-
-	/*Free ressources:*/
-	xfree((void**)&serial_vector);
-
-	/*return: */
-	*pmarshalled_dataset=marshalled_dataset;
-	return;
-}
-
-
-int DofVec::Enum(void){
-
-	return DofVecEnum();
-
-}
-
-int DofVec::GetId(void){ 
-	ISSMERROR(" no id function for DofVec class");
-}
-
-int    DofVec::MyRank(void){ 
-
-	extern int my_rank;
-	return my_rank; 
-}
-
-Object* DofVec::copy() {
-
-	DofVec* dofvec=NULL;
-
-	dofvec=new DofVec(*this); 
-	
-	/*do the dynamic allocation copy: */
-	VecDuplicatePatch(&dofvec->vector,this->vector);
-
-	return (Object*)dofvec;
-
-}
-
+/*}}}*/
+/*FUNCTION DofVec::GetVec {{{1*/
+Vec     DofVec::GetVec(void){
+	return vector;
+}
+/*}}}*/
+/*FUNCTION DofVec::GetVecFromDof(double** pvector,int dof) {{{1*/
 void DofVec::GetVecFromDof(double** pvector,int dof){
 
@@ -250,6 +274,6 @@
 	*pvector=serial_vector;
 }
-
-
+/*}}}*/
+/*FUNCTION DofVec::GetVecFromDof(Vec* pvector, int dof) {{{1*/
 void DofVec::GetVecFromDof(Vec* pvector, int dof){
 
@@ -272,5 +296,6 @@
 	*pvector=vector;
 }
-
+/*}}}*/
+/*FUNCTION DofVec::GetVecFromDofList(double** pvector, int requested_numdofs,int* requested_doflist) {{{1*/
 void DofVec::GetVecFromDofList(double** pvector, int requested_numdofs,int* requested_doflist){
 
@@ -301,6 +326,6 @@
 	*pvector=serial_vector;
 }
-
-
+/*}}}*/
+/*FUNCTION DofVec::GetVecFromDofList(Vec* pvector, int requested_numdofs,int* requested_doflist) {{{1*/
 void DofVec::GetVecFromDofList(Vec* pvector, int requested_numdofs,int* requested_doflist){
 
@@ -327,5 +352,6 @@
 	*pvector=vector;
 }
-
+/*}}}*/
+/*FUNCTION DofVec::SetValuesFromVecAndDofList(double* serial_vector,int vector_size,int requested_numdofs,int* requested_doflist) {{{1*/
 void DofVec::SetValuesFromVecAndDofList(double* serial_vector,int vector_size,int requested_numdofs,int* requested_doflist){
 
@@ -349,5 +375,6 @@
 	VecFree(&vector);
 }
-
+/*}}}*/
+/*FUNCTION DofVec::SetValuesFromVecAndDofList(Vec vector,int requested_numdofs,int* requested_doflist) {{{1*/
 void DofVec::SetValuesFromVecAndDofList(Vec vector,int requested_numdofs,int* requested_doflist){
 
@@ -369,5 +396,6 @@
 	xfree((void**)&dofset);
 }
-
+/*}}}*/
+/*FUNCTION DofVec::SetValuesFromVecAndDofList(DofVec* vector,int requested_numdofs,int* requested_doflist) {{{1*/
 void DofVec::SetValuesFromVecAndDofList(DofVec* vector,int requested_numdofs,int* requested_doflist){
 
@@ -389,5 +417,6 @@
 	xfree((void**)&dofset);
 }
-
+/*}}}*/
+/*FUNCTION DofVec::GetValuesFromIndex {{{1*/
 double* DofVec::GetValuesFromIndex(int index_size,int* index){
 
@@ -410,10 +439,15 @@
 	return values;
 }
-
+/*}}}*/
+/*FUNCTION DofVec::MyRank {{{1*/
+int    DofVec::MyRank(void){ 
+
+	extern int my_rank;
+	return my_rank; 
+}
+
+/*FUNCTION DofVec::Size {{{1*/
 int DofVec::Size(){
 	return this->numdofs*this->numentries;
 }
-
-Vec     DofVec::GetVec(void){
-	return vector;
-}
+/*}}}*/
Index: /issm/trunk/src/c/objects/Element.cpp
===================================================================
--- /issm/trunk/src/c/objects/Element.cpp	(revision 3469)
+++ /issm/trunk/src/c/objects/Element.cpp	(revision 3470)
@@ -3,5 +3,4 @@
  * the Object derived class Element.
  */ 
-
 
 #include "./Element.h"
@@ -12,4 +11,2 @@
 	return ElementEnum();
 }
-		
-
Index: /issm/trunk/src/c/objects/Node.cpp
===================================================================
--- /issm/trunk/src/c/objects/Node.cpp	(revision 3469)
+++ /issm/trunk/src/c/objects/Node.cpp	(revision 3470)
@@ -22,11 +22,12 @@
 #include "../include/macros.h"
 /*}}}*/
+
 /*Object constructors and destructors: {{{1*/
-/*FUNCTION Node default constructor {{{2*/
+/*FUNCTION Node::Node() default constructor {{{2*/
 Node::Node(){
 	return;
 }
 /*}}}*/
-/*FUNCTION Node constructor {{{2*/
+/*FUNCTION Node::Node(int id, int vertex_id, int uppernode_id, int numdofs, NodeProperties*) {{{2*/
 Node::Node(int node_id,int node_vertex_id, int node_upper_node_id, int node_numdofs, NodeProperties* node_properties):
 	indexing(node_numdofs),
@@ -40,5 +41,5 @@
 }
 /*}}}*/
-/*FUNCTION Node other constructor {{{2*/
+/*FUNCTION Node::Node(int id, DofIndexing* indexing, NodeProperties* properties, Hook* vertex, Hook* uppernode){{{2*/
 Node::Node(int node_id,DofIndexing* node_indexing, NodeProperties* node_properties, Hook* node_vertex, Hook* node_upper_node):
 	    indexing(node_indexing),
@@ -52,5 +53,5 @@
 }
 /*}}}*/
-/*FUNCTION Node constructor from iomodel continuous Galerkin{{{2*/
+/*FUNCTION Node::Node(int i, IoModel* iomodel)          -> Continuous Galerkin{{{2*/
 Node::Node(int i, IoModel* iomodel){ //i is the node index
 
@@ -155,5 +156,5 @@
 }
 /*}}}*/
-/*FUNCTION Node constructor from iomodel discontinuous Galerkin{{{2*/
+/*FUNCTION Node::Node(int i, int j, IoModel* iomodel)   -> Discontinuous Galerkin{{{2*/
 Node::Node(int i,int j,IoModel* iomodel){
 	/* i -> index of the vertex in C indexing
@@ -200,5 +201,5 @@
 }
 /*}}}*/
-/*FUNCTION Node destructor{{{2*/
+/*FUNCTION Node::~Node(){{{2*/
 Node::~Node(){
 	return;
@@ -207,5 +208,5 @@
 /*}}}*/
 /*Object management: {{{1*/
-/*FUNCTION Node Configure {{{2*/
+/*FUNCTION Node::Configure {{{2*/
 void  Node::Configure(void* pnodes, void* pvertices){
 
@@ -226,5 +227,5 @@
 }
 /*}}}*/
-/*FUNCTION Node copy {{{2*/
+/*FUNCTION Node::copy {{{2*/
 Object* Node::copy() {
 		
@@ -234,5 +235,5 @@
 
 /*}}}*/
-/*FUNCTION Node DeepEcho{{{2*/
+/*FUNCTION Node::DeepEcho{{{2*/
 void Node::DeepEcho(void){
 
@@ -246,5 +247,5 @@
 }
 /*}}}*/
-/*FUNCTION Node Demarshall{{{2*/
+/*FUNCTION Node::Demarshall{{{2*/
 void  Node::Demarshall(char** pmarshalled_dataset){
 
@@ -270,5 +271,5 @@
 }
 /*}}}*/
-/*FUNCTION Node Echo{{{2*/
+/*FUNCTION Node::Echo{{{2*/
 void Node::Echo(void){
 
@@ -282,5 +283,5 @@
 }
 /*}}}*/
-/*FUNCTION Node Enum{{{2*/
+/*FUNCTION Node::Enum{{{2*/
 int Node::Enum(void){
 
@@ -289,5 +290,5 @@
 }
 /*}}}*/
-/*FUNCTION Node GetDof {{{2*/
+/*FUNCTION Node::GetDof {{{2*/
 int   Node::GetDof(int dofindex){
 
@@ -296,5 +297,5 @@
 }
 /*}}}*/
-/*FUNCTION Node GetDofList1{{{2*/
+/*FUNCTION Node::GetDofList1{{{2*/
 int  Node::GetDofList1(void){
 
@@ -306,5 +307,5 @@
 }
 /*}}}*/
-/*FUNCTION Node GetDofList{{{2*/
+/*FUNCTION Node::GetDofList{{{2*/
 void  Node::GetDofList(int* outdoflist,int* pnumberofdofspernode){
 
@@ -317,13 +318,13 @@
 }
 /*}}}*/
-/*FUNCTION Node GetId{{{2*/
+/*FUNCTION Node::GetId{{{2*/
 int    Node::GetId(void){ return id; }
 /*}}}*/
-/*FUNCTION Node GetName{{{2*/
+/*FUNCTION Node::GetName{{{2*/
 char* Node::GetName(void){
 	return "node";
 }
 /*}}}*/
-/*FUNCTION Node GetVertexDof {{{2*/
+/*FUNCTION Node::GetVertexDof {{{2*/
 int   Node::GetVertexDof(void){
 
@@ -334,5 +335,5 @@
 }
 /*}}}*/
-/*FUNCTION Node Marshall{{{2*/
+/*FUNCTION Node::Marshall{{{2*/
 void  Node::Marshall(char** pmarshalled_dataset){
 
@@ -362,5 +363,5 @@
 }
 /*}}}*/
-/*FUNCTION Node MarshallSize{{{2*/
+/*FUNCTION Node::MarshallSize{{{2*/
 int   Node::MarshallSize(){
 
@@ -373,5 +374,5 @@
 }
 /*}}}*/
-/*FUNCTION Node SetVertexDof {{{2*/
+/*FUNCTION Node::SetVertexDof {{{2*/
 void   Node::SetVertexDof(int in_dof){
 
@@ -385,5 +386,5 @@
 /*}}}*/
 /*Object numerics: {{{1*/
-/*FUNCTION Node ApplyConstraints{{{2*/
+/*FUNCTION Node::ApplyConstraints{{{2*/
 void  Node::ApplyConstraint(Vec yg,int dof,double value){
 
@@ -408,5 +409,5 @@
 }
 /*}}}*/
-/*FUNCTION Node CreateVecSets {{{2*/
+/*FUNCTION Node::CreateVecSets {{{2*/
 void  Node::CreateVecSets(Vec pv_g,Vec pv_m,Vec pv_n,Vec pv_f,Vec pv_s){
 
@@ -442,5 +443,5 @@
 }
 /*}}}*/
-/*FUNCTION Node DofInMSet{{{2*/
+/*FUNCTION Node::DofInMSet{{{2*/
 void  Node::DofInMSet(int dof){
 
@@ -453,5 +454,5 @@
 }
 /*}}}*/
-/*FUNCTION Node DofInSSet {{{2*/
+/*FUNCTION Node::DofInSSet {{{2*/
 void  Node::DofInSSet(int dof){
 
@@ -465,5 +466,5 @@
 }
 /*}}}*/
-/*FUNCTION Node DofIsInMSet{{{2*/
+/*FUNCTION Node::DofIsInMSet{{{2*/
 int  Node::DofIsInMSet(int dof){
 
@@ -473,5 +474,5 @@
 }
 /*}}}*/
-/*FUNCTION Node FieldAverageOntoVertices{{{2*/
+/*FUNCTION Node::FieldAverageOntoVertices{{{2*/
 void  Node::FieldAverageOntoVertices(Vec field,double* field_serial,char* fieldname){
 
@@ -479,5 +480,5 @@
 }
 /*}}}*/
-/*FUNCTION Node FieldDepthAverageAtBase{{{2*/
+/*FUNCTION Node::FieldDepthAverageAtBase{{{2*/
 void  Node::FieldDepthAverageAtBase(Vec field,double* field_serial,char* fieldname){
 
@@ -601,5 +602,5 @@
 }
 /*}}}*/
-/*FUNCTION Node FieldExtrude {{{2*/
+/*FUNCTION Node::FieldExtrude {{{2*/
 void  Node::FieldExtrude(Vec field,double* field_serial,char* field_name){
 		
@@ -713,5 +714,5 @@
 }
 /*}}}*/
-/*FUNCTION Node FreezeDof{{{2*/
+/*FUNCTION Node::FreezeDof{{{2*/
 void  Node::FreezeDof(int dof){
 	
@@ -720,5 +721,5 @@
 }
 /*}}}*/
-/*FUNCTION Node GetNumberOfDofs{{{2*/
+/*FUNCTION Node::GetNumberOfDofs{{{2*/
 int   Node::GetNumberOfDofs(){
 	
@@ -727,5 +728,5 @@
 }
 /*}}}*/
-/*FUNCTION Node GetSigma {{{2*/
+/*FUNCTION Node::GetSigma {{{2*/
 double Node::GetSigma(){
 	Vertex* vertex=NULL;
@@ -735,5 +736,5 @@
 }
 /*}}}*/
-/*FUNCTION Node GetUpperNode {{{2*/
+/*FUNCTION Node::GetUpperNode {{{2*/
 Node* Node::GetUpperNode(){
 	Node* upper_node=NULL;
@@ -742,5 +743,5 @@
 }
 /*}}}*/
-/*FUNCTION Node GetX {{{2*/
+/*FUNCTION Node::GetX {{{2*/
 double Node::GetX(){
 	Vertex* vertex=NULL;
@@ -750,5 +751,5 @@
 }
 /*}}}*/
-/*FUNCTION Node GetY {{{2*/
+/*FUNCTION Node::GetY {{{2*/
 double Node::GetY(){
 	Vertex* vertex=NULL;
@@ -758,5 +759,5 @@
 }
 /*}}}*/
-/*FUNCTION Node GetZ {{{2*/
+/*FUNCTION Node::GetZ {{{2*/
 double Node::GetZ(){
 	Vertex* vertex=NULL;
@@ -766,5 +767,5 @@
 }
 /*}}}*/
-/*FUNCTION Node IsClone {{{2*/
+/*FUNCTION Node::IsClone {{{2*/
 int   Node::IsClone(){
 	
@@ -773,25 +774,25 @@
 }
 /*}}}*/
-/*FUNCTION Node IsOnBed {{{2*/
+/*FUNCTION Node::IsOnBed {{{2*/
 int   Node::IsOnBed(){
 	return properties.onbed;
 }
 /*}}}*/
-/*FUNCTION Node IsOnSheet {{{2*/
+/*FUNCTION Node::IsOnSheet {{{2*/
 int   Node::IsOnSheet(){
 	return properties.onsheet;
 }		
 /*}}}*/
-/*FUNCTION Node IsOnShelf {{{2*/
+/*FUNCTION Node::IsOnShelf {{{2*/
 int   Node::IsOnShelf(){
 	return properties.onshelf;
 }
 /*}}}*/
-/*FUNCTION Node IsOnSurface {{{2*/
+/*FUNCTION Node::IsOnSurface {{{2*/
 int   Node::IsOnSurface(){
 	return properties.onsurface;
 }
 /*}}}*/
-/*FUNCTION Node MyRank{{{2*/
+/*FUNCTION Node::MyRank{{{2*/
 int    Node::MyRank(void){ 
 	extern int my_rank;
@@ -800,5 +801,5 @@
 }
 /*}}}*/
-/*FUNCTION Node UpdateFromInputs {{{2*/
+/*FUNCTION Node::UpdateFromInputs {{{2*/
 void  Node::UpdateFromInputs(void* vinputs){
 
@@ -808,6 +809,6 @@
 /*}}}*/
 /*}}}*/
-/* DofObject routines: {{{1*
-/*FUNCTION Node DistributeDofs{{{2*/
+/* DofObject routines: {{{1*/
+/*FUNCTION Node::DistributeDofs{{{2*/
 void  Node::DistributeDofs(int* pdofcount){
 
@@ -834,5 +835,5 @@
 }
 /*}}}*/
-/*FUNCTION Node OffsetDofs{{{2*/
+/*FUNCTION Node::OffsetDofs{{{2*/
 void  Node::OffsetDofs(int dofcount){
 	
@@ -851,5 +852,5 @@
 }
 /*}}}*/
-/*FUNCTION Node ShowTrueDofs{{{2*/
+/*FUNCTION Node::ShowTrueDofs{{{2*/
 void  Node::ShowTrueDofs(int* truedofs){
 
@@ -867,5 +868,5 @@
 }
 /*}}}*/
-/*FUNCTION Node UpdateCloneDofs{{{2*/
+/*FUNCTION Node::UpdateCloneDofs{{{2*/
 void  Node::UpdateCloneDofs(int* alltruedofs){
 
@@ -883,5 +884,5 @@
 }
 /*}}}*/
-/*FUNCTION Node SetClone {{{2*/
+/*FUNCTION Node::SetClone {{{2*/
 void  Node::SetClone(int* minranks){
 
@@ -899,5 +900,5 @@
 }
 /*}}}*/
-/*FUNCTION Node CreatePartition{{{2*/
+/*FUNCTION Node::CreatePartition{{{2*/
 void  Node::CreatePartition(Vec partition){ 
 
Index: /issm/trunk/src/c/objects/Penta.h
===================================================================
--- /issm/trunk/src/c/objects/Penta.h	(revision 3469)
+++ /issm/trunk/src/c/objects/Penta.h	(revision 3470)
@@ -142,4 +142,2 @@
 };
 #endif  /* _PENTA_H */
-	
-
Index: /issm/trunk/src/c/objects/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Tria.cpp	(revision 3469)
+++ /issm/trunk/src/c/objects/Tria.cpp	(revision 3470)
@@ -28,10 +28,10 @@
 
 /*Object constructors and destructor*/
-/*FUNCTION Tria default constructor {{{1*/
+/*FUNCTION Tria::Tria(){{{1*/
 Tria::Tria(){
 	return;
 }
 /*}}}*/
-/*FUNCTION Tria constructor {{{1*/
+/*FUNCTION Tria::Tria(int id, int* node_ids, int matice_id, int matpar_id, int numpar_id, ElementProperties* properties){{{1*/
 Tria::Tria(int tria_id,int* tria_node_ids, int tria_matice_id, int tria_matpar_id, int tria_numpar_id, ElementProperties* triaproperties): 
 	hnodes(tria_node_ids,3),
@@ -48,5 +48,5 @@
 }
 /*}}}*/
-/*FUNCTION Tria other constructor {{{1*/
+/*FUNCTION Tria::Tria(int id, Hook* hnodes, Hook* hmatice, Hook* hmatpar, Hook* hnumpar, ElementProperties* properties) {{{1*/
 Tria::Tria(int tria_id,Hook* tria_hnodes, Hook* tria_hmatice, Hook* tria_hmatpar, Hook* tria_hnumpar, ElementProperties* tria_properties):
 	hnodes(tria_hnodes),
@@ -63,5 +63,5 @@
 }
 /*}}}*/
-/*FUNCTION Tria constructor  from iomodel{{{1*/
+/*FUNCTION Tria::Tria(int i, IoModel* iomodel){{{1*/
 Tria::Tria(int i, IoModel* iomodel){ //i is the element index
 
@@ -123,5 +123,5 @@
 }
 /*}}}*/
-/*FUNCTION Tria destructor {{{1*/
+/*FUNCTION Tria::~Tria(){{{1*/
 Tria::~Tria(){
 	return;
@@ -130,5 +130,5 @@
 
 /*Object management: */
-/*FUNCTION Configure {{{1*/
+/*FUNCTION Tria::Configure {{{1*/
 void  Tria::Configure(void* ploadsin,void* pnodesin,void* pmaterialsin,void* pparametersin){
 
@@ -155,5 +155,5 @@
 }
 /*}}}*/
-/*FUNCTION copy {{{1*/
+/*FUNCTION Tria::copy {{{1*/
 Object* Tria::copy() {
 
@@ -163,5 +163,5 @@
 
 /*}}}*/
-/*FUNCTION Demarshall {{{1*/
+/*FUNCTION Tria::Demarshall {{{1*/
 void  Tria::Demarshall(char** pmarshalled_dataset){
 
@@ -191,5 +191,5 @@
 }
 /*}}}*/
-/*FUNCTION DeepEcho{{{1*/
+/*FUNCTION Tria::DeepEcho{{{1*/
 
 void Tria::DeepEcho(void){
@@ -206,5 +206,5 @@
 }
 /*}}}*/
-/*FUNCTION Echo{{{1*/
+/*FUNCTION Tria::Echo{{{1*/
 
 void Tria::Echo(void){
@@ -221,5 +221,5 @@
 }
 /*}}}*/
-/*FUNCTION Marshall {{{1*/
+/*FUNCTION Tria::Marshall {{{1*/
 void  Tria::Marshall(char** pmarshalled_dataset){
 
@@ -252,5 +252,5 @@
 }
 /*}}}*/
-/*FUNCTION MarshallSize {{{1*/
+/*FUNCTION Tria::MarshallSize {{{1*/
 int   Tria::MarshallSize(){
 	
@@ -264,5 +264,5 @@
 }
 /*}}}*/
-/*FUNCTION UpdateFromInputs {{{1*/
+/*FUNCTION Tria::UpdateFromInputs {{{1*/
 void  Tria::UpdateFromInputs(void* vinputs){
 
@@ -332,5 +332,5 @@
 }
 /*}}}*/
-/*FUNCTION UpdateFromDakota {{{1*/
+/*FUNCTION Tria::UpdateFromDakota {{{1*/
 void  Tria::UpdateFromDakota(void* vinputs){
 
@@ -381,5 +381,5 @@
 
 /*Object functions*/
-/*FUNCTION ComputePressure {{{1*/
+/*FUNCTION Tria::ComputePressure {{{1*/
 void  Tria::ComputePressure(Vec pg){
 
@@ -418,5 +418,5 @@
 }
 /*}}}*/
-/*FUNCTION CostFunction {{{1*/
+/*FUNCTION Tria::CostFunction {{{1*/
 double Tria::CostFunction(void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -534,5 +534,5 @@
 }
 /*}}}*/
-/*FUNCTION CreateKMatrix {{{1*/
+/*FUNCTION Tria::CreateKMatrix {{{1*/
 
 void  Tria::CreateKMatrix(Mat Kgg,void* inputs,int analysis_type,int sub_analysis_type){
@@ -579,5 +579,5 @@
 }
 /*}}}*/
-/*FUNCTION CreateKMatrixBalancedthickness {{{1*/
+/*FUNCTION Tria::CreateKMatrixBalancedthickness {{{1*/
 void  Tria::CreateKMatrixBalancedthickness(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -792,5 +792,5 @@
 }
 /*}}}*/
-/*FUNCTION CreateKMatrixBalancedvelocities {{{1*/
+/*FUNCTION Tria::CreateKMatrixBalancedvelocities {{{1*/
 void  Tria::CreateKMatrixBalancedvelocities(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -1014,5 +1014,5 @@
 }
 /*}}}*/
-/*FUNCTION CreateKMatrixDiagnosticHoriz {{{1*/
+/*FUNCTION Tria::CreateKMatrixDiagnosticHoriz {{{1*/
 
 void  Tria::CreateKMatrixDiagnosticHoriz(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
@@ -1243,5 +1243,5 @@
 }
 /*}}}*/
-/*FUNCTION CreateKMatrixDiagnosticHorizFriction {{{1*/
+/*FUNCTION Tria::CreateKMatrixDiagnosticHorizFriction {{{1*/
 void  Tria::CreateKMatrixDiagnosticHorizFriction(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -1422,5 +1422,5 @@
 }	
 /*}}}*/
-/*FUNCTION CreateKMatrixDiagnosticSurfaceVert {{{1*/
+/*FUNCTION Tria::CreateKMatrixDiagnosticSurfaceVert {{{1*/
 void  Tria::CreateKMatrixDiagnosticSurfaceVert(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -1560,5 +1560,5 @@
 }
 /*}}}*/
-/*FUNCTION CreateKMatrixMelting {{{1*/
+/*FUNCTION Tria::CreateKMatrixMelting {{{1*/
 void  Tria::CreateKMatrixMelting(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -1656,5 +1656,5 @@
 }
 /*}}}*/
-/*FUNCTION CreateKMatrixPrognostic {{{1*/
+/*FUNCTION Tria::CreateKMatrixPrognostic {{{1*/
 void  Tria::CreateKMatrixPrognostic(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -1885,5 +1885,5 @@
 }
 /*}}}*/
-/*FUNCTION CreateKMatrixPrognostic2 {{{1*/
+/*FUNCTION Tria::CreateKMatrixPrognostic2 {{{1*/
 void  Tria::CreateKMatrixPrognostic2(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -2037,5 +2037,5 @@
 }
 /*}}}*/
-/*FUNCTION CreateKMatrixSlopeCompute {{{1*/
+/*FUNCTION Tria::CreateKMatrixSlopeCompute {{{1*/
 
 void  Tria::CreateKMatrixSlopeCompute(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
@@ -2130,5 +2130,5 @@
 }
 /*}}}*/
-/*FUNCTION CreateKMatrixThermal {{{1*/
+/*FUNCTION Tria::CreateKMatrixThermal {{{1*/
 void  Tria::CreateKMatrixThermal(Mat Kgg,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -2242,5 +2242,5 @@
 }
 /*}}}*/
-/*FUNCTION CreatePVector {{{1*/
+/*FUNCTION Tria::CreatePVector {{{1*/
 void  Tria::CreatePVector(Vec pg,void* inputs,int analysis_type,int sub_analysis_type){
 	
@@ -2284,5 +2284,5 @@
 }
 /*}}}*/
-/*FUNCTION CreatePVectorBalancedthickness {{{1*/
+/*FUNCTION Tria::CreatePVectorBalancedthickness {{{1*/
 void  Tria::CreatePVectorBalancedthickness(Vec pg ,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -2387,5 +2387,5 @@
 }
 /*}}}*/
-/*FUNCTION CreatePVectorBalancedvelocities {{{1*/
+/*FUNCTION Tria::CreatePVectorBalancedvelocities {{{1*/
 void  Tria::CreatePVectorBalancedvelocities(Vec pg ,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -2494,5 +2494,5 @@
 }
 /*}}}*/
-/*FUNCTION CreatePVectorDiagnosticBaseVert {{{1*/
+/*FUNCTION Tria::CreatePVectorDiagnosticBaseVert {{{1*/
 void  Tria::CreatePVectorDiagnosticBaseVert(Vec pg,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -2621,5 +2621,5 @@
 }
 /*}}}*/
-/*FUNCTION CreatePVectorDiagnosticHoriz {{{1*/
+/*FUNCTION Tria::CreatePVectorDiagnosticHoriz {{{1*/
 void Tria::CreatePVectorDiagnosticHoriz( Vec pg, void* vinputs, int analysis_type,int sub_analysis_type){
 
@@ -2802,5 +2802,5 @@
 }
 /*}}}*/
-/*FUNCTION CreatePVectorPrognostic {{{1*/
+/*FUNCTION Tria::CreatePVectorPrognostic {{{1*/
 void  Tria::CreatePVectorPrognostic(Vec pg ,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -2911,5 +2911,5 @@
 }
 /*}}}*/
-/*FUNCTION CreatePVectorPrognostic2 {{{1*/
+/*FUNCTION Tria::CreatePVectorPrognostic2 {{{1*/
 void  Tria::CreatePVectorPrognostic2(Vec pg ,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -3019,5 +3019,5 @@
 }
 /*}}}*/
-/*FUNCTION CreatePVectorSlopeCompute {{{1*/
+/*FUNCTION Tria::CreatePVectorSlopeCompute {{{1*/
 
 void Tria::CreatePVectorSlopeCompute( Vec pg, void* vinputs, int analysis_type,int sub_analysis_type){
@@ -3124,5 +3124,5 @@
 }
 /*}}}*/
-/*FUNCTION CreatePVectorThermalShelf {{{1*/
+/*FUNCTION Tria::CreatePVectorThermalShelf {{{1*/
 void Tria::CreatePVectorThermalShelf( Vec pg, void* vinputs, int analysis_type,int sub_analysis_type){
 
@@ -3247,5 +3247,5 @@
 }
 /*}}}*/
-/*FUNCTION CreatePVectorThermalSheet {{{1*/
+/*FUNCTION Tria::CreatePVectorThermalSheet {{{1*/
 void Tria::CreatePVectorThermalSheet( Vec pg, void* vinputs, int analysis_type,int sub_analysis_type){
 
@@ -3402,5 +3402,5 @@
 }
 /*}}}*/
-/*FUNCTION Du {{{1*/
+/*FUNCTION Tria::Du {{{1*/
 void Tria::Du(Vec du_g,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -3679,5 +3679,5 @@
 }
 /*}}}*/
-/*FUNCTION Enum {{{1*/
+/*FUNCTION Tria::Enum {{{1*/
 int Tria::Enum(void){
 
@@ -3686,5 +3686,5 @@
 }
 /*}}}*/
-/*FUNCTION GetArea {{{1*/
+/*FUNCTION Tria::GetArea {{{1*/
 double Tria::GetArea(void){
 
@@ -3709,5 +3709,5 @@
 }
 /*}}}*/
-/*FUNCTION GetAreaCoordinate {{{1*/
+/*FUNCTION Tria::GetAreaCoordinate {{{1*/
 double Tria::GetAreaCoordinate(double x, double y, int which_one){
 
@@ -3747,5 +3747,5 @@
 }
 /*}}}*/
-/*FUNCTION GetB {{{1*/
+/*FUNCTION Tria::GetB {{{1*/
 
 void Tria::GetB(double* B, double* xyz_list, double* gauss_l1l2l3){
@@ -3789,5 +3789,5 @@
 }
 /*}}}*/
-/*FUNCTION GetB_prog {{{1*/
+/*FUNCTION Tria::GetB_prog {{{1*/
 
 void Tria::GetB_prog(double* B_prog, double* xyz_list, double* gauss_l1l2l3){
@@ -3826,5 +3826,5 @@
 }
 /*}}}*/
-/*FUNCTION GetBedList {{{1*/
+/*FUNCTION Tria::GetBedList {{{1*/
 void  Tria::GetBedList(double* bed_list){
 
@@ -3834,5 +3834,5 @@
 }
 /*}}}*/
-/*FUNCTION GetBPrime {{{1*/
+/*FUNCTION Tria::GetBPrime {{{1*/
 
 void Tria::GetBPrime(double* Bprime, double* xyz_list, double* gauss_l1l2l3){
@@ -3871,5 +3871,5 @@
 }
 /*}}}*/
-/*FUNCTION GetBPrime_prog {{{1*/
+/*FUNCTION Tria::GetBPrime_prog {{{1*/
 
 void Tria::GetBPrime_prog(double* Bprime_prog, double* xyz_list, double* gauss_l1l2l3){
@@ -3903,5 +3903,5 @@
 }
 /*}}}*/
-/*FUNCTION GetDofList {{{1*/
+/*FUNCTION Tria::GetDofList {{{1*/
 void  Tria::GetDofList(int* doflist,int* pnumberofdofspernode){
 
@@ -3928,5 +3928,5 @@
 }
 /*}}}*/
-/*FUNCTION GetDofList1 {{{1*/
+/*FUNCTION Tria::GetDofList1 {{{1*/
 void  Tria::GetDofList1(int* doflist){
 
@@ -3944,8 +3944,8 @@
 }
 /*}}}*/
-/*FUNCTION GetId {{{1*/
+/*FUNCTION Tria::GetId {{{1*/
 int    Tria::GetId(){ return id; }
 /*}}}*/
-/*FUNCTION GetJacobian {{{1*/
+/*FUNCTION Tria::GetJacobian {{{1*/
 void Tria::GetJacobian(double* J, double* xyz_list,double* gauss_l1l2l3){
 
@@ -3971,5 +3971,5 @@
 }
 /*}}}*/
-/*FUNCTION GetJacobianDeterminant2d {{{1*/
+/*FUNCTION Tria::GetJacobianDeterminant2d {{{1*/
 void Tria::GetJacobianDeterminant2d(double*  Jdet, double* xyz_list,double* gauss_l1l2l3){
 
@@ -3996,5 +3996,5 @@
 }
 /*}}}*/
-/*FUNCTION GetJacobianDeterminant3d {{{1*/
+/*FUNCTION Tria::GetJacobianDeterminant3d {{{1*/
 void Tria::GetJacobianDeterminant3d(double*  Jdet, double* xyz_list,double* gauss_l1l2l3){
 
@@ -4023,5 +4023,5 @@
 }
 /*}}}*/
-/*FUNCTION GetJacobianInvert {{{1*/
+/*FUNCTION Tria::GetJacobianInvert {{{1*/
 void Tria::GetJacobianInvert(double*  Jinv, double* xyz_list,double* gauss_l1l2l3){
 
@@ -4038,5 +4038,5 @@
 }
 /*}}}*/
-/*FUNCTION GetL {{{1*/
+/*FUNCTION Tria::GetL {{{1*/
 
 void Tria::GetL(double* L, double* xyz_list, double* gauss_l1l2l3,int numdof){
@@ -4087,5 +4087,5 @@
 }
 /*}}}*/
-/*FUNCTION GetMatPar {{{1*/
+/*FUNCTION Tria::GetMatPar {{{1*/
 void* Tria::GetMatPar(){
 
@@ -4099,10 +4099,10 @@
 }
 /*}}}*/
-/*FUNCTION GetName {{{1*/
+/*FUNCTION Tria::GetName {{{1*/
 char* Tria::GetName(void){
 	return "tria";
 }
 /*}}}*/
-/*FUNCTION GetNodalFunctions {{{1*/
+/*FUNCTION Tria::GetNodalFunctions {{{1*/
 void Tria::GetNodalFunctions(double* l1l2l3, double* gauss_l1l2l3){
 	
@@ -4120,5 +4120,5 @@
 }
 /*}}}*/
-/*FUNCTION GetNodalFunctionsDerivatives {{{1*/
+/*FUNCTION Tria::GetNodalFunctionsDerivatives {{{1*/
 void Tria::GetNodalFunctionsDerivatives(double* dh1dh3,double* xyz_list, double* gauss_l1l2l3){
 	
@@ -4153,5 +4153,5 @@
 }
 /*}}}*/
-/*FUNCTION GetNodalFunctionsDerivativesReference {{{1*/
+/*FUNCTION Tria::GetNodalFunctionsDerivativesReference {{{1*/
 void Tria::GetNodalFunctionsDerivativesReference(double* dl1dl3,double* gauss_l1l2l3){
 	
@@ -4176,5 +4176,5 @@
 }
 /*}}}*/
-/*FUNCTION GetNodes {{{1*/
+/*FUNCTION Tria::GetNodes {{{1*/
 void  Tria::GetNodes(void** vpnodes){
 	int i;
@@ -4195,10 +4195,10 @@
 }
 /*}}}*/
-/*FUNCTION GetOnBed {{{1*/
+/*FUNCTION Tria::GetOnBed {{{1*/
 int Tria::GetOnBed(){
 	return this->properties.onbed;
 }
 /*}}}*/
-/*FUNCTION GetParameterDerivativeValue {{{1*/
+/*FUNCTION Tria::GetParameterDerivativeValue {{{1*/
 void Tria::GetParameterDerivativeValue(double* p, double* plist,double* xyz_list, double* gauss_l1l2l3){
 	 
@@ -4223,5 +4223,5 @@
 }
 /*}}}*/
-/*FUNCTION GetParameterValue {{{1*/
+/*FUNCTION Tria::GetParameterValue {{{1*/
 void Tria::GetParameterValue(double* pp, double* plist, double* gauss_l1l2l3){
 	
@@ -4243,10 +4243,10 @@
 }
 /*}}}*/
-/*FUNCTION GetShelf {{{1*/
+/*FUNCTION Tria::GetShelf {{{1*/
 int   Tria::GetShelf(){
 	return this->properties.shelf;
 }
 /*}}}*/
-/*FUNCTION GetStrainRate {{{1*/
+/*FUNCTION Tria::GetStrainRate {{{1*/
 void Tria::GetStrainRate(double* epsilon, double* velocity, double* xyz_list, double* gauss_l1l2l3){
 
@@ -4267,5 +4267,5 @@
 }
 /*}}}*/
-/*FUNCTION GetThicknessList {{{1*/
+/*FUNCTION Tria::GetThicknessList {{{1*/
 void Tria::GetThicknessList(double* thickness_list){
 
@@ -4274,5 +4274,5 @@
 }
 /*}}}*/
-/*FUNCTION Gradj {{{1*/
+/*FUNCTION Tria::Gradj {{{1*/
 void  Tria::Gradj(Vec grad_g,void* inputs,int analysis_type,int sub_analysis_type,char* control_type){
 
@@ -4289,5 +4289,5 @@
 }
 /*}}}*/
-/*FUNCTION GradjB{{{1*/
+/*FUNCTION Tria::GradjB{{{1*/
 void  Tria::GradjB(Vec grad_g,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -4475,5 +4475,5 @@
 }
 /*}}}*/
-/*FUNCTION GradjDrag {{{1*/
+/*FUNCTION Tria::GradjDrag {{{1*/
 void  Tria::GradjDrag(Vec grad_g,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -4705,5 +4705,5 @@
 }
 /*}}}*/
-/*FUNCTION GradjDragStokes {{{1*/
+/*FUNCTION Tria::GradjDragStokes {{{1*/
 void  Tria::GradjDragStokes(Vec grad_g,void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -4951,5 +4951,5 @@
 }
 /*}}}*/
-/*FUNCTION MassFlux {{{1*/
+/*FUNCTION Tria::MassFlux {{{1*/
 double Tria::MassFlux( double* segment,double* ug){
 
@@ -5029,5 +5029,5 @@
 }
 /*}}}*/
-/*FUNCTION Misfit {{{1*/
+/*FUNCTION Tria::Misfit {{{1*/
 double Tria::Misfit(void* vinputs,int analysis_type,int sub_analysis_type){
 
@@ -5239,5 +5239,5 @@
 }
 /*}}}*/
-/*FUNCTION MyRank {{{1*/
+/*FUNCTION Tria::MyRank {{{1*/
 int    Tria::MyRank(void){ 
 	extern int my_rank;
@@ -5245,5 +5245,5 @@
 }
 /*}}}*/
-/*FUNCTION Tria::SetClone {{{1*/
+/*FUNCTION Tria::Tria::SetClone {{{1*/
 void  Tria::SetClone(int* minranks){
 
@@ -5251,5 +5251,5 @@
 }
 /*}}}1*/
-/*FUNCTION SurfaceNormal{{{1*/
+/*FUNCTION Tria::SurfaceNormal{{{1*/
 
 void Tria::SurfaceNormal(double* surface_normal, double xyz_list[3][3]){
@@ -5278,5 +5278,5 @@
 }
 /*}}}*/
-/*FUNCTION SurfaceArea {{{1*/
+/*FUNCTION Tria::SurfaceArea {{{1*/
 double Tria::SurfaceArea(void* vinputs,int analysis_type,int sub_analysis_type){
 
