From 02e8e53b27e3bd05ebd92303ee35f44078cba0fd Mon Sep 17 00:00:00 2001 From: kmo Date: Sun, 17 Apr 2011 16:43:30 +0000 Subject: [PATCH] Finite deformation test model updates git-svn-id: http://svn.sintef.no/trondheim/IFEM/trunk@914 e10b68d5-8a6e-419e-a041-bce267b0401d --- .../FiniteDefElasticity/Test/Necking-Q2P1.inp | 1 + .../FiniteDefElasticity/Test/Necking-Q2Q1.inp | 1 + Apps/FiniteDefElasticity/Test/Necking-p2.inp | 44 +++++++++++++++++++ Apps/FiniteDefElasticity/Test/run.sh | 10 +++-- Apps/FiniteDefElasticity/Test/strip2D.g2 | 21 +++++++++ src/SIM/NonLinSIM.C | 3 +- src/SIM/SIMbase.C | 10 ++--- 7 files changed, 81 insertions(+), 9 deletions(-) create mode 120000 Apps/FiniteDefElasticity/Test/Necking-Q2P1.inp create mode 120000 Apps/FiniteDefElasticity/Test/Necking-Q2Q1.inp create mode 100644 Apps/FiniteDefElasticity/Test/Necking-p2.inp create mode 100644 Apps/FiniteDefElasticity/Test/strip2D.g2 diff --git a/Apps/FiniteDefElasticity/Test/Necking-Q2P1.inp b/Apps/FiniteDefElasticity/Test/Necking-Q2P1.inp new file mode 120000 index 00000000..555e7319 --- /dev/null +++ b/Apps/FiniteDefElasticity/Test/Necking-Q2P1.inp @@ -0,0 +1 @@ +Necking-p2.inp \ No newline at end of file diff --git a/Apps/FiniteDefElasticity/Test/Necking-Q2Q1.inp b/Apps/FiniteDefElasticity/Test/Necking-Q2Q1.inp new file mode 120000 index 00000000..555e7319 --- /dev/null +++ b/Apps/FiniteDefElasticity/Test/Necking-Q2Q1.inp @@ -0,0 +1 @@ +Necking-p2.inp \ No newline at end of file diff --git a/Apps/FiniteDefElasticity/Test/Necking-p2.inp b/Apps/FiniteDefElasticity/Test/Necking-p2.inp new file mode 100644 index 00000000..c978bc27 --- /dev/null +++ b/Apps/FiniteDefElasticity/Test/Necking-p2.inp @@ -0,0 +1,44 @@ +# $Id$ +# Necking of an elasto-plastic tension strip. +# 2-patch model, 5x10 biquadratic Spline elements. + +PATCHFILE strip2D.g2 + +RAISEORDER 2 +# patch ru rv + 1 1 1 + 2 1 1 + +REFINE 2 +# patch ru rv + 1 4 4 + 2 4 4 + +TOPOLOGY 1 +# master edge slave edge + 1 4 2 3 + +CONSTRAINTS 4 +# patch edge code + 1 1 1 + 2 1 1 + 1 3 2 + 2 4 2 1.0 1.0 + +PLASTIC 1 2 3 4 5 6 7 8 9 10 11 +# code Emod nu chterm rho Hiso Hkin yield Y0 Yinf beta istrt + 0 206.9 0.29 0.0 0.0 0.12924 0.0 1.0 0.45 0.715 16.93 1 + +TIME_STEPPING +# start stop dt + 0.0 5.0 0.01 + +NONLINEAR_SOLVER +# maxit convTol + 15 1.0e-16 + +RESULTPOINTS 2 +# patch u v + 1 1.0 0.0 + 2 0.0 1.0 + 2 1.0 1.0 diff --git a/Apps/FiniteDefElasticity/Test/run.sh b/Apps/FiniteDefElasticity/Test/run.sh index 38343ad6..96b31138 100755 --- a/Apps/FiniteDefElasticity/Test/run.sh +++ b/Apps/FiniteDefElasticity/Test/run.sh @@ -51,12 +51,16 @@ run Cyl-p2.inp -UL -vtf 1 -nGauss 3 -nviz 3 run Cyl-p3.inp -UL -vtf 1 -nGauss 4 -nviz 3 run Cyl-p4.inp -UL -vtf 1 -nGauss 4 -nviz 3 -# 2D Rubber block, hyperelastic Neo-Hooke material. -# - mixed formulation with internal pressure modes. +# 2D Rubber block, hyperelastic Neo-Hooke material +# - mixed formulation with internal pressure modes run FBlock-h9x5-Q2P1.inp -2Dpstrain -MX 1 -nGauss 3 -vtf 1 -lagrange run FBlock-h8x3-Q3P2.inp -2Dpstrain -MX 2 -nGauss 4 -vtf 1 -lagrange run FBlock-h8x2-Q4P3.inp -2Dpstrain -MX 3 -nGauss 5 -vtf 1 -lagrange -# - mixed formulation with continuous pressure field. +# - mixed formulation with continuous pressure field run FBlock-h9x5-Q2Q1.inp -2Dpstrain -mixed -nGauss 3 -vtf 1 -lagrange run FBlock-h8x3-Q3Q2.inp -2Dpstrain -mixed -nGauss 4 -vtf 1 -lagrange run FBlock-h8x2-Q4Q3.inp -2Dpstrain -mixed -nGauss 5 -vtf 1 -lagrange + +# Tension of a 2D elasto-plastic strip +run Necking-Q2P1.inp -2D -MX 1 -vtf 1 -nviz 3 -nGauss 3 -outPrec 6 +run Necking-Q2Q1.inp -2D -mixed -vtf 1 -nviz 3 -nGauss 3 -outPrec 6 diff --git a/Apps/FiniteDefElasticity/Test/strip2D.g2 b/Apps/FiniteDefElasticity/Test/strip2D.g2 new file mode 100644 index 00000000..f83978f8 --- /dev/null +++ b/Apps/FiniteDefElasticity/Test/strip2D.g2 @@ -0,0 +1,21 @@ +200 1 0 0 +2 0 +2 2 +0 0 1 1 +2 2 +0 0 1 1 +0.0 0.0 +6.297566 0.0 +0.0 6.413 +6.38524 6.413 + +200 1 0 0 +2 0 +2 2 +0 0 1 1 +2 2 +0 0 1 1 +0.0 6.413 +6.38524 6.413 +0.0 26.667 +6.413 26.667 diff --git a/src/SIM/NonLinSIM.C b/src/SIM/NonLinSIM.C index 0f10326e..771dcfb8 100644 --- a/src/SIM/NonLinSIM.C +++ b/src/SIM/NonLinSIM.C @@ -355,7 +355,8 @@ bool NonLinSIM::solutionNorms (const TimeDomain& time, const char* compName, std::cout <<"\n Total reaction forces: Sum(R) ="; for (size_t i = 1; i < RF.size(); i++) std::cout <<" "<< RF[i]; - std::cout <<"\n "<< compName <<"*reactions: (R,u) = "<< RF.front(); + if (RF.front() != 0.0) + std::cout <<"\n "<< compName <<"*reactions: (R,u) = "<< RF.front(); } if (gNorm.size() > 0) { diff --git a/src/SIM/SIMbase.C b/src/SIM/SIMbase.C index 70618910..e84315ad 100644 --- a/src/SIM/SIMbase.C +++ b/src/SIM/SIMbase.C @@ -311,8 +311,9 @@ bool SIMbase::preprocess (const std::vector& ignoredPatches, bool fixDup) else { p->npar = myModel[pid-1]->getNoParamDim(); - std::cout <<"\nResult point #"<< 1+(int)(p-myPoints.begin()) - <<": patch #"<< p->patch; + int ipt = 1 + (int)(p-myPoints.begin()); + if (ipt == 1) std::cout <<'\n'; + std::cout <<"Result point #"<< ipt <<": patch #"<< p->patch; switch (p->npar) { case 1: std::cout <<" u="; break; case 2: std::cout <<" (u,v)=("; break; @@ -323,11 +324,10 @@ bool SIMbase::preprocess (const std::vector& ignoredPatches, bool fixDup) std::cout <<','<< p->par[c]; if (p->npar > 1) std::cout <<')'; if (p->inod > 0) std::cout <<", node #"<< p->inod; - std::cout <<", X = "<< p->X; + std::cout <<", X = "<< p->X << std::endl; p++; } } - std::cout << std::endl; // Initialize data structures for the algebraic system #ifdef PARALLEL_PETSC @@ -1477,7 +1477,7 @@ bool SIMbase::dumpResults (const Vector& psol, double time, std::ostream& os, if (discretization == Spline) { - os <<" sol2 ="; + os <<"\n\t\tsol2 ="; for (k = 1; k <= sol2.rows(); k++) os << std::setw(flWidth) << sol2(k,j+1); }