/* Creation implementation / Virtual constructor */
MatAssembly_NA__Fi__NB* _MatAssembly_NA__Fi__NB_New(  MATRIXASSEMBLYTERM_NA__NB__F_DEFARGS  )
{
   MatAssembly_NA__Fi__NB* self;

   /* Allocate memory */
   assert( _sizeOfSelf >= sizeof(MatAssembly_NA__Fi__NB) );
   self = (MatAssembly_NA__Fi__NB*) _StiffnessMatrixTerm_New(  STIFFNESSMATRIXTERM_PASSARGS  );

   /* Virtual info */

   return self;
}
/* Creation implementation / Virtual constructor */
LaplacianStiffnessMatrixTerm* _LaplacianStiffnessMatrixTerm_New(  LAPLACIANSTIFFNESSMATRIXTERM_DEFARGS  )
{
	LaplacianStiffnessMatrixTerm* self;
	
	/* Allocate memory */
	assert( _sizeOfSelf >= sizeof(LaplacianStiffnessMatrixTerm) );
	self = (LaplacianStiffnessMatrixTerm*) _StiffnessMatrixTerm_New(  STIFFNESSMATRIXTERM_PASSARGS  );
	
	/* Virtual info */
	
	return self;
}
/* Creation implementation / Virtual constructor */
MatrixAssemblyTerm_NA_i__NB_i__Fn* _MatrixAssemblyTerm_NA_i__NB_i__Fn_New(  MATRIXASSEMBLYTERM_NA_I__NB_I__FN_DEFARGS  )
{
    MatrixAssemblyTerm_NA_i__NB_i__Fn* self;

    /* Allocate memory */
    assert( _sizeOfSelf >= sizeof(MatrixAssemblyTerm_NA_i__NB_i__Fn) );
    self = (MatrixAssemblyTerm_NA_i__NB_i__Fn*) _StiffnessMatrixTerm_New(  STIFFNESSMATRIXTERM_PASSARGS  );

    /* Virtual info */
    self->cppdata = (void*) new MatrixAssemblyTerm_NA_i__NB_i__Fn_cppdata;

    return self;
}
/* Creation implementation / Virtual constructor */
MatrixAssemblyTerm_NA__NB__Fn* _MatrixAssemblyTerm_NA__NB__Fn_New(  MATRIXASSEMBLYTERM_NA__NB__FN_DEFARGS  ) {
    MatrixAssemblyTerm_NA__NB__Fn* self;
    /* Allocate memory */
    assert( _sizeOfSelf >= sizeof(MatrixAssemblyTerm_NA__NB__Fn) );
    self = (MatrixAssemblyTerm_NA__NB__Fn*) _StiffnessMatrixTerm_New(  STIFFNESSMATRIXTERM_PASSARGS  );

/* Virtual info */
    self->cppdata = (void*) new MatrixAssemblyTerm_NA__NB__Fn_cppdata;
    self->max_nElNodes_col = 0;
    self->max_nElNodes_row = 0;
    self->Ni = NULL;
    self->Mi = NULL;
    self->geometryMesh = NULL;

    return self;
}
void* _StiffnessMatrixTerm_DefaultNew( Name name ) {
	/* Variables set in this function */
	SizeT                                                 _sizeOfSelf = sizeof(StiffnessMatrixTerm);
	Type                                                         type = StiffnessMatrixTerm_Type;
	Stg_Class_DeleteFunction*                                 _delete = _StiffnessMatrixTerm_Delete;
	Stg_Class_PrintFunction*                                   _print = _StiffnessMatrixTerm_Print;
	Stg_Class_CopyFunction*                                     _copy = _StiffnessMatrixTerm_Copy;
	Stg_Component_DefaultConstructorFunction*     _defaultConstructor = _StiffnessMatrixTerm_DefaultNew;
	Stg_Component_ConstructFunction*                       _construct = _StiffnessMatrixTerm_AssignFromXML;
	Stg_Component_BuildFunction*                               _build = _StiffnessMatrixTerm_Build;
	Stg_Component_InitialiseFunction*                     _initialise = _StiffnessMatrixTerm_Initialise;
	Stg_Component_ExecuteFunction*                           _execute = _StiffnessMatrixTerm_Execute;
	Stg_Component_DestroyFunction*                           _destroy = _StiffnessMatrixTerm_Destroy;
	StiffnessMatrixTerm_AssembleElementFunction*     _assembleElement = _StiffnessMatrixTerm_AssembleElement;

	/* Variables that are set to ZERO are variables that will be set either by the current _New function or another parent _New function further up the hierachy */
	AllocationType  nameAllocationType = NON_GLOBAL /* default value NON_GLOBAL */;

	return _StiffnessMatrixTerm_New(  STIFFNESSMATRIXTERM_PASSARGS  );
}