StiffnessMatrixTerm* StiffnessMatrixTerm_New(
		Name                                                 name,
		FiniteElementContext*                                context,
		StiffnessMatrix*                                     stiffnessMatrix,
		Swarm*                                               integrationSwarm,
		Stg_Component*                                       extraInfo )		
{
	StiffnessMatrixTerm* self = (StiffnessMatrixTerm*) _StiffnessMatrixTerm_DefaultNew( name );

	_StiffnessMatrixTerm_Init( self, context, stiffnessMatrix, integrationSwarm, extraInfo );

	return self;
}
LaplacianStiffnessMatrixTerm* LaplacianStiffnessMatrixTerm_New( 
	Name							name,
	FiniteElementContext*	context,
	StiffnessMatrix*			stiffnessMatrix,
	Swarm*						integrationSwarm )
{
	LaplacianStiffnessMatrixTerm* self = (LaplacianStiffnessMatrixTerm*) _LaplacianStiffnessMatrixTerm_DefaultNew( name );

	self->isConstructed = False;	
	_StiffnessMatrixTerm_Init( self, context, stiffnessMatrix, integrationSwarm, NULL );
	_LaplacianStiffnessMatrixTerm_Init( self );

	return self;
}
void _StiffnessMatrixTerm_AssignFromXML( void* stiffnessMatrixTerm, Stg_ComponentFactory* cf, void* data ) {
	StiffnessMatrixTerm*       self               = (StiffnessMatrixTerm*)stiffnessMatrixTerm;
	Swarm*                     swarm              = NULL;
	Stg_Component*             extraInfo;
	StiffnessMatrix*           stiffnessMatrix;
   FiniteElementContext*      context;
   
	context = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Context", FiniteElementContext, False, data );
	if( !context  )
		context = Stg_ComponentFactory_ConstructByName( cf, (Name)"context", FiniteElementContext, False, data  );

	stiffnessMatrix = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"StiffnessMatrix", StiffnessMatrix, False, data  ) ;
	swarm           = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Swarm", Swarm, True, data  ) ;
	extraInfo       = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"ExtraInfo", Stg_Component, False, data  );

	_StiffnessMatrixTerm_Init( self, context, stiffnessMatrix, swarm, extraInfo );
}
Пример #4
0
Matrix_NaiNbj* Matrix_NaiNbj_New( 
		Name                                                name,
		StiffnessMatrix*                                    stiffnessMatrix,
		Swarm*                                              swarm,
		Dimension_Index                                     dim,
		FiniteElementContext*                               context,
		double                                              incompressibility_Penalty,
		Bool 											    viscosityWeighting )
{
	Matrix_NaiNbj* self = (Matrix_NaiNbj*) _Matrix_NaiNbj_DefaultNew( name );

   _StiffnessMatrixTerm_Init( self, context, stiffnessMatrix, swarm, NULL );
   _ConstitutiveMatrix_Init( (ConstitutiveMatrix*)self, dim, False, True );
   _Matrix_NaiNbj_Init( self, incompressibility_Penalty, viscosityWeighting );
   self->isConstructed = True;

	return self;
}
ViscousPenaltyConstMatrixCartesian* ViscousPenaltyConstMatrixCartesian_New( 
		Name                                                name,
		StiffnessMatrix*                                    stiffnessMatrix,
		Swarm*                                              swarm,
		Dimension_Index                                     dim,
		FiniteElementContext*                               context,
		Materials_Register*                                 materials_Register,
		double                                              incompressibility_Penalty,
		Bool 											    viscosityWeighting )
{
	ViscousPenaltyConstMatrixCartesian* self = (ViscousPenaltyConstMatrixCartesian*) _ViscousPenaltyConstMatrixCartesian_DefaultNew( name );

   _StiffnessMatrixTerm_Init( self, context, stiffnessMatrix, swarm, NULL );
#ifndef PDE
   _ConstitutiveMatrix_Init( (ConstitutiveMatrix*)self, dim, False, True );
#else /* PDE_Rework compatibility hack */
   ConstitutiveMatrix_InitAll( (ConstitutiveMatrix*)self, swarm, dim, NULL, materials_Register, NULL );
#endif
   _ViscousPenaltyConstMatrixCartesian_Init( self, incompressibility_Penalty, viscosityWeighting );
   self->isConstructed = True;

	return self;
}