diff --git a/cosserat-continuum.cc b/cosserat-continuum.cc index 37d059f1e8759d42632c08be1148c9ba9f3f8701..c07af92a5d20250e7342a982eee8e10d1fc5908a 100644 --- a/cosserat-continuum.cc +++ b/cosserat-continuum.cc @@ -45,6 +45,7 @@ const int blocksize = TargetSpace::TangentVector::dimension; using namespace Dune; #if 0 +// Dirichlet boundary data for the shear/wrinkling example void dirichletValues(const FieldVector<double,dim>& in, FieldVector<double,3>& out, double homotopy) { @@ -52,7 +53,8 @@ void dirichletValues(const FieldVector<double,dim>& in, FieldVector<double,3>& o for (int i=0; i<dim; i++) out[i] = in[i]; - out[1] += homotopy; + if (out[1] > 1-1e-3) + out[0] += homotopy; } #endif void dirichletValues(const FieldVector<double,dim>& in, FieldVector<double,3>& out, @@ -179,6 +181,13 @@ int main (int argc, char *argv[]) try if (vIt->geometry().corner(0)[0] > upper[0]-1e-3 ) neumannNodes[grid->leafIndexSet().index(*vIt)][0] = true; #endif +#if 0 // Boundary conditions for the shearing/wrinkling example + if (vIt->geometry().corner(0)[1] < 1e-3 or vIt->geometry().corner(0)[1] > upper[1]-1e-3 ) { + // Only translation dofs are Dirichlet + for (int j=0; j<3; j++) + dirichletNodes[grid->leafIndexSet().index(*vIt)][j] = true; + } +#endif #if 0 // Boundary conditions for the twisted-strip example if (vIt->geometry().corner(0)[0] < lower[0]+1e-3 or vIt->geometry().corner(0)[0] > upper[0]-1e-3 ) { // Only translation dofs are Dirichlet diff --git a/cosserat-continuum.parset b/cosserat-continuum.parset index 2a2ea8b6eb8351725c1d6b6d9b0b8aa3f570f50e..9de24ba26f703b071496acf053e7a6587e2f5104 100644 --- a/cosserat-continuum.parset +++ b/cosserat-continuum.parset @@ -1,5 +1,5 @@ # Number of grid levels -numLevels = 1 +numLevels = 3 # Number of homotopy steps for the Dirichlet boundary conditions numHomotopySteps = 1 @@ -42,50 +42,23 @@ instrumented = 0 ############################ -# Parameters for the twisted 10x1 strip -#[materialParameters] -# -## shell thickness -#thickness = 0.05 -# -## Lame parameters -## corresponds to E = 1e6, nu=0.3 -#mu = 3.8462e+05 -#lambda = 2.7149e+05 -# -## Cosserat couple modulus -#mu_c = 0 -##mu_c = 3.8462e+05 -# -## Length scale parameter -#L_c = 0.1 -# -## Curvature exponent -#q = 2 -# -## Shear correction factor -#kappa = 1 -# -#[] - - -# For the Wriggers L-shape example + Parameters for the twisted 10x1 strip [materialParameters] # shell thickness -thickness = 0.6 +thickness = 0.05 # Lame parameters -# corresponds to E = 71240 N/mm^2, nu=0.31 -mu = 2.7191e+04 -lambda = 4.4364e+04 +# corresponds to E = 1e6, nu=0.3 +mu = 3.8462e+05 +lambda = 2.7149e+05 # Cosserat couple modulus mu_c = 0 -#mu_c = 2.7191e+04 +#mu_c = 3.8462e+05 # Length scale parameter -L_c = 10 +L_c = 0.0002 # Curvature exponent q = 2 @@ -95,15 +68,42 @@ kappa = 1 [] + +## For the Wriggers L-shape example +#[materialParameters] +# +## shell thickness +#thickness = 0.6 +# +## Lame parameters +## corresponds to E = 71240 N/mm^2, nu=0.31 +#mu = 2.7191e+04 +#lambda = 4.4364e+04 +# +## Cosserat couple modulus +#mu_c = 0 +##mu_c = 2.7191e+04 +# +## Length scale parameter +#L_c = 10 +# +## Curvature exponent +#q = 2 +# +## Shear correction factor +#kappa = 1 +# +#[] + ### Neumann values, if needed neumannValues = -1e3 0 0 -structuredGrid = false +structuredGrid = true lower = 0 0 -upper = 10 1 -elements = 10 1 +upper = 5 1 +elements = 5 1 # Wriggers L-shape path = /home/sander/data/shells/wriggers_L_shape/