[cig-commits] commit:
Mercurial
hg at geodynamics.org
Mon Nov 24 11:58:38 PST 2008
changeset: 65:28d99eb7b300
user: JulianGiordani
date: Fri Mar 28 02:51:49 2008 +0000
files: Utils/src/Operator.c
description:
Adding a new Operator for taking the Deviatoric part of a stress tensor.
diff -r ebc4430a6cbe -r 28d99eb7b300 Utils/src/Operator.c
--- a/Utils/src/Operator.c Thu Mar 20 09:18:32 2008 +0000
+++ b/Utils/src/Operator.c Fri Mar 28 02:51:49 2008 +0000
@@ -219,6 +219,30 @@ void Operator_SymmetricTensor_GetNegAver
*result = -1.0 * (*result) / self->dim ;
}
+void Operator_SymmetricTensor_MakeDeviatoric( void* operator, double* operand0, double* result ) {
+ Operator* self = (Operator*) operator;
+ double meanStress;
+
+ Operator_FirewallUnary( self );
+ Operator_FirewallResultDofs( self, self->operandDofs );
+
+ SymmetricTensor_GetTrace( operand0, self->dim, &meanStress );
+ meanStress = meanStress / self->dim ;
+
+ if( self->dim == 2 ) {
+ result[0] = operand0[0] - meanStress;
+ result[1] = operand0[1] - meanStress;
+ result[2] = operand0[2];
+ } else {
+ result[0] = operand0[0] - meanStress;
+ result[1] = operand0[1] - meanStress;
+ result[2] = operand0[2] - meanStress;
+ result[3] = operand0[3];
+ result[4] = operand0[4];
+ result[5] = operand0[5];
+ }
+}
+
void Operator_Tensor_GetNegAverageTrace( void* operator, double* operand0, double* result ) {
Operator* self = (Operator*) operator;
@@ -331,7 +355,7 @@ void Operator_Subtraction( void* operato
abort();
}
}
-
+
void Operator_ScalarMultiplication( void* operator, double* operand0, double* operand1, double* result ) {
Operator* self = (Operator*) operator;
@@ -494,6 +518,11 @@ Operator* Operator_NewFromName(
numberOfOperands = 1;
_carryOut = Operator_Tensor_GetNegAverageTrace;
}
+ else if ( ! strcasecmp( name, "SymmetricTensor_MakeDeviatoric" ) ){
+ resultDofs = operandDofs;
+ numberOfOperands = 1;
+ _carryOut = Operator_SymmetricTensor_MakeDeviatoric;
+ }
else if ( ! strcasecmp( name, "TakeFirstComponent" ) ) {
resultDofs = 1;
numberOfOperands = 1;
More information about the CIG-COMMITS
mailing list