void _ConstitutiveMatrixCartesian_Init( ConstitutiveMatrixCartesian* self ) { self->rowSize = self->columnSize = StGermain_nSymmetricTensorVectorComponents( self->dim ); self->Dtilda_B = Memory_Alloc_2DArray( double, self->rowSize, self->dim, (Name)"D~ times B matrix" ); if( self->dim == 2 ) { self->_setValue = _ConstitutiveMatrixCartesian2D_SetValueInAllEntries; self->_setSecondViscosity = _ConstitutiveMatrixCartesian2D_SetSecondViscosity; self->_getViscosity = _ConstitutiveMatrixCartesian2D_GetIsotropicViscosity; self->_isotropicCorrection = _ConstitutiveMatrixCartesian2D_IsotropicCorrection; self->_assemble_D_B = _ConstitutiveMatrixCartesian2D_Assemble_D_B; self->_calculateStress = _ConstitutiveMatrixCartesian2D_CalculateStress; } else { self->_setValue = _ConstitutiveMatrixCartesian3D_SetValueInAllEntries; self->_setSecondViscosity = _ConstitutiveMatrixCartesian3D_SetSecondViscosity; self->_getViscosity = _ConstitutiveMatrixCartesian3D_GetIsotropicViscosity; self->_isotropicCorrection = _ConstitutiveMatrixCartesian3D_IsotropicCorrection; self->_assemble_D_B = _ConstitutiveMatrixCartesian3D_Assemble_D_B; self->_calculateStress = _ConstitutiveMatrixCartesian3D_CalculateStress; } /* store each particle's constitutiveMatrix */ if( self->storeConstitutiveMatrix ) assert(0); // this has been deprecated. check previous history if function is required. //ConstitutiveMatrixCartesian_SetupParticleStorage( self ); // set to true here, if non isotropic rheologies are use they should switch this to be false automatically self->isDiagonal=True; }
void _ViscousPenaltyConstMatrixCartesian_Init( ViscousPenaltyConstMatrixCartesian* self, double incompressibility_Penalty, Bool viscosityWeighting ) { self->rowSize = self->columnSize = StGermain_nSymmetricTensorVectorComponents( self->dim ); self->Dtilda_B = Memory_Alloc_2DArray( double, self->rowSize, self->dim, (Name)"D~ times B matrix" ); if( self->dim == 2 ) { self->_setValue = _ViscousPenaltyConstMatrixCartesian2D_SetValueInAllEntries; self->_setSecondViscosity = _ViscousPenaltyConstMatrixCartesian2D_SetSecondViscosity; self->_getViscosity = _ViscousPenaltyConstMatrixCartesian2D_GetIsotropicViscosity; self->_isotropicCorrection = _ViscousPenaltyConstMatrixCartesian2D_IsotropicCorrection; self->_assemble_D_B = _ViscousPenaltyConstMatrixCartesian2D_Assemble_D_B; self->_calculateStress = _ViscousPenaltyConstMatrixCartesian2D_CalculateStress; } else { self->_setValue = _ViscousPenaltyConstMatrixCartesian3D_SetValueInAllEntries; self->_setSecondViscosity = _ViscousPenaltyConstMatrixCartesian3D_SetSecondViscosity; self->_getViscosity = _ViscousPenaltyConstMatrixCartesian3D_GetIsotropicViscosity; self->_isotropicCorrection = _ViscousPenaltyConstMatrixCartesian3D_IsotropicCorrection; self->_assemble_D_B = _ViscousPenaltyConstMatrixCartesian3D_Assemble_D_B; self->_calculateStress = _ViscousPenaltyConstMatrixCartesian3D_CalculateStress; } self->incompressibility_Penalty = incompressibility_Penalty; self->viscosityWeighting = viscosityWeighting; /* store each particle's constitutiveMatrix */ if( self->storeConstitutiveMatrix ) ViscousPenaltyConstMatrixCartesian_SetupParticleStorage( self ); }
void _SPR_StrainRate_Init( SPR_StrainRate* self ) { /* initialise the fieldComponent count here */ self->fieldComponentCount = StGermain_nSymmetricTensorVectorComponents(self->dim); /* Setup basic pointers and functionPtrs that are specific to problem spec */ ContextEP_Append_AlwaysLast( self->context, "stokesEqn-execute", _SPR_StrainRate_Execute ); NameOfPatch = self->name; }