Skip to content
Snippets Groups Projects
Select Git revision
  • 46941251b9ff07b462c04abd76e63e5061a1bb6e
  • master default
  • mooney-rivlin-zero
  • enable-linear-elasticity
  • releases/2.8
  • patrizio-convexity-test
  • relaxed-micromorphic-continuum
  • fix/comment
  • fix/mooney-rivlin-parameter
  • fix/hyperdual
  • feature/move-to-dune-functions-bases
  • releases/2.7
  • releases/2.6-1
  • releases/2.5-1
  • releases/2.4-1
  • releases/2.3-1
  • releases/2.2-1
  • releases/2.1-1
  • releases/2.0-1
  • subversion->git
20 results

viscoelast.cc

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    viscoelast.cc 13.61 KiB
    #include <config.h>
    
    #include <dune/common/bitsetvector.hh>
    #include <dune/common/configparser.hh>
    
    #include <dune/grid/uggrid.hh>
    #include <dune/grid/io/file/amirameshwriter.hh>
    #include <dune/grid/io/file/amirameshreader.hh>
    
    #include <dune/istl/io.hh>
    
    #include <dune/disc/operators/p1operator.hh>
    
    #include <dune/ag-common/sampleonbitfield.hh>
    #include <dune/ag-common/prolongboundarypatch.hh>
    #include <dune/ag-common/readbitfield.hh>
    #include <dune/ag-common/blockgsstep.hh>
    #include <dune/ag-common/multigridstep.hh>
    #include <dune/ag-common/transferoperators/compressedmultigridtransfer.hh>
    #include <dune/ag-common/iterativesolver.hh>
    #include <dune/ag-common/computestress.hh>
    #include <dune/ag-common/neumannassembler.hh>
    #include <dune/ag-common/norms/energynorm.hh>
    #include <dune/ag-common/hierarchicestimator.hh>
    #include <dune/disc/elasticity/linearelasticityassembler.hh>
    #include "src/viscoelasticassembler.hh"
    //#include <fstream>
    
    
    
    
    
    
    //Using Maxwell-Voigt consititutive law for viscoelastic materials : stress = C * strain + N * strain_rate
    //                                                                      where C    elasticitytensor
    //                                                                            N    viscositytensor
    
    
    
    // The grid dimension
    const int dim = 3;
    
    using namespace Dune;
    
    
    
    
    int main (int argc, char *argv[]) try
    	{
        	// Some types that I need
        	typedef BCRSMatrix<FieldMatrix<double, dim, dim> > OperatorType;
        	typedef BlockVector<FieldVector<double, dim> >     VectorType;
    
        	// parse data file
        	ConfigParser parameterSet;
        	parameterSet.parseFile("viscoelast.parset");
    
        	// read solver settings
        	const int minLevel         = parameterSet.get<int>("minLevel");
        	const int maxLevel         = parameterSet.get<int>("maxLevel");
        	const int numIt            = parameterSet.get<int>("numIt");
        	const int nu1              = parameterSet.get<int>("nu1");
        	const int nu2              = parameterSet.get<int>("nu2");
        	const int mu               = parameterSet.get<int>("mu");
        	const int baseIt           = parameterSet.get<int>("baseIt");
        	const double tolerance     = parameterSet.get<double>("tolerance");
        	const double baseTolerance = parameterSet.get<double>("baseTolerance");
        	const bool nestedIteration = parameterSet.get<int>("nestedIteration");
        	const bool paramBoundaries = parameterSet.get<int>("paramBoundaries");
        	const double timestep      = parameterSet.get<double>("timestep");