NuTo
Numerics Tool
Functions
GradientDamageCalibration.cpp File Reference
#include <iostream>
#include <fstream>
#include <boost/math/tools/roots.hpp>
#include "nuto/math/EigenIO.h"
#include "nuto/math/EigenCompanion.h"
#include "nuto/mechanics/integrands/GradientDamage.h"
#include "nuto/mechanics/constitutive/damageLaws/DamageLawExponential.h"
#include "nuto/mechanics/mesh/UnitMeshFem.h"
#include "nuto/mechanics/mesh/MeshFemDofConvert.h"
#include "nuto/mechanics/interpolation/InterpolationTrussLobatto.h"
#include "nuto/mechanics/integrationtypes/IntegrationTypeTensorProduct.h"
#include "nuto/mechanics/tools/CellStorage.h"
#include "nuto/mechanics/tools/TimeDependentProblem.h"
#include "nuto/mechanics/tools/QuasistaticSolver.h"
#include "nuto/mechanics/tools/AdaptiveSolve.h"
#include "nuto/mechanics/tools/GlobalFractureEnergyIntegrator.h"
#include "nuto/mechanics/constraints/ConstraintCompanion.h"

Functions

template<typename TGdm >
double GlobalFractureEnergy (TGdm &gdm, Material::Softening material, double L=50, int nElements=200, double boundaryDisplacement=0.2)
 Solves a 1D tensile test. More...
 
double FindRootWithoutDerivative (std::function< double(double)> f, double guess, int significantBits=10, long unsigned maxIter=20, double factor=2)
 
int main ()
 

Function Documentation

double FindRootWithoutDerivative ( std::function< double(double)>  f,
double  guess,
int  significantBits = 10,
long unsigned  maxIter = 20,
double  factor = 2 
)
template<typename TGdm >
double GlobalFractureEnergy ( TGdm &  gdm,
Material::Softening  material,
double  L = 50,
int  nElements = 200,
double  boundaryDisplacement = 0.2 
)

Solves a 1D tensile test.

The load displacement curve is integrated to obtain the global fracture energy. The localization is triggered by predamaging two elements in the middle of the structure. The fracture energy contribution of this imperfection is subtracted.

Template Parameters
TGdmgradient damage model type
Parameters
gdmgradient damage model integrand
Llength of the truss structure
nElementsnumber of elements
boundaryDisplacementboundary displacement
Remarks
This method may fail due to various reasons:
  • boundaryDisplacement not big enough (structure does not fully unload)
  • combination of c, gf (local fracture energy parameter) and L causes a snap-back
  • ???
int main ( )