| /trunk/Win32/OpenSees.opt |
|---|
| Cannot display: file marked as a binary type. |
| svn:mime-type = application/octet-stream |
| /trunk/Win32/proj/openSeesTk/openSeesTk.vcproj |
|---|
| 21,7 → 21,7 |
| <Tool |
| Name="VCCLCompilerTool" |
| InlineFunctionExpansion="1" |
| AdditionalIncludeDirectories="..\..\..\src\tcl\include;..\..\..\src\reliability\fesensitivity;..\..\..\src\reliability\tcl;..\..\..\src\coordTransformation;..\..\..\src\material\section\repres\section;..\..\..\src\analysis\algorithm\equiSolnAlgo;..\..\..\src\system_of_eqn\eigenSOE;..\..\..\src\analysis\algorithm\eigenAlgo;..\..\..\src\material\nD;..\..\..\src\material\uniaxial;..\..\..\src\handler;..\..\..\src\tcl;..\..\..\src\actor\objectBroker;..\..\..\src\system_of_eqn\linearSOE\umfGEN;..\..\..\src\system_of_eqn\linearSOE\fullGEN;..\..\..\src\system_of_eqn\linearSOE\sparseGEN;..\..\..\src\system_of_eqn\linearSOE\bandSPD;..\..\..\src\system_of_eqn\linearSOE\bandGEN;..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section;..\..\..\src\matrix;..\..\..\src\recorder;..\..\..\src\graph\numberer;..\..\..\src\material\section;..\..\..\src\graph\graph;..\..\..\src\element\beam2d;..\..\..\src\element\beam3d;..\..\..\src\system_of_eqn;..\..\..\src\system_of_eqn\linearSOE;..\..\..\src\system_of_eqn\linearSOE\profileSPD;..\..\..\src\system_of_eqn\linearSOE\sparseSYM;..\..\..\src\domain\pattern;..\..\..\src\analysis\analysis;..\..\..\src\analysis\integrator;..\..\..\src\analysis\numberer;..\..\..\src\analysis\handler;..\..\..\src\renderer;..\..\..\src\material;..\..\..\src\analysis\algorithm;..\..\..\src\convergenceTest;..\..\..\src\analysis\model\simple;..\..\..\src\domain\load;..\..\..\src\analysis\model;..\..\..\src\element\truss;..\..\..\src\actor\channel;..\..\..\src\utility;..\..\..\src\actor\actor;..\..\..\src\modelbuilder;..\..\..\src\modelbuilder\tcl;..\..\..\src\domain\constraints;..\..\..\src\domain\component;..\..\..\src\element;..\..\..\src\domain\node;..\..\..\src\domain\domain;..\..\..\src\tagged\storage;..\..\..\src;..\..\..\src\tagged;..\..\..\src\reliability\domain;..\..\..\src\reliability\domain\components;..\..\..\src\reliability\domain\distributions;..\..\..\src\reliability\analysis;..\..\..\src\reliability\analysis\analysis;..\..\..\src\reliability\analysis\curvature;..\..\..\src\reliability\analysis\designPoint;..\..\..\src\reliability\analysis\direction;..\..\..\src\reliability\analysis\gFunction;..\..\..\src\reliability\analysis\misc;..\..\..\src\reliability\analysis\randomNumber;..\..\..\src\reliability\analysis\sensitivity;..\..\..\src\reliability\analysis\stepSize;..\..\..\src\reliability\analysis\transformation;..\..\..\src\nDarray;..\..\..\src\system_of_eqn\linearSOE\cg;..\..\..\src\system_of_eqn\linearSOE\itpack;..\..\..\other\superlu_mt;..\..\..\src\database;..\..\..\src\element\updatedLagrangianBeamColumn;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\reliability\domain\modulatingFunction;..\..\..\src\reliability\domain\spectrum;..\..\..\src\reliability\domain\filter;..\..\..\src\reliability\analysis\hessianApproximation;..\..\..\src\reliability\analysis\convergenceCheck;..\..\..\src\reliability\analysis\meritFunction;..\..\..\src\reliability\analysis\rootFinding;"c:\Program Files\Tcl\include";"c:\Program Files\tcl"" |
| AdditionalIncludeDirectories="..\..\..\src\material\uniaxial\py;..\..\..\src\tcl\include;..\..\..\src\reliability\fesensitivity;..\..\..\src\reliability\tcl;..\..\..\src\coordTransformation;..\..\..\src\material\section\repres\section;..\..\..\src\analysis\algorithm\equiSolnAlgo;..\..\..\src\system_of_eqn\eigenSOE;..\..\..\src\analysis\algorithm\eigenAlgo;..\..\..\src\material\nD;..\..\..\src\material\uniaxial;..\..\..\src\handler;..\..\..\src\tcl;..\..\..\src\actor\objectBroker;..\..\..\src\system_of_eqn\linearSOE\umfGEN;..\..\..\src\system_of_eqn\linearSOE\fullGEN;..\..\..\src\system_of_eqn\linearSOE\sparseGEN;..\..\..\src\system_of_eqn\linearSOE\bandSPD;..\..\..\src\system_of_eqn\linearSOE\bandGEN;..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section;..\..\..\src\matrix;..\..\..\src\recorder;..\..\..\src\graph\numberer;..\..\..\src\material\section;..\..\..\src\graph\graph;..\..\..\src\element\beam2d;..\..\..\src\element\beam3d;..\..\..\src\system_of_eqn;..\..\..\src\system_of_eqn\linearSOE;..\..\..\src\system_of_eqn\linearSOE\profileSPD;..\..\..\src\system_of_eqn\linearSOE\sparseSYM;..\..\..\src\domain\pattern;..\..\..\src\analysis\analysis;..\..\..\src\analysis\integrator;..\..\..\src\analysis\numberer;..\..\..\src\analysis\handler;..\..\..\src\renderer;..\..\..\src\material;..\..\..\src\analysis\algorithm;..\..\..\src\convergenceTest;..\..\..\src\analysis\model\simple;..\..\..\src\domain\load;..\..\..\src\analysis\model;..\..\..\src\element\truss;..\..\..\src\actor\channel;..\..\..\src\utility;..\..\..\src\actor\actor;..\..\..\src\modelbuilder;..\..\..\src\modelbuilder\tcl;..\..\..\src\domain\constraints;..\..\..\src\domain\component;..\..\..\src\element;..\..\..\src\domain\node;..\..\..\src\domain\domain;..\..\..\src\tagged\storage;..\..\..\src;..\..\..\src\tagged;..\..\..\src\reliability\domain;..\..\..\src\reliability\domain\components;..\..\..\src\reliability\domain\distributions;..\..\..\src\reliability\analysis;..\..\..\src\reliability\analysis\analysis;..\..\..\src\reliability\analysis\curvature;..\..\..\src\reliability\analysis\designPoint;..\..\..\src\reliability\analysis\direction;..\..\..\src\reliability\analysis\gFunction;..\..\..\src\reliability\analysis\misc;..\..\..\src\reliability\analysis\randomNumber;..\..\..\src\reliability\analysis\sensitivity;..\..\..\src\reliability\analysis\stepSize;..\..\..\src\reliability\analysis\transformation;..\..\..\src\nDarray;..\..\..\src\system_of_eqn\linearSOE\cg;..\..\..\src\system_of_eqn\linearSOE\itpack;..\..\..\other\superlu_mt;..\..\..\src\database;..\..\..\src\element\updatedLagrangianBeamColumn;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\reliability\domain\modulatingFunction;..\..\..\src\reliability\domain\spectrum;..\..\..\src\reliability\domain\filter;..\..\..\src\reliability\analysis\hessianApproximation;..\..\..\src\reliability\analysis\convergenceCheck;..\..\..\src\reliability\analysis\meritFunction;..\..\..\src\reliability\analysis\rootFinding;"c:\Program Files\tcl\include"" |
| PreprocessorDefinitions="NDEBUG,_WGL,_RELIABILITY,_WIN32,_FORTRAN,WIN32,_CONSOLE,BUILD_tcl,_TCL84" |
| StringPooling="TRUE" |
| RuntimeLibrary="4" |
| 76,7 → 76,7 |
| <Tool |
| Name="VCCLCompilerTool" |
| Optimization="0" |
| AdditionalIncludeDirectories="..\..\..\src\tcl\include;..\..\..\src\reliability\fesensitivity;..\..\..\src\reliability\tcl;..\..\..\src\coordTransformation;..\..\..\src\material\section\repres\section;..\..\..\src\analysis\algorithm\equiSolnAlgo;..\..\..\src\system_of_eqn\eigenSOE;..\..\..\src\analysis\algorithm\eigenAlgo;..\..\..\src\material\nD;..\..\..\src\material\uniaxial;..\..\..\src\handler;..\..\..\src\tcl;..\..\..\src\actor\objectBroker;..\..\..\src\system_of_eqn\linearSOE\umfGEN;..\..\..\src\system_of_eqn\linearSOE\fullGEN;..\..\..\src\system_of_eqn\linearSOE\sparseGEN;..\..\..\src\system_of_eqn\linearSOE\bandSPD;..\..\..\src\system_of_eqn\linearSOE\bandGEN;..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section;..\..\..\src\matrix;..\..\..\src\recorder;..\..\..\src\graph\numberer;..\..\..\src\material\section;..\..\..\src\graph\graph;..\..\..\src\element\beam2d;..\..\..\src\element\beam3d;..\..\..\src\system_of_eqn;..\..\..\src\system_of_eqn\linearSOE;..\..\..\src\system_of_eqn\linearSOE\profileSPD;..\..\..\src\system_of_eqn\linearSOE\sparseSYM;..\..\..\src\domain\pattern;..\..\..\src\analysis\analysis;..\..\..\src\analysis\integrator;..\..\..\src\analysis\numberer;..\..\..\src\analysis\handler;..\..\..\src\renderer;..\..\..\src\material;..\..\..\src\analysis\algorithm;..\..\..\src\convergenceTest;..\..\..\src\analysis\model\simple;..\..\..\src\domain\load;..\..\..\src\analysis\model;..\..\..\src\element\truss;..\..\..\src\actor\channel;..\..\..\src\utility;..\..\..\src\actor\actor;..\..\..\src\modelbuilder;..\..\..\src\modelbuilder\tcl;..\..\..\src\domain\constraints;..\..\..\src\domain\component;..\..\..\src\element;..\..\..\src\domain\node;..\..\..\src\domain\domain;..\..\..\src\tagged\storage;..\..\..\src;..\..\..\src\tagged;..\..\..\src\reliability\domain;..\..\..\src\reliability\domain\components;..\..\..\src\reliability\domain\distributions;..\..\..\src\reliability\analysis;..\..\..\src\reliability\analysis\analysis;..\..\..\src\reliability\analysis\curvature;..\..\..\src\reliability\analysis\designPoint;..\..\..\src\reliability\analysis\direction;..\..\..\src\reliability\analysis\gFunction;..\..\..\src\reliability\analysis\misc;..\..\..\src\reliability\analysis\randomNumber;..\..\..\src\reliability\analysis\sensitivity;..\..\..\src\reliability\analysis\stepSize;..\..\..\src\reliability\analysis\transformation;..\..\..\src\nDarray;..\..\..\src\system_of_eqn\linearSOE\cg;..\..\..\src\system_of_eqn\linearSOE\itpack;..\..\..\other\superlu_mt;..\..\..\src\database;..\..\..\src\element\updatedLagrangianBeamColumn;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\reliability\domain\modulatingFunction;..\..\..\src\reliability\domain\spectrum;..\..\..\src\reliability\domain\filter;..\..\..\src\reliability\analysis\hessianApproximation;..\..\..\src\reliability\analysis\convergenceCheck;..\..\..\src\reliability\analysis\meritFunction;..\..\..\src\reliability\analysis\rootFinding;"c:\Program Files\Tcl\include";"c:\Program Files\tcl"" |
| AdditionalIncludeDirectories="..\..\..\src\material\uniaxial\py;..\..\..\src\tcl\include;..\..\..\src\reliability\fesensitivity;..\..\..\src\reliability\tcl;..\..\..\src\coordTransformation;..\..\..\src\material\section\repres\section;..\..\..\src\analysis\algorithm\equiSolnAlgo;..\..\..\src\system_of_eqn\eigenSOE;..\..\..\src\analysis\algorithm\eigenAlgo;..\..\..\src\material\nD;..\..\..\src\material\uniaxial;..\..\..\src\handler;..\..\..\src\tcl;..\..\..\src\actor\objectBroker;..\..\..\src\system_of_eqn\linearSOE\umfGEN;..\..\..\src\system_of_eqn\linearSOE\fullGEN;..\..\..\src\system_of_eqn\linearSOE\sparseGEN;..\..\..\src\system_of_eqn\linearSOE\bandSPD;..\..\..\src\system_of_eqn\linearSOE\bandGEN;..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section;..\..\..\src\matrix;..\..\..\src\recorder;..\..\..\src\graph\numberer;..\..\..\src\material\section;..\..\..\src\graph\graph;..\..\..\src\element\beam2d;..\..\..\src\element\beam3d;..\..\..\src\system_of_eqn;..\..\..\src\system_of_eqn\linearSOE;..\..\..\src\system_of_eqn\linearSOE\profileSPD;..\..\..\src\system_of_eqn\linearSOE\sparseSYM;..\..\..\src\domain\pattern;..\..\..\src\analysis\analysis;..\..\..\src\analysis\integrator;..\..\..\src\analysis\numberer;..\..\..\src\analysis\handler;..\..\..\src\renderer;..\..\..\src\material;..\..\..\src\analysis\algorithm;..\..\..\src\convergenceTest;..\..\..\src\analysis\model\simple;..\..\..\src\domain\load;..\..\..\src\analysis\model;..\..\..\src\element\truss;..\..\..\src\actor\channel;..\..\..\src\utility;..\..\..\src\actor\actor;..\..\..\src\modelbuilder;..\..\..\src\modelbuilder\tcl;..\..\..\src\domain\constraints;..\..\..\src\domain\component;..\..\..\src\element;..\..\..\src\domain\node;..\..\..\src\domain\domain;..\..\..\src\tagged\storage;..\..\..\src;..\..\..\src\tagged;..\..\..\src\reliability\domain;..\..\..\src\reliability\domain\components;..\..\..\src\reliability\domain\distributions;..\..\..\src\reliability\analysis;..\..\..\src\reliability\analysis\analysis;..\..\..\src\reliability\analysis\curvature;..\..\..\src\reliability\analysis\designPoint;..\..\..\src\reliability\analysis\direction;..\..\..\src\reliability\analysis\gFunction;..\..\..\src\reliability\analysis\misc;..\..\..\src\reliability\analysis\randomNumber;..\..\..\src\reliability\analysis\sensitivity;..\..\..\src\reliability\analysis\stepSize;..\..\..\src\reliability\analysis\transformation;..\..\..\src\nDarray;..\..\..\src\system_of_eqn\linearSOE\cg;..\..\..\src\system_of_eqn\linearSOE\itpack;..\..\..\other\superlu_mt;..\..\..\src\database;..\..\..\src\element\updatedLagrangianBeamColumn;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\reliability\domain\modulatingFunction;..\..\..\src\reliability\domain\spectrum;..\..\..\src\reliability\domain\filter;..\..\..\src\reliability\analysis\hessianApproximation;..\..\..\src\reliability\analysis\convergenceCheck;..\..\..\src\reliability\analysis\meritFunction;..\..\..\src\reliability\analysis\rootFinding;"c:\Program Files\tcl\include"" |
| PreprocessorDefinitions="_DEBUG,_WGL,_RELIABILITY,_WIN32,_FORTRAN,WIN32,_CONSOLE,BUILD_tcl,_TCL84" |
| BasicRuntimeChecks="3" |
| RuntimeLibrary="5" |
| /trunk/Win32/proj/openSeesTk/openSeesTk.dsp |
|---|
| 42,7 → 42,7 |
| # PROP Ignore_Export_Lib 0 |
| # PROP Target_Dir "" |
| # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c |
| # ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\src\tcl\include" /I "..\..\..\src\reliability\fesensitivity" /I "..\..\..\src\reliability\tcl" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\reliability\domain" /I "..\..\..\src\reliability\domain\components" /I "..\..\..\src\reliability\domain\distributions" /I "..\..\..\src\reliability\analysis" /I "..\..\..\src\reliability\analysis\analysis" /I "..\..\..\src\reliability\analysis\curvature" /I "..\..\..\src\reliability\analysis\designPoint" /I "..\..\..\src\reliability\analysis\direction" /I "..\..\..\src\reliability\analysis\gFunction" /I "..\..\..\src\reliability\analysis\misc" /I "..\..\..\src\reliability\analysis\randomNumber" /I "..\..\..\src\reliability\analysis\sensitivity" /I "..\..\..\src\reliability\analysis\stepSize" /I "..\..\..\src\reliability\analysis\transformation" /I "..\..\..\src\nDarray" /I "..\..\..\src\system_of_eqn\linearSOE\cg" /I "..\..\..\src\system_of_eqn\linearSOE\itpack" /I "..\..\..\other\superlu_mt" /I "..\..\..\src\database" /I "..\..\..\src\element\updatedLagrangianBeamColumn" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\reliability\domain\modulatingFunction" /I "..\..\..\src\reliability\domain\spectrum" /I "..\..\..\src\reliability\domain\filter" /I "..\..\..\src\reliability\analysis\hessianApproximation" /I "..\..\..\src\reliability\analysis\convergenceCheck" /I "..\..\..\src\reliability\analysis\meritFunction" /I "..\..\..\src\reliability\analysis\rootFinding" /I "c:\Program Files\tcl" /D "NDEBUG" /D "_WGL" /D "_RELIABILITY" /D "_WIN32" /D "_FORTRAN" /D "WIN32" /D "_CONSOLE" /D "BUILD_tcl" /D "_MBCS" /D "_TCL84" /YX /FD /c |
| # ADD CPP /nologo /W3 /GX /O2 /I "..\..\..\src\material\uniaxial\py" /I "..\..\..\src\tcl\include" /I "..\..\..\src\reliability\fesensitivity" /I "..\..\..\src\reliability\tcl" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\reliability\domain" /I "..\..\..\src\reliability\domain\components" /I "..\..\..\src\reliability\domain\distributions" /I "..\..\..\src\reliability\analysis" /I "..\..\..\src\reliability\analysis\analysis" /I "..\..\..\src\reliability\analysis\curvature" /I "..\..\..\src\reliability\analysis\designPoint" /I "..\..\..\src\reliability\analysis\direction" /I "..\..\..\src\reliability\analysis\gFunction" /I "..\..\..\src\reliability\analysis\misc" /I "..\..\..\src\reliability\analysis\randomNumber" /I "..\..\..\src\reliability\analysis\sensitivity" /I "..\..\..\src\reliability\analysis\stepSize" /I "..\..\..\src\reliability\analysis\transformation" /I "..\..\..\src\nDarray" /I "..\..\..\src\system_of_eqn\linearSOE\cg" /I "..\..\..\src\system_of_eqn\linearSOE\itpack" /I "..\..\..\other\superlu_mt" /I "..\..\..\src\database" /I "..\..\..\src\element\updatedLagrangianBeamColumn" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\reliability\domain\modulatingFunction" /I "..\..\..\src\reliability\domain\spectrum" /I "..\..\..\src\reliability\domain\filter" /I "..\..\..\src\reliability\analysis\hessianApproximation" /I "..\..\..\src\reliability\analysis\convergenceCheck" /I "..\..\..\src\reliability\analysis\meritFunction" /I "..\..\..\src\reliability\analysis\rootFinding" /I "c:\Program Files\tcl" /D "NDEBUG" /D "_WGL" /D "_RELIABILITY" /D "_WIN32" /D "_FORTRAN" /D "WIN32" /D "_CONSOLE" /D "BUILD_tcl" /D "_MBCS" /D "_TCL84" /YX /FD /c |
| # ADD BASE RSC /l 0x409 /d "NDEBUG" |
| # ADD RSC /l 0x409 /d "NDEBUG" |
| BSC32=bscmake.exe |
| 67,7 → 67,7 |
| # PROP Ignore_Export_Lib 0 |
| # PROP Target_Dir "" |
| # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c |
| # ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\src\tcl\include" /I "..\..\..\src\reliability\fesensitivity" /I "..\..\..\src\reliability\tcl" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\reliability\domain" /I "..\..\..\src\reliability\domain\components" /I "..\..\..\src\reliability\domain\distributions" /I "..\..\..\src\reliability\analysis" /I "..\..\..\src\reliability\analysis\analysis" /I "..\..\..\src\reliability\analysis\curvature" /I "..\..\..\src\reliability\analysis\designPoint" /I "..\..\..\src\reliability\analysis\direction" /I "..\..\..\src\reliability\analysis\gFunction" /I "..\..\..\src\reliability\analysis\misc" /I "..\..\..\src\reliability\analysis\randomNumber" /I "..\..\..\src\reliability\analysis\sensitivity" /I "..\..\..\src\reliability\analysis\stepSize" /I "..\..\..\src\reliability\analysis\transformation" /I "..\..\..\src\nDarray" /I "..\..\..\src\system_of_eqn\linearSOE\cg" /I "..\..\..\src\system_of_eqn\linearSOE\itpack" /I "..\..\..\other\superlu_mt" /I "..\..\..\src\database" /I "..\..\..\src\element\updatedLagrangianBeamColumn" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\reliability\domain\modulatingFunction" /I "..\..\..\src\reliability\domain\spectrum" /I "..\..\..\src\reliability\domain\filter" /I "..\..\..\src\reliability\analysis\hessianApproximation" /I "..\..\..\src\reliability\analysis\convergenceCheck" /I "..\..\..\src\reliability\analysis\meritFunction" /I "..\..\..\src\reliability\analysis\rootFinding" /I "c:\Program Files\tcl" /D "_DEBUG" /D "_WGL" /D "_RELIABILITY" /D "_WIN32" /D "_FORTRAN" /D "WIN32" /D "_CONSOLE" /D "BUILD_tcl" /D "_MBCS" /D "_TCL84" /YX /FD /GZ /c |
| # ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\..\src\uniaxial\py" /I "..\..\..\src\tcl\include" /I "..\..\..\src\reliability\fesensitivity" /I "..\..\..\src\reliability\tcl" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\reliability\domain" /I "..\..\..\src\reliability\domain\components" /I "..\..\..\src\reliability\domain\distributions" /I "..\..\..\src\reliability\analysis" /I "..\..\..\src\reliability\analysis\analysis" /I "..\..\..\src\reliability\analysis\curvature" /I "..\..\..\src\reliability\analysis\designPoint" /I "..\..\..\src\reliability\analysis\direction" /I "..\..\..\src\reliability\analysis\gFunction" /I "..\..\..\src\reliability\analysis\misc" /I "..\..\..\src\reliability\analysis\randomNumber" /I "..\..\..\src\reliability\analysis\sensitivity" /I "..\..\..\src\reliability\analysis\stepSize" /I "..\..\..\src\reliability\analysis\transformation" /I "..\..\..\src\nDarray" /I "..\..\..\src\system_of_eqn\linearSOE\cg" /I "..\..\..\src\system_of_eqn\linearSOE\itpack" /I "..\..\..\other\superlu_mt" /I "..\..\..\src\database" /I "..\..\..\src\element\updatedLagrangianBeamColumn" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\reliability\domain\modulatingFunction" /I "..\..\..\src\reliability\domain\spectrum" /I "..\..\..\src\reliability\domain\filter" /I "..\..\..\src\reliability\analysis\hessianApproximation" /I "..\..\..\src\reliability\analysis\convergenceCheck" /I "..\..\..\src\reliability\analysis\meritFunction" /I "..\..\..\src\reliability\analysis\rootFinding" /I "c:\Program Files\tcl" /D "_DEBUG" /D "_WGL" /D "_RELIABILITY" /D "_WIN32" /D "_FORTRAN" /D "WIN32" /D "_CONSOLE" /D "BUILD_tcl" /D "_MBCS" /D "_TCL84" /YX /FD /GZ /c |
| # ADD BASE RSC /l 0x409 /d "_DEBUG" |
| # ADD RSC /l 0x409 /d "_DEBUG" |
| BSC32=bscmake.exe |
| /trunk/Win32/proj/openSees/openSees.vcproj |
|---|
| 14,14 → 14,14 |
| Name="Release|Win32" |
| OutputDirectory=".\..\..\bin" |
| IntermediateDirectory=".\..\..\obj\openSees\release" |
| ConfigurationType="2" |
| ConfigurationType="1" |
| UseOfMFC="0" |
| ATLMinimizesCRunTimeLibraryUsage="FALSE" |
| CharacterSet="2"> |
| <Tool |
| Name="VCCLCompilerTool" |
| InlineFunctionExpansion="1" |
| AdditionalIncludeDirectories="..\..\..\src\reliability\fesensitivity;..\..\..\src\reliability\tcl;..\..\..\src\coordTransformation;..\..\..\src\material\section\repres\section;..\..\..\src\analysis\algorithm\equiSolnAlgo;..\..\..\src\system_of_eqn\eigenSOE;..\..\..\src\analysis\algorithm\eigenAlgo;..\..\..\src\material\nD;..\..\..\src\material\uniaxial;..\..\..\src\handler;..\..\..\src\tcl;..\..\..\src\actor\objectBroker;..\..\..\src\system_of_eqn\linearSOE\umfGEN;..\..\..\src\system_of_eqn\linearSOE\fullGEN;..\..\..\src\system_of_eqn\linearSOE\sparseGEN;..\..\..\src\system_of_eqn\linearSOE\bandSPD;..\..\..\src\system_of_eqn\linearSOE\bandGEN;..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section;..\..\..\src\matrix;..\..\..\src\recorder;..\..\..\src\graph\numberer;..\..\..\src\material\section;..\..\..\src\graph\graph;..\..\..\src\element\beam2d;..\..\..\src\element\beam3d;..\..\..\src\system_of_eqn;..\..\..\src\system_of_eqn\linearSOE;..\..\..\src\system_of_eqn\linearSOE\profileSPD;..\..\..\src\system_of_eqn\linearSOE\sparseSYM;..\..\..\src\domain\pattern;..\..\..\src\analysis\analysis;..\..\..\src\analysis\integrator;..\..\..\src\analysis\numberer;..\..\..\src\analysis\handler;..\..\..\src\renderer;..\..\..\src\material;..\..\..\src\analysis\algorithm;..\..\..\src\convergenceTest;..\..\..\src\analysis\model\simple;..\..\..\src\domain\load;..\..\..\src\analysis\model;..\..\..\src\element\truss;..\..\..\src\actor\channel;..\..\..\src\utility;..\..\..\src\actor\actor;..\..\..\src\modelbuilder;..\..\..\src\modelbuilder\tcl;..\..\..\src\domain\constraints;..\..\..\src\domain\component;..\..\..\src\element;..\..\..\src\domain\node;..\..\..\src\domain\domain;..\..\..\src\tagged\storage;..\..\..\src;..\..\..\src\tagged;..\..\..\src\reliability\domain;..\..\..\src\reliability\domain\components;..\..\..\src\reliability\domain\distributions;..\..\..\src\reliability\analysis;..\..\..\src\reliability\analysis\analysis;..\..\..\src\reliability\analysis\curvature;..\..\..\src\reliability\analysis\designPoint;..\..\..\src\reliability\analysis\direction;..\..\..\src\reliability\analysis\gFunction;..\..\..\src\reliability\analysis\misc;..\..\..\src\reliability\analysis\randomNumber;..\..\..\src\reliability\analysis\sensitivity;..\..\..\src\reliability\analysis\stepSize;..\..\..\src\reliability\analysis\transformation;..\..\..\src\nDarray;..\..\..\src\system_of_eqn\linearSOE\cg;..\..\..\src\system_of_eqn\linearSOE\itpack;..\..\..\other\superlu_mt;..\..\..\src\database;..\..\..\src\element\updatedLagrangianBeamColumn;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\reliability\domain\modulatingFunction;..\..\..\src\reliability\domain\spectrum;..\..\..\src\reliability\domain\filter;..\..\..\src\reliability\analysis\hessianApproximation;..\..\..\src\reliability\analysis\convergenceCheck;..\..\..\src\reliability\analysis\meritFunction;..\..\..\src\reliability\analysis\rootFinding;"c:\Program Files\Tcl\include";"c:\Program Files\tcl"" |
| AdditionalIncludeDirectories="..\..\..\src\material\uniaxial\py,..\..\..\src\reliability\fesensitivity;..\..\..\src\reliability\tcl;..\..\..\src\coordTransformation;..\..\..\src\material\section\repres\section;..\..\..\src\analysis\algorithm\equiSolnAlgo;..\..\..\src\system_of_eqn\eigenSOE;..\..\..\src\analysis\algorithm\eigenAlgo;..\..\..\src\material\nD;..\..\..\src\material\uniaxial;..\..\..\src\handler;..\..\..\src\tcl;..\..\..\src\actor\objectBroker;..\..\..\src\system_of_eqn\linearSOE\umfGEN;..\..\..\src\system_of_eqn\linearSOE\fullGEN;..\..\..\src\system_of_eqn\linearSOE\sparseGEN;..\..\..\src\system_of_eqn\linearSOE\bandSPD;..\..\..\src\system_of_eqn\linearSOE\bandGEN;..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section;..\..\..\src\matrix;..\..\..\src\recorder;..\..\..\src\graph\numberer;..\..\..\src\material\section;..\..\..\src\graph\graph;..\..\..\src\element\beam2d;..\..\..\src\element\beam3d;..\..\..\src\system_of_eqn;..\..\..\src\system_of_eqn\linearSOE;..\..\..\src\system_of_eqn\linearSOE\profileSPD;..\..\..\src\system_of_eqn\linearSOE\sparseSYM;..\..\..\src\domain\pattern;..\..\..\src\analysis\analysis;..\..\..\src\analysis\integrator;..\..\..\src\analysis\numberer;..\..\..\src\analysis\handler;..\..\..\src\renderer;..\..\..\src\material;..\..\..\src\analysis\algorithm;..\..\..\src\convergenceTest;..\..\..\src\analysis\model\simple;..\..\..\src\domain\load;..\..\..\src\analysis\model;..\..\..\src\element\truss;..\..\..\src\actor\channel;..\..\..\src\utility;..\..\..\src\actor\actor;..\..\..\src\modelbuilder;..\..\..\src\modelbuilder\tcl;..\..\..\src\domain\constraints;..\..\..\src\domain\component;..\..\..\src\element;..\..\..\src\domain\node;..\..\..\src\domain\domain;..\..\..\src\tagged\storage;..\..\..\src;..\..\..\src\tagged;..\..\..\src\reliability\domain;..\..\..\src\reliability\domain\components;..\..\..\src\reliability\domain\distributions;..\..\..\src\reliability\analysis;..\..\..\src\reliability\analysis\analysis;..\..\..\src\reliability\analysis\curvature;..\..\..\src\reliability\analysis\designPoint;..\..\..\src\reliability\analysis\direction;..\..\..\src\reliability\analysis\gFunction;..\..\..\src\reliability\analysis\misc;..\..\..\src\reliability\analysis\randomNumber;..\..\..\src\reliability\analysis\sensitivity;..\..\..\src\reliability\analysis\stepSize;..\..\..\src\reliability\analysis\transformation;..\..\..\src\nDarray;..\..\..\src\system_of_eqn\linearSOE\cg;..\..\..\src\system_of_eqn\linearSOE\itpack;..\..\..\other\superlu_mt;..\..\..\src\database;..\..\..\src\element\updatedLagrangianBeamColumn;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\reliability\domain\modulatingFunction;..\..\..\src\reliability\domain\spectrum;..\..\..\src\reliability\domain\filter;..\..\..\src\reliability\analysis\hessianApproximation;..\..\..\src\reliability\analysis\convergenceCheck;..\..\..\src\reliability\analysis\meritFunction;..\..\..\src\reliability\analysis\rootFinding;"c:\Program Files\Tcl\include";"c:\Program Files\tcl"" |
| PreprocessorDefinitions="NDEBUG,_WGL,_RELIABILITY,_WIN32,_FORTRAN,WIN32,_CONSOLE,BUILD_tcl,_TCL84" |
| StringPooling="TRUE" |
| RuntimeLibrary="5" |
| 37,9 → 37,9 |
| Name="VCCustomBuildTool"/> |
| <Tool |
| Name="VCLinkerTool" |
| AdditionalOptions="/MACHINE:I386" |
| AdditionalOptions="/MACHINE:I386 /FORCE:MULTIPLE" |
| AdditionalDependencies="OpenGL32.lib glu32.lib GlAux.lib corotational.lib fedeas.lib drain.lib reliability.lib database.lib renderer.lib blas.lib lapack.lib feap.lib arpack.lib umfpack.lib openSeesFortran.lib actor.lib analysis.lib cblas.lib convergence.lib domain.lib element.lib graph.lib material.lib matrix.lib modelbuilder.lib recorder.lib superLU.lib system.lib tagged.lib utility.lib tcl84.lib tk84.lib odbc32.lib odbccp32.lib" |
| OutputFile=".\..\..\bin/openSees.dll" |
| OutputFile=".\..\..\bin/openSees.exe" |
| LinkIncremental="1" |
| SuppressStartupBanner="TRUE" |
| AdditionalLibraryDirectories="c:\program Files\tcl\lib,..\..\lib\release, ..\..\lib" |
| 74,7 → 74,7 |
| <Tool |
| Name="VCCLCompilerTool" |
| Optimization="0" |
| AdditionalIncludeDirectories="..\..\..\src\reliability\fesensitivity;..\..\..\src\reliability\tcl;..\..\..\src\coordTransformation;..\..\..\src\material\section\repres\section;..\..\..\src\analysis\algorithm\equiSolnAlgo;..\..\..\src\system_of_eqn\eigenSOE;..\..\..\src\analysis\algorithm\eigenAlgo;..\..\..\src\material\nD;..\..\..\src\material\uniaxial;..\..\..\src\handler;..\..\..\src\tcl;..\..\..\src\actor\objectBroker;..\..\..\src\system_of_eqn\linearSOE\umfGEN;..\..\..\src\system_of_eqn\linearSOE\fullGEN;..\..\..\src\system_of_eqn\linearSOE\sparseGEN;..\..\..\src\system_of_eqn\linearSOE\bandSPD;..\..\..\src\system_of_eqn\linearSOE\bandGEN;..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section;..\..\..\src\matrix;..\..\..\src\recorder;..\..\..\src\graph\numberer;..\..\..\src\material\section;..\..\..\src\graph\graph;..\..\..\src\element\beam2d;..\..\..\src\element\beam3d;..\..\..\src\system_of_eqn;..\..\..\src\system_of_eqn\linearSOE;..\..\..\src\system_of_eqn\linearSOE\profileSPD;..\..\..\src\system_of_eqn\linearSOE\sparseSYM;..\..\..\src\domain\pattern;..\..\..\src\analysis\analysis;..\..\..\src\analysis\integrator;..\..\..\src\analysis\numberer;..\..\..\src\analysis\handler;..\..\..\src\renderer;..\..\..\src\material;..\..\..\src\analysis\algorithm;..\..\..\src\convergenceTest;..\..\..\src\analysis\model\simple;..\..\..\src\domain\load;..\..\..\src\analysis\model;..\..\..\src\element\truss;..\..\..\src\actor\channel;..\..\..\src\utility;..\..\..\src\actor\actor;..\..\..\src\modelbuilder;..\..\..\src\modelbuilder\tcl;..\..\..\src\domain\constraints;..\..\..\src\domain\component;..\..\..\src\element;..\..\..\src\domain\node;..\..\..\src\domain\domain;..\..\..\src\tagged\storage;..\..\..\src;..\..\..\src\tagged;..\..\..\src\reliability\domain;..\..\..\src\reliability\domain\components;..\..\..\src\reliability\domain\distributions;..\..\..\src\reliability\analysis;..\..\..\src\reliability\analysis\analysis;..\..\..\src\reliability\analysis\curvature;..\..\..\src\reliability\analysis\designPoint;..\..\..\src\reliability\analysis\direction;..\..\..\src\reliability\analysis\gFunction;..\..\..\src\reliability\analysis\misc;..\..\..\src\reliability\analysis\randomNumber;..\..\..\src\reliability\analysis\sensitivity;..\..\..\src\reliability\analysis\stepSize;..\..\..\src\reliability\analysis\transformation;..\..\..\src\nDarray;..\..\..\src\system_of_eqn\linearSOE\cg;..\..\..\src\system_of_eqn\linearSOE\itpack;..\..\..\other\superlu_mt;..\..\..\src\database;..\..\..\src\element\updatedLagrangianBeamColumn;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\reliability\domain\modulatingFunction;..\..\..\src\reliability\domain\spectrum;..\..\..\src\reliability\domain\filter;..\..\..\src\reliability\analysis\hessianApproximation;..\..\..\src\reliability\analysis\convergenceCheck;..\..\..\src\reliability\analysis\meritFunction;..\..\..\src\reliability\analysis\rootFinding;"c:\Program Files\Tcl\include";"c:\Program Files\tcl"" |
| AdditionalIncludeDirectories="..\..\..\src\material\uniaxial\py,..\..\..\src\reliability\fesensitivity;..\..\..\src\reliability\tcl;..\..\..\src\coordTransformation;..\..\..\src\material\section\repres\section;..\..\..\src\analysis\algorithm\equiSolnAlgo;..\..\..\src\system_of_eqn\eigenSOE;..\..\..\src\analysis\algorithm\eigenAlgo;..\..\..\src\material\nD;..\..\..\src\material\uniaxial;..\..\..\src\handler;..\..\..\src\tcl;..\..\..\src\actor\objectBroker;..\..\..\src\system_of_eqn\linearSOE\umfGEN;..\..\..\src\system_of_eqn\linearSOE\fullGEN;..\..\..\src\system_of_eqn\linearSOE\sparseGEN;..\..\..\src\system_of_eqn\linearSOE\bandSPD;..\..\..\src\system_of_eqn\linearSOE\bandGEN;..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section;..\..\..\src\matrix;..\..\..\src\recorder;..\..\..\src\graph\numberer;..\..\..\src\material\section;..\..\..\src\graph\graph;..\..\..\src\element\beam2d;..\..\..\src\element\beam3d;..\..\..\src\system_of_eqn;..\..\..\src\system_of_eqn\linearSOE;..\..\..\src\system_of_eqn\linearSOE\profileSPD;..\..\..\src\system_of_eqn\linearSOE\sparseSYM;..\..\..\src\domain\pattern;..\..\..\src\analysis\analysis;..\..\..\src\analysis\integrator;..\..\..\src\analysis\numberer;..\..\..\src\analysis\handler;..\..\..\src\renderer;..\..\..\src\material;..\..\..\src\analysis\algorithm;..\..\..\src\convergenceTest;..\..\..\src\analysis\model\simple;..\..\..\src\domain\load;..\..\..\src\analysis\model;..\..\..\src\element\truss;..\..\..\src\actor\channel;..\..\..\src\utility;..\..\..\src\actor\actor;..\..\..\src\modelbuilder;..\..\..\src\modelbuilder\tcl;..\..\..\src\domain\constraints;..\..\..\src\domain\component;..\..\..\src\element;..\..\..\src\domain\node;..\..\..\src\domain\domain;..\..\..\src\tagged\storage;..\..\..\src;..\..\..\src\tagged;..\..\..\src\reliability\domain;..\..\..\src\reliability\domain\components;..\..\..\src\reliability\domain\distributions;..\..\..\src\reliability\analysis;..\..\..\src\reliability\analysis\analysis;..\..\..\src\reliability\analysis\curvature;..\..\..\src\reliability\analysis\designPoint;..\..\..\src\reliability\analysis\direction;..\..\..\src\reliability\analysis\gFunction;..\..\..\src\reliability\analysis\misc;..\..\..\src\reliability\analysis\randomNumber;..\..\..\src\reliability\analysis\sensitivity;..\..\..\src\reliability\analysis\stepSize;..\..\..\src\reliability\analysis\transformation;..\..\..\src\nDarray;..\..\..\src\system_of_eqn\linearSOE\cg;..\..\..\src\system_of_eqn\linearSOE\itpack;..\..\..\other\superlu_mt;..\..\..\src\database;..\..\..\src\element\updatedLagrangianBeamColumn;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\reliability\domain\modulatingFunction;..\..\..\src\reliability\domain\spectrum;..\..\..\src\reliability\domain\filter;..\..\..\src\reliability\analysis\hessianApproximation;..\..\..\src\reliability\analysis\convergenceCheck;..\..\..\src\reliability\analysis\meritFunction;..\..\..\src\reliability\analysis\rootFinding;"c:\Program Files\Tcl\include";"c:\Program Files\tcl"" |
| PreprocessorDefinitions="_DEBUG,_WGL,_RELIABILITY,_WIN32,_FORTRAN,WIN32,_CONSOLE,BUILD_tcl,_TCL84" |
| BasicRuntimeChecks="3" |
| RuntimeLibrary="5" |
| 91,7 → 91,7 |
| Name="VCCustomBuildTool"/> |
| <Tool |
| Name="VCLinkerTool" |
| AdditionalOptions="/MACHINE:I386" |
| AdditionalOptions="/MACHINE:I386 /FORCE:MULTIPLE" |
| AdditionalDependencies="OpenGL32.lib glu32.lib GlAux.lib corotational.lib fedeas.lib drain.lib reliability.lib database.lib renderer.lib blas.lib lapack.lib feap.lib arpack.lib umfpack.lib openSeesFortran.lib actor.lib analysis.lib cblas.lib convergence.lib domain.lib element.lib graph.lib material.lib matrix.lib modelbuilder.lib recorder.lib superLU.lib system.lib tagged.lib utility.lib tcl84.lib tk84.lib odbc32.lib odbccp32.lib" |
| OutputFile=".\..\..\bin/openSees.exe" |
| LinkIncremental="2" |
| /trunk/Win32/proj/openSees/openSees.dsp |
|---|
| 42,7 → 42,7 |
| # PROP Ignore_Export_Lib 0 |
| # PROP Target_Dir "" |
| # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c |
| # ADD CPP /nologo /MLd /W3 /GX /O2 /I "..\..\..\src\reliability\fesensitivity" /I "..\..\..\src\reliability\tcl" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\reliability\domain" /I "..\..\..\src\reliability\domain\components" /I "..\..\..\src\reliability\domain\distributions" /I "..\..\..\src\reliability\analysis" /I "..\..\..\src\reliability\analysis\analysis" /I "..\..\..\src\reliability\analysis\curvature" /I "..\..\..\src\reliability\analysis\designPoint" /I "..\..\..\src\reliability\analysis\direction" /I "..\..\..\src\reliability\analysis\gFunction" /I "..\..\..\src\reliability\analysis\misc" /I "..\..\..\src\reliability\analysis\randomNumber" /I "..\..\..\src\reliability\analysis\sensitivity" /I "..\..\..\src\reliability\analysis\stepSize" /I "..\..\..\src\reliability\analysis\transformation" /I "..\..\..\src\nDarray" /I "..\..\..\src\system_of_eqn\linearSOE\cg" /I "..\..\..\src\system_of_eqn\linearSOE\itpack" /I "..\..\..\other\superlu_mt" /I "..\..\..\src\database" /I "..\..\..\src\element\updatedLagrangianBeamColumn" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\reliability\domain\modulatingFunction" /I "..\..\..\src\reliability\domain\spectrum" /I "..\..\..\src\reliability\domain\filter" /I "..\..\..\src\reliability\analysis\hessianApproximation" /I "..\..\..\src\reliability\analysis\convergenceCheck" /I "..\..\..\src\reliability\analysis\meritFunction" /I "..\..\..\src\reliability\analysis\rootFinding" /I "c:\Program Files\tcl" /D "NDEBUG" /D "_WGL" /D "_RELIABILITY" /D "_WIN32" /D "_FORTRAN" /D "WIN32" /D "_CONSOLE" /D "BUILD_tcl" /D "_MBCS" /D "_TCL84" /FD /c |
| # ADD CPP /nologo /MLd /W3 /GX /O2 /I "..\..\..\src\material\uniaxial\py" /I "..\..\..\src\reliability\fesensitivity" /I "..\..\..\src\reliability\tcl" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\reliability\domain" /I "..\..\..\src\reliability\domain\components" /I "..\..\..\src\reliability\domain\distributions" /I "..\..\..\src\reliability\analysis" /I "..\..\..\src\reliability\analysis\analysis" /I "..\..\..\src\reliability\analysis\curvature" /I "..\..\..\src\reliability\analysis\designPoint" /I "..\..\..\src\reliability\analysis\direction" /I "..\..\..\src\reliability\analysis\gFunction" /I "..\..\..\src\reliability\analysis\misc" /I "..\..\..\src\reliability\analysis\randomNumber" /I "..\..\..\src\reliability\analysis\sensitivity" /I "..\..\..\src\reliability\analysis\stepSize" /I "..\..\..\src\reliability\analysis\transformation" /I "..\..\..\src\nDarray" /I "..\..\..\src\system_of_eqn\linearSOE\cg" /I "..\..\..\src\system_of_eqn\linearSOE\itpack" /I "..\..\..\other\superlu_mt" /I "..\..\..\src\database" /I "..\..\..\src\element\updatedLagrangianBeamColumn" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\reliability\domain\modulatingFunction" /I "..\..\..\src\reliability\domain\spectrum" /I "..\..\..\src\reliability\domain\filter" /I "..\..\..\src\reliability\analysis\hessianApproximation" /I "..\..\..\src\reliability\analysis\convergenceCheck" /I "..\..\..\src\reliability\analysis\meritFunction" /I "..\..\..\src\reliability\analysis\rootFinding" /I "c:\Program Files\tcl" /D "NDEBUG" /D "_WGL" /D "_RELIABILITY" /D "_WIN32" /D "_FORTRAN" /D "WIN32" /D "_CONSOLE" /D "BUILD_tcl" /D "_MBCS" /D "_TCL84" /FD /c |
| # SUBTRACT CPP /YX |
| # ADD BASE RSC /l 0x409 /d "NDEBUG" |
| # ADD RSC /l 0x409 /d "NDEBUG" |
| 67,7 → 67,7 |
| # PROP Ignore_Export_Lib 0 |
| # PROP Target_Dir "" |
| # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c |
| # ADD CPP /nologo /W3 /GX /ZI /Od /I "..\..\..\src\reliability\fesensitivity" /I "..\..\..\src\reliability\tcl" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\reliability\domain" /I "..\..\..\src\reliability\domain\components" /I "..\..\..\src\reliability\domain\distributions" /I "..\..\..\src\reliability\analysis" /I "..\..\..\src\reliability\analysis\analysis" /I "..\..\..\src\reliability\analysis\curvature" /I "..\..\..\src\reliability\analysis\designPoint" /I "..\..\..\src\reliability\analysis\direction" /I "..\..\..\src\reliability\analysis\gFunction" /I "..\..\..\src\reliability\analysis\misc" /I "..\..\..\src\reliability\analysis\randomNumber" /I "..\..\..\src\reliability\analysis\sensitivity" /I "..\..\..\src\reliability\analysis\stepSize" /I "..\..\..\src\reliability\analysis\transformation" /I "..\..\..\src\nDarray" /I "..\..\..\src\system_of_eqn\linearSOE\cg" /I "..\..\..\src\system_of_eqn\linearSOE\itpack" /I "..\..\..\other\superlu_mt" /I "..\..\..\src\database" /I "..\..\..\src\element\updatedLagrangianBeamColumn" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\reliability\domain\modulatingFunction" /I "..\..\..\src\reliability\domain\spectrum" /I "..\..\..\src\reliability\domain\filter" /I "..\..\..\src\reliability\analysis\hessianApproximation" /I "..\..\..\src\reliability\analysis\convergenceCheck" /I "..\..\..\src\reliability\analysis\meritFunction" /I "..\..\..\src\reliability\analysis\rootFinding" /I "c:\Program Files\tcl" /D "_DEBUG" /D "_WGL" /D "_RELIABILITY" /D "_WIN32" /D "_FORTRAN" /D "WIN32" /D "_CONSOLE" /D "BUILD_tcl" /D "_MBCS" /D "_TCL84" /FR /FD /GZ |
| # ADD CPP /nologo /W3 /GX /ZI /Od /I "..\..\..\src\material\uniaxial\py" /I "..\..\..\src\reliability\fesensitivity" /I "..\..\..\src\reliability\tcl" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\reliability\domain" /I "..\..\..\src\reliability\domain\components" /I "..\..\..\src\reliability\domain\distributions" /I "..\..\..\src\reliability\analysis" /I "..\..\..\src\reliability\analysis\analysis" /I "..\..\..\src\reliability\analysis\curvature" /I "..\..\..\src\reliability\analysis\designPoint" /I "..\..\..\src\reliability\analysis\direction" /I "..\..\..\src\reliability\analysis\gFunction" /I "..\..\..\src\reliability\analysis\misc" /I "..\..\..\src\reliability\analysis\randomNumber" /I "..\..\..\src\reliability\analysis\sensitivity" /I "..\..\..\src\reliability\analysis\stepSize" /I "..\..\..\src\reliability\analysis\transformation" /I "..\..\..\src\nDarray" /I "..\..\..\src\system_of_eqn\linearSOE\cg" /I "..\..\..\src\system_of_eqn\linearSOE\itpack" /I "..\..\..\other\superlu_mt" /I "..\..\..\src\database" /I "..\..\..\src\element\updatedLagrangianBeamColumn" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\reliability\domain\modulatingFunction" /I "..\..\..\src\reliability\domain\spectrum" /I "..\..\..\src\reliability\domain\filter" /I "..\..\..\src\reliability\analysis\hessianApproximation" /I "..\..\..\src\reliability\analysis\convergenceCheck" /I "..\..\..\src\reliability\analysis\meritFunction" /I "..\..\..\src\reliability\analysis\rootFinding" /I "c:\Program Files\tcl" /D "_DEBUG" /D "_WGL" /D "_RELIABILITY" /D "_WIN32" /D "_FORTRAN" /D "WIN32" /D "_CONSOLE" /D "BUILD_tcl" /D "_MBCS" /D "_TCL84" /FR /FD /GZ |
| # ADD BASE RSC /l 0x409 /d "_DEBUG" |
| # ADD RSC /l 0x409 /d "_DEBUG" |
| BSC32=bscmake.exe |
| /trunk/Win32/proj/quickMain/quickMain.vcproj |
|---|
| 21,7 → 21,7 |
| <Tool |
| Name="VCCLCompilerTool" |
| Optimization="0" |
| AdditionalIncludeDirectories="..\..\src\ndarray;..\..\src\domain\groundMotion;..\..\src\domain\load;..\..\src\domain\pattern;..\..\src\element;..\..\src\element\truss;..\..\src\graph\graph;..\..\src\graph\numberer;..\..\src\system_of_eqn;..\..\src\system_of_eqn\linearSOE;..\..\src\system_of_eqn\linearSOE\sparseGen;..\..\src\analysis\analysis;..\..\src\convergenceTest;..\..\src\analysis\integrator;..\..\src\analysis\numberer;..\..\src\domain\constraints;..\..\src\analysis\handler;..\..\src\analysis\algorithm;..\..\src\analysis\model\simple;..\..\src\matrix;..\..\src;..\..\src\actor\actor;..\..\src\tagged;..\..\src\domain\component;..\..\src\analysis\algorithm\equiSolnAlgo;..\..\src\analysis\model;..\..\src\domain\domain;..\..\src\domain\node;..\..\src\modelbuilder;..\..\src\utility;..\..\..\src\domain\groundMotion;..\..\..\src\element\nonlinearBeamColumn\quadrule;..\..\..\src\material\section\fiber;..\..\..\src\element\fourNodeQuad;..\..\..\src\element\nonlinearBeamColumn\element;..\..\..\src\element\zeroLength;..\..\..\src\element\beamWithHinges;..\..\..\src\recorder\response;..\..\..\src\coordTransformation;..\..\..\src\material\section\repres\section;..\..\..\src\analysis\algorithm\equiSolnAlgo;..\..\..\src\system_of_eqn\eigenSOE;..\..\..\src\analysis\algorithm\eigenAlgo;..\..\..\src\material\nD;..\..\..\src\material\uniaxial;..\..\..\src\handler;..\..\..\src\tcl;..\..\..\src\actor\objectBroker;..\..\..\src\system_of_eqn\linearSOE\umfGEN;..\..\..\src\system_of_eqn\linearSOE\fullGEN;..\..\..\src\system_of_eqn\linearSOE\sparseGEN;..\..\..\src\system_of_eqn\linearSOE\bandSPD;..\..\..\src\system_of_eqn\linearSOE\bandGEN;..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section;..\..\..\src\matrix;..\..\..\src\recorder;..\..\..\src\graph\numberer;..\..\..\src\material\section;..\..\..\src\graph\graph;..\..\..\src\element\beam2d;..\..\..\src\element\beam3d;..\..\..\src\system_of_eqn;..\..\..\src\system_of_eqn\linearSOE;..\..\..\src\system_of_eqn\linearSOE\profileSPD;..\..\..\src\system_of_eqn\linearSOE\sparseSYM;..\..\..\src\domain\pattern;..\..\..\src\analysis\analysis;..\..\..\src\analysis\integrator;..\..\..\src\analysis\numberer;..\..\..\src\analysis\handler;..\..\..\src\renderer;..\..\..\src\material;..\..\..\src\analysis\algorithm;..\..\..\src\convergenceTest;..\..\..\src\analysis\model\simple;..\..\..\src\domain\load;..\..\..\src\analysis\model;..\..\..\src\element\truss;..\..\..\src\actor\channel;..\..\..\src\utility;..\..\..\src\actor\actor;..\..\..\src\modelbuilder;..\..\..\src\modelbuilder\tcl;..\..\..\src\domain\constraints;..\..\..\src\domain\component;..\..\..\src\element;..\..\..\src\domain\node;..\..\..\src\domain\domain;..\..\..\src\tagged\storage;..\..\..\src;..\..\..\src\tagged;..\..\..\src\material\nD\template3Dep;"c:\Program Files\tcl"" |
| AdditionalIncludeDirectories="..\..\..\src\ndarray;..\..\src\domain\groundMotion;..\..\src\domain\load;..\..\src\domain\pattern;..\..\src\element;..\..\src\element\truss;..\..\src\graph\graph;..\..\src\graph\numberer;..\..\src\system_of_eqn;..\..\src\system_of_eqn\linearSOE;..\..\src\system_of_eqn\linearSOE\sparseGen;..\..\src\analysis\analysis;..\..\src\convergenceTest;..\..\src\analysis\integrator;..\..\src\analysis\numberer;..\..\src\domain\constraints;..\..\src\analysis\handler;..\..\src\analysis\algorithm;..\..\src\analysis\model\simple;..\..\src\matrix;..\..\src;..\..\src\actor\actor;..\..\src\tagged;..\..\src\domain\component;..\..\src\analysis\algorithm\equiSolnAlgo;..\..\src\analysis\model;..\..\src\domain\domain;..\..\src\domain\node;..\..\src\modelbuilder;..\..\src\utility;..\..\..\src\domain\groundMotion;..\..\..\src\element\nonlinearBeamColumn\quadrule;..\..\..\src\material\section\fiber;..\..\..\src\element\fourNodeQuad;..\..\..\src\element\nonlinearBeamColumn\element;..\..\..\src\element\zeroLength;..\..\..\src\element\beamWithHinges;..\..\..\src\recorder\response;..\..\..\src\coordTransformation;..\..\..\src\material\section\repres\section;..\..\..\src\analysis\algorithm\equiSolnAlgo;..\..\..\src\system_of_eqn\eigenSOE;..\..\..\src\analysis\algorithm\eigenAlgo;..\..\..\src\material\nD;..\..\..\src\material\uniaxial;..\..\..\src\handler;..\..\..\src\tcl;..\..\..\src\actor\objectBroker;..\..\..\src\system_of_eqn\linearSOE\umfGEN;..\..\..\src\system_of_eqn\linearSOE\fullGEN;..\..\..\src\system_of_eqn\linearSOE\sparseGEN;..\..\..\src\system_of_eqn\linearSOE\bandSPD;..\..\..\src\system_of_eqn\linearSOE\bandGEN;..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section;..\..\..\src\matrix;..\..\..\src\recorder;..\..\..\src\graph\numberer;..\..\..\src\material\section;..\..\..\src\graph\graph;..\..\..\src\element\beam2d;..\..\..\src\element\beam3d;..\..\..\src\system_of_eqn;..\..\..\src\system_of_eqn\linearSOE;..\..\..\src\system_of_eqn\linearSOE\profileSPD;..\..\..\src\system_of_eqn\linearSOE\sparseSYM;..\..\..\src\domain\pattern;..\..\..\src\analysis\analysis;..\..\..\src\analysis\integrator;..\..\..\src\analysis\numberer;..\..\..\src\analysis\handler;..\..\..\src\renderer;..\..\..\src\material;..\..\..\src\analysis\algorithm;..\..\..\src\convergenceTest;..\..\..\src\analysis\model\simple;..\..\..\src\domain\load;..\..\..\src\analysis\model;..\..\..\src\element\truss;..\..\..\src\actor\channel;..\..\..\src\utility;..\..\..\src\actor\actor;..\..\..\src\modelbuilder;..\..\..\src\modelbuilder\tcl;..\..\..\src\domain\constraints;..\..\..\src\domain\component;..\..\..\src\element;..\..\..\src\domain\node;..\..\..\src\domain\domain;..\..\..\src\tagged\storage;..\..\..\src;..\..\..\src\tagged;..\..\..\src\material\nD\template3Dep;"c:\Program Files\tcl"" |
| PreprocessorDefinitions="_WIN32,WIN32,_DEBUG,_CONSOLE,_TCL84" |
| BasicRuntimeChecks="3" |
| RuntimeLibrary="5" |
| 39,7 → 39,7 |
| <Tool |
| Name="VCLinkerTool" |
| AdditionalOptions="/MACHINE:I386" |
| AdditionalDependencies="actor.lib analysis.lib cblas.lib convergence.lib domain.lib element.lib graph.lib material.lib matrix.lib modelbuilder.lib nonlinearBeamColumn.lib recorder.lib superLU.lib system.lib tagged.lib utility.lib database.lib renderer.lib blas.lib lapack.lib feap.lib arpack.lib umfpack.lib openSeesFortran.lib tcl83.lib tk83.lib odbc32.lib odbccp32.lib OpenGL32.lib glu32.lib GlAux.lib" |
| AdditionalDependencies="reliability.lib actor.lib analysis.lib cblas.lib convergence.lib domain.lib element.lib graph.lib material.lib matrix.lib modelbuilder.lib recorder.lib superLU.lib system.lib tagged.lib utility.lib database.lib renderer.lib blas.lib lapack.lib feap.lib arpack.lib umfpack.lib openSeesFortran.lib tcl84.lib tk84.lib odbc32.lib odbccp32.lib OpenGL32.lib glu32.lib GlAux.lib" |
| OutputFile=".\..\..\bin/quickMain.exe" |
| LinkIncremental="2" |
| SuppressStartupBanner="TRUE" |
| 77,7 → 77,7 |
| <Tool |
| Name="VCCLCompilerTool" |
| InlineFunctionExpansion="1" |
| AdditionalIncludeDirectories="..\..\src\ndarray,..\..\..\src\domain\groundMotion,..\..\..\src\element\nonlinearBeamColumn\quadrule,..\..\..\src\material\section\fiber,..\..\..\src\element\fourNodeQuad,..\..\..\src\element\nonlinearBeamColumn\element,..\..\..\src\element\zeroLength,..\..\..\src\element\beamWithHinges,..\..\..\src\recorder\response,..\..\..\src\coordTransformation,..\..\..\src\material\section\repres\section,..\..\..\src\analysis\algorithm\equiSolnAlgo,..\..\..\src\system_of_eqn\eigenSOE,..\..\..\src\analysis\algorithm\eigenAlgo,..\..\..\src\material\nD,..\..\..\src\material\uniaxial,..\..\..\src\handler,..\..\..\src\tcl,..\..\..\src\actor\objectBroker,..\..\..\src\system_of_eqn\linearSOE\umfGEN,..\..\..\src\system_of_eqn\linearSOE\fullGEN,..\..\..\src\system_of_eqn\linearSOE\sparseGEN,..\..\..\src\system_of_eqn\linearSOE\bandSPD,..\..\..\src\system_of_eqn\linearSOE\bandGEN,..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section,..\..\..\src\matrix,..\..\..\src\recorder,..\..\..\src\graph\numberer,..\..\..\src\material\section,..\..\..\src\graph\graph,..\..\..\src\element\beam2d,..\..\..\src\element\beam3d,..\..\..\src\system_of_eqn,..\..\..\src\system_of_eqn\linearSOE,..\..\..\src\system_of_eqn\linearSOE\profileSPD,..\..\..\src\system_of_eqn\linearSOE\sparseSYM,..\..\..\src\domain\pattern,..\..\..\src\analysis\analysis,..\..\..\src\analysis\integrator,..\..\..\src\analysis\numberer,..\..\..\src\analysis\handler,..\..\..\src\renderer,..\..\..\src\material,..\..\..\src\analysis\algorithm,..\..\..\src\convergenceTest,..\..\..\src\analysis\model\simple,..\..\..\src\domain\load,..\..\..\src\analysis\model,..\..\..\src\element\truss,..\..\..\src\actor\channel,..\..\..\src\utility,..\..\..\src\actor\actor,..\..\..\src\modelbuilder,..\..\..\src\modelbuilder\tcl,..\..\..\src\domain\constraints,..\..\..\src\domain\component,..\..\..\src\element,..\..\..\src\domain\node,..\..\..\src\domain\domain,..\..\..\src\tagged\storage,..\..\..\src,..\..\..\src\tagged,..\..\..\src\material\nD\template3Dep,c:\Program Files\tcl" |
| AdditionalIncludeDirectories="..\..\..\src\ndarray,..\..\..\src\domain\groundMotion,..\..\..\src\element\nonlinearBeamColumn\quadrule,..\..\..\src\material\section\fiber,..\..\..\src\element\fourNodeQuad,..\..\..\src\element\nonlinearBeamColumn\element,..\..\..\src\element\zeroLength,..\..\..\src\element\beamWithHinges,..\..\..\src\recorder\response,..\..\..\src\coordTransformation,..\..\..\src\material\section\repres\section,..\..\..\src\analysis\algorithm\equiSolnAlgo,..\..\..\src\system_of_eqn\eigenSOE,..\..\..\src\analysis\algorithm\eigenAlgo,..\..\..\src\material\nD,..\..\..\src\material\uniaxial,..\..\..\src\handler,..\..\..\src\tcl,..\..\..\src\actor\objectBroker,..\..\..\src\system_of_eqn\linearSOE\umfGEN,..\..\..\src\system_of_eqn\linearSOE\fullGEN,..\..\..\src\system_of_eqn\linearSOE\sparseGEN,..\..\..\src\system_of_eqn\linearSOE\bandSPD,..\..\..\src\system_of_eqn\linearSOE\bandGEN,..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section,..\..\..\src\matrix,..\..\..\src\recorder,..\..\..\src\graph\numberer,..\..\..\src\material\section,..\..\..\src\graph\graph,..\..\..\src\element\beam2d,..\..\..\src\element\beam3d,..\..\..\src\system_of_eqn,..\..\..\src\system_of_eqn\linearSOE,..\..\..\src\system_of_eqn\linearSOE\profileSPD,..\..\..\src\system_of_eqn\linearSOE\sparseSYM,..\..\..\src\domain\pattern,..\..\..\src\analysis\analysis,..\..\..\src\analysis\integrator,..\..\..\src\analysis\numberer,..\..\..\src\analysis\handler,..\..\..\src\renderer,..\..\..\src\material,..\..\..\src\analysis\algorithm,..\..\..\src\convergenceTest,..\..\..\src\analysis\model\simple,..\..\..\src\domain\load,..\..\..\src\analysis\model,..\..\..\src\element\truss,..\..\..\src\actor\channel,..\..\..\src\utility,..\..\..\src\actor\actor,..\..\..\src\modelbuilder,..\..\..\src\modelbuilder\tcl,..\..\..\src\domain\constraints,..\..\..\src\domain\component,..\..\..\src\element,..\..\..\src\domain\node,..\..\..\src\domain\domain,..\..\..\src\tagged\storage,..\..\..\src,..\..\..\src\tagged,..\..\..\src\material\nD\template3Dep,c:\Program Files\tcl" |
| PreprocessorDefinitions="_WIN32,WIN32,NDEBUG,_CONSOLE,_TCL84" |
| StringPooling="TRUE" |
| RuntimeLibrary="5" |
| 94,7 → 94,7 |
| <Tool |
| Name="VCLinkerTool" |
| AdditionalOptions="/MACHINE:I386" |
| AdditionalDependencies="database.lib renderer.lib blas.lib lapack.lib feap.lib arpack.lib umfpack.lib openSeesFortran.lib actor.lib analysis.lib cblas.lib convergence.lib domain.lib element.lib graph.lib material.lib matrix.lib modelbuilder.lib nonlinearBeamColumn.lib recorder.lib superLU.lib system.lib tagged.lib utility.lib tcl82.lib tk83.lib odbc32.lib odbccp32.lib OpenGL32.lib glu32.lib GlAux.lib" |
| AdditionalDependencies="reliability.lib database.lib renderer.lib blas.lib lapack.lib feap.lib arpack.lib umfpack.lib openSeesFortran.lib actor.lib analysis.lib cblas.lib convergence.lib domain.lib element.lib graph.lib material.lib matrix.lib modelbuilder.lib recorder.lib superLU.lib system.lib tagged.lib utility.lib tcl84.lib tk84.lib odbc32.lib odbccp32.lib OpenGL32.lib glu32.lib GlAux.lib" |
| OutputFile=".\..\..\bin/quickMain.exe" |
| LinkIncremental="1" |
| SuppressStartupBanner="TRUE" |
| /trunk/Win32/proj/quickMain/quickMain.dsp |
|---|
| 42,7 → 42,7 |
| # PROP Ignore_Export_Lib 0 |
| # PROP Target_Dir "" |
| # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c |
| # ADD CPP /nologo /MLd /W3 /GX /O2 /I "..\..\..\src\domain\groundMotion" /I "..\..\..\src\element\nonlinearBeamColumn\quadrule" /I "..\..\..\src\material\section\fiber" /I "..\..\..\src\element\fourNodeQuad" /I "..\..\..\src\element\nonlinearBeamColumn\element" /I "..\..\..\src\element\zeroLength" /I "..\..\..\src\element\beamWithHinges" /I "..\..\..\src\recorder\response" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\material\nD\template3Dep" /I "c:\Program Files\tcl" /D "_WIN32" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_TCL84" /FD /c |
| # ADD CPP /nologo /MLd /W3 /GX /O2 /I "..\..\..\src\ndarray" /I "..\..\..\src\domain\groundMotion" /I "..\..\..\src\element\nonlinearBeamColumn\quadrule" /I "..\..\..\src\material\section\fiber" /I "..\..\..\src\element\fourNodeQuad" /I "..\..\..\src\element\nonlinearBeamColumn\element" /I "..\..\..\src\element\zeroLength" /I "..\..\..\src\element\beamWithHinges" /I "..\..\..\src\recorder\response" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\material\nD\template3Dep" /I "c:\Program Files\tcl" /D "_WIN32" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_TCL84" /FD /c |
| # SUBTRACT CPP /YX |
| # ADD BASE RSC /l 0x409 /d "NDEBUG" |
| # ADD RSC /l 0x409 /d "NDEBUG" |
| 51,7 → 51,7 |
| # ADD BSC32 /nologo |
| LINK32=link.exe |
| # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 |
| # ADD LINK32 database.lib renderer.lib blas.lib lapack.lib feap.lib arpack.lib umfpack.lib openSeesFortran.lib actor.lib analysis.lib cblas.lib convergence.lib domain.lib element.lib graph.lib material.lib matrix.lib modelbuilder.lib nonlinearBeamColumn.lib recorder.lib superLU.lib system.lib tagged.lib utility.lib tcl82.lib tk83.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib OpenGL32.lib glu32.lib GlAux.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libc.lib" /libpath:"c:\Program Files\tcl\lib" /libpath:"c:\msdev\lib" /libpath:"..\..\lib" /libpath:"..\..\lib\release" /FORCE:MULTIPLE |
| # ADD LINK32 reliability.lib database.lib renderer.lib blas.lib lapack.lib feap.lib arpack.lib umfpack.lib openSeesFortran.lib actor.lib analysis.lib cblas.lib convergence.lib domain.lib element.lib graph.lib material.lib matrix.lib modelbuilder.lib recorder.lib superLU.lib system.lib tagged.lib utility.lib tcl84.lib tk84.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib OpenGL32.lib glu32.lib GlAux.lib /nologo /subsystem:console /machine:I386 /nodefaultlib:"libc.lib" /libpath:"c:\Program Files\tcl\lib" /libpath:"c:\msdev\lib" /libpath:"..\..\lib" /libpath:"..\..\lib\release" /FORCE:MULTIPLE |
| # SUBTRACT LINK32 /pdb:none |
| !ELSEIF "$(CFG)" == "quickMain - Win32 Debug" |
| 68,7 → 68,7 |
| # PROP Ignore_Export_Lib 0 |
| # PROP Target_Dir "" |
| # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c |
| # ADD CPP /nologo /W3 /GX /ZI /Od /I "..\..\src\domain\groundMotion" /I "..\..\src\domain\load" /I "..\..\src\domain\pattern" /I "..\..\src\element" /I "..\..\src\element\truss" /I "..\..\src\graph\graph" /I "..\..\src\graph\numberer" /I "..\..\src\system_of_eqn" /I "..\..\src\system_of_eqn\linearSOE" /I "..\..\src\system_of_eqn\linearSOE\sparseGen" /I "..\..\src\analysis\analysis" /I "..\..\src\convergenceTest" /I "..\..\src\analysis\integrator" /I "..\..\src\analysis\numberer" /I "..\..\src\domain\constraints" /I "..\..\src\analysis\handler" /I "..\..\src\analysis\algorithm" /I "..\..\src\analysis\model\simple" /I "..\..\src\matrix" /I "..\..\src" /I "..\..\src\actor\actor" /I "..\..\src\tagged" /I "..\..\src\domain\component" /I "..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\src\analysis\model" /I "..\..\src\domain\domain" /I "..\..\src\domain\node" /I "..\..\src\modelbuilder" /I "..\..\src\utility" /I "..\..\..\src\domain\groundMotion" /I "..\..\..\src\element\nonlinearBeamColumn\quadrule" /I "..\..\..\src\material\section\fiber" /I "..\..\..\src\element\fourNodeQuad" /I "..\..\..\src\element\nonlinearBeamColumn\element" /I "..\..\..\src\element\zeroLength" /I "..\..\..\src\element\beamWithHinges" /I "..\..\..\src\recorder\response" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\material\nD\template3Dep" /I "c:\Program Files\tcl" /D "_WIN32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_TCL84" /FR /FD /GZ /c |
| # ADD CPP /nologo /W3 /GX /ZI /Od /I "..\..\src\domain\groundMotion" /I "..\..\src\domain\load" /I "..\..\src\domain\pattern" /I "..\..\src\element" /I "..\..\src\element\truss" /I "..\..\src\graph\graph" /I "..\..\src\graph\numberer" /I "..\..\src\system_of_eqn" /I "..\..\src\system_of_eqn\linearSOE" /I "..\..\src\system_of_eqn\linearSOE\sparseGen" /I "..\..\src\analysis\analysis" /I "..\..\src\convergenceTest" /I "..\..\src\analysis\integrator" /I "..\..\src\analysis\numberer" /I "..\..\src\domain\constraints" /I "..\..\src\analysis\handler" /I "..\..\src\analysis\algorithm" /I "..\..\src\analysis\model\simple" /I "..\..\src\matrix" /I "..\..\src" /I "..\..\src\actor\actor" /I "..\..\src\tagged" /I "..\..\src\domain\component" /I "..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\src\analysis\model" /I "..\..\src\domain\domain" /I "..\..\src\domain\node" /I "..\..\src\modelbuilder" /I "..\..\src\utility" /I "..\..\..\src\ndarray" /I "..\..\..\src\domain\groundMotion" /I "..\..\..\src\element\nonlinearBeamColumn\quadrule" /I "..\..\..\src\material\section\fiber" /I "..\..\..\src\element\fourNodeQuad" /I "..\..\..\src\element\nonlinearBeamColumn\element" /I "..\..\..\src\element\zeroLength" /I "..\..\..\src\element\beamWithHinges" /I "..\..\..\src\recorder\response" /I "..\..\..\src\coordTransformation" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\analysis\algorithm\equiSolnAlgo" /I "..\..\..\src\system_of_eqn\eigenSOE" /I "..\..\..\src\analysis\algorithm\eigenAlgo" /I "..\..\..\src\material\nD" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\handler" /I "..\..\..\src\tcl" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\system_of_eqn\linearSOE\umfGEN" /I "..\..\..\src\system_of_eqn\linearSOE\fullGEN" /I "..\..\..\src\system_of_eqn\linearSOE\sparseGEN" /I "..\..\..\src\system_of_eqn\linearSOE\bandSPD" /I "..\..\..\src\system_of_eqn\linearSOE\bandGEN" /I "..\..\..\src\element\nonlinearBeamColumn\tcl\repres\section" /I "..\..\..\src\matrix" /I "..\..\..\src\recorder" /I "..\..\..\src\graph\numberer" /I "..\..\..\src\material\section" /I "..\..\..\src\graph\graph" /I "..\..\..\src\element\beam2d" /I "..\..\..\src\element\beam3d" /I "..\..\..\src\system_of_eqn" /I "..\..\..\src\system_of_eqn\linearSOE" /I "..\..\..\src\system_of_eqn\linearSOE\profileSPD" /I "..\..\..\src\system_of_eqn\linearSOE\sparseSYM" /I "..\..\..\src\domain\pattern" /I "..\..\..\src\analysis\analysis" /I "..\..\..\src\analysis\integrator" /I "..\..\..\src\analysis\numberer" /I "..\..\..\src\analysis\handler" /I "..\..\..\src\renderer" /I "..\..\..\src\material" /I "..\..\..\src\analysis\algorithm" /I "..\..\..\src\convergenceTest" /I "..\..\..\src\analysis\model\simple" /I "..\..\..\src\domain\load" /I "..\..\..\src\analysis\model" /I "..\..\..\src\element\truss" /I "..\..\..\src\actor\channel" /I "..\..\..\src\utility" /I "..\..\..\src\actor\actor" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\domain\constraints" /I "..\..\..\src\domain\component" /I "..\..\..\src\element" /I "..\..\..\src\domain\node" /I "..\..\..\src\domain\domain" /I "..\..\..\src\tagged\storage" /I "..\..\..\src" /I "..\..\..\src\tagged" /I "..\..\..\src\material\nD\template3Dep" /I "c:\Program Files\tcl" /D "_WIN32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_TCL84" /FR /FD /GZ /c |
| # SUBTRACT CPP /YX |
| # ADD BASE RSC /l 0x409 /d "_DEBUG" |
| # ADD RSC /l 0x409 /d "_DEBUG" |
| 77,7 → 77,7 |
| # ADD BSC32 /nologo |
| LINK32=link.exe |
| # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept |
| # ADD LINK32 actor.lib analysis.lib cblas.lib convergence.lib domain.lib element.lib graph.lib material.lib matrix.lib modelbuilder.lib nonlinearBeamColumn.lib recorder.lib superLU.lib system.lib tagged.lib utility.lib database.lib renderer.lib blas.lib lapack.lib feap.lib arpack.lib umfpack.lib openSeesFortran.lib tcl83.lib tk83.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib OpenGL32.lib glu32.lib GlAux.lib /nologo /subsystem:console /profile /debug /machine:I386 /nodefaultlib:"libc.lib" /libpath:"c:\msdev\lib" /libpath:"c:\Program Files\tcl\lib" /libpath:"..\..\lib" /libpath:"..\..\lib\debug" /FORCE:MULTIPLE |
| # ADD LINK32 reliability.lib actor.lib analysis.lib cblas.lib convergence.lib domain.lib element.lib graph.lib material.lib matrix.lib modelbuilder.lib recorder.lib superLU.lib system.lib tagged.lib utility.lib database.lib renderer.lib blas.lib lapack.lib feap.lib arpack.lib umfpack.lib openSeesFortran.lib tcl83.lib tk83.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib OpenGL32.lib glu32.lib GlAux.lib /nologo /subsystem:console /profile /debug /machine:I386 /nodefaultlib:"libc.lib" /libpath:"c:\msdev\lib" /libpath:"c:\Program Files\tcl\lib" /libpath:"..\..\lib" /libpath:"..\..\lib\debug" /FORCE:MULTIPLE |
| !ENDIF |
| /trunk/Win32/proj/element/element.vcproj |
|---|
| 393,16 → 393,31 |
| RelativePath="..\..\..\SRC\element\20nbrick\TclTwentyNodeBrickCommand.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\20nbrick\TclTwenty_Node_BrickCommand.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\20nbrick\TwentyNodeBrick.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\20nbrick\TwentyNodeBrick.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\20nbrick\Twenty_Node_Brick.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\20nbrick\Twenty_Node_Brick.h"> |
| </File> |
| </Filter> |
| <Filter |
| Name="upU" |
| Filter=""> |
| <File |
| RelativePath="..\..\..\SRC\element\upU\BrickUP.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\upU\BrickUP.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\Src\element\upU\EightNodeBrick_u_p_U.cpp"> |
| </File> |
| <File |
| 415,6 → 430,12 |
| RelativePath="..\..\..\Src\element\upU\FourNodeQuadUP.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\upU\Nine_Four_Node_QuadUP.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\upU\Nine_Four_Node_QuadUP.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\upU\TclEightNodeBrick_u_p_U.cpp"> |
| </File> |
| <File |
| 429,6 → 450,18 |
| <File |
| RelativePath="..\..\..\Src\element\upU\TwentyNodeBrick_u_p_U.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\upU\Twenty_Eight_Node_BrickUP.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\upU\Twenty_Eight_Node_BrickUP.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\upU\shp3dv.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\element\upU\shp3dv.h"> |
| </File> |
| </Filter> |
| <Filter |
| Name="joint" |
| /trunk/Win32/proj/element/element.dsp |
|---|
| 451,10 → 451,22 |
| # PROP Default_Filter "" |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\20nbrick\TclTwenty_Node_BrickCommand.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\20nbrick\TclTwentyNodeBrickCommand.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\20nbrick\Twenty_Node_Brick.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\20nbrick\Twenty_Node_Brick.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\20nbrick\TwentyNodeBrick.cpp |
| # End Source File |
| # Begin Source File |
| 467,6 → 479,14 |
| # PROP Default_Filter "" |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\upU\BrickUP.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\upU\BrickUP.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\Src\element\upU\EightNodeBrick_u_p_U.cpp |
| # End Source File |
| # Begin Source File |
| 483,6 → 503,18 |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\upU\Nine_Four_Node_QuadUP.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\upU\Nine_Four_Node_QuadUP.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\upU\shp3dv.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\upU\TclEightNodeBrick_u_p_U.cpp |
| # End Source File |
| # Begin Source File |
| 495,6 → 527,14 |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\upU\Twenty_Eight_Node_BrickUP.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\element\upU\Twenty_Eight_Node_BrickUP.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\Src\element\upU\TwentyNodeBrick_u_p_U.cpp |
| # End Source File |
| # Begin Source File |
| /trunk/Win32/proj/material/material.vcproj |
|---|
| 21,7 → 21,7 |
| <Tool |
| Name="VCCLCompilerTool" |
| Optimization="0" |
| AdditionalIncludeDirectories="..\..\..\src\material\nd\finitedeformation;..\..\..\src\element\fournodequad;..\..\..\src\material\uniaxial\fedeas;..\..\..\src\material\uniaxial\drain;..\..\..\src\domain\domain;..\..\..\src\renderer;..\..\..\src\material\nD\soil;..\..\..\src\material\nD\template3dep;..\..\..\src\recorder\response;..\..\..\src\material\backbone;..\..\..\src\material\state;..\..\..\src\material\state\strength;..\..\..\src\material\state\deformation;..\..\..\src\material\state\stiffness;..\..\..\src\material\section\repres\section;..\..\..\src\material\section\repres\cell;..\..\..\src\material\section\repres\patch;..\..\..\src\material\section\repres\reinfBar;..\..\..\src\material\section\repres\reinfLayer;..\..\..\src\material\section\fiber;..\..\..\src\element\nonlinearBeamColumn\fiber;..\..\..\src\element\nonlinearBeamColumn\matrixutil;..\..\..\src\material\section;..\..\..\src\handler;..\..\..\src\material\uniaxial;..\..\..\src\material\nD;..\..\..\src\element;..\..\..\src\actor\channel;..\..\..\src\actor\objectBroker;..\..\..\src\matrix;..\..\..\src;..\..\..\src\actor\actor;..\..\..\src\tagged;..\..\..\src\modelbuilder;..\..\..\src\domain\component;..\..\..\src\material;..\..\..\src\modelbuilder\tcl;..\..\..\src\material\nd\template3dep;..\..\..\src\nDarray;..\..\..\src\material\uniaxial\py;..\..\..\src\material\uniaxial\snap;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\material\section\yieldSurface;..\..\..\src\material\nd\feap;"c:\Program Files\tcl\include";"c:\Program Files\tcl"" |
| AdditionalIncludeDirectories="..\..\..\src\material\nd\FiniteDeformation\fdEvolution;..\..\..\src\material\nd\FiniteDeformation\fdFlow;..\..\..\src\material\nd\FiniteDeformation\fdYield;..\..\..\src\material\nd\finitedeformation;..\..\..\src\element\fournodequad;..\..\..\src\material\uniaxial\fedeas;..\..\..\src\material\uniaxial\drain;..\..\..\src\domain\domain;..\..\..\src\renderer;..\..\..\src\material\nD\soil;..\..\..\src\material\nD\template3dep;..\..\..\src\recorder\response;..\..\..\src\material\backbone;..\..\..\src\material\state;..\..\..\src\material\state\strength;..\..\..\src\material\state\deformation;..\..\..\src\material\state\stiffness;..\..\..\src\material\section\repres\section;..\..\..\src\material\section\repres\cell;..\..\..\src\material\section\repres\patch;..\..\..\src\material\section\repres\reinfBar;..\..\..\src\material\section\repres\reinfLayer;..\..\..\src\material\section\fiber;..\..\..\src\element\nonlinearBeamColumn\fiber;..\..\..\src\element\nonlinearBeamColumn\matrixutil;..\..\..\src\material\section;..\..\..\src\handler;..\..\..\src\material\uniaxial;..\..\..\src\material\nD;..\..\..\src\element;..\..\..\src\actor\channel;..\..\..\src\actor\objectBroker;..\..\..\src\matrix;..\..\..\src;..\..\..\src\actor\actor;..\..\..\src\tagged;..\..\..\src\modelbuilder;..\..\..\src\domain\component;..\..\..\src\material;..\..\..\src\modelbuilder\tcl;..\..\..\src\material\nd\template3dep;..\..\..\src\nDarray;..\..\..\src\material\uniaxial\py;..\..\..\src\material\uniaxial\snap;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\material\section\yieldSurface;..\..\..\src\material\nd\feap;"c:\Program Files\tcl\include";"c:\Program Files\tcl"" |
| PreprocessorDefinitions="WIN32,_DEBUG,_LIB,MHS_INSURE,_TCL84" |
| BasicRuntimeChecks="3" |
| RuntimeLibrary="5" |
| 66,7 → 66,7 |
| <Tool |
| Name="VCCLCompilerTool" |
| InlineFunctionExpansion="1" |
| AdditionalIncludeDirectories=".;..\..\..\src\material\nd\finitedeformation;..\..\..\src\element\fournodequad;..\..\..\src\material\uniaxial\fedeas;..\..\..\src\material\uniaxial\drain;..\..\..\src\domain\domain;..\..\..\src\renderer;..\..\..\src\material\nD\soil;..\..\..\src\material\nD\template3dep;..\..\..\src\recorder\response;..\..\..\src\material\backbone;..\..\..\src\material\state;..\..\..\src\material\state\strength;..\..\..\src\material\state\deformation;..\..\..\src\material\state\stiffness;..\..\..\src\material\section\repres\section;..\..\..\src\material\section\repres\cell;..\..\..\src\material\section\repres\patch;..\..\..\src\material\section\repres\reinfBar;..\..\..\src\material\section\repres\reinfLayer;..\..\..\src\material\section\fiber;..\..\..\src\element\nonlinearBeamColumn\fiber;..\..\..\src\element\nonlinearBeamColumn\matrixutil;..\..\..\src\material\section;..\..\..\src\handler;..\..\..\src\material\uniaxial;..\..\..\src\material\nD;..\..\..\src\element;..\..\..\src\actor\channel;..\..\..\src\actor\objectBroker;..\..\..\src\matrix;..\..\..\src;..\..\..\src\actor\actor;..\..\..\src\tagged;..\..\..\src\modelbuilder;..\..\..\src\domain\component;..\..\..\src\material;..\..\..\src\modelbuilder\tcl;..\..\..\src\material\nd\template3dep;..\..\..\src\nDarray;..\..\..\src\material\uniaxial\py;..\..\..\src\material\uniaxial\snap;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\material\section\yieldSurface;..\..\..\src\material\nd\feap;"c:\Program Files\tcl\include";"c:\Program Files\tcl"" |
| AdditionalIncludeDirectories="..\..\..\src\material\nd\FiniteDeformation\fdEvolution;..\..\..\src\material\nd\FiniteDeformation\fdFlow;..\..\..\src\material\nd\FiniteDeformation\fdYield;..\..\..\src\material\nd\finitedeformation;..\..\..\src\element\fournodequad;..\..\..\src\material\uniaxial\fedeas;..\..\..\src\material\uniaxial\drain;..\..\..\src\domain\domain;..\..\..\src\renderer;..\..\..\src\material\nD\soil;..\..\..\src\material\nD\template3dep;..\..\..\src\recorder\response;..\..\..\src\material\backbone;..\..\..\src\material\state;..\..\..\src\material\state\strength;..\..\..\src\material\state\deformation;..\..\..\src\material\state\stiffness;..\..\..\src\material\section\repres\section;..\..\..\src\material\section\repres\cell;..\..\..\src\material\section\repres\patch;..\..\..\src\material\section\repres\reinfBar;..\..\..\src\material\section\repres\reinfLayer;..\..\..\src\material\section\fiber;..\..\..\src\element\nonlinearBeamColumn\fiber;..\..\..\src\element\nonlinearBeamColumn\matrixutil;..\..\..\src\material\section;..\..\..\src\handler;..\..\..\src\material\uniaxial;..\..\..\src\material\nD;..\..\..\src\element;..\..\..\src\actor\channel;..\..\..\src\actor\objectBroker;..\..\..\src\matrix;..\..\..\src;..\..\..\src\actor\actor;..\..\..\src\tagged;..\..\..\src\modelbuilder;..\..\..\src\domain\component;..\..\..\src\material;..\..\..\src\modelbuilder\tcl;..\..\..\src\material\nd\template3dep;..\..\..\src\nDarray;..\..\..\src\material\uniaxial\py;..\..\..\src\material\uniaxial\snap;..\..\..\src\material\yieldSurface\yieldSurfaceBC;..\..\..\src\material\yieldSurface\evolution;..\..\..\src\material\yieldSurface\plasticHardeningMaterial;..\..\..\src\material\section\yieldSurface;..\..\..\src\material\nd\feap;"c:\Program Files\tcl\include";"c:\Program Files\tcl"" |
| PreprocessorDefinitions="WIN32,NDEBUG,_LIB,_TCL84" |
| StringPooling="TRUE" |
| RuntimeLibrary="5" |
| 359,6 → 359,12 |
| RelativePath="..\..\..\Src\material\uniaxial\Py\PySimple1.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\uniaxial\PY\PySimple1Gen.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\uniaxial\PY\PySimple1Gen.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\Src\material\uniaxial\Py\QzSimple1.cpp"> |
| </File> |
| <File |
| 379,6 → 385,12 |
| <File |
| RelativePath="..\..\..\Src\material\uniaxial\Py\TzSimple1.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\uniaxial\PY\TzSimple1Gen.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\uniaxial\PY\TzSimple1Gen.h"> |
| </File> |
| </Filter> |
| <Filter |
| Name="snap" |
| 526,6 → 538,12 |
| RelativePath="..\..\..\SRC\material\nD\soil\PressureDependMultiYield.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\soil\PressureDependMultiYield02.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\soil\PressureDependMultiYield02.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\soil\PressureIndependMultiYield.cpp"> |
| </File> |
| <File |
| 761,6 → 779,24 |
| Name="finitedeformation" |
| Filter=""> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\FDEPState.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\FDEPState.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\FDdecoupledElastic3D.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\FDdecoupledElastic3D.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\FiniteDeformationEP3D.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\FiniteDeformationEP3D.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\FiniteDeformationElastic3D.cpp"> |
| </File> |
| <File |
| 785,6 → 821,12 |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\MooneyRivlinWEnergy.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\NeoHookeanCompressible3D.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\NeoHookeanCompressible3D.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\NeoHookeanWEnergy.cpp"> |
| </File> |
| <File |
| 809,6 → 851,9 |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\SimoPisterWEnergy.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\TclFiniteDeformationEP3DCommand.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\TclFiniteDeformationElastic3DCommand.cpp"> |
| </File> |
| <File |
| 817,6 → 862,66 |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\W.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_S.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_S.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_SLS.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_SLS.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_T.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_T.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_TL.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_TL.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlow.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlow.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlowDP.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlowDP.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlowVM.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlowVM.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYield.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYield.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYieldDP.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYieldDP.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYieldVM.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYieldVM.h"> |
| </File> |
| </Filter> |
| </Filter> |
| <Filter |
| /trunk/Win32/proj/material/material.dsp |
|---|
| 41,7 → 41,7 |
| # PROP Intermediate_Dir "..\..\obj\material\release" |
| # PROP Target_Dir "" |
| # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c |
| # ADD CPP /nologo /MLd /W3 /GX /O2 /I "." /I "..\..\..\src\material\nd\finitedeformation" /I "..\..\..\src\element\fournodequad" /I "..\..\..\src\material\uniaxial\fedeas" /I "..\..\..\src\material\uniaxial\drain" /I "..\..\..\src\domain\domain" /I "..\..\..\src\renderer" /I "..\..\..\src\material\nD\soil" /I "..\..\..\src\material\nD\template3dep" /I "..\..\..\src\recorder\response" /I "..\..\..\src\material\backbone" /I "..\..\..\src\material\state" /I "..\..\..\src\material\state\strength" /I "..\..\..\src\material\state\deformation" /I "..\..\..\src\material\state\stiffness" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\material\section\repres\cell" /I "..\..\..\src\material\section\repres\patch" /I "..\..\..\src\material\section\repres\reinfBar" /I "..\..\..\src\material\section\repres\reinfLayer" /I "..\..\..\src\material\section\fiber" /I "..\..\..\src\element\nonlinearBeamColumn\fiber" /I "..\..\..\src\element\nonlinearBeamColumn\matrixutil" /I "..\..\..\src\material\section" /I "..\..\..\src\handler" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\material\nD" /I "..\..\..\src\element" /I "..\..\..\src\actor\channel" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\matrix" /I "..\..\..\src" /I "..\..\..\src\actor\actor" /I "..\..\..\src\tagged" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\domain\component" /I "..\..\..\src\material" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\material\nd\template3dep" /I "..\..\..\src\nDarray" /I "..\..\..\src\material\uniaxial\py" /I "..\..\..\src\material\uniaxial\snap" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\material\section\yieldSurface" /I "..\..\..\src\material\nd\feap" /I "c:\Program Files\tcl" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /D "_TCL84" /FD /c |
| # ADD CPP /nologo /MLd /W3 /GX /O2 /I "." /I "..\..\..\src\material\nd\finitedeformation\fdevolution" /I "..\..\..\src\material\nd\finitedeformation\fdflow" /I "..\..\..\src\material\nd\finitedeformation\fdYield" /I "..\..\..\src\material\nd\finitedeformation" /I "..\..\..\src\element\fournodequad" /I "..\..\..\src\material\uniaxial\fedeas" /I "..\..\..\src\material\uniaxial\drain" /I "..\..\..\src\domain\domain" /I "..\..\..\src\renderer" /I "..\..\..\src\material\nD\soil" /I "..\..\..\src\material\nD\template3dep" /I "..\..\..\src\recorder\response" /I "..\..\..\src\material\backbone" /I "..\..\..\src\material\state" /I "..\..\..\src\material\state\strength" /I "..\..\..\src\material\state\deformation" /I "..\..\..\src\material\state\stiffness" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\material\section\repres\cell" /I "..\..\..\src\material\section\repres\patch" /I "..\..\..\src\material\section\repres\reinfBar" /I "..\..\..\src\material\section\repres\reinfLayer" /I "..\..\..\src\material\section\fiber" /I "..\..\..\src\element\nonlinearBeamColumn\fiber" /I "..\..\..\src\element\nonlinearBeamColumn\matrixutil" /I "..\..\..\src\material\section" /I "..\..\..\src\handler" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\material\nD" /I "..\..\..\src\element" /I "..\..\..\src\actor\channel" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\matrix" /I "..\..\..\src" /I "..\..\..\src\actor\actor" /I "..\..\..\src\tagged" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\domain\component" /I "..\..\..\src\material" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\material\nd\template3dep" /I "..\..\..\src\nDarray" /I "..\..\..\src\material\uniaxial\py" /I "..\..\..\src\material\uniaxial\snap" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\material\section\yieldSurface" /I "..\..\..\src\material\nd\feap" /I "c:\Program Files\tcl" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_MBCS" /D "_TCL84" /FD /c |
| # SUBTRACT CPP /YX |
| # ADD BASE RSC /l 0x409 /d "NDEBUG" |
| # ADD RSC /l 0x409 /d "NDEBUG" |
| 65,7 → 65,7 |
| # PROP Intermediate_Dir "..\..\obj\material\debug" |
| # PROP Target_Dir "" |
| # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c |
| # ADD CPP /nologo /W3 /GX /ZI /Od /I "..\..\..\src\material\nd\finitedeformation" /I "..\..\..\src\element\fournodequad" /I "..\..\..\src\material\uniaxial\fedeas" /I "..\..\..\src\material\uniaxial\drain" /I "..\..\..\src\domain\domain" /I "..\..\..\src\renderer" /I "..\..\..\src\material\nD\soil" /I "..\..\..\src\material\nD\template3dep" /I "..\..\..\src\recorder\response" /I "..\..\..\src\material\backbone" /I "..\..\..\src\material\state" /I "..\..\..\src\material\state\strength" /I "..\..\..\src\material\state\deformation" /I "..\..\..\src\material\state\stiffness" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\material\section\repres\cell" /I "..\..\..\src\material\section\repres\patch" /I "..\..\..\src\material\section\repres\reinfBar" /I "..\..\..\src\material\section\repres\reinfLayer" /I "..\..\..\src\material\section\fiber" /I "..\..\..\src\element\nonlinearBeamColumn\fiber" /I "..\..\..\src\element\nonlinearBeamColumn\matrixutil" /I "..\..\..\src\material\section" /I "..\..\..\src\handler" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\material\nD" /I "..\..\..\src\element" /I "..\..\..\src\actor\channel" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\matrix" /I "..\..\..\src" /I "..\..\..\src\actor\actor" /I "..\..\..\src\tagged" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\domain\component" /I "..\..\..\src\material" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\material\nd\template3dep" /I "..\..\..\src\nDarray" /I "..\..\..\src\material\uniaxial\py" /I "..\..\..\src\material\uniaxial\snap" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\material\section\yieldSurface" /I "..\..\..\src\material\nd\feap" /I "c:\Program Files\tcl" /D "WIN32" /D "_DEBUG" /D "_LIB" /D "MHS_INSURE" /D "_MBCS" /D "_TCL84" /FR /FD /GZ /c |
| # ADD CPP /nologo /W3 /GX /ZI /Od /I "..\..\..\src\material\nd\finitedeformation\fdevolution" /I "..\..\..\src\material\nd\finitedeformation\fdflow" /I "..\..\..\src\material\nd\finitedeformation\fdYield" /I "..\..\..\src\material\nd\finitedeformation" /I "..\..\..\src\element\fournodequad" /I "..\..\..\src\material\uniaxial\fedeas" /I "..\..\..\src\material\uniaxial\drain" /I "..\..\..\src\domain\domain" /I "..\..\..\src\renderer" /I "..\..\..\src\material\nD\soil" /I "..\..\..\src\material\nD\template3dep" /I "..\..\..\src\recorder\response" /I "..\..\..\src\material\backbone" /I "..\..\..\src\material\state" /I "..\..\..\src\material\state\strength" /I "..\..\..\src\material\state\deformation" /I "..\..\..\src\material\state\stiffness" /I "..\..\..\src\material\section\repres\section" /I "..\..\..\src\material\section\repres\cell" /I "..\..\..\src\material\section\repres\patch" /I "..\..\..\src\material\section\repres\reinfBar" /I "..\..\..\src\material\section\repres\reinfLayer" /I "..\..\..\src\material\section\fiber" /I "..\..\..\src\element\nonlinearBeamColumn\fiber" /I "..\..\..\src\element\nonlinearBeamColumn\matrixutil" /I "..\..\..\src\material\section" /I "..\..\..\src\handler" /I "..\..\..\src\material\uniaxial" /I "..\..\..\src\material\nD" /I "..\..\..\src\element" /I "..\..\..\src\actor\channel" /I "..\..\..\src\actor\objectBroker" /I "..\..\..\src\matrix" /I "..\..\..\src" /I "..\..\..\src\actor\actor" /I "..\..\..\src\tagged" /I "..\..\..\src\modelbuilder" /I "..\..\..\src\domain\component" /I "..\..\..\src\material" /I "..\..\..\src\modelbuilder\tcl" /I "..\..\..\src\material\nd\template3dep" /I "..\..\..\src\nDarray" /I "..\..\..\src\material\uniaxial\py" /I "..\..\..\src\material\uniaxial\snap" /I "..\..\..\src\material\yieldSurface\yieldSurfaceBC" /I "..\..\..\src\material\yieldSurface\evolution" /I "..\..\..\src\material\yieldSurface\plasticHardeningMaterial" /I "..\..\..\src\material\section\yieldSurface" /I "..\..\..\src\material\nd\feap" /I "c:\Program Files\tcl" /D "WIN32" /D "_DEBUG" /D "_LIB" /D "MHS_INSURE" /D "_MBCS" /D "_TCL84" /FR /FD /GZ /c |
| # SUBTRACT CPP /YX |
| # ADD BASE RSC /l 0x409 /d "_DEBUG" |
| # ADD RSC /l 0x409 /d "_DEBUG" |
| 242,6 → 242,14 |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\uniaxial\PY\PySimple1Gen.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\uniaxial\PY\PySimple1Gen.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\Src\material\uniaxial\Py\QzSimple1.cpp |
| # End Source File |
| # Begin Source File |
| 268,6 → 276,14 |
| SOURCE=..\..\..\Src\material\uniaxial\Py\TzSimple1.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\uniaxial\PY\TzSimple1Gen.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\uniaxial\PY\TzSimple1Gen.h |
| # End Source File |
| # End Group |
| # Begin Group "snap" |
| 626,6 → 642,14 |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\soil\PressureDependMultiYield02.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\soil\PressureDependMultiYield02.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\soil\PressureIndependMultiYield.cpp |
| # End Source File |
| # Begin Source File |
| 932,8 → 956,116 |
| # Begin Group "finitedeformation" |
| # PROP Default_Filter "" |
| # Begin Group "fdflow" |
| # PROP Default_Filter "" |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlow.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlow.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlowDP.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlowDP.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlowVM.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdFlow\fdFlowVM.h |
| # End Source File |
| # End Group |
| # Begin Group "fdyield" |
| # PROP Default_Filter "" |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYield.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYield.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYieldDP.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYieldDP.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYieldVM.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdYield\fdYieldVM.h |
| # End Source File |
| # End Group |
| # Begin Group "fdevolution" |
| # PROP Default_Filter "" |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_S.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_S.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_SLS.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_SLS.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_T.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_T.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_TL.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\fdEvolution\fdEvolution_TL.h |
| # End Source File |
| # End Group |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\FDdecoupledElastic3D.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\FDdecoupledElastic3D.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\FDEPState.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\FDEPState.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\FiniteDeformationElastic3D.cpp |
| # End Source File |
| # Begin Source File |
| 942,6 → 1074,14 |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\FiniteDeformationEP3D.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\FiniteDeformationEP3D.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\LogWEnergy.cpp |
| # End Source File |
| # Begin Source File |
| 966,6 → 1106,14 |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\NeoHookeanCompressible3D.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\NeoHookeanCompressible3D.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\NeoHookeanWEnergy.cpp |
| # End Source File |
| # Begin Source File |
| 1002,6 → 1150,10 |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\TclFiniteDeformationEP3DCommand.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\material\nD\FiniteDeformation\W.cpp |
| # End Source File |
| # Begin Source File |
| /trunk/Win32/proj/database/database.vcproj |
|---|
| 111,6 → 111,9 |
| RelativePath="..\..\..\SRC\database\FileDatastore.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\database\NEESData.cpp"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\database\TclDatabaseCommands.cpp"> |
| </File> |
| </Filter> |
| 123,6 → 126,9 |
| <File |
| RelativePath="..\..\..\SRC\database\FileDatastore.h"> |
| </File> |
| <File |
| RelativePath="..\..\..\SRC\database\NEESData.h"> |
| </File> |
| </Filter> |
| </Files> |
| <Globals> |
| /trunk/Win32/proj/database/database.dsp |
|---|
| 95,6 → 95,10 |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\database\NEESData.cpp |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\database\TclDatabaseCommands.cpp |
| # End Source File |
| # End Group |
| 109,6 → 113,10 |
| SOURCE=..\..\..\SRC\database\FileDatastore.h |
| # End Source File |
| # Begin Source File |
| SOURCE=..\..\..\SRC\database\NEESData.h |
| # End Source File |
| # End Group |
| # End Target |
| # End Project |
| /trunk/SRC/element/TclElementCommands.cpp |
|---|
| 18,8 → 18,8 |
| ** ** |
| ** ****************************************************************** */ |
| // $Revision: 1.34 $ |
| // $Date: 2003-11-25 23:49:18 $ |
| // $Revision: 1.35 $ |
| // $Date: 2004-07-22 18:34:41 $ |
| // $Source: /usr/local/cvs/OpenSees/SRC/element/TclElementCommands.cpp,v $ |
| // Written: fmk |
| 205,6 → 205,24 |
| TclModelBuilder_addFourNodeQuadUP(ClientData, Tcl_Interp *, int, TCL_Char **, |
| Domain*, TclModelBuilder *); |
| // Zhaohui Yang |
| extern int |
| TclModelBuilder_addBrickUP(ClientData, Tcl_Interp *, int, TCL_Char **, |
| Domain*, TclModelBuilder *); |
| // Zhaohui Yang |
| extern int |
| TclModelBuilder_addNineFourNodeQuadUP(ClientData, Tcl_Interp *, int, TCL_Char **, |
| Domain*, TclModelBuilder *); |
| // Jinchi Lu |
| extern int |
| TclModelBuilder_addTwentyEightNodeBrickUP(ClientData, Tcl_Interp *, int, TCL_Char **, |
| Domain*, TclModelBuilder *); |
| // Jinchi Lu |
| extern int |
| TclModelBuilder_addTwentyNodeBrick(ClientData, Tcl_Interp *, int, TCL_Char **, |
| Domain*, TclModelBuilder *); |
| // Boris Jeremic and Zhao Cheng |
| extern int |
| TclModelBuilder_addTLFD20nBrick(ClientData, Tcl_Interp *, int, TCL_Char **, |
| 286,6 → 304,22 |
| int result = TclModelBuilder_addFourNodeQuadUP(clientData, interp, argc, argv, |
| theTclDomain, theTclBuilder); |
| return result; |
| } else if (strcmp(argv[1],"brickUP") == 0) { |
| int result = TclModelBuilder_addBrickUP(clientData, interp, argc, argv, |
| theTclDomain, theTclBuilder); |
| return result; |
| } else if (strcmp(argv[1],"9_4_QuadUP") == 0) { |
| int result = TclModelBuilder_addNineFourNodeQuadUP(clientData, interp, argc, argv, |
| theTclDomain, theTclBuilder); |
| return result; |
| } else if (strcmp(argv[1],"20_8_BrickUP") == 0) { |
| int result = TclModelBuilder_addTwentyEightNodeBrickUP(clientData, interp, argc, argv, |
| theTclDomain, theTclBuilder); |
| return result; |
| } else if (strcmp(argv[1],"20NodeBrick") == 0) { |
| int result = TclModelBuilder_addTwentyNodeBrick(clientData, interp, argc, argv, |
| theTclDomain, theTclBuilder); |
| return result; |
| } else if ((strcmp(argv[1],"shell") == 0) || (strcmp(argv[1],"shellMITC4") == 0) || |
| (strcmp(argv[1],"Shell") == 0) || (strcmp(argv[1],"ShellMITC4") == 0)) { |
| /trunk/SRC/element/TotalLagrangianFD20NodeBrick/TotalLagrangianFD20NodeBrick.cpp |
|---|
| 20,27 → 20,14 |
| //# |
| //# |
| //# DATE: Sept2003 |
| //# UPDATE HISTORY: |
| //# UPDATE HISTORY: 28May2004, Zhao put all Ks & Rs in the integration cycle and |
| //# and use minor symmetries to make concise and efficient |
| //# |
| //# |
| //=============================================================================== |
| #ifndef TOTALLAGRANGIANFD20NODEBRICK_CPP |
| #define TOTALLAGRANGIANFD20NODEBRICK_CPP |
| //#include <FiniteDeformationElastic3D.h> |
| #include <Matrix.h> |
| #include <Vector.h> |
| #include <ID.h> |
| #include <Renderer.h> |
| #include <Domain.h> |
| #include <string.h> |
| #include <Information.h> |
| #include <Channel.h> |
| #include <FEM_ObjectBroker.h> |
| #include <ErrorHandler.h> |
| #include <ElementResponse.h> |
| #include <ElementalLoad.h> |
| #include <TotalLagrangianFD20NodeBrick.h> |
| #define NumIntegrationPts 3 |
| 337,6 → 324,7 |
| { |
| int ret = 0; |
| tensor dh; |
| tensor dH_dX; |
| int where; |
| double r = 0.0; |
| double s = 0.0; |
| 347,7 → 335,6 |
| tensor InitialNodesCrds = this->getNodesCrds(); |
| tensor CurrentNodesDisp = this->getNodesDisp(); |
| // CurrentNodesDisp.print("U","\n"); |
| for( short GP_c_r = 0 ; GP_c_r < NumIntegrationPts ; GP_c_r++ ) |
| { |
| 360,12 → 347,10 |
| t = pts[GP_c_t ]; |
| where =(GP_c_r * NumIntegrationPts + GP_c_s) * NumIntegrationPts + GP_c_t; |
| dh = shapeFunctionDerivative(r,s,t); |
| tensor dH_dX = this->dh_Global(dh); |
| tensor currentF = CurrentNodesDisp("Ia") * dH_dX("Ib"); |
| currentF.null_indices(); CurrentNodesDisp.null_indices(); dH_dX.null_indices(); |
| updatedF = currentF + I_ij; |
| // if (where == 1) |
| // updatedF.print("F","\n"); |
| dH_dX = this->dh_Global(dh); |
| currentF = CurrentNodesDisp("Ia") * dH_dX("Ib"); |
| currentF.null_indices(); //CurrentNodesDisp.null_indices(); dH_dX.null_indices(); |
| updatedF = currentF + I_ij; |
| ret += theMaterial[where]->setTrialF(updatedF); |
| } |
| } |
| 378,7 → 363,7 |
| { |
| tensor N_C = this->getNodesCrds(); |
| tensor J3D = dh("ij") * N_C("ik"); |
| J3D.null_indices(); dh.null_indices(); N_C.null_indices(); |
| J3D.null_indices(); //dh.null_indices(); N_C.null_indices(); |
| return J3D; |
| } |
| 387,7 → 372,7 |
| { |
| tensor N_C = this->getNodesCrds(); |
| tensor J3D = dh("ij") * N_C("ik"); |
| J3D.null_indices(); dh.null_indices(); N_C.null_indices(); |
| J3D.null_indices(); //dh.null_indices(); N_C.null_indices(); |
| tensor J3Dinv = J3D.inverse(); |
| return J3Dinv; |
| } |
| 397,14 → 382,16 |
| { |
| tensor JacobianINV0 = this->Jacobian_3Dinv(dh); |
| tensor dhGlobal_0 = dh("ij") * JacobianINV0("kj"); |
| dhGlobal_0.null_indices(); dh.null_indices(); JacobianINV0.null_indices(); |
| dhGlobal_0.null_indices(); //dh.null_indices(); JacobianINV0.null_indices(); |
| return dhGlobal_0; |
| } |
| //====================================================================== |
| tensor TotalLagrangianFD20NodeBrick::getStiffnessTensor01(void) |
| tensor TotalLagrangianFD20NodeBrick::getStiffnessTensor(void) |
| { |
| int K_dim[] = {NumNodes,NumDof,NumDof,NumNodes}; |
| tensor tI2("I", 2, def_dim_2); |
| int K_dim[] = {NumNodes,NumDof,NumDof,NumNodes}; |
| tensor Kk(4,K_dim,0.0); |
| double r = 0.0; |
| 419,151 → 406,19 |
| int dh_dim[] = {NumNodes,NumDof}; |
| tensor dh(2, dh_dim, 0.0); |
| stresstensor PK2Stress; |
| tensor L2; |
| double det_of_Jacobian = 0.0; |
| tensor Jacobian; |
| tensor JacobianINV; |
| tensor dhGlobal; |
| tensor currentF; |
| tensor temp01; |
| tensor temp02; |
| for( short GP_c_r = 0 ; GP_c_r < NumIntegrationPts ; GP_c_r++ ) |
| { |
| r = pts[GP_c_r ]; |
| rw = wts[GP_c_r ]; |
| for( short GP_c_s = 0 ; GP_c_s < NumIntegrationPts ; GP_c_s++ ) |
| { |
| s = pts[GP_c_s ]; |
| sw = wts[GP_c_s ]; |
| for( short GP_c_t = 0 ; GP_c_t < NumIntegrationPts ; GP_c_t++ ) |
| { |
| t = pts[GP_c_t ]; |
| tw = wts[GP_c_t ]; |
| where =(GP_c_r * NumIntegrationPts + GP_c_s) * NumIntegrationPts + GP_c_t; |
| dh = shapeFunctionDerivative(r,s,t); |
| Jacobian = this->Jacobian_3D(dh); |
| det_of_Jacobian = Jacobian.determinant(); |
| dhGlobal = this->dh_Global(dh); |
| weight = rw * sw * tw * det_of_Jacobian; |
| L2 = theMaterial[where]->getTangentTensor(); |
| // if (where==1) |
| // L2.print("L2","\n"); |
| temp01 = dhGlobal("Pj") * L2("ijkl"); |
| temp01.null_indices(); dhGlobal.null_indices(); L2.null_indices(); |
| temp02 = temp01("Pikl") * dhGlobal("Qk") * weight; |
| temp02.null_indices(); dhGlobal.null_indices(); temp01.null_indices(); |
| Kk += temp02; |
| } |
| } |
| } |
| // exit (-1); |
| return Kk; |
| } |
| //====================================================================== |
| tensor TotalLagrangianFD20NodeBrick::getStiffnessTensor02(void) |
| { |
| int K_dim[] = {NumNodes,NumDof,NumDof,NumNodes}; |
| tensor Kk(4,K_dim,0.0); |
| double r = 0.0; |
| double rw = 0.0; |
| double s = 0.0; |
| double sw = 0.0; |
| double t = 0.0; |
| double tw = 0.0; |
| short where = 0; |
| double weight = 0.0; |
| int dh_dim[] = {NumNodes,NumDof}; |
| tensor dh(2, dh_dim, 0.0); |
| tensor L2; |
| double det_of_Jacobian = 0.0; |
| tensor Jacobian; |
| tensor dhGlobal; |
| tensor currentF; |
| tensor nodesDisp; |
| tensor temp01; |
| tensor F; |
| //tensor temp01; |
| tensor temp02; |
| tensor temp03; |
| tensor temp04; |
| nodesDisp = this->getNodesDisp( ); |
| // nodesDisp.print("U1","\n"); |
| for( short GP_c_r = 0 ; GP_c_r < NumIntegrationPts ; GP_c_r++ ) |
| { |
| r = pts[GP_c_r ]; |
| rw = wts[GP_c_r ]; |
| for( short GP_c_s = 0 ; GP_c_s < NumIntegrationPts ; GP_c_s++ ) |
| { |
| s = pts[GP_c_s ]; |
| sw = wts[GP_c_s ]; |
| for( short GP_c_t = 0 ; GP_c_t < NumIntegrationPts ; GP_c_t++ ) |
| { |
| t = pts[GP_c_t ]; |
| tw = wts[GP_c_t ]; |
| where =(GP_c_r * NumIntegrationPts + GP_c_s) * NumIntegrationPts + GP_c_t; |
| dh = shapeFunctionDerivative(r,s,t); |
| Jacobian = this->Jacobian_3D(dh); |
| det_of_Jacobian = Jacobian.determinant(); |
| dhGlobal = this->dh_Global(dh) ; |
| temp01 = dhGlobal("nk") * nodesDisp("nm"); |
| temp01.null_indices(); dhGlobal.null_indices(); nodesDisp.null_indices(); |
| temp02 = temp01("km") * dhGlobal("Qm"); |
| temp02.null_indices(); dhGlobal.null_indices(); temp01.null_indices(); |
| weight = rw * sw * tw * det_of_Jacobian; |
| L2 = theMaterial[where]->getTangentTensor(); |
| temp03 = dhGlobal("Pj") * L2("ijkl"); |
| temp03.null_indices(); dhGlobal.null_indices(); L2.null_indices(); |
| temp04 = temp03("Pikl") * temp02("kQ") * weight; |
| temp04.null_indices(); temp03.null_indices(); temp02.null_indices(); |
| Kk += temp04; |
| } |
| } |
| } |
| return Kk; |
| } |
| //====================================================================== |
| tensor TotalLagrangianFD20NodeBrick::getStiffnessTensor03(void) |
| { |
| int K_dim[] = {NumNodes,NumDof,NumDof,NumNodes}; |
| tensor Kk(4,K_dim,0.0); |
| double r = 0.0; |
| double rw = 0.0; |
| double s = 0.0; |
| double sw = 0.0; |
| double t = 0.0; |
| double tw = 0.0; |
| short where = 0; |
| double weight = 0.0; |
| int dh_dim[] = {NumNodes,NumDof}; |
| tensor dh(2, dh_dim, 0.0); |
| tensor L2; |
| double det_of_Jacobian = 0.0; |
| tensor Jacobian; |
| tensor dhGlobal; |
| tensor currentF; |
| tensor nodesDisp; |
| tensor temp01; |
| tensor temp02; |
| tensor temp03; |
| tensor temp04; |
| tensor temp04; |
| tensor temp05; |
| tensor temp06; |
| 586,194 → 441,109 |
| Jacobian = this->Jacobian_3D(dh); |
| det_of_Jacobian = Jacobian.determinant(); |
| dhGlobal = this->dh_Global(dh); |
| temp01 = dhGlobal("mk") * nodesDisp("mx"); |
| temp01.null_indices( ); dhGlobal.null_indices( ); nodesDisp.null_indices( ); |
| temp02 = temp01("kx") * dhGlobal("Qx"); |
| temp02.null_indices( ); dhGlobal.null_indices( ); temp01.null_indices( ); |
| temp03 = dhGlobal("nk") * nodesDisp("ny"); |
| temp03.null_indices( ); dhGlobal.null_indices( ); nodesDisp.null_indices( ); |
| temp04 = dhGlobal("Py") * temp03("jy"); |
| temp04.null_indices( ); temp03.null_indices( ); dhGlobal.null_indices( ); |
| weight = rw * sw * tw * det_of_Jacobian; |
| PK2Stress = theMaterial[where]->getStressTensor(); |
| L2 = theMaterial[where]->getTangentTensor(); |
| temp05 = temp04("Pj") * L2("ijkl"); |
| temp05.null_indices( ); temp02.null_indices( ); L2.null_indices( ); |
| temp06 = temp05("Pikl") * temp02("kQ") * weight; |
| temp06.null_indices( ); temp05.null_indices( ); temp04.null_indices( ); |
| F = theMaterial[where]->getF(); |
| //K1 |
| temp04 = dhGlobal("Pb") * tI2("mn"); |
| temp04.null_indices(); //dhGlobal.null_indices(); tI2.null_indices(); |
| temp02 = PK2Stress("bd") * dhGlobal("Qd"); |
| temp02.null_indices(); //dhGlobal.null_indices(); PK2Stress.null_indices(); |
| temp06 = temp04("Pbmn") * temp02("bQ") * weight; |
| temp06.null_indices(); //temp04.null_indices(); temp02.null_indices(); |
| Kk += temp06; |
| } |
| } |
| } |
| return Kk; |
| } |
| //K2 |
| temp03 = dhGlobal("Pb") * F("ma"); |
| temp03.null_indices(); //dhGlobal.null_indices(); F.null_indices(); |
| temp04 = F("nc") * L2("abcd"); |
| temp04.null_indices(); //F.null_indices(); L2.null_indices(); |
| temp05 = temp04("nabd") * dhGlobal("Qd"); |
| temp05.null_indices(); //temp04.null_indices(); dhGlobal.null_indices(); |
| temp06 = temp03("Pbma") * temp05("nabQ") * weight; |
| temp06.null_indices(); //temp03.null_indices(); temp05.null_indices(); |
| Kk += temp06; |
| ///* |
| // // K1 |
| // temp01 = dhGlobal("Pj") * L2("ijkl"); |
| // temp01.null_indices(); dhGlobal.null_indices(); L2.null_indices(); |
| // temp05 = temp01("Pikl") * dhGlobal("Qk") * weight; |
| // temp05.null_indices(); dhGlobal.null_indices(); temp01.null_indices(); |
| // Kk += temp05; |
| // |
| // // K2 |
| // temp01 = dhGlobal("nk") * nodesDisp("nm"); |
| // temp01.null_indices(); dhGlobal.null_indices(); nodesDisp.null_indices(); |
| // temp02 = temp01("km") * dhGlobal("Qm"); |
| // temp02.null_indices(); dhGlobal.null_indices(); temp01.null_indices(); |
| // temp05 = dhGlobal("Pj") * L2("ijkl"); |
| // temp05.null_indices(); dhGlobal.null_indices(); L2.null_indices(); |
| // temp06 = temp05("Pikl") * temp02("kQ") * weight; |
| // temp06.null_indices(); temp05.null_indices(); temp02.null_indices(); |
| // Kk += temp06; |
| // |
| // |
| // // K3 |
| // temp01 = dhGlobal("mk") * nodesDisp("mx"); |
| // temp01.null_indices( ); dhGlobal.null_indices( ); nodesDisp.null_indices( ); |
| // temp02 = temp01("kx") * dhGlobal("Qx"); |
| // temp02.null_indices( ); dhGlobal.null_indices( ); temp01.null_indices( ); |
| // temp03 = dhGlobal("nk") * nodesDisp("ny"); |
| // temp03.null_indices( ); dhGlobal.null_indices( ); nodesDisp.null_indices( ); |
| // temp04 = dhGlobal("Py") * temp03("jy"); |
| // temp04.null_indices( ); temp03.null_indices( ); dhGlobal.null_indices( ); |
| // temp05 = temp04("Pj") * L2("ijkl"); |
| // temp05.null_indices( ); temp04.null_indices( ); L2.null_indices( ); |
| // temp06 = temp05("Pikl") * temp02("kQ") * weight; |
| // temp06.null_indices( ); temp05.null_indices( ); temp05.null_indices( ); |
| // Kk += temp06; |
| // |
| // // K4 |
| // temp01 = dhGlobal("mj") * nodesDisp("mx"); |
| // temp01.null_indices(); dhGlobal.null_indices(); nodesDisp.null_indices(); |
| // temp02 = dhGlobal("Px") * temp01("jx"); |
| // temp02.null_indices(); dhGlobal.null_indices(); temp01.null_indices(); |
| // temp05 = temp02("Pj") * L2("ijkl"); |
| // temp05.null_indices(); temp02.null_indices(); L2.null_indices(); |
| // temp06 = temp05("Pikl") * dhGlobal("Qk") * weight; |
| // temp06.null_indices(); dhGlobal.null_indices(); temp05.null_indices(); |
| // Kk += temp06; |
| // |
| // // K5 |
| // temp01 = dhGlobal("Qj") * PK2Stress("ij"); |
| // temp01.null_indices(); dhGlobal.null_indices(); PK2Stress.null_indices(); |
| // temp05 = dhGlobal("Pl") * temp01("Qi") * weight; |
| // temp05.null_indices( ); dhGlobal.null_indices(); temp01.null_indices(); |
| // for ( int i=1 ; i<=NumNodes ; i++ ) { |
| // for ( int j=1 ; j<=NumNodes ; j++ ) { |
| // for ( int k=1 ; k<=NumDof ; k++ ) { |
| // for ( int l=1 ; l<=NumDof ; l++ ) { |
| // temp06.val(i,k,l,j) = temp05.cval(i,l,j,k); |
| // } |
| // } |
| // } |
| // } |
| // Kk += temp06; |
| //*/ |
| //====================================================================== |
| tensor TotalLagrangianFD20NodeBrick::getStiffnessTensor04(void) |
| { |
| int K_dim[] = {NumNodes,NumDof,NumDof,NumNodes}; |
| tensor Kk(4,K_dim,0.0); |
| double r = 0.0; |
| double rw = 0.0; |
| double s = 0.0; |
| double sw = 0.0; |
| double t = 0.0; |
| double tw = 0.0; |
| short where = 0; |
| double weight = 0.0; |
| int dh_dim[] = {NumNodes,NumDof}; |
| tensor dh(2, dh_dim, 0.0); |
| tensor L2; |
| double det_of_Jacobian = 0.0; |
| tensor Jacobian; |
| tensor dhGlobal; |
| tensor currentF; |
| tensor nodesDisp; |
| tensor temp01; |
| tensor temp02; |
| tensor temp03; |
| tensor temp04; |
| nodesDisp = this->getNodesDisp( ); |
| for( short GP_c_r = 0 ; GP_c_r < NumIntegrationPts ; GP_c_r++ ) |
| { |
| r = pts[GP_c_r ]; |
| rw = wts[GP_c_r ]; |
| for( short GP_c_s = 0 ; GP_c_s < NumIntegrationPts ; GP_c_s++ ) |
| { |
| s = pts[GP_c_s ]; |
| sw = wts[GP_c_s ]; |
| for( short GP_c_t = 0 ; GP_c_t < NumIntegrationPts ; GP_c_t++ ) |
| { |
| t = pts[GP_c_t ]; |
| tw = wts[GP_c_t ]; |
| where =(GP_c_r * NumIntegrationPts + GP_c_s) * NumIntegrationPts + GP_c_t; |
| dh = shapeFunctionDerivative(r,s,t); |
| Jacobian = this->Jacobian_3D(dh); |
| det_of_Jacobian = Jacobian.determinant(); |
| dhGlobal = this->dh_Global(dh); |
| temp01 = dhGlobal("mj") * nodesDisp("mx"); |
| temp01.null_indices(); dhGlobal.null_indices(); nodesDisp.null_indices(); |
| temp02 = dhGlobal("Px") * temp01("jx"); |
| temp02.null_indices(); dhGlobal.null_indices(); temp01.null_indices(); |
| weight = rw * sw * tw * det_of_Jacobian; |
| L2 = theMaterial[where]->getTangentTensor(); |
| temp03 = temp02("Pj") * L2("ijkl"); |
| temp03.null_indices(); temp02.null_indices(); L2.null_indices(); |
| temp04 = temp03("Pikl") * dhGlobal("Qk") * weight; |
| temp04.null_indices(); dhGlobal.null_indices(); temp03.null_indices(); |
| Kk += temp04; |
| } |
| } |
| } |
| return Kk; |
| } |
| //====================================================================== |
| tensor TotalLagrangianFD20NodeBrick::getStiffnessTensor05(void) |
| { |
| int K_dim[] = {NumNodes,NumDof,NumDof,NumNodes}; |
| tensor Kk(4,K_dim,0.0); |
| double r = 0.0; |
| double rw = 0.0; |
| double s = 0.0; |
| double sw = 0.0; |
| double t = 0.0; |
| double tw = 0.0; |
| short where = 0; |
| double weight = 0.0; |
| int dh_dim[] = {NumNodes,NumDof}; |
| tensor dh(2, dh_dim, 0.0); |
| double det_of_Jacobian = 0.0; |
| tensor Jacobian; |
| tensor dhGlobal; |
| tensor currentF; |
| stresstensor PK2Stress; |
| tensor temp01; |
| tensor temp02; |
| int T3_dim[] = {NumNodes,NumDof,NumNodes,NumDof}; |
| tensor temp03(4,T3_dim,0.0); |
| for( short GP_c_r = 0 ; GP_c_r < NumIntegrationPts ; GP_c_r++ ) |
| { |
| r = pts[GP_c_r ]; |
| rw = wts[GP_c_r ]; |
| for( short GP_c_s = 0 ; GP_c_s < NumIntegrationPts ; GP_c_s++ ) |
| { |
| s = pts[GP_c_s ]; |
| sw = wts[GP_c_s ]; |
| for( short GP_c_t = 0 ; GP_c_t < NumIntegrationPts ; GP_c_t++ ) |
| { |
| t = pts[GP_c_t ]; |
| tw = wts[GP_c_t ]; |
| where =(GP_c_r * NumIntegrationPts + GP_c_s) * NumIntegrationPts + GP_c_t; |
| dh = shapeFunctionDerivative(r,s,t); |
| Jacobian = this->Jacobian_3D(dh); |
| det_of_Jacobian = Jacobian.determinant(); |
| dhGlobal = this->dh_Global(dh); |
| weight = rw * sw * tw * det_of_Jacobian; |
| PK2Stress = theMaterial[where]->getStressTensor(); |
| // if (where==1) |
| // PK2Stress.print("S2","\n"); |
| temp01 = dhGlobal("Qj") * PK2Stress("ij"); |
| temp01.null_indices(); dhGlobal.null_indices(); PK2Stress.null_indices(); |
| temp02 = dhGlobal("Pl") * temp01("Qi") * weight; |
| temp02.null_indices( ); dhGlobal.null_indices(); temp01.null_indices(); |
| temp03 += temp02; |
| } |
| } |
| } |
| for ( int i=1 ; i<=NumNodes ; i++ ) |
| { |
| for ( int j=1 ; j<=NumNodes ; j++ ) |
| { |
| for ( int k=1 ; k<=NumDof ; k++ ) |
| { |
| for ( int l=1 ; l<=NumDof ; l++ ) |
| { |
| Kk.val(i,k,l,j) = temp03.cval(i,l,j,k); |
| } |
| } |
| } |
| } |
| return Kk; |
| } |
| //====================================================================== |
| tensor TotalLagrangianFD20NodeBrick::getStiffnessTensor(void) |
| tensor TotalLagrangianFD20NodeBrick::getRtensor(void) |
| { |
| int K_dim[] = {NumNodes,NumDof,NumDof,NumNodes}; |
| tensor Kk(4,K_dim,0.0); |
| int R_dim[] = {NumNodes,NumDof}; |
| tensor Rr(2,R_dim,0.0); |
| Kk = this->getStiffnessTensor05( ) + |
| this->getStiffnessTensor04( ) + |
| this->getStiffnessTensor03( ) + |
| this->getStiffnessTensor02( ) + |
| this->getStiffnessTensor01( ); |
| // Kk.print(); |
| return Kk; |
| } |
| //====================================================================== |
| tensor TotalLagrangianFD20NodeBrick::getRtensor01(void) |
| { |
| int T_dim[] = {NumNodes,NumDof}; |
| tensor Tt(2,T_dim,0.0); |
| double r = 0.0; |
| double rw = 0.0; |
| double s = 0.0; |
| 793,67 → 563,12 |
| tensor JacobianINV; |
| tensor dhGlobal; |
| tensor currentF; |
| stresstensor PK2Stress; |
| tensor temp01; |
| for( short GP_c_r = 0 ; GP_c_r < NumIntegrationPts ; GP_c_r++ ) |
| { |
| r = pts[GP_c_r ]; |
| rw = wts[GP_c_r ]; |
| for( short GP_c_s = 0 ; GP_c_s < NumIntegrationPts ; GP_c_s++ ) |
| { |
| s = pts[GP_c_s ]; |
| sw = wts[GP_c_s ]; |
| for( short GP_c_t = 0 ; GP_c_t < NumIntegrationPts ; GP_c_t++ ) |
| { |
| t = pts[GP_c_t ]; |
| tw = wts[GP_c_t ]; |
| where =(GP_c_r * NumIntegrationPts + GP_c_s) * NumIntegrationPts + GP_c_t; |
| dh = shapeFunctionDerivative(r,s,t); |
| Jacobian = this->Jacobian_3D(dh); |
| det_of_Jacobian = Jacobian.determinant(); |
| dhGlobal = this->dh_Global(dh); |
| weight = rw * sw * tw * det_of_Jacobian; |
| PK2Stress = theMaterial[where]->getStressTensor(); |
| temp01 = dhGlobal("Pj") * PK2Stress("ij") * weight; |
| temp01.null_indices(); dhGlobal.null_indices(); PK2Stress.null_indices(); |
| Tt += temp01; |
| } |
| } |
| } |
| return Tt; |
| } |
| //====================================================================== |
| tensor TotalLagrangianFD20NodeBrick::getRtensor02(void) |
| { |
| int T_dim[] = {NumNodes,NumDof}; |
| tensor Tt(2,T_dim,0.0); |
| double r = 0.0; |
| double rw = 0.0; |
| double s = 0.0; |
| double sw = 0.0; |
| double t = 0.0; |
| double tw = 0.0; |
| short where = 0; |
| double weight = 0.0; |
| int dh_dim[] = {NumNodes,NumDof}; |
| tensor dh(2, dh_dim, 0.0); |
| double det_of_Jacobian = 0.0; |
| tensor Jacobian; |
| tensor JacobianINV; |
| tensor dhGlobal; |
| tensor currentF; |
| tensor nodesDisp; |
| stresstensor PK2Stress; |
| tensor temp01; |
| tensor temp02; |
| tensor temp03; |
| //tensor temp03; |
| tensor F; |
| nodesDisp = this->getNodesDisp( ); |
| 876,27 → 591,34 |
| dhGlobal = this->dh_Global(dh); |
| weight = rw * sw * tw * det_of_Jacobian; |
| PK2Stress = theMaterial[where]->getStressTensor(); |
| temp01 = dhGlobal("Bm") * nodesDisp("Bn"); |
| temp01.null_indices(); dhGlobal.null_indices(); nodesDisp.null_indices(); |
| temp02 = dhGlobal("Pn") * temp01("mn"); |
| temp02.null_indices(); dhGlobal.null_indices(); temp01.null_indices(); |
| temp03 = temp02("Pm") * PK2Stress("im") * weight; |
| temp03.null_indices(); temp02.null_indices(); PK2Stress.null_indices(); |
| Tt += temp03; |
| F = theMaterial[where]->getF(); |
| temp01 = PK2Stress("ik") * F("jk"); |
| temp01.null_indices(); //PK2Stress.null_indices(); F.null_indices(); |
| temp02 = dhGlobal("Pj") * temp01("ij") * weight; |
| temp02.null_indices(); //dhGlobal.null_indices(); temp01.null_indices(); |
| Rr += temp02; |
| ///* |
| // // R1 |
| // temp01 = dhGlobal("Pj") * PK2Stress("ij") * weight; |
| // temp01.null_indices(); dhGlobal.null_indices(); PK2Stress.null_indices(); |
| // Rr += temp01; |
| // |
| // // R2 |
| // temp01 = dhGlobal("Bm") * nodesDisp("Bn"); |
| // temp01.null_indices(); dhGlobal.null_indices(); nodesDisp.null_indices(); |
| // temp02 = dhGlobal("Pn") * temp01("mn"); |
| // temp02.null_indices(); dhGlobal.null_indices(); temp01.null_indices(); |
| // temp03 = temp02("Pm") * PK2Stress("im") * weight; |
| // temp03.null_indices(); temp02.null_indices(); PK2Stress.null_indices(); |
| // Rr += temp03; |
| //*/ |
| } |
| } |
| } |
| return Tt; |
| } |
| //====================================================================== |
| tensor TotalLagrangianFD20NodeBrick::getRtensor(void) |
| { |
| int R_dim[] = {NumNodes,NumDof}; |
| tensor Rr(2,R_dim,0.0); |
| Rr = this->getRtensor01( ) + this->getRtensor02( ); |
| return Rr; |
| } |
| 951,7 → 673,7 |
| det_of_Jacobian = Jacobian.determinant(); |
| weight = rw * sw * tw * det_of_Jacobian; |
| Bb = Bb + h("P") * bodyforce("i") * rho *weight; |
| Bb.null_indices(); |
| Bb.null_indices(); |
| } |
| } |
| } |
| 989,14 → 711,10 |
| int kki=0; |
| int kkj=0; |
| for ( int i=1 ; i<=NumNodes ; i++ ) |
| { |
| for ( int j=1 ; j<=NumNodes ; j++ ) |
| { |
| for ( int k=1 ; k<=NumDof ; k++ ) |
| { |
| for ( int l=1 ; l<=NumDof ; l++ ) |
| { |
| for ( int i=1 ; i<=NumNodes ; i++ ) { |
| for ( int j=1 ; j<=NumNodes ; j++ ) { |
| for ( int k=1 ; k<=NumDof ; k++ ) { |
| for ( int l=1 ; l<=NumDof ; l++ ) { |
| kki = k+NumDof*(i-1); |
| kkj = l+NumDof*(j-1); |
| K( kki-1 , kkj-1 ) = stifftensor.cval(i,k,l,j); |
| 1025,9 → 743,9 |
| //============================================================================= |
| const Matrix &TotalLagrangianFD20NodeBrick::getMass () |
| { |
| // Need Work Here |
| M.Zero(); |
| return M; |
| // Need Work Here |
| M.Zero(); |
| return M; |
| } |
| //====================================================================== |
| 1227,17 → 945,18 |
| //============================================================================= |
| const Vector &TotalLagrangianFD20NodeBrick::getResistingForce () |
| { |
| P.Zero(); |
| int f_dim[] = {NumNodes,NumDof}; |
| tensor NodalForces_in(2,f_dim,0.0); |
| tensor NodalForces_in(2, f_dim, 0.0); |
| NodalForces_in = this->getRtensor() - this->getForces(); |
| for (int i = 0; i< NumNodes; i++) |
| for (int j = 0; j < NumDof; j++) |
| { |
| P(i *3 + j) = NodalForces_in.cval(i+1, j+1); |
| } |
| P.addVector(1.0,Q,-1.0); |
| for (int i = 0; i < NumNodes; i++) { |
| for (int j = 0; j < NumDof; j++) { |
| P(i *3 + j) = NodalForces_in.cval(i+1, j+1); |
| } |
| } |
| P.addVector(1.0, Q,-1.0); |
| return P; |
| } |
| 1404,16 → 1123,16 |
| for (int i=0; i<NumTotalGaussPts; i++) |
| { |
| sigma = theMaterial[i]->getCauchyStressTensor(); |
| P00(0) = sigma.val(1,1); |
| P00(1) = sigma.val(2,2); |
| P00(2) = sigma.val(3,3); |
| P00(3) = sigma.val(2,3); |
| P00(4) = sigma.val(3,1); |
| P00(5) = sigma.val(1,2); |
| sigma = theMaterial[i]->getCauchyStressTensor(); |
| P00(0) = sigma.val(1,1); |
| P00(1) = sigma.val(2,2); |
| P00(2) = sigma.val(3,3); |
| P00(3) = sigma.val(2,3); |
| P00(4) = sigma.val(3,1); |
| P00(5) = sigma.val(1,2); |
| s << "\n where = " << i << endln; |
| s << " Stress (Cauchy): xx yy zz yz zx xy) " << P00 << endln; |
| s << "\n where = " << i << endln; |
| s << " Stress (Cauchy): xx yy zz yz zx xy) " << P00 << endln; |
| } |
| } |
| 1422,12 → 1141,15 |
| Response * TotalLagrangianFD20NodeBrick::setResponse (const char **argv, int argc, Information &eleInfo) |
| { |
| if (strcmp(argv[0],"force") == 0 || strcmp(argv[0],"forces") == 0) |
| return new ElementResponse(this, 1, P); |
| return new ElementResponse(this, 1, Vector(NumElemDof)); |
| else if (strcmp(argv[0],"stiff") == 0 || strcmp(argv[0],"stiffness") == 0) |
| return new ElementResponse(this, 2, K); |
| return new ElementResponse(this, 2, Matrix(matrixData, NumElemDof, NumElemDof)); |
| else if (strcmp(argv[0],"CauchyStress") == 0 || strcmp(argv[0],"stress") == 0) |
| return new ElementResponse(this, 3, Vector(NumTotalGaussPts*6)); |
| else if (strcmp(argv[0],"PK2Stress") == 0 || strcmp(argv[0],"2PKstress") == 0) |
| else if (strcmp(argv[0],"PK2Stress") == 0 || strcmp(argv[0],"PK2stress") == 0) |
| return new ElementResponse(this, 4, Vector(NumTotalGaussPts*6)); |
| else |
| 1439,52 → 1161,48 |
| { |
| static Vector P0(NumTotalGaussPts*6); |
| switch (responseID) |
| { |
| switch (responseID) { |
| case 1: |
| return eleInfo.setVector( this->getResistingForce() ); |
| return eleInfo.setVector(this->getResistingForce() ); |
| case 2: |
| return eleInfo.setMatrix(this->getTangentStiff() ); |
| case 3: |
| { |
| Vector P0(NumTotalGaussPts*6); |
| tensor sigma; |
| for (int i=0; i<NumTotalGaussPts; i++) |
| { |
| sigma = theMaterial[i]->getCauchyStressTensor(); |
| P0( i*6+0 ) = sigma.val(1,1); |
| P0( i*6+1 ) = sigma.val(2,2); |
| P0( i*6+2 ) = sigma.val(3,3); |
| P0( i*6+3 ) = sigma.val(2,3); |
| P0( i*6+4 ) = sigma.val(3,1); |
| P0( i*6+5 ) = sigma.val(1,2); |
| } |
| return eleInfo.setVector(P0); |
| } |
| case 4: |
| { |
| Vector P0(NumTotalGaussPts*6); |
| tensor sigma; |
| for (int i=0; i<NumTotalGaussPts; i++) |
| { |
| sigma = theMaterial[i]->getStressTensor(); |
| P0( i*6+0 ) = sigma.val(1,1); |
| P0( i*6+1 ) = sigma.val(2,2); |
| P0( i*6+2 ) = sigma.val(3,3); |
| P0( i*6+3 ) = sigma.val(2,3); |
| P0( i*6+4 ) = sigma.val(3,1); |
| P0( i*6+5 ) = sigma.val(1,2); |
| } |
| return eleInfo.setVector(P0); |
| } |
| case 3: { |
| Vector P0(NumTotalGaussPts*6); |
| tensor sigma; |
| for (int i=0; i<NumTotalGaussPts; i++) { |
| sigma = theMaterial[i]->getCauchyStressTensor(); |
| P0( i*6+0 ) = sigma.val(1,1); |
| P0( i*6+1 ) = sigma.val(2,2); |
| P0( i*6+2 ) = sigma.val(3,3); |
| P0( i*6+3 ) = sigma.val(2,3); |
| P0( i*6+4 ) = sigma.val(3,1); |
| P0( i*6+5 ) = sigma.val(1,2); |
| } |
| return eleInfo.setVector(P0); |
| } |
| case 4: { |
| Vector P0(NumTotalGaussPts*6); |
| tensor sigma; |
| for (int i=0; i<NumTotalGaussPts; i++) { |
| sigma = theMaterial[i]->getStressTensor(); |
| P0( i*6+0 ) = sigma.val(1,1); |
| P0( i*6+1 ) = sigma.val(2,2); |
| P0( i*6+2 ) = sigma.val(3,3); |
| P0( i*6+3 ) = sigma.val(2,3); |
| P0( i*6+4 ) = sigma.val(3,1); |
| P0( i*6+5 ) = sigma.val(1,2); |
| } |
| return eleInfo.setVector(P0); |
| } |
| default: |
| return -1; |
| return -1; |
| } |
| } |
| } |
| /trunk/SRC/element/TotalLagrangianFD20NodeBrick/TotalLagrangianFD20NodeBrick.h |
|---|
| 20,7 → 20,7 |
| //# |
| //# |
| //# DATE: Sept2003 |
| //# UPDATE HISTORY: |
| //# UPDATE HISTORY: 28May2004, Zhao Optimized the Stiffness Tensor |
| //# |
| //# |
| //=============================================================================== |
| 39,8 → 39,6 |
| #include <string.h> |
| #include <GaussQuadRule1d.h> |
| #include <OPS_Globals.h> |
| #include <basics.h> |
| 48,7 → 46,6 |
| #include <Vector.h> |
| #include <Matrix.h> |
| #include <BJtensor.h> |
| #include <stresst.h> |
| #include <straint.h> |
| 60,7 → 57,6 |
| #include <ElementResponse.h> |
| #include <ElementalLoad.h> |
| class Node; |
| class TotalLagrangianFD20NodeBrick: public Element |
| { |
| 126,8 → 122,8 |
| static Matrix M; // Element mass matrix |
| static Vector P; // Element resisting force vector |
| static double pts[3]; // Stores quadrature points |
| static double wts[3]; // Stores quadrature weights |
| Vector Q; // Applied nodal loads |
| static double wts[3]; // Stores quadrature weights |
| Vector Q; // Applied nodal loads |
| Vector bf; // Body forces |
| double rho; // Mass per unit volume |
| 148,14 → 144,14 |
| tensor getNodesCrds(void); |
| tensor getNodesDisp(void); |
| tensor getStiffnessTensor01(void); |
| tensor getStiffnessTensor02(void); |
| tensor getStiffnessTensor03(void); |
| tensor getStiffnessTensor04(void); |
| tensor getStiffnessTensor05(void); |
| // tensor getStiffnessTensor01(void); |
| // tensor getStiffnessTensor02(void); |
| // tensor getStiffnessTensor03(void); |
| // tensor getStiffnessTensor04(void); |
| // tensor getStiffnessTensor05(void); |
| tensor getStiffnessTensor(void); |
| tensor getRtensor01(void); |
| tensor getRtensor02(void); |
| // tensor getRtensor01(void); |
| // tensor getRtensor02(void); |
| tensor getRtensor(void); |
| tensor getBodyForce(void); |
| tensor getSurfaceForce(void); |
| /trunk/SRC/element/feap/elmt06.f |
|---|
| 14,8 → 14,7 |
| integer ix(*),ndf,ndm,nst,isw,nh1,nh2,nh3,nen,n,ior,iow |
| real*8 d(*), ul(ndf,nen,*), xl(ndm,*), tl(*), s(nst,*), r(*) |
| real*8 d(*), ul(*), xl(*), tl(*), s(*), p(*), h(*), ctan(*) |
| integer ix(*), ndf, ndm, nst, isw, nh1, nh2, nh3, iow, n |
| real*8 p(*), h(*), ctan(*) |
| integer i,j |
| real*8 cs, sn, L, dx, dy, k, m, A, E, rho, tran(4), eps, force |
| /trunk/SRC/material/nD/TclModelBuilderNDMaterialCommand.cpp |
|---|
| 25,11 → 25,11 |
| ** ** |
| ** ****************************************************************** */ |
| // $Revision: 1.32 $ |
| // $Date: 2003-11-20 02:12:25 $ |
| // $Revision: 1.37 $ |
| // $Date: 2004-08-27 17:07:48 $ |
| // $Source: /usr/local/cvs/OpenSees/SRC/material/nD/TclModelBuilderNDMaterialCommand.cpp,v $ |
| // Description: This file contains the function invoked when the user invokes |
| // the nDMaterial command in the interpreter. |
| // |
| 49,12 → 49,14 |
| #include <PressureIndependMultiYield.h> |
| #include <PressureDependMultiYield.h> |
| #include <PressureDependMultiYield02.h> |
| #include <FluidSolidPorousMaterial.h> |
| #include <string.h> |
| #include <Template3Dep.h> |
| #include <FiniteDeformationElastic3D.h> |
| #include <FiniteDeformationEP3D.h> |
| Template3Dep * |
| TclModelBuilder_addTemplate3Dep(ClientData clientData, Tcl_Interp *interp, int argc, |
| 64,6 → 66,9 |
| TclModelBuilder_addFiniteDeformationElastic3D(ClientData clientData, Tcl_Interp *interp, int argc, |
| TCL_Char **argv, TclModelBuilder *theTclBuilder, int eleArgStart); |
| FiniteDeformationEP3D * |
| TclModelBuilder_addFiniteDeformationEP3D(ClientData clientData, Tcl_Interp *interp, int argc, |
| TCL_Char **argv, TclModelBuilder *theTclBuilder, int eleArgStart); |
| NDMaterial * |
| TclModelBuilder_addFeapMaterial(ClientData clientData, Tcl_Interp *interp, |
| 464,7 → 469,6 |
| if (gredu != 0) delete [] gredu; |
| } |
| // Pressure Dependend Multi-yield, by ZHY |
| else if (strcmp(argv[1],"PressureDependMultiYield") == 0) { |
| const int numParam = 15; |
| 559,6 → 563,110 |
| theMaterial = temp; |
| if (gredu != 0) delete [] gredu; |
| } |
| // Pressure Dependend Multi-yield, by ZHY |
| else if (strcmp(argv[1],"PressureDependMultiYield02") == 0) { |
| const int numParam = 14; |
| const int totParam = 26; |
| int tag; |
| double param[totParam]; |
| param[numParam] = 20; |
| param[numParam+1] = 25; |
| param[numParam+2] = 1.5; |
| param[numParam+3] = 0.5; |
| param[numParam+4] = 0.6; |
| param[numParam+5] = 0.9; |
| param[numParam+6] = 0.02; |
| param[numParam+7] = 0.7; |
| param[numParam+8] = 101.; |
| param[numParam+9] = .3; |
| param[numParam+10] = 0.; |
| param[numParam+11] = 1.; |
| char * arg[] = {"nd", "rho", "refShearModul", |
| "refBulkModul", "frictionAng", |
| "peakShearStra", "refPress", "pressDependCoe", |
| "phaseTransformAngle", "contractionParam1", |
| "contractionParam3","dilationParam1", |
| "liquefactionParam1", "liquefactionParam2", "numberOfYieldSurf (=20)", |
| "contractionParam2=25", "dilationParam2=1.5", |
| "dilationParam3=0.5", |
| "e (=0.6)", "volLimit1 (=0.9)", "volLimit2 (=0.02)", |
| "volLimit3 (=0.7)", "Atmospheric pressure (=101)", "cohesi (=.5)", |
| "Hv (=0)", "Pv (=1.)" }; |
| if (argc < (3+numParam)) { |
| opserr << "WARNING insufficient arguments\n"; |
| printCommand(argc,argv); |
| opserr << "Want: nDMaterial PressureDependMultiYield02 tag? "<< arg[0]; |
| opserr << "? "<< "\n"; |
| opserr << arg[1] << "? "<< arg[2] << "? "<< arg[3] << "? "<< "\n"; |
| opserr << arg[4] << "? "<< arg[5] << "? "<< arg[6] << "? "<< "\n"; |
| opserr << arg[7] << "? "<< arg[8] << "? "<< arg[9] << "? "<< "\n"; |
| opserr << arg[10] << "? "<< arg[11] << "? "<< arg[12] << "? "<< "\n"; |
| opserr << arg[13] << "? "<< arg[14] << "? "<< arg[15] << "? "<< "\n"; |
| opserr << arg[16] << "? "<< arg[17] << "? "<< arg[18] << "? "<< "\n"; |
| opserr << arg[19] << "? "<< arg[20] << "? "<< arg[21] << "? "<< "\n"; |
| opserr << arg[22] << "? "<< arg[23] << "? " << endln; |
| return TCL_ERROR; |
| } |
| if (Tcl_GetInt(interp, argv[2], &tag) != TCL_OK) { |
| opserr << "WARNING invalid PressureDependMultiYield02 tag" << endln; |
| return TCL_ERROR; |
| } |
| int in = 18; |
| for (int i=3; (i<argc && i<in); i++) |
| if (Tcl_GetDouble(interp, argv[i], ¶m[i-3]) != TCL_OK) { |
| opserr << "WARNING invalid " << arg[i-3] << "\n"; |
| opserr << "nDMaterial PressureDependMultiYield02: " << tag << endln; |
| return TCL_ERROR; |
| } |
| static double * gredu = 0; |
| // user defined yield surfaces |
| if (param[numParam] < 0 && param[numParam] > -100) { |
| param[numParam] = -int(param[numParam]); |
| gredu = new double[int(2*param[numParam])]; |
| for (int i=0; i<2*param[numParam]; i++) |
| if (Tcl_GetDouble(interp, argv[i+in], &gredu[i]) != TCL_OK) { |
| opserr << "WARNING invalid " << arg[i-3] << "\n"; |
| opserr << "nDMaterial PressureIndependMultiYield: " << tag << endln; |
| return TCL_ERROR; |
| } |
| } |
| if (gredu != 0) { |
| for (int i=in+int(2*param[numParam]); i<argc; i++) |
| if (Tcl_GetDouble(interp, argv[i], ¶m[i-3-int(2*param[numParam])]) != TCL_OK) { |
| opserr << "WARNING invalid " << arg[i-3-int(2*param[numParam])] << "\n"; |
| opserr << "nDMaterial PressureDependMultiYield02: " << tag << endln; |
| return TCL_ERROR; |
| } |
| } else { |
| for (int i=in; i<argc; i++) |
| if (Tcl_GetDouble(interp, argv[i], ¶m[i-3]) != TCL_OK) { |
| opserr << "WARNING invalid " << arg[i-3-int(2*param[numParam])] << "\n"; |
| opserr << "nDMaterial PressureDependMultiYield02: " << tag << endln; |
| return TCL_ERROR; |
| } |
| } |
| PressureDependMultiYield02 * temp = |
| new PressureDependMultiYield02 (tag, param[0], param[1], param[2], |
| param[3], param[4], param[5], |
| param[6], param[7], param[8], |
| param[9], param[10], param[11], |
| param[12], param[13], param[14], gredu, |
| param[15], param[16], param[17], |
| param[18], param[19], param[20], param[21], |
| param[22], param[23], param[24], param[25]); |
| theMaterial = temp; |
| if (gredu != 0) delete [] gredu; |
| } |
| // Fluid Solid Porous, by ZHY |
| 607,7 → 715,6 |
| param[2],param[3]); |
| } |
| else if (strcmp(argv[1],"Template3Dep") == 0) { |
| theMaterial = TclModelBuilder_addTemplate3Dep(clientData, interp, argc, argv, |
| theTclBuilder, 2); |
| 619,6 → 726,12 |
| theTclBuilder, 1); |
| } |
| else if (strcmp(argv[1],"FiniteDeformationEP3D") == 0 || |
| strcmp(argv[1],"FDEP3D" ) == 0) { |
| theMaterial = TclModelBuilder_addFiniteDeformationEP3D(clientData, interp, argc, argv, |
| theTclBuilder, 2); |
| } |
| else if (strcmp(argv[1],"PlaneStressMaterial") == 0 || |
| strcmp(argv[1],"PlaneStress") == 0) { |
| if (argc < 4) { |
| 629,7 → 742,7 |
| } |
| int tag, matTag; |
| if (Tcl_GetInt(interp, argv[2], &tag) != TCL_OK) { |
| opserr << "WARNING invalid nDMaterial PlaneStress tag" << endln; |
| return TCL_ERROR; |
| 650,7 → 763,7 |
| } |
| theMaterial = new PlaneStressMaterial( tag, *threeDMaterial ); |
| } |
| } |
| else if (strcmp(argv[1],"PlateFiberMaterial") == 0 || |
| 729,7 → 842,7 |
| theMaterial = TclModelBuilder_addFeapMaterial(clientData, |
| interp, |
| argc, |
| argv, |
| argv, |
| theTclBuilder); |
| } |
| /trunk/SRC/material/nD/NDMaterial.h |
|---|
| 23,8 → 23,8 |
| ** ** |
| ** ****************************************************************** */ |
| // $Revision: 1.15 $ |
| // $Date: 2003-11-20 02:12:25 $ |
| // $Revision: 1.16 $ |
| // $Date: 2004-07-20 22:39:02 $ |
| // $Source: /usr/local/cvs/OpenSees/SRC/material/nD/NDMaterial.h,v $ |
| 95,11 → 95,16 |
| //Zhao (zcheng@ucdavis.edu) |
| // added Sept 22 2003 for Large Deformation, F is the Deformation Gradient |
| virtual int setTrialF(const Tensor &f); |
| virtual int setTrialF(const Tensor &f, const Tensor &d); |
| virtual int setTrialFIncr(const Tensor &f); |
| virtual int setTrialFIncr(const Tensor &f, const Tensor &d); |
| virtual int setTrialF(const straintensor &f); |
| virtual int setTrialFIncr(const straintensor &df); |
| virtual int setTrialC(const straintensor &c); |
| virtual int setTrialCIncr(const straintensor &dc); |
| virtual const stresstensor getPK1StressTensor(void); |
| virtual const stresstensor getCauchyStressTensor(void); |
| virtual const straintensor getF(void); |
| virtual const straintensor getC(void); |
| virtual const straintensor getFp(void); |
| // Only For Large Deformation, END//////////////////////////////////////// |
| virtual int commitState(void) = 0; |
| virtual int revertToLastCommit(void) = 0; |
| /trunk/SRC/material/nD/Template3Dep/CAM_PS.cpp |
|---|
| 97,7 → 97,7 |
| { |
| tensor d2Qoverdsds1(2, def_dim_2, 0.0); |
| tensor DpoDs = EPS->getStress().dpoverds(); |
| tensor D2QoDpDs1 = -M*M; |
| double D2QoDpDs1 = -M*M; |
| d2Qoverdsds1 = DpoDs * D2QoDpDs1; |
| return d2Qoverdsds1; |
| } |
| /trunk/SRC/material/nD/Template3Dep/DP_PS.cpp |
|---|
| 13,6 → 13,7 |
| //# # |
| //# DATE: August 03 '93 # |
| //# UPDATE HISTORY: August 08 '00 # |
| //# UPDATE HISTORY: 20Aug2004 ZC added kinematic hardening part # |
| //# # |
| //# # |
| //# # |
| 63,61 → 64,102 |
| //================================================================================ |
| // tensor dQ/dsigma_ij ( eq. 5.206 in Chen ) |
| // tensor dQ/dsigma_ij |
| //================================================================================ |
| tensor DPPotentialSurface::dQods(const EPState *EPS) const { |
| tensor KroneckerI("I", 2, def_dim_2); |
| stresstensor dQods; |
| // Second invariant of deviatoric stress tensor |
| double stressJ2 = EPS->getStress().Jinvariant2(); |
| // Deviatoric stress tensor |
| stresstensor s = EPS->getStress().deviator(); |
| s.null_indices(); |
| // Tensor dQ/dsigma_ij ( eq. 5.207 in Chen ) |
| tensor KroneckerI("I", 2, def_dim_2); |
| //double temp1 = EPS->getScalarVar(1); |
| double temp1 = getalfa2(); |
| //Zhaohui Testing associated flow |
| tensor dQods = KroneckerI * getalfa2(); |
| //tensor dQods = KroneckerI * EPS->getScalarVar(1); |
| dQods.null_indices(); |
| if ( stressJ2 > 0.0 ) |
| { |
| dQods = dQods + s*(1.0/(2.0*sqrt(stressJ2))); |
| } |
| stresstensor alpha; |
| stresstensor s_bar; |
| stresstensor Tnsr0; |
| double temp6 = 0.0; |
| stresstensor temp5; |
| stresstensor sigma = EPS->getStress(); |
| double p = sigma.p_hydrostatic(); |
| stresstensor sdev = sigma.deviator(); |
| double halfRt2 = 0.5 * sqrt(2.0); |
| int nod = EPS->getNTensorVar(); |
| if ( nod >=1 ) { //May not have kinematic hardening |
| alpha = EPS->getTensorVar(1); |
| s_bar = sdev - (alpha*p); |
| temp5 = alpha("ij") * s_bar("ij"); |
| temp5.null_indices(); |
| temp6 = temp5.trace(); |
| Tnsr0 = KroneckerI*(temp6/3.0); |
| } |
| else { |
| s_bar = sdev; |
| } |
| stresstensor temp3 = s_bar("ij") * s_bar("ij"); |
| temp3.null_indices(); |
| double temp4 = temp3.trace(); |
| temp4 = sqrt(temp4); |
| Tnsr0 += s_bar; |
| double eps = pow( d_macheps(), 0.5 ); |
| if ( fabs(temp4) > eps ) { |
| Tnsr0 = Tnsr0 * (halfRt2/temp4); |
| } |
| dQods = (KroneckerI * temp1) + Tnsr0;; |
| return dQods; |
| } |
| //================================================================================ |
| // tensor d2Q/dsigma_ij_2 ( eq. 5.206 in Chen ) |
| // tensor d2Q/dsigma_ij_2 |
| //================================================================================ |
| tensor DPPotentialSurface::d2Qods2(const EPState *EPS) const { |
| double stressJ2 = EPS->getStress().Jinvariant2(); |
| double stressJ2sqrt =pow( stressJ2, 0.5); |
| tensor I("I", 2, def_dim_2); |
| tensor temp1 = I("im") * I("jn"); |
| temp1.null_indices(); |
| tensor I2("I", 2, def_dim_2); |
| tensor temp2 = I2("mn") * I2("ij") * (1.0/3.0); |
| temp2.null_indices(); |
| tensor temp3 = temp1 - temp2; |
| temp3.null_indices(); |
| stresstensor s = EPS->getStress().deviator(); |
| s.null_indices(); |
| tensor temp4 = s("ij") * s("mn"); |
| temp4.null_indices(); |
| tensor d2Qods2 = temp3* (1.0/2.0/stressJ2sqrt) - temp4 * (1.0/4.0/stressJ2/stressJ2sqrt); |
| tensor d2Qods2(4, def_dim_4, 0.0); |
| tensor KroneckerI("I", 2, def_dim_2); |
| tensor T1 = KroneckerI("ij")*KroneckerI("mn"); |
| T1.null_indices(); |
| tensor T2 = (T1.transpose0110()+T1.transpose0111())*0.5; |
| tensor T3 = T2 - T1*(1.0/3.0); |
| //double temp1 = EPS->getScalarVar(1); |
| //double temp1 = getalfa2(); |
| tensor T4; |
| stresstensor alpha; |
| stresstensor s_bar; |
| tensor temp9(4, def_dim_4, 0.0); |
| stresstensor sigma = EPS->getStress(); |
| double p = sigma.p_hydrostatic(); |
| stresstensor sdev = sigma.deviator(); |
| double halfRt2 = 0.5 * sqrt(2.0); |
| int nod = EPS->getNTensorVar(); |
| if ( nod >=1 ) { //May not have kinematic hardening |
| alpha = EPS->getTensorVar(1); |
| temp9 = KroneckerI("ij") * alpha("mn"); |
| temp9.null_indices(); |
| T4 = T2 + temp9*(1.0/3.0); |
| s_bar = sdev - (alpha*p); |
| } |
| else { |
| s_bar = sdev; |
| T4 = T2; |
| } |
| T4 = T2 - temp9; |
| tensor temp3 = s_bar("ij") * s_bar("ij"); |
| temp3.null_indices(); |
| double temp4 = temp3.trace(); |
| temp4 = sqrt(temp4); |
| tensor temp5 = s_bar("ij")*s_bar("mn"); |
| double eps = pow( d_macheps(), 0.5 ); |
| if ( fabs(temp4) > eps ) { |
| d2Qods2 = T3 * (halfRt2/temp4) - temp5*(halfRt2/(temp4*temp4*temp4)); |
| d2Qods2 = T4("ijkl") * d2Qods2("klmn"); |
| d2Qods2.null_indices(); |
| } |
| return d2Qods2; |
| } |
| 147,20 → 189,3 |
| #endif |
| /trunk/SRC/material/nD/Template3Dep/DP_YS.cpp |
|---|
| 12,7 → 12,7 |
| //# # |
| //# # |
| //# DATE: August 08 '00 # |
| //# UPDATE HISTORY: # |
| //# UPDATE HISTORY: 20Aug2004 ZC added kinematic hardening part # |
| //# # |
| //# # |
| //# # |
| 65,46 → 65,83 |
| //================================================================================ |
| // Yield criterion evaluation function F(EPState) |
| // f = a*I1 + 0.5*sqrt(2.0)*||s_ij - p*alpha_ij|| - k =0 |
| //================================================================================ |
| double DPYieldSurface::f(const EPState *EPS) const { |
| double temp1 = EPS->getStress().Iinvariant1(); |
| double temp2 = temp1 * EPS->getScalarVar(1); |
| double temp3 = EPS->CurrentStress.Jinvariant2(); |
| double eps = pow( d_macheps(), (1./2.) ); |
| if ( temp3 < 0.0 && fabs(temp3) < eps ) |
| { |
| temp3 = 0.0; |
| } |
| double temp4 = sqrt(temp3); |
| stresstensor alpha; |
| stresstensor s_bar; |
| stresstensor sigma = EPS->getStress(); |
| double p = sigma.p_hydrostatic(); |
| stresstensor sdev = sigma.deviator(); |
| double halfRt2 = 0.5 * sqrt(2.0); |
| int nod = EPS->getNTensorVar(); |
| if ( nod >=1 ) { //May not have kinematic hardening |
| alpha = EPS->getTensorVar(1); |
| s_bar = sdev - (alpha*p); |
| } |
| else { |
| s_bar = sdev; |
| } |
| stresstensor temp3 = s_bar("ij") * s_bar("ij"); |
| temp3.null_indices(); |
| double temp4 = temp3.trace(); |
| temp4 = sqrt(temp4); |
| double temp5 = halfRt2 * temp4; |
| double k = EPS->getScalarVar(2); |
| double f = temp2 + temp4 - k; |
| double f = temp2 + temp5 - k; |
| return f; |
| } |
| //================================================================================ |
| // tensor dF/dsigma_ij ( eq. 5.206 in Chen ) |
| // tensor dF/dsigma_ij |
| //================================================================================ |
| tensor DPYieldSurface::dFods(const EPState *EPS) const { |
| tensor KroneckerI("I", 2, def_dim_2); |
| stresstensor dFods; |
| // Second invariant of deviatoric stress tensor |
| double stressJ2 = EPS->CurrentStress.Jinvariant2(); |
| tensor KroneckerI("I", 2, def_dim_2); |
| double temp1 = EPS->getScalarVar(1); |
| // Deviatoric stress tensor |
| stresstensor s = EPS->CurrentStress.deviator(); |
| s.null_indices(); |
| // Tensor dF/dsigma_ij ( eq. 5.206 in Chen ) |
| tensor dFods = KroneckerI * EPS->getScalarVar(1); |
| dFods.null_indices(); |
| if ( stressJ2 > 0.0 ) |
| { |
| dFods = dFods + s * ( 1.0 / (2.0 * sqrt(stressJ2) ) ); |
| } |
| stresstensor alpha; |
| stresstensor s_bar; |
| stresstensor Tnsr0; |
| double temp6 = 0.0; |
| stresstensor temp5; |
| stresstensor sigma = EPS->getStress(); |
| double p = sigma.p_hydrostatic(); |
| stresstensor sdev = sigma.deviator(); |
| double halfRt2 = 0.5 * sqrt(2.0); |
| int nod = EPS->getNTensorVar(); |
| if ( nod >=1 ) { //May not have kinematic hardening |
| alpha = EPS->getTensorVar(1); |
| s_bar = sdev - (alpha*p); |
| temp5 = alpha("ij") * s_bar("ij"); |
| temp5.null_indices(); |
| temp6 = temp5.trace(); |
| Tnsr0 = KroneckerI*(temp6/3.0); |
| } |
| else { |
| s_bar = sdev; |
| } |
| stresstensor temp3 = s_bar("ij") * s_bar("ij"); |
| temp3.null_indices(); |
| double temp4 = temp3.trace(); |
| temp4 = sqrt(temp4); |
| Tnsr0 += s_bar; |
| double eps = pow( d_macheps(), 0.5 ); |
| if ( fabs(temp4) > eps ) { |
| Tnsr0 = Tnsr0 * (halfRt2/temp4); |
| } |
| dFods = (KroneckerI*temp1) + Tnsr0; |
| return dFods; |
| } |
| 131,12 → 168,31 |
| //================================================================================ |
| // double xi_t1 = dF/dt1 = dF/dalpha Derivative in terms of first tensorial var |
| // Need more work |
| // double xi_t1 = dF/dt1 = dF/dalpha |
| //================================================================================ |
| tensor DPYieldSurface::xi_t1( const EPState *EPS) const { |
| stresstensor xi; |
| stresstensor alpha; |
| stresstensor sigma = EPS->getStress(); |
| double p = sigma.p_hydrostatic(); |
| double halfRt2 = 0.5 * sqrt(2.0); |
| int nod = EPS->getNTensorVar(); |
| if ( nod >=1 ) { //May not have kinematic hardening |
| alpha = EPS->getTensorVar(1); |
| } |
| stresstensor sigma_bar = sigma - alpha*p; |
| stresstensor s_bar = sigma_bar.deviator(); |
| stresstensor temp3 = s_bar("ij") * s_bar("ij"); |
| temp3.null_indices(); |
| double temp4 = temp3.trace(); |
| temp4 = sqrt(temp4); |
| double eps = pow( d_macheps(), 0.5 ); |
| if ( fabs(temp4) > eps ) { |
| xi = s_bar * (-halfRt2*p/temp4); //Note the Negative 1 here |
| } |
| return xi; |
| } |
| 150,4 → 206,3 |
| } |
| #endif |
| /trunk/SRC/material/nD/NDMaterial.cpp |
|---|
| 22,8 → 22,8 |
| ** ** |
| ** ****************************************************************** */ |
| // $Revision: 1.16 $ |
| // $Date: 2003-11-20 02:12:25 $ |
| // $Revision: 1.17 $ |
| // $Date: 2004-07-20 22:39:02 $ |
| // $Source: /usr/local/cvs/OpenSees/SRC/material/nD/NDMaterial.cpp,v $ |
| // File: ~/material/NDMaterial.C |
| 186,39 → 186,64 |
| //Zhao (zcheng@ucdavis.edu) |
| // added Sept 22 2003 for Large Deformation, F is the Deformation Grandient |
| int |
| NDMaterial::setTrialF(const Tensor &f) |
| NDMaterial::setTrialF(const straintensor &f) |
| { |
| opserr << "NDMaterial::setTrialF -- subclass responsibility\n"; |
| return -1; |
| } |
| int |
| NDMaterial::setTrialF(const Tensor &f, const Tensor &d) |
| NDMaterial::setTrialFIncr(const straintensor &df) |
| { |
| opserr << "NDMaterial::setTrialF -- subclass responsibility\n"; |
| return -1; |
| } |
| int |
| NDMaterial::setTrialFIncr(const Tensor &f) |
| NDMaterial::setTrialC(const straintensor &c) |
| { |
| opserr << "NDMaterial::setTrialFIncr -- subclass responsibility\n"; |
| opserr << "NDMaterial::setTrialC -- subclass responsibility\n"; |
| return -1; |
| } |
| int |
| NDMaterial::setTrialFIncr(const Tensor &f, const Tensor &d) |
| NDMaterial::setTrialCIncr(const straintensor &c) |
| { |
| opserr << "NDMaterial::setTrialFIncr -- subclass responsibility\n"; |
| opserr << "NDMaterial::setTrialC -- subclass responsibility\n"; |
| return -1; |
| } |
| const stresstensor NDMaterial::getPK1StressTensor(void) |
| { |
| opserr << "NDMaterial::getPK1StressTensor -- subclass responsibility\n"; |
| return errstresstensor; |
| } |
| const stresstensor NDMaterial::getCauchyStressTensor(void) |
| { |
| opserr << "NDMaterial::getCauchyStressTensor -- subclass responsibility\n"; |
| return errstresstensor; |
| } |
| const straintensor NDMaterial::getF(void) |
| { |
| opserr << "NDMaterial::getF -- subclass responsibility\n"; |
| return errstraintensor; |
| } |
| const straintensor NDMaterial::getC(void) |
| { |
| opserr << "NDMaterial::getF -- subclass responsibility\n"; |
| return errstraintensor; |
| } |
| const straintensor NDMaterial::getFp(void) |
| { |
| opserr << "NDMaterial::getFp -- subclass responsibility\n"; |
| return errstraintensor; |
| } |
| // Only For Large Deformation, END//////////////////////////// |
| const Tensor & |
| NDMaterial::getTangentTensor(void) |
| { |
| /trunk/SRC/material/nD/FiniteDeformation/SimoPisterWEnergy.cpp |
|---|
| 21,41 → 21,28 |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: Sept 2003 |
| //# 28May2004 |
| //# |
| //# |
| //=============================================================================== |
| #ifndef SimoPisterWEnergy_CPP |
| #define SimoPisterWEnergy_CPP |
| #include <math.h> |
| #include <SimoPisterWEnergy.h> |
| //================================================================================ |
| // Normal constructor |
| //================================================================================ |
| SimoPisterWEnergy::SimoPisterWEnergy(double E_in, double nu_in ) |
| SimoPisterWEnergy::SimoPisterWEnergy(double K_in) :K(K_in) |
| { |
| E = E_in; |
| nu = nu_in; |
| if (nu != -1.0) |
| G = 0.5*E/(1.0+nu); |
| else |
| opserr << "Poisson's ratio = -1.0, not permited for this model (SimoPisterWEnergy)"; |
| if (nu != 0.5) |
| K = 0.33333333333333*E/(1.0-2.0*nu); |
| else |
| opserr << "Poisson's ratio = 0.5, not permited for this model (SimoPisterWEnergy)"; |
| } |
| //SimoPisterWEnergy::SimoPisterWEnergy( ) |
| //{ |
| // |
| //} |
| SimoPisterWEnergy::SimoPisterWEnergy( ) :K(0.0) |
| { |
| } |
| //================================================================================ |
| // Normal destructor |
| //================================================================================ |
| 69,20 → 56,11 |
| //================================================================================ |
| WEnergy * SimoPisterWEnergy::newObj( ) |
| { |
| WEnergy *new_WEnergy = new SimoPisterWEnergy(E, nu); |
| WEnergy *new_WEnergy = new SimoPisterWEnergy(K); |
| return new_WEnergy; |
| } |
| const double SimoPisterWEnergy::getE() |
| { |
| return E; |
| } |
| const double SimoPisterWEnergy::getnu() |
| { |
| return nu; |
| } |
| //================================================================================ |
| // w |
| //================================================================================ |
| 110,5 → 88,6 |
| return d2colwOverdJ2; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdFlow/fdFlow.cpp |
|---|
| New file |
| 0,0 → 1,91 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdFlow_CPP |
| #define fdFlow_CPP |
| #include "fdFlow.h" |
| fdFlow::fdFlow() |
| { |
| } |
| double fdFlow::dFodq(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| return 0.0; |
| } |
| stresstensor fdFlow::dFoda(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| stresstensor Z2; |
| return Z2; |
| } |
| tensor fdFlow::d2Fodsds(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| tensor Z4(4, def_dim_4, 0.0); |
| return Z4; |
| } |
| stresstensor fdFlow::d2Fodsdq(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| stresstensor Z2; |
| return Z2; |
| } |
| tensor fdFlow::d2Fodsda(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| tensor Z4(4, def_dim_4, 0.0); |
| return Z4; |
| } |
| double fdFlow::d2Fodqdq(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| return 0.0; |
| } |
| stresstensor fdFlow::d2Fodqda(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| stresstensor Z2; |
| return Z2; |
| } |
| tensor fdFlow::d2Fodada(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| tensor Z4(4, def_dim_4, 0.0); |
| return Z4; |
| } |
| OPS_Stream& operator<<(OPS_Stream& os, const fdFlow &fdfl) |
| { |
| os << "fdFlow Parameters: " << "\n"; |
| return os; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdFlow/fdFlowVM.cpp |
|---|
| New file |
| 0,0 → 1,114 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdFlowVM_CPP |
| #define fdFlowVM_CPP |
| #include "fdFlowVM.h" |
| //-------------------------------------------------------------------- |
| fdFlowVM::fdFlowVM(double Y0_in) :Y0(Y0_in) |
| { |
| } |
| //-------------------------------------------------------------------- |
| fdFlow * fdFlowVM::newObj() |
| { |
| fdFlow *newfdyd = new fdFlowVM(Y0); |
| return newfdyd; |
| } |
| //------------------------------------------------------------------- |
| // Q = 1.5*(S_ij-a_ij)*(S_ij-a_ij) - (Y0+q)*(Y0+q) = 0, Note here NumRank = 2 |
| //------------------------------------------------------------------- |
| //-------------------------------------------------------------------- |
| stresstensor fdFlowVM::dFods(const stresstensor &sts, const FDEPState &fdepstate) const |
| { |
| return sts.deviator() * 3.0; |
| } |
| //-------------------------------------------------------------------- |
| double fdFlowVM::dFodq(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| double q = fdepstate.getStressLikeInVar(); |
| return -2.0 * ( Y0+q ); |
| } |
| //-------------------------------------------------------------------- |
| stresstensor fdFlowVM::dFoda(const stresstensor &sts, const FDEPState &fdepstate) const |
| { |
| return sts.deviator() * (-3.0); |
| } |
| //-------------------------------------------------------------------- |
| tensor fdFlowVM::d2Fodsds(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| tensor I2("I", 2 , def_dim_2); |
| tensor I4 = I2("ij")*I2("kl"); I4.null_indices(); |
| //I4 = (I4.transpose0110()+I4.transpose0111())*1.5 - I4; //For symmetric tensor |
| I4 = I4*3.0 - I4; //For general tensor |
| return I4; |
| } |
| //-------------------------------------------------------------------- |
| tensor fdFlowVM::d2Fodsda(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| tensor I2("I", 2 , def_dim_2); |
| tensor I4 = I2("ij")*I2("kl"); I4.null_indices(); |
| //I4 = (I4.transpose0110()+I4.transpose0111())*1.5 - I4; //For symmetric tensor |
| I4 = I4*3.0 - I4; //For general tensor |
| return I4 *(-1.0); |
| } |
| //-------------------------------------------------------------------- |
| double fdFlowVM::d2Fodqdq(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| return -2.0; |
| } |
| //-------------------------------------------------------------------- |
| tensor fdFlowVM::d2Fodada(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| tensor I2("I", 2 , def_dim_2); |
| tensor I4 = I2("ij")*I2("kl"); I4.null_indices(); |
| //I4 = (I4.transpose0110()+I4.transpose0111())*1.5; //For symmetric tensor |
| I4 = I4 *3.0; //For general tensor |
| return I4; |
| } |
| //-------------------------------------------------------------------- |
| OPS_Stream& operator<<(OPS_Stream& os, const fdFlowVM &fdflVM) |
| { |
| os << "fdFlowVM Parameters: " << "\n"; |
| os << "Y0: " << fdflVM.Y0 << "\n"; |
| return os; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdFlow/fdFlowDP.cpp |
|---|
| New file |
| 0,0 → 1,136 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdFlowDP_CPP |
| #define fdFlowDP_CPP |
| #include "fdFlowDP.h" |
| //-------------------------------------------------------------------- |
| fdFlowDP::fdFlowDP(double DilatedAngle_in, int ConeIndex_in) |
| :DilatedAngle(DilatedAngle_in), ConeIndex(ConeIndex_in) |
| { |
| double pipi = 3.14159265358979323846; |
| double Root3 = sqrt(3.0); |
| double Root1o3 = 1.0/Root3; |
| double archAngle = DilatedAngle*pipi/180.0; |
| switch (ConeIndex) { |
| case 0: { // Compressive (Outer) Cone |
| k1 = 2.0*Root1o3*sin(archAngle)/(3.0-sin(archAngle)); |
| k2 = 6.0*Root1o3*cos(archAngle)/(3.0-sin(archAngle)); |
| break; |
| } |
| case 1: { // Tensile (Inner) Cone |
| k1 = 2.0*Root1o3*sin(archAngle)/(3.0+sin(archAngle)); |
| k2 = 6.0*Root1o3*cos(archAngle)/(3.0+sin(archAngle)); |
| break; |
| } |
| case 2: { // Mean Cone |
| k1 = Root3*sin(archAngle)/(9.0-sin(archAngle)*sin(archAngle)); |
| k2 = 2.0*Root3*cos(archAngle)/(9.0-sin(archAngle)*sin(archAngle)); |
| break; |
| } |
| case 3: { // Inner-tangent Cone |
| k1 = tan(archAngle)/sqrt(9.0+12.0*tan(archAngle)*tan(archAngle)); |
| k2 = 3.0/sqrt(9.0+12.0*tan(archAngle)*tan(archAngle)); |
| break; |
| } |
| default: { // Compressive (Outer) Cone |
| k1 = 2.0*Root1o3*sin(archAngle)/(3.0-sin(archAngle)); |
| k2 = 6.0*Root1o3*cos(archAngle)/(3.0-sin(archAngle)); |
| } |
| } |
| } |
| //-------------------------------------------------------------------- |
| fdFlow * fdFlowDP::newObj() |
| { |
| fdFlow *newfdyd = new fdFlowDP(DilatedAngle, ConeIndex); |
| return newfdyd; |
| } |
| //------------------------------------------------------------------- |
| // Q = k1*I1 + sqrt(0.5*Sij*Sji) - k2*(c+q) = 0, |
| // Note here NumRank = 1, No Kinematic Hardening |
| //------------------------------------------------------------------- |
| //-------------------------------------------------------------------- |
| stresstensor fdFlowDP::dFods(const stresstensor &sts, const FDEPState &fdepstate) const |
| { |
| // NumRank=1, No Ki Hardeing |
| tensor tI2("I", 2 , def_dim_2); |
| stresstensor dev = sts.deviator(); |
| tensor st = dev("ij")*dev("ij"); |
| st.null_indices(); |
| double x = st.trace(); |
| return tI2*k1 + dev *(1.0/sqrt(2.0*x)); |
| } |
| //-------------------------------------------------------------------- |
| double fdFlowDP::dFodq(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| // NumRank=1, No Ki Hardeing |
| return -k2; |
| } |
| //-------------------------------------------------------------------- |
| tensor fdFlowDP::d2Fodsds(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| // NumRank=1, No Ki Hardeing |
| tensor tI2("I", 2, def_dim_2); |
| stresstensor dev = sts.deviator(); |
| tensor st = dev("ij")*dev("ij")*2.0; |
| st.null_indices(); |
| double x = st.trace(); |
| tensor I4 = tI2("ij")*tI2("kl"); |
| I4.null_indices(); |
| I4 = I4 - I4*(1.0/3.0); |
| tensor st4 = dev("ij")*dev("kl"); |
| st4.null_indices(); |
| return I4 *(1.0/sqrt(x)) - st4 *(2.0/x/sqrt(x)); |
| } |
| //-------------------------------------------------------------------- |
| OPS_Stream& operator<<(OPS_Stream& os, const fdFlowDP &fdfdDP) |
| { |
| os << "fdFlowDP Parameters: " << "\n"; |
| os << "DilatedAngle: " << fdfdDP.DilatedAngle << "\n"; |
| os << "ConeIndex: " << fdfdDP.ConeIndex << "\n"; |
| return os; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdFlow/fdFlow.h |
|---|
| New file |
| 0,0 → 1,62 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdFlow_H |
| #define fdFlow_H |
| #include <stresst.h> |
| #include <straint.h> |
| #include <FDEPState.h> |
| class fdFlow |
| { |
| public: |
| fdFlow(); |
| virtual ~fdFlow() {}; |
| virtual fdFlow *newObj() = 0; |
| virtual stresstensor dFods(const stresstensor &sts, const FDEPState &fdepstate ) const = 0; |
| virtual double dFodq(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| virtual stresstensor dFoda(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| virtual tensor d2Fodsds(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| virtual stresstensor d2Fodsdq(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| virtual tensor d2Fodsda(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| virtual double d2Fodqdq(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| virtual stresstensor d2Fodqda(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| virtual tensor d2Fodada(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| virtual void print() = 0; |
| friend OPS_Stream& operator<< (OPS_Stream& os, const fdFlow & fdfl); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdFlow/fdFlowVM.h |
|---|
| New file |
| 0,0 → 1,61 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdFlowVM_H |
| #define fdFlowVM_H |
| #include "fdFlow.h" |
| class fdFlowVM : public fdFlow |
| { |
| private: |
| double Y0; |
| public: |
| fdFlowVM(double Y0_in); |
| // virtual ~fdFlowVM() {}; |
| fdFlow *newObj(); |
| stresstensor dFods(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| double dFodq(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| stresstensor dFoda(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| tensor d2Fodsds(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| //stresstensor d2Fodsdq(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| tensor d2Fodsda(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| double d2Fodqdq(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| //stresstensor d2Fodqds(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| tensor d2Fodada(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| void print() { opserr << *this; }; |
| friend OPS_Stream& operator<< (OPS_Stream& os, const fdFlowVM &fdflVM); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdFlow/fdFlowDP.h |
|---|
| New file |
| 0,0 → 1,64 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdFlowDP_H |
| #define fdFlowDP_H |
| #include "fdFlow.h" |
| class fdFlowDP : public fdFlow |
| { |
| private: |
| double DilatedAngle; |
| int ConeIndex; |
| double k1; |
| double k2; |
| public: |
| fdFlowDP(double DilatedAngle_in, int ConeIndex_in = 0); |
| // virtual ~fdFlowDP() {}; |
| fdFlow *newObj(); |
| stresstensor dFods(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| double dFodq(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| //stresstensor dFoda(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| tensor d2Fodsds(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| //stresstensor d2Fodsdq(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| //tensor d2Fodsda(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| //double d2Fodqdq(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| //stresstensor d2Fodqds(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| //tensor d2Fodada(const stresstensor &sts, const FDEPState &fdepstate ) const ; |
| void print() { opserr << *this; }; |
| friend OPS_Stream& operator<< (OPS_Stream& os, const fdFlowDP &fdflDP); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdFlow/Makefile |
|---|
| New file |
| 0,0 → 1,23 |
| include ../../../../../Makefile.def |
| OBJS = fdFlow.o \ |
| fdFlowVM.o \ |
| fdFlowDP.o \ |
| fdFlowDP.o |
| all: $(OBJS) |
| # Miscellaneous |
| tidy: |
| @$(RM) $(RMFLAGS) Makefile.bak *~ #*# core |
| clean: tidy |
| @$(RM) $(RMFLAGS) $(OBJS) *.o |
| spotless: clean |
| wipe: spotless |
| # DO NOT DELETE THIS LINE -- make depend depends on it. |
| /trunk/SRC/material/nD/FiniteDeformation/MooneyRivlinWEnergy.h |
|---|
| 30,27 → 30,21 |
| #include <Vector.h> |
| #include <Tensor.h> |
| //#include <BJvector.h> |
| //#include <BJtensor.h> |
| #include <OPS_Globals.h> |
| #include <W.h> |
| class MooneyRivlinWEnergy : public WEnergy |
| { |
| private: |
| double E; |
| double nu; |
| double c1; |
| double c2; |
| public: |
| MooneyRivlinWEnergy(double , double, double, double ); |
| // MooneyRivlinWEnergy( ); |
| MooneyRivlinWEnergy(double , double); |
| MooneyRivlinWEnergy( ); |
| ~MooneyRivlinWEnergy( ); |
| WEnergy *newObj( ); |
| const double getE(); |
| const double getnu(); |
| const double wE(const double &, const Vector &); |
| const Vector disowOdlambda(const Vector &); |
| const Vector d2isowOdlambda2(const Vector & ); |
| 58,7 → 52,6 |
| // const double dvolwOdJ( const double &); |
| // const double d2volOdj2(const double &); |
| // friend OPS_Stream& operator<< (OPS_Stream& os, const MooneyRivlinWEnergy &W); |
| }; |
| /trunk/SRC/material/nD/FiniteDeformation/OgdenWEnergy.h |
|---|
| 20,7 → 20,7 |
| //# |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: |
| //# UPDATE HISTORY: 28May2004 |
| //# |
| //# |
| //=============================================================================== |
| 30,28 → 30,24 |
| #include <Vector.h> |
| #include <Tensor.h> |
| //#include <BJvector.h> |
| //#include <BJtensor.h> |
| #include <OPS_Globals.h> |
| #include <W.h> |
| #include <math.h> |
| class OgdenWEnergy : public WEnergy |
| { |
| private: |
| double E; |
| double nu; |
| int N_Ogden; |
| double *cr_Ogden; |
| double *mur_Ogden; |
| public: |
| OgdenWEnergy(double, double, int , double * , double * ); |
| // OgdenWEnergy( ); |
| OgdenWEnergy(int , double * , double * ); |
| OgdenWEnergy( ); |
| ~OgdenWEnergy( ); |
| WEnergy *newObj( ); |
| const double getE(); |
| const double getnu(); |
| const double wE(const double &, const Vector &) ; |
| const Vector disowOdlambda(const Vector & ) ; |
| const Vector d2isowOdlambda2(const Vector & ) ; |
| 59,7 → 55,6 |
| // const double dvolwOdJ( const double &) ; |
| // const double d2volwOdJ2( const double &) ; |
| // friend OPS_Stream& operator<< (OPS_Stream& os, const OgdenWEnergy &W); |
| }; |
| /trunk/SRC/material/nD/FiniteDeformation/W.cpp |
|---|
| 42,16 → 42,6 |
| } |
| const double WEnergy::getE() |
| { |
| return 0.0; |
| } |
| const double WEnergy::getnu() |
| { |
| return 0.0; |
| } |
| const double WEnergy::wE(const double &J_in, const Vector &lambda_wave_in) |
| { |
| return 0.0; |
| 60,13 → 50,12 |
| const Vector WEnergy::disowOdlambda( const Vector &lambda_wave_in) |
| { |
| return Vector(3); |
| return Vector(3); |
| } |
| const Vector WEnergy::d2isowOdlambda2( const Vector &lambda_wave_in) |
| { |
| return Vector(3); |
| return Vector(3); |
| } |
| const Tensor WEnergy::d2isowOdlambda1dlambda2(const Vector &lambda_wave_in) |
| 82,8 → 71,10 |
| const double WEnergy::d2volwOdJ2(const double &J_in) |
| { |
| return 0.0; |
| return 0.0;; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/FiniteDeformationElastic3D.h |
|---|
| 21,61 → 21,52 |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: Sept 2003 |
| //# |
| //# |
| //# May28, 2004 |
| //# |
| //=============================================================================== |
| #ifndef FiniteDeformationElastic3D_h |
| #define FiniteDeformationElastic3D_h |
| #include <NDMaterial.h> |
| #include <math.h> |
| #include <ID.h> |
| #include <Channel.h> |
| #include <OPS_Globals.h> |
| #include <ConsoleErrorHandler.h> |
| #include <Matrix.h> |
| #include <Vector.h> |
| #include <Tensor.h> |
| #include <stresst.h> |
| #include <straint.h> |
| #include <ID.h> |
| #include <Channel.h> |
| #include <G3Globals.h> |
| #include <NDMaterial.h> |
| #include <ConsoleErrorHandler.h> |
| #include <W.h> // for W Strain Energy Functions |
| class FiniteDeformationElastic3D : public NDMaterial |
| { |
| public: |
| FiniteDeformationElastic3D(int tag, int classTag, WEnergy * , double ); |
| FiniteDeformationElastic3D(int tag, WEnergy * , double ); |
| FiniteDeformationElastic3D(int tag, WEnergy * ); |
| FiniteDeformationElastic3D(); |
| FiniteDeformationElastic3D(int tag, int classTag, double ); |
| FiniteDeformationElastic3D(); |
| virtual ~FiniteDeformationElastic3D(); |
| virtual double getRho(void); |
| virtual double getE(void); |
| virtual double getnu(void); |
| virtual int setTrialF(const Tensor &f); |
| virtual int setTrialF(const Tensor &f, const Tensor &d); |
| virtual int setTrialFIncr(const Tensor &f); |
| virtual int setTrialFIncr(const Tensor &f, const Tensor &d); |
| virtual int setTrialF(const straintensor &f); |
| virtual int setTrialFIncr(const straintensor &df); |
| virtual int setTrialC(const straintensor &c); |
| virtual int setTrialCIncr(const straintensor &dc); |
| virtual const Tensor& getTangentTensor(void) ; |
| virtual const Tensor& getTangentTensor(void) ; // Default Lagrangian Tangent Tensor |
| virtual const Tensor& getInitialTangentTensor(void) ; |
| virtual const straintensor getStrainTensor(void) ; // Default Green Strain |
| virtual const stresstensor getStressTensor(void) ; // Default 2nd Piola Kirchhoff Stress |
| virtual const straintensor getStrainTensor(void) ; // Default Green Lagrangian Strain |
| virtual const stresstensor getStressTensor(void) ; // Default 2nd Piola Kirchhoff Stress |
| virtual const straintensor getF(void); |
| virtual const straintensor getC(void); |
| // virtual const Vector &getStress(void); |
| // virtual const Vector &getStrain(void); |
| // virtual const stresstensor getCommittedStress(void); |
| // virtual const straintensor getCommittedStrain(void); |
| // virtual const straintensor getPlasticStrainTensor(void); |
| virtual int commitState(void) ; |
| virtual int revertToLastCommit(void) ; |
| virtual int revertToStart(void) ; |
| 89,7 → 80,7 |
| virtual int sendSelf(int commitTag, Channel &theChannel); |
| virtual int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker); |
| void Print(OPS_Stream &s, int flag = 0); |
| virtual void Print(OPS_Stream &s, int flag = 0); |
| virtual int setParameter(char **argv, int argc, Information &info); |
| virtual int updateParameter(int parameterID, Information &info); |
| 97,46 → 88,10 |
| virtual const stresstensor getPK1StressTensor(void) ; |
| virtual const stresstensor getCauchyStressTensor(void) ; |
| private: |
| WEnergy *getWEnergy(void); |
| const Tensor getF(void); |
| const Tensor getC(void); |
| const double getJ(void) ; |
| const Vector getlambda(void) ; |
| const Vector getlambda_wave(void) ; |
| const Vector wa(void) ; |
| const Tensor Yab(void) ; |
| const Tensor FDisoStiffness(void) ; |
| const Tensor FDvolStiffness(void) ; |
| // int setInitialTangentTensor(void); |
| int ComputeTrials(void); |
| int getCaseIndex(void); |
| protected: |
| WEnergy * W; |
| double rho; |
| double rho; |
| double E; |
| double nu; |
| Tensor F; |
| Tensor C; |
| double J; |
| Tensor Cinv; |
| double lambda1, lambda2, lambda3; |
| double lambda_wave1, lambda_wave2, lambda_wave3; |
| int caseIndex; |
| Tensor Stiffness; |
| straintensor thisGreenStrain; |
| stresstensor thisPK2Stress; |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/FDdecoupledElastic3D.cpp |
|---|
| New file |
| 0,0 → 1,675 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #include <FDdecoupledElastic3D.h> |
| //----------------------------------------------------------------------------------------------------------------------------------------------- |
| FDdecoupledElastic3D::FDdecoupledElastic3D(int tag, |
| int classTag, |
| WEnergy *wEnergy_in, |
| double rho_in= 0.0) |
| :FiniteDeformationElastic3D(tag, classTag, rho_in) |
| { |
| if ( wEnergy_in ) |
| { |
| W = wEnergy_in->newObj(); |
| } |
| else |
| { |
| opserr << "FDdecoupledElastic3D:: FDdecoupledElastic3D failed to construct the W Energy\n"; |
| exit(-1); |
| } |
| } |
| FDdecoupledElastic3D::FDdecoupledElastic3D(int tag, |
| WEnergy *wEnergy_in, |
| double rho_in = 0.0) |
| :FiniteDeformationElastic3D(tag, ND_TAG_FDdecoupledElastic3D, rho_in) |
| { |
| if ( wEnergy_in) |
| { |
| W = wEnergy_in->newObj(); |
| } |
| else |
| { |
| opserr << "FDdecoupledElastic3D:: FDdecoupledElastic3D failed to construct the W Energy\n"; |
| exit(-1); |
| } |
| } |
| FDdecoupledElastic3D::FDdecoupledElastic3D(int tag, |
| WEnergy *wEnergy_in) |
| :FiniteDeformationElastic3D(tag, ND_TAG_FDdecoupledElastic3D, 0.0) |
| { |
| if ( wEnergy_in ) |
| { |
| W = wEnergy_in->newObj(); |
| } |
| else |
| { |
| opserr << "FDdecoupledElastic3D:: FDdecoupledElastic3D failed to construct the W Energy\n"; |
| exit(-1); |
| } |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------ |
| FDdecoupledElastic3D::FDdecoupledElastic3D( ) |
| :FiniteDeformationElastic3D(0, 0, 0.0) |
| { |
| W = 0; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------ |
| FDdecoupledElastic3D::FDdecoupledElastic3D(FDdecoupledElastic3D &fde3d ) |
| { |
| F = fde3d.F; |
| C = fde3d.C; |
| Cinv = fde3d.Cinv; |
| J = fde3d.J; |
| lambda1 = fde3d.lambda1; |
| lambda2 = fde3d.lambda2; |
| lambda3 = fde3d.lambda3; |
| lambda_wave1 = fde3d.lambda_wave1; |
| lambda_wave2 = fde3d.lambda_wave2; |
| lambda_wave3 = fde3d.lambda_wave3; |
| Stiffness = fde3d.Stiffness; |
| thisGreenStrain = fde3d.thisGreenStrain; |
| thisPK2Stress = fde3d.thisPK2Stress; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------ |
| FDdecoupledElastic3D::~FDdecoupledElastic3D() |
| { |
| if (W) |
| delete W; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------- |
| double FDdecoupledElastic3D::getRho(void) |
| { |
| return rho; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------- |
| WEnergy *FDdecoupledElastic3D::getWEnergy(void) |
| { |
| return W; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::setTrialF(const straintensor &f) |
| { |
| FromForC = 0; |
| F = f; |
| C = F("ki")*F("kj"); C.null_indices(); |
| return this->ComputeTrials(); |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::setTrialFIncr(const straintensor &df) |
| { |
| return this->setTrialF(this->getF() + df); |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::setTrialC(const straintensor &c) |
| { |
| FromForC = 1; |
| C = c; |
| return this->ComputeTrials(); |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::setTrialCIncr(const straintensor &dc) |
| { |
| return this->setTrialC(this->getC() + dc); |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------- |
| const straintensor FDdecoupledElastic3D::getF(void) |
| { |
| return F; |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------- |
| const straintensor FDdecoupledElastic3D::getC(void) |
| { |
| return C; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------ |
| const double FDdecoupledElastic3D::getJ(void) |
| { |
| return J; |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Vector FDdecoupledElastic3D::getlambda(void) |
| { |
| Vector lambda(3); |
| lambda(0) = lambda1; |
| lambda(1) = lambda2; |
| lambda(2) = lambda3; |
| return lambda; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Vector FDdecoupledElastic3D::getlambda_wave(void) |
| { |
| Vector lambda_wave(3); |
| lambda_wave(0) = lambda_wave1; |
| lambda_wave(1) = lambda_wave2; |
| lambda_wave(2) = lambda_wave3; |
| return lambda_wave; |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Vector FDdecoupledElastic3D::wa(void) |
| { |
| Vector Wa(3); |
| Vector lambda_wave(3); |
| lambda_wave = this->getlambda_wave(); |
| Vector disowOverlambda = W->disowOdlambda(lambda_wave); |
| double temp = disowOverlambda(0) * lambda_wave(0) + |
| disowOverlambda(1) * lambda_wave(1) + |
| disowOverlambda(2) * lambda_wave(2) ; |
| temp = temp * (-0.3333333333333333333333333333); |
| Wa(0) = temp + disowOverlambda(0) * lambda_wave(0); |
| Wa(1) = temp + disowOverlambda(1) * lambda_wave(1); |
| Wa(2) = temp + disowOverlambda(2) * lambda_wave(2); |
| return Wa; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| const Tensor FDdecoupledElastic3D::Yab(void) |
| { |
| Tensor Y(2, def_dim_2, 0.0); |
| Tensor I_ij("I", 2, def_dim_2); |
| Vector lambda_wave(3); |
| lambda_wave = this->getlambda_wave(); |
| Tensor d2 = W->d2isowOdlambda1dlambda2(lambda_wave); |
| Vector d1 = W->disowOdlambda(lambda_wave); |
| Vector d11 = W->d2isowOdlambda2(lambda_wave); |
| d2.val(1,1) = d11(0); |
| d2.val(2,2) = d11(1); |
| d2.val(3,3) = d11(2); |
| Vector tempi(3); |
| double tempd = d1(0)*lambda_wave(0) + d1(1)*lambda_wave(1) + d1(2)*lambda_wave(2) ; |
| double tempcd = 0.0; |
| for (int i=0; i<3; i++) |
| { |
| tempi(i) = 0.0; |
| for (int j=0; j<3; j++) |
| { |
| tempi(i) += d2.cval(i+1,j+1) * lambda_wave(i) * lambda_wave(j); |
| tempcd += d2.cval(i+1,j+1) * lambda_wave(i) * lambda_wave(j); |
| } |
| } |
| for(int a=1; a<=3; a++) |
| { |
| for(int b=1; b<=3; b++) |
| { |
| Y.val(a,b) = d1(a-1)*I_ij.cval(a,b)*lambda_wave(b-1) + d2.cval(a,b)*lambda_wave(a-1)*lambda_wave(b-1) - |
| ( tempi(a-1) + tempi(b-1) + d1(a-1)*lambda_wave(a-1) + d1(b-1)*lambda_wave(b-1) ) / 3.0 + |
| ( tempcd + tempd ) / 9.0; |
| } |
| } |
| return Y; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Tensor FDdecoupledElastic3D::FDisoStiffness(void) |
| { |
| Tensor I_ij("I", 2, def_dim_2); |
| Tensor I_ijkl( 4, def_dim_4, 0.0 ); |
| I_ijkl = I_ij("ij") * I_ij("kl"); |
| I_ij.null_indices(); |
| Tensor I_ikjl( 4, def_dim_4, 0.0 ); |
| I_ikjl = I_ijkl.transpose0110(); |
| Tensor I_iljk( 4, def_dim_4, 0.0 ); |
| I_iljk = I_ijkl.transpose0111(); |
| Tensor I4s = (I_ikjl+I_iljk)*0.5; |
| Tensor tempI = I4s - I_ijkl; |
| Tensor CinvCinv = Cinv("ij") * Cinv("kl"); |
| CinvCinv.null_indices(); Cinv.null_indices(); |
| Tensor ICinv = ( CinvCinv.transpose0110() + CinvCinv.transpose0111() ) * (0.5); |
| Tensor CinvCinv_ICinv = CinvCinv - ICinv; |
| double I1 = lambda1*lambda1 + lambda2*lambda2 + lambda3*lambda3; |
| Vector Wa = this->wa(); |
| Tensor yab = this->Yab(); |
| Tensor L_iso(2,def_dim_2,0.0); |
| if(caseIndex == 0) |
| { |
| double d1 = (lambda1+lambda2)*(lambda1+lambda3)*(lambda1-lambda2)*(lambda1-lambda3); |
| double d2 = (lambda2+lambda3)*(lambda2+lambda1)*(lambda2-lambda3)*(lambda2-lambda1); |
| double d3 = (lambda3+lambda1)*(lambda3+lambda2)*(lambda3-lambda1)*(lambda3-lambda2); |
| Tensor M1 = ( C - I_ij*(I1-lambda1*lambda1) + Cinv*(J*J/(lambda1*lambda1)) ) * (1.0/d1); |
| Tensor M2 = ( C - I_ij*(I1-lambda2*lambda2) + Cinv*(J*J/(lambda2*lambda2)) ) * (1.0/d2); |
| Tensor M3 = ( C - I_ij*(I1-lambda3*lambda3) + Cinv*(J*J/(lambda3*lambda3)) ) * (1.0/d3); |
| double d1p = 4.0 *lambda1*lambda1*lambda1*lambda1 - I1*lambda1*lambda1 - J*J /(lambda1*lambda1); |
| double d2p = 4.0 *lambda2*lambda2*lambda2*lambda2 - I1*lambda2*lambda2 - J*J /(lambda2*lambda2); |
| double d3p = 4.0 *lambda3*lambda3*lambda3*lambda3 - I1*lambda3*lambda3 - J*J /(lambda3*lambda3); |
| Tensor Cm1M1M1Cm1 = Cinv("ij")*M1("kl") + M1("ij")*Cinv("kl"); |
| Cinv.null_indices(); M1.null_indices(); Cm1M1M1Cm1.null_indices(); |
| Tensor Cm1M2M2Cm1 = Cinv("ij")*M2("kl") + M2("ij")*Cinv("kl"); |
| Cinv.null_indices(); M2.null_indices(); Cm1M2M2Cm1.null_indices(); |
| Tensor Cm1M3M3Cm1 = Cinv("ij")*M3("kl") + M3("ij")*Cinv("kl"); |
| Cinv.null_indices(); M3.null_indices(); Cm1M3M3Cm1.null_indices(); |
| Tensor dM1M1d = I_ij("ij")*M1("kl") + M1("ij")*I_ij("kl"); |
| I_ij.null_indices(); M1.null_indices(); dM1M1d.null_indices(); |
| Tensor dM2M2d = I_ij("ij")*M2("kl") + M2("ij")*I_ij("kl"); |
| I_ij.null_indices(); M2.null_indices(); dM2M2d.null_indices(); |
| Tensor dM3M3d = I_ij("ij")*M3("kl") + M3("ij")*I_ij("kl"); |
| I_ij.null_indices(); M3.null_indices(); dM3M3d.null_indices(); |
| Tensor M1M1 = M1("ij") * M1("kl"); |
| M1.null_indices(); M1M1.null_indices(); |
| Tensor M2M2 = M2("ij") * M2("kl"); |
| M2.null_indices(); M2M2.null_indices(); |
| Tensor M3M3 = M3("ij") * M3("kl"); |
| M3.null_indices(); M3M3.null_indices(); |
| Tensor calM1 = ( tempI + (CinvCinv_ICinv -Cm1M1M1Cm1)*(J*J/(lambda1*lambda1)) + dM1M1d*(lambda1*lambda1) - M1M1*d1p ) *(1.0/d1); |
| Tensor calM2 = ( tempI + (CinvCinv_ICinv -Cm1M2M2Cm1)*(J*J/(lambda2*lambda2)) + dM2M2d*(lambda2*lambda2) - M2M2*d2p ) *(1.0/d2); |
| Tensor calM3 = ( tempI + (CinvCinv_ICinv -Cm1M3M3Cm1)*(J*J/(lambda3*lambda3)) + dM3M3d*(lambda3*lambda3) - M3M3*d3p ) *(1.0/d3); |
| Tensor L_iso_1 = ( calM1*Wa(0) + calM2*Wa(1) + calM3*Wa(2) ) * 2.0; |
| Tensor L_iso_2 = M1("ij") * M1("kl") * yab.cval(1,1) + M1("ij") * M2("kl") * yab.cval(1,2) + M1("ij") * M3("kl") * yab.cval(1,3) + |
| M2("ij") * M1("kl") * yab.cval(2,1) + M2("ij") * M2("kl") * yab.cval(2,2) + M2("ij") * M3("kl") * yab.cval(2,3) + |
| M3("ij") * M1("kl") * yab.cval(3,1) + M3("ij") * M2("kl") * yab.cval(3,2) + M3("ij") * M3("kl") * yab.cval(3,3); |
| L_iso = L_iso_1 + L_iso_2 ; |
| } |
| if(caseIndex == 11) |
| { |
| double d1 = (lambda1+lambda2)*(lambda1+lambda3)*(lambda1-lambda2)*(lambda1-lambda3); |
| Tensor M1 = (I_ij - Cinv * (lambda2*lambda2)) * (1.0/(lambda1+lambda2)/(lambda1-lambda2)); |
| Tensor Mr = Cinv - M1; |
| double d1p = 4.0 *lambda1*lambda1*lambda1*lambda1 - I1*lambda1*lambda1 - J*J /(lambda1*lambda1); |
| Tensor Cm1M1M1Cm1 = Cinv("ij")*M1("kl") + M1("ij")*Cinv("kl"); |
| Cinv.null_indices(); M1.null_indices(); Cm1M1M1Cm1.null_indices(); |
| Tensor dM1M1d = I_ij("ij")*M1("kl") + M1("ij")*I_ij("kl"); |
| I_ij.null_indices(); M1.null_indices(); dM1M1d.null_indices(); |
| Tensor M1M1 = M1("ij") * M1("kl"); |
| M1.null_indices(); M1M1.null_indices(); |
| Tensor calM1 = ( tempI + (CinvCinv_ICinv -Cm1M1M1Cm1)*(J*J/(lambda1*lambda1)) + dM1M1d*(lambda1*lambda1) - M1M1*d1p ) *(1.0/d1); |
| Tensor calMr = (ICinv + calM1) * (-1.0); |
| Tensor L_iso_1 = ( calM1*Wa(0) + calMr*Wa(2) ) * 2.0; |
| Tensor L_iso_2 = M1("ij") * M1("kl") * yab.cval(1,1) + M1("ij") * Mr("kl") * yab.cval(1,3) + |
| Mr("ij") * M1("kl") * yab.cval(3,1) + Mr("ij") * Mr("kl") * yab.cval(3,3); |
| L_iso = L_iso_1 + L_iso_2 ; |
| } |
| if(caseIndex == 13) |
| { |
| double d3 = (lambda3+lambda1)*(lambda3+lambda2)*(lambda3-lambda1)*(lambda3-lambda2); |
| Tensor M3 = (I_ij - Cinv * (lambda2*lambda2)) * (1.0/(lambda3+lambda2)/(lambda3-lambda2)); |
| Tensor Mr = Cinv - M3; |
| double d3p = 4.0 *lambda3*lambda3*lambda3*lambda3 - I1*lambda3*lambda3 - J*J /(lambda3*lambda3); |
| Tensor Cm1M3M3Cm1 = Cinv("ij")*M3("kl") + M3("ij")*Cinv("kl"); |
| Cinv.null_indices(); M3.null_indices(); Cm1M3M3Cm1.null_indices(); |
| Tensor dM3M3d = I_ij("ij")*M3("kl") + M3("ij")*I_ij("kl"); |
| I_ij.null_indices(); M3.null_indices(); dM3M3d.null_indices(); |
| Tensor M3M3 = M3("ij") * M3("kl"); |
| M3.null_indices(); M3M3.null_indices(); |
| Tensor calM3 = ( tempI + (CinvCinv_ICinv -Cm1M3M3Cm1)*(J*J/(lambda3*lambda3)) + dM3M3d*(lambda3*lambda3) - M3M3*d3p ) *(1.0/d3); |
| Tensor calMr = (ICinv + calM3) * (-1.0); |
| Tensor L_iso_1 = ( calM3*Wa(2) + calMr*Wa(0) ) * 2.0; |
| Tensor L_iso_2 = M3("ij") * M3("kl") * yab.cval(3,3) + M3("ij") * Mr("kl") * yab.cval(3,1) + |
| Mr("ij") * M3("kl") * yab.cval(1,3) + Mr("ij") * Mr("kl") * yab.cval(1,1); |
| L_iso = L_iso_1 + L_iso_2 ; |
| } |
| if(caseIndex == 2) |
| { |
| Vector lambda_wave(3); |
| lambda_wave = this->getlambda_wave(); |
| Vector d11 = W->d2isowOdlambda2(lambda_wave); |
| Vector d1 = W->disowOdlambda(lambda_wave); |
| double G2linear = d11(1)*lambda_wave2*lambda_wave2 + d1(1)*lambda_wave2; |
| L_iso = ( ICinv - CinvCinv * (1.0/3.0) ) * G2linear; |
| } |
| return L_iso; |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Tensor FDdecoupledElastic3D::FDvolStiffness(void) |
| { |
| Tensor CinvCinv = Cinv("ij")*Cinv("kl") ; |
| Cinv.null_indices(); CinvCinv.null_indices(); |
| Tensor ICinv = ( CinvCinv.transpose0110() + CinvCinv.transpose0111() ) * (0.5); |
| double dWdJ = W->dvolwOdJ(J); |
| double d2WdJ2 = W->d2volwOdJ2(J); |
| double wj = d2WdJ2*J*J + J*dWdJ; |
| Tensor L_vol = CinvCinv*wj - ICinv *2.0*J*dWdJ ; |
| return L_vol; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| const Tensor& FDdecoupledElastic3D::getTangentTensor(void) |
| { |
| return Stiffness; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Tensor |
| &FDdecoupledElastic3D::getInitialTangentTensor(void) |
| { |
| //tensor I2("I", 2, def_dim_2); |
| //tensor I_ijkl = I2("ij")*I2("kl"); |
| //tensor I_ikjl = I_ijkl.transpose0110(); |
| //tensor I_iljk = I_ijkl.transpose0111(); |
| //tensor I4s = (I_ikjl+I_iljk)*0.5; |
| //static tensor L0; |
| //L0 = I_ijkl*( E*nu / ( (1.0+nu)*(1.0 - 2.0*nu) ) ) + I4s*( E / (1.0 + nu) ); |
| //return L0; |
| return this->getTangentTensor(); |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const straintensor FDdecoupledElastic3D::getStrainTensor(void) |
| { |
| return thisGreenStrain; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const stresstensor FDdecoupledElastic3D::getStressTensor(void) |
| { |
| return thisPK2Stress; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const stresstensor FDdecoupledElastic3D::getPK1StressTensor(void) |
| { |
| stresstensor thisSPKStress; |
| stresstensor thisFPKStress; |
| if ( FromForC == 0 ) { |
| thisSPKStress = this->getStressTensor(); |
| thisFPKStress = thisSPKStress("ij") * (F.transpose11())("jk") ; |
| } |
| if ( FromForC == 1 ) { |
| opserr << "FDdecoupledElastic3D: unknown deformation gradient - cannot compute PK1 stress" << "\n"; |
| exit (-1); |
| } |
| return thisFPKStress; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const stresstensor FDdecoupledElastic3D::getCauchyStressTensor(void) |
| { |
| stresstensor thisSPKStress; |
| stresstensor thisCauchyStress; |
| if ( FromForC == 0 ) { |
| thisSPKStress = this->getStressTensor(); |
| thisCauchyStress = F("ij") * thisSPKStress("jk") * (F.transpose11())("kl") * (1.0/J); |
| } |
| if ( FromForC == 1 ) { |
| opserr << "FDdecoupledElastic3D: unknown deformation gradient - cannot compute Cauchy stress" << "\n"; |
| exit (-1); |
| } |
| return thisCauchyStress; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::commitState (void) |
| { |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::revertToLastCommit (void) |
| { |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::revertToStart (void) |
| { |
| Tensor F0("I", 2, def_dim_2); |
| F = F0; |
| C = F0; |
| Cinv = F0; |
| Tensor ss_zero(2,def_dim_2,0.0); |
| thisPK2Stress = ss_zero; |
| thisGreenStrain = ss_zero; |
| Stiffness = getInitialTangentTensor(); |
| J = 1.0; |
| lambda1 = 1.0; |
| lambda2 = 1.0; |
| lambda3 = 1.0; |
| lambda_wave1 = 1.0; |
| lambda_wave2 = 1.0; |
| lambda_wave3 = 1.0; |
| caseIndex = 0; |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| NDMaterial * FDdecoupledElastic3D::getCopy (void) |
| { |
| FDdecoupledElastic3D *theCopy = |
| new FDdecoupledElastic3D (this->getTag(), this->getWEnergy(), this->getRho()); |
| theCopy->F = F; |
| theCopy->C = C; |
| theCopy->Cinv = Cinv; |
| theCopy->J = J; |
| theCopy->lambda1 = lambda1; |
| theCopy->lambda2 = lambda2; |
| theCopy->lambda3 = lambda3; |
| theCopy->lambda_wave1 = lambda_wave1; |
| theCopy->lambda_wave2 = lambda_wave2; |
| theCopy->lambda_wave3 = lambda_wave3; |
| theCopy->Stiffness = Stiffness; |
| theCopy->thisGreenStrain = thisGreenStrain; |
| theCopy->thisPK2Stress = thisPK2Stress; |
| return theCopy; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| NDMaterial * FDdecoupledElastic3D::getCopy (const char *type) |
| { |
| opserr << "FDdecoupledElastic3D::getCopy(const char *) - not yet implemented\n"; |
| return 0; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const char* FDdecoupledElastic3D::getType (void) const |
| { |
| return "ThreeDimentionalFD"; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::getOrder (void) const |
| { |
| return 6; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::sendSelf (int commitTag, Channel &theChannel) |
| { |
| int res = 0; |
| static Vector data(2); |
| data(0) = this->getTag(); |
| data(1) = rho; |
| res += theChannel.sendVector(this->getDbTag(), commitTag, data); |
| if (res < 0) |
| { |
| opserr << "FDdecoupledElastic3D::sendSelf -- could not send Vector\n"; |
| return res; |
| } |
| return res; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::recvSelf (int commitTag, |
| Channel &theChannel, |
| FEM_ObjectBroker &theBroker) |
| { |
| int res = 0; |
| static Vector data(2); |
| res += theChannel.recvVector(this->getDbTag(), commitTag, data); |
| if (res < 0) |
| { |
| opserr << "FDdecoupledElastic3D::recvSelf -- could not recv Vector\n"; |
| return res; |
| } |
| this->setTag((int)data(0)); |
| rho = data(1); |
| return res; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| void FDdecoupledElastic3D::Print (OPS_Stream &s, int flag) |
| { |
| s << "Finite Deformation Elastic 3D model" << endln; |
| s << "\trho: " << rho << endln; |
| return; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| //int FDdecoupledElastic3D::setParameter(char **argv, int argc, Information &info) |
| //{ |
| // return -1; |
| //} |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| //int FDdecoupledElastic3D::updateParameter(int parameterID, Information &info) |
| //{ |
| // return -1; |
| //} |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::ComputeTrials() |
| { |
| // Cinv: |
| Cinv = C.inverse(); |
| Cinv.symmetrize11(); |
| // J: |
| J = sqrt(C.determinant()); |
| // lambda: |
| tensor eigtensor = C.eigenvalues(); |
| lambda1 = sqrt(eigtensor.cval(1)); |
| lambda2 = sqrt(eigtensor.cval(2)); |
| lambda3 = sqrt(eigtensor.cval(3)); |
| // lambda_wave |
| double JJJ = pow(J, -0.33333333333333333333333333333); |
| lambda_wave1 = lambda1 *JJJ; |
| lambda_wave2 = lambda2 *JJJ; |
| lambda_wave3 = lambda3 *JJJ; |
| // caseIndex, note lambda1 >= lambda2 >= lambda3 implied by C.eigenvalues() |
| double diff12 = fabs(lambda1-lambda2); |
| double diff23 = fabs(lambda2-lambda3); |
| double perturbation = pow( d_macheps(), (0.4) ); |
| if ( diff12 >= perturbation && diff23 >= perturbation ) |
| caseIndex = 0; |
| else if (diff12 >= perturbation && diff23 < perturbation ) |
| caseIndex = 11; |
| else if (diff12 < perturbation && diff23 >= perturbation ) |
| caseIndex = 13; |
| else if (diff12 < perturbation && diff23 < perturbation ) |
| caseIndex = 2; |
| else {opserr << "FDdecoupledElastic3D::getCaseIndex -- unknown case! \n"; |
| exit (-1);} |
| Tensor I_ij("I", 2, def_dim_2); |
| Tensor isoPK2Stress(2, def_dim_2, 0.0); |
| Vector Wa = this->wa(); |
| double I1 = lambda1*lambda1+lambda2*lambda2+lambda3*lambda3; |
| if (caseIndex == 0) |
| { |
| double d1 = (lambda1+lambda2)*(lambda1+lambda3)*(lambda1-lambda2)*(lambda1-lambda3); |
| double d2 = (lambda2+lambda3)*(lambda2+lambda1)*(lambda2-lambda3)*(lambda2-lambda1); |
| double d3 = (lambda3+lambda1)*(lambda3+lambda2)*(lambda3-lambda1)*(lambda3-lambda2); |
| Tensor M1 = ( C - I_ij*(I1-lambda1*lambda1) + Cinv *(J*J/(lambda1*lambda1)) ) * (1.0/d1); |
| Tensor M2 = ( C - I_ij*(I1-lambda2*lambda2) + Cinv *(J*J/(lambda2*lambda2)) ) * (1.0/d2); |
| Tensor M3 = ( C - I_ij*(I1-lambda3*lambda3) + Cinv *(J*J/(lambda3*lambda3)) ) * (1.0/d3); |
| isoPK2Stress = M1*Wa(0) + M2*Wa(1) + M3*Wa(2); |
| } |
| if (caseIndex == 11) |
| { |
| Tensor M1 = (I_ij - Cinv * (lambda2*lambda2)) * (1.0/(lambda1+lambda2)/(lambda1-lambda2)); |
| Tensor Mr = Cinv - M1; |
| isoPK2Stress = Mr*Wa(2) + M1*Wa(0); |
| } |
| if (caseIndex == 13) |
| { |
| Tensor M3 = (I_ij - Cinv * (lambda2*lambda2)) * (1.0/(lambda3+lambda2)/(lambda3-lambda2)); |
| Tensor Mr = Cinv - M3; |
| isoPK2Stress = Mr*Wa(0) + M3*Wa(2); |
| } |
| if (caseIndex == 2) |
| { |
| } |
| double dWdJ = W->dvolwOdJ(J); |
| Tensor volPK2Stress = Cinv * J * dWdJ; |
| thisPK2Stress = volPK2Stress + isoPK2Stress; // This is PK2Stress |
| thisGreenStrain = (C - I_ij) * 0.5; // This is Green Strain |
| Tensor L_iso = this->FDisoStiffness(); |
| Tensor L_vol = this->FDvolStiffness(); |
| Stiffness = L_iso + L_vol; // This is Langrangian Tangent Stiffness |
| return 0; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------- |
| int FDdecoupledElastic3D::getCaseIndex() |
| { |
| return caseIndex; |
| } |
| /trunk/SRC/material/nD/FiniteDeformation/FDEPState.cpp |
|---|
| New file |
| 0,0 → 1,273 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef FDEPState_CPP |
| #define FDEPState_CPP |
| #include "FDEPState.h" |
| //------------------------------------------------------------------------------- |
| // Normal Constructor 00 |
| //------------------------------------------------------------------------------- |
| FDEPState::FDEPState () |
| { |
| int err; |
| err = this->revertToStart(); |
| } |
| //------------------------------------------------------------------------------- |
| // Normal Constructor 01 |
| //------------------------------------------------------------------------------- |
| FDEPState::FDEPState ( const straintensor& xFpInVar, |
| double xStressLikeInVar, |
| double xStrainLikeInVar, |
| const stresstensor& xStressLikeKiVar, |
| const straintensor& xStrainLikeKiVar, |
| // |
| const straintensor& xCommitedFpInVar, |
| double xCommitedStressLikeInVar, |
| double xCommitedStrainLikeInVar, |
| const stresstensor& xCommitedStressLikeKiVar, |
| const straintensor& xCommitedStrainLikeKiVar ) |
| { |
| FpInVar = xFpInVar; |
| StressLikeInVar = xStressLikeInVar; |
| StrainLikeInVar = xStrainLikeInVar; |
| StressLikeKiVar = xStressLikeKiVar; |
| StrainLikeKiVar = xStrainLikeKiVar; |
| // |
| CommitedFpInVar = xCommitedFpInVar; |
| CommitedStressLikeInVar = xCommitedStressLikeInVar; |
| CommitedStrainLikeInVar = xCommitedStrainLikeInVar; |
| CommitedStressLikeKiVar = xCommitedStressLikeKiVar; |
| CommitedStrainLikeKiVar = xCommitedStrainLikeKiVar; |
| } |
| //------------------------------------------------------------------------------- |
| // Destructor |
| //------------------------------------------------------------------------------- |
| FDEPState::~FDEPState () |
| { |
| } |
| //------------------------------------------------------------------------------ |
| FDEPState *FDEPState::newObj () |
| { |
| FDEPState *fdeps = new FDEPState (); |
| return fdeps; |
| } |
| //------------------------------------------------------------------------------ |
| FDEPState::FDEPState( const FDEPState& fds ) |
| { |
| setFpInVar(fds.getFpInVar()); |
| setStressLikeInVar(fds.getStressLikeInVar()); |
| setStrainLikeInVar(fds.getStrainLikeInVar()); |
| setStressLikeKiVar(fds.getStressLikeKiVar()); |
| setStrainLikeKiVar(fds.getStrainLikeKiVar()); |
| // |
| setCommitedFpInVar(fds.getCommitedFpInVar()); |
| setCommitedStressLikeInVar(fds.getCommitedStressLikeInVar()); |
| setCommitedStrainLikeInVar(fds.getCommitedStrainLikeInVar()); |
| setCommitedStressLikeKiVar(fds.getCommitedStressLikeKiVar()); |
| setCommitedStrainLikeKiVar(fds.getCommitedStrainLikeKiVar()); |
| } |
| // Get member variables |
| //------------------------------------------------------------------------------ |
| straintensor FDEPState::getFpInVar() const |
| { |
| return FpInVar; |
| } |
| //------------------------------------------------------------------------------ |
| double FDEPState::getStrainLikeInVar() const |
| { |
| return StrainLikeInVar; |
| } |
| //------------------------------------------------------------------------------ |
| double FDEPState::getStressLikeInVar() const |
| { |
| return StressLikeInVar; |
| } |
| //------------------------------------------------------------------------------ |
| straintensor FDEPState::getStrainLikeKiVar() const |
| { |
| return StrainLikeKiVar; |
| } |
| //------------------------------------------------------------------------------ |
| stresstensor FDEPState::getStressLikeKiVar() const |
| { |
| return StressLikeKiVar; |
| } |
| //------------------------------------------------------------------------------ |
| straintensor FDEPState::getCommitedFpInVar() const |
| { |
| return CommitedFpInVar; |
| } |
| //------------------------------------------------------------------------------ |
| double FDEPState::getCommitedStrainLikeInVar() const |
| { |
| return CommitedStrainLikeInVar; |
| } |
| //------------------------------------------------------------------------------ |
| double FDEPState::getCommitedStressLikeInVar() const |
| { |
| return CommitedStressLikeInVar; |
| } |
| //------------------------------------------------------------------------------ |
| straintensor FDEPState::getCommitedStrainLikeKiVar() const |
| { |
| return CommitedStrainLikeKiVar; |
| } |
| //------------------------------------------------------------------------------ |
| stresstensor FDEPState::getCommitedStressLikeKiVar() const |
| { |
| return CommitedStressLikeKiVar; |
| } |
| // Set member variables |
| //--------------------------------------------------------------------------- |
| void FDEPState::setFpInVar(const straintensor &xFpInVar) |
| { |
| this->FpInVar = xFpInVar; |
| } |
| //--------------------------------------------------------------------------- |
| void FDEPState::setStrainLikeInVar(double xStrainLikeInVar) |
| { |
| this->StrainLikeInVar = xStrainLikeInVar; |
| } |
| //--------------------------------------------------------------------------- |
| void FDEPState::setStressLikeInVar(double xStressLikeInVar) |
| { |
| this->StressLikeInVar = xStressLikeInVar; |
| } |
| //--------------------------------------------------------------------------- |
| void FDEPState::setStrainLikeKiVar(const straintensor& xStrainLikeKiVar) |
| { |
| this->StrainLikeKiVar = xStrainLikeKiVar; |
| } |
| //--------------------------------------------------------------------------- |
| void FDEPState::setStressLikeKiVar(const stresstensor& xStressLikeKiVar) |
| { |
| this->StressLikeKiVar = xStressLikeKiVar; |
| } |
| //--------------------------------------------------------------------------- |
| void FDEPState::setCommitedFpInVar(const straintensor &xCommitedFpInVar) |
| { |
| this->CommitedFpInVar = xCommitedFpInVar; |
| } |
| //--------------------------------------------------------------------------- |
| void FDEPState::setCommitedStrainLikeInVar(double xCommitedStrainLikeInVar) |
| { |
| this->CommitedStrainLikeInVar = xCommitedStrainLikeInVar; |
| } |
| //--------------------------------------------------------------------------- |
| void FDEPState::setCommitedStressLikeInVar(double xCommitedStressLikeInVar) |
| { |
| this->CommitedStressLikeInVar = xCommitedStressLikeInVar; |
| } |
| //--------------------------------------------------------------------------- |
| void FDEPState::setCommitedStrainLikeKiVar(const straintensor& xCommitedStrainLikeKiVar) |
| { |
| this->CommitedStrainLikeKiVar = xCommitedStrainLikeKiVar; |
| } |
| //--------------------------------------------------------------------------- |
| void FDEPState::setCommitedStressLikeKiVar(const stresstensor& xCommitedStressLikeKiVar) |
| { |
| this->CommitedStressLikeKiVar = xCommitedStressLikeKiVar; |
| } |
| //---------------------------------------------------------------------- |
| int FDEPState::commitState(void) |
| { |
| CommitedFpInVar = FpInVar; |
| CommitedStressLikeInVar = StressLikeInVar; |
| CommitedStrainLikeInVar = StrainLikeInVar; |
| CommitedStressLikeKiVar = StressLikeKiVar; |
| CommitedStrainLikeKiVar = StrainLikeKiVar; |
| return 0; |
| } |
| //---------------------------------------------------------------------- |
| int FDEPState::revertToLastCommit(void) |
| { |
| FpInVar = CommitedFpInVar; |
| StressLikeInVar = CommitedStressLikeInVar; |
| StrainLikeInVar = CommitedStrainLikeInVar; |
| StressLikeKiVar = CommitedStressLikeKiVar; |
| StrainLikeKiVar = CommitedStrainLikeKiVar; |
| return 0; |
| } |
| //---------------------------------------------------------------------- |
| int FDEPState::revertToStart(void) |
| { |
| tensor tI2("I", 2, def_dim_2); |
| tensor t00(2, def_dim_2, 0.0); |
| FpInVar = tI2; |
| StressLikeInVar = 0.0; |
| StrainLikeInVar = 0.0; |
| StressLikeKiVar = t00; |
| StrainLikeKiVar = t00; |
| CommitedFpInVar = tI2; |
| CommitedStressLikeInVar = 0.0; |
| CommitedStrainLikeInVar = 0.0; |
| CommitedStressLikeKiVar = t00; |
| CommitedStrainLikeKiVar = t00; |
| return 0; |
| } |
| # endif |
| /trunk/SRC/material/nD/FiniteDeformation/LogWEnergy.cpp |
|---|
| 21,8 → 21,8 |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: Sept 2003 |
| //# 28May2004 |
| //# |
| //# |
| //=============================================================================== |
| #ifndef LogWEnergy_CPP |
| 33,27 → 33,16 |
| //================================================================================ |
| // Normal constructor |
| //================================================================================ |
| LogWEnergy::LogWEnergy(double E_in, double nu_in ) |
| LogWEnergy::LogWEnergy(double K_in, double G_in ) :K(K_in), G(G_in) |
| { |
| E = E_in; |
| nu = nu_in; |
| if (nu != -1.0) |
| G = 0.5*E/(1.0+nu); |
| else |
| opserr << "Poisson's ratio = -1.0, not permited for this model (LogWEnergy)"; |
| if (nu != 0.5) |
| K = 0.33333333333333*E/(1.0-2.0*nu); |
| else |
| opserr << "Poisson's ratio = 0.5, not permited for this model (LogWEnergy)"; |
| // K = 1.0e20; |
| } |
| //LogWEnergy::LogWEnergy( ) |
| //{ |
| // |
| //} |
| LogWEnergy::LogWEnergy( ) :K(0.0), G(0.0) |
| { |
| } |
| //================================================================================ |
| // Normal destructor |
| //================================================================================ |
| 67,20 → 56,10 |
| //================================================================================ |
| WEnergy * LogWEnergy::newObj( ) |
| { |
| LogWEnergy *new_WEnergy = new LogWEnergy( E, nu); |
| LogWEnergy *new_WEnergy = new LogWEnergy(K, G); |
| return new_WEnergy; |
| } |
| const double LogWEnergy::getE() |
| { |
| return E; |
| } |
| const double LogWEnergy::getnu() |
| { |
| return nu; |
| } |
| //================================================================================ |
| // w |
| //================================================================================ |
| 140,5 → 119,6 |
| return d2colwOverdJ2; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/TclFiniteDeformationEP3DCommand.cpp |
|---|
| New file |
| 0,0 → 1,393 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #include <stdlib.h> |
| #include <string.h> |
| #include <Domain.h> |
| #include <ErrorHandler.h> |
| #include <TclModelBuilder.h> |
| #include <NDMaterial.h> |
| #include <FiniteDeformationEP3D.h> |
| #include <FiniteDeformationElastic3D.h> |
| #include <fdYield.h> |
| #include <fdYieldVM.h> |
| #include <fdYieldDP.h> |
| #include <fdFlow.h> |
| #include <fdFlowVM.h> |
| #include <fdFlowDP.h> |
| #include <fdEvolution_S.h> |
| #include <fdEvolution_SLS.h> |
| #include <fdEvolution_T.h> |
| #include <fdEvolution_TL.h> |
| // the functions to create the component objects (defined at eof) |
| fdYield *EvaluatefdYield(ClientData, Tcl_Interp *, TCL_Char *tclString); |
| fdFlow *EvaluatefdFlow(ClientData, Tcl_Interp *, TCL_Char *tclString); |
| fdEvolution_S *EvaluatefdEvolution_S(ClientData, Tcl_Interp *, TCL_Char *tclString); |
| fdEvolution_T *EvaluatefdEvolution_T(ClientData, Tcl_Interp *, TCL_Char *tclString); |
| static void cleanup(TCL_Char **argv) { |
| Tcl_Free((char *) argv); |
| } |
| //************************************************************************************** |
| //************************************************************************************** |
| FiniteDeformationEP3D * |
| TclModelBuilder_addFiniteDeformationEP3D(ClientData clientData, Tcl_Interp *interp, int argc, |
| TCL_Char **argv, TclModelBuilder *theTclBuilder, int eleArgStart) |
| { |
| int tag = 0; |
| int tagElasticFD = 0; |
| fdYield *fdY = 0; |
| fdFlow *fdF = 0; |
| fdEvolution_S *fdES = 0; |
| fdEvolution_T *fdET = 0; |
| NDMaterial *matFDElastic = 0; |
| int loc = eleArgStart; |
| if (Tcl_GetInt(interp, argv[loc++], &tag) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid tag " << argv[loc] << "\n"; |
| exit (-1); |
| } |
| if (Tcl_GetInt(interp, argv[loc++], &tagElasticFD) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid elastic material tag " << argv[loc] << "\n"; |
| exit (-1); |
| } |
| if (tagElasticFD == tag) { |
| opserr << "Error: nDMaterial FDEP3D, elastic matTag is the same with FDEP3D matTag" << argv[loc] << "\n"; |
| exit (-1); |
| } |
| matFDElastic = theTclBuilder->getNDMaterial(tagElasticFD); |
| if (tagElasticFD == 0) { |
| opserr << "WARNING: nD FD elastic material does not exist\n"; |
| opserr << "nD FD material: " << tagElasticFD; |
| opserr << "\n FDEP3D nDMaterial: " << tag << "\n"; |
| exit (-1); |
| } |
| while (loc < argc) { |
| if ((strcmp(argv[loc],"-fdYield") == 0) || (strcmp(argv[loc],"-fdY") == 0)) { |
| fdY = EvaluatefdYield(clientData, interp, argv[loc+1]); |
| if (fdY == 0) { |
| opserr << "Warning: nDMaterial FDEP3D - could not create a fdYield from" << argv[loc+1] << "\n"; |
| exit (-1); |
| } |
| } |
| else if ((strcmp(argv[loc],"-fdFlow") == 0) || (strcmp(argv[loc],"-fdF") == 0)) { |
| fdF = EvaluatefdFlow(clientData, interp, argv[loc+1]); |
| if (fdF == 0) { |
| opserr << "Warning: nDMaterial FDEP3D - could not create a fdFlow from" << argv[loc+1] << "\n"; |
| exit (-1); |
| } |
| } |
| else if ((strcmp(argv[loc],"-fdEvolution_S") == 0) || (strcmp(argv[loc],"-fdES") == 0)) { |
| fdES = EvaluatefdEvolution_S(clientData, interp, argv[loc+1]); |
| if (fdES == 0) { |
| opserr << "Warning: nDMaterial FDEP3D - could not create a fdES from" << argv[loc+1] << "\n"; |
| exit (-1); |
| } |
| } |
| else if ((strcmp(argv[loc],"-fdEvolution_T") == 0) || (strcmp(argv[loc],"-fdET") == 0)) { |
| fdET = EvaluatefdEvolution_T(clientData, interp, argv[loc+1]); |
| if (fdET == 0) { |
| opserr << "Warning: nDMaterial FDEP3D - could not create a fdET from" << argv[loc+1] << "\n"; |
| exit (-1); |
| } |
| } |
| else { |
| opserr << "Warning: nDMaterial FDEP3D - don't understand %s\n"; |
| exit (-1); |
| } |
| // increment locator by 2 and do next one |
| loc += 2; |
| } |
| FiniteDeformationEP3D *theMaterial = 0; |
| if ( (fdY != 0) && (fdF != 0) && (fdES != 0) && (fdET != 0) && (matFDElastic != 0) ) |
| theMaterial = new FiniteDeformationEP3D(tag, matFDElastic, fdY, fdF, fdES, fdET); |
| else if ( (fdY != 0) && (fdF != 0) && (fdES != 0) && (fdET == 0) && (matFDElastic != 0) ) |
| theMaterial = new FiniteDeformationEP3D(tag, matFDElastic, fdY, fdF, fdES); |
| else if ( (fdY != 0) && (fdF != 0) && (fdES == 0) && (fdET != 0) && (matFDElastic != 0) ) |
| theMaterial = new FiniteDeformationEP3D(tag, matFDElastic, fdY, fdF, fdET); |
| else if ( (fdY != 0) && (fdF != 0) && (fdES == 0) && (fdET == 0) && (matFDElastic != 0) ) |
| theMaterial = new FiniteDeformationEP3D(tag, matFDElastic, fdY, fdF); |
| else |
| opserr << "Warning: invalid args used to create a FiniteDeformationEP3D material\n"; |
| return theMaterial; |
| } |
| //************************************************************************************** |
| //************************************************************************************** |
| // Function - to create a FD Yield Surface |
| fdYield *EvaluatefdYield(ClientData clientData, Tcl_Interp *interp, TCL_Char *tclString) |
| { |
| int argc; |
| TCL_Char **argv; |
| // split the list |
| if (Tcl_SplitList(interp, tclString, &argc, &argv) != TCL_OK) { |
| exit (-1); |
| } |
| if (argc == 0) |
| exit (-1); |
| // now parse the list & construct the required object |
| fdYield *fdY = 0; |
| // 1. von Mises fd Yield Surface |
| // |
| if ((strcmp(argv[0],"-VM") == 0) || (strcmp(argv[0],"-vM") == 0) || (strcmp(argv[0],"-J2") == 0)) { |
| double Y0 = 0.0; |
| if (argc == 2) { |
| if (Tcl_GetDouble(interp, argv[1], &Y0) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid Y0 " << argv[1] << "\n"; |
| exit (-1); |
| } |
| } |
| fdY = new fdYieldVM(Y0); |
| } |
| // 2. Druke-Prager fd Yield Surface |
| // |
| else if ((strcmp(argv[0],"-DP") == 0) || (strcmp(argv[0],"-dp") == 0) ) { |
| double FrictionAng_in = 0.0; |
| double Cohension_in = 0.0; |
| int ConeIndex_in = 0; |
| if (argc >= 3) { |
| if (Tcl_GetDouble(interp, argv[1], &FrictionAng_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid Friction Angle " << argv[1] << "\n"; |
| exit (-1); |
| } |
| if (Tcl_GetDouble(interp, argv[2], &Cohension_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid Conhension " << argv[2] << "\n"; |
| exit (-1); |
| } |
| } |
| if (argc == 4) { |
| if (Tcl_GetInt(interp, argv[3], &ConeIndex_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid Cone Index " << argv[1] << "\n"; |
| exit (-1); |
| } |
| } |
| fdY = new fdYieldDP(FrictionAng_in, Cohension_in, ConeIndex_in); |
| } |
| else { |
| opserr << "Warning: invalid fd yield function: " << argv[0] << "\n"; |
| exit (-1); |
| } |
| cleanup(argv); |
| return fdY; |
| } |
| //************************************************************************************** |
| //************************************************************************************** |
| // Function - to create a FD Flow Rule |
| fdFlow *EvaluatefdFlow(ClientData clientData, Tcl_Interp *interp, TCL_Char *tclString) |
| { |
| int argc; |
| TCL_Char **argv; |
| // split the list |
| if (Tcl_SplitList(interp, tclString, &argc, &argv) != TCL_OK) { |
| exit (-1); |
| } |
| if (argc == 0) |
| exit (-1); |
| fdFlow *fdF = 0; |
| // 1. von Mises fd Yield Surface |
| // |
| if ((strcmp(argv[0],"-VM") == 0) || (strcmp(argv[0],"-vM") == 0) || (strcmp(argv[0],"-J2") == 0)) { |
| double Y0 = 0.0; |
| if (argc == 2) { |
| if (Tcl_GetDouble(interp, argv[1], &Y0) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid Y0 " << argv[1] << "\n"; |
| exit (-1); |
| } |
| } |
| fdF = new fdFlowVM(Y0); |
| } |
| // 2. Druke-Prager fd Flow Rule |
| // |
| else if ((strcmp(argv[0],"-DP") == 0) || (strcmp(argv[0],"-dp") == 0) ) { |
| double DilatedAngle_in = 0.0; |
| int ConeIndex_in = 0; |
| if (argc >= 2) { |
| if (Tcl_GetDouble(interp, argv[1], &DilatedAngle_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid Dilated Angle " << argv[1] << "\n"; |
| exit (-1); |
| } |
| } |
| if (argc == 3) { |
| if (Tcl_GetInt(interp, argv[2], &ConeIndex_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid Cone Index " << argv[2] << "\n"; |
| exit (-1); |
| } |
| } |
| fdF = new fdFlowDP(DilatedAngle_in, ConeIndex_in); |
| } |
| else { |
| opserr << "Warning: invalid fd flow rule: " << argv[0] << "\n"; |
| exit (-1); |
| } |
| cleanup(argv); |
| return fdF; |
| } |
| //************************************************************************************** |
| //************************************************************************************** |
| // Function - to create an fd EvolutionLaw_S object |
| fdEvolution_S *EvaluatefdEvolution_S(ClientData clientData, Tcl_Interp *interp, TCL_Char *tclString) |
| { |
| int argc; |
| TCL_Char **argv; |
| // split the list |
| if (Tcl_SplitList(interp, tclString, &argc, &argv) != TCL_OK) { |
| exit (-1); |
| } |
| fdEvolution_S *fdES = 0; |
| //1. Linear and Saturation isotropic (scalar) evolution law: |
| // |
| if ((strcmp(argv[0],"-LS") == 0) || (strcmp(argv[0],"-LinearSaturated") == 0)) { |
| double H_linear = 0.0; |
| double q_saturated = 0.0; |
| double beta = 0.0; |
| if (argc >= 2) { |
| if (Tcl_GetDouble(interp, argv[1], &H_linear) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid H_linear " << argv[1] << "\n"; |
| cleanup(argv); |
| exit (-1); |
| } |
| } |
| if (argc >= 4) { |
| if (Tcl_GetDouble(interp, argv[2], &q_saturated) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid q_saturated " << argv[2] << "\n"; |
| cleanup(argv); |
| exit (-1); |
| } |
| if (Tcl_GetDouble(interp, argv[3], &beta) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid beta " << argv[3] << "\n"; |
| cleanup(argv); |
| exit (-1); |
| } |
| } |
| fdES = new fdEvolution_SLS(H_linear, q_saturated, beta); |
| } |
| cleanup(argv); |
| return fdES; |
| } |
| //************************************************************************************** |
| //************************************************************************************** |
| // Function - to create an fd EvolutionLaw_T object |
| fdEvolution_T *EvaluatefdEvolution_T(ClientData clientData, Tcl_Interp *interp, TCL_Char *tclString) |
| { |
| int argc; |
| TCL_Char **argv; |
| // split the list |
| if (Tcl_SplitList(interp, tclString, &argc, &argv) != TCL_OK) { |
| exit (-1); |
| } |
| fdEvolution_T *fdET = 0; |
| //1. Linear kinematic (tensor) evolution law: |
| // |
| if ((strcmp(argv[0],"-Linear") == 0) ) { |
| double H_linear = 0.0; |
| if (argc >= 2) { |
| if (Tcl_GetDouble(interp, argv[1], &H_linear) != TCL_OK) { |
| opserr << "Warning: nDMaterial FDEP3D - invalid H_linear " << argv[1] << "\n"; |
| cleanup(argv); |
| exit (-1); |
| } |
| } |
| fdET = new fdEvolution_TL(H_linear); |
| } |
| cleanup(argv); |
| return fdET; |
| } |
| /trunk/SRC/material/nD/FiniteDeformation/NeoHookeanCompressible3D.cpp |
|---|
| New file |
| 0,0 → 1,321 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| // the traditional neo-Hookean hyperelasticity: |
| // w = 0.5*lambda*(lnJ)^2 - G*(lnJ) + 0.5*G*(trace(C)-3) |
| #include <NeoHookeanCompressible3D.h> |
| //----------------------------------------------------------------------------------------------------------------------------------------------- |
| NeoHookeanCompressible3D::NeoHookeanCompressible3D(int tag, |
| int classTag, |
| double K_in, |
| double G_in, |
| double rho_in = 0.0) |
| :FiniteDeformationElastic3D(tag, classTag, rho_in), K(K_in), G(G_in) |
| { |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------- |
| NeoHookeanCompressible3D::NeoHookeanCompressible3D(int tag, |
| double K_in, |
| double G_in, |
| double rho_in = 0.0) |
| :FiniteDeformationElastic3D(tag, ND_TAG_NeoHookeanCompressible3D, rho_in), K(K_in), G(G_in) |
| { |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------ |
| NeoHookeanCompressible3D::NeoHookeanCompressible3D( ) |
| :FiniteDeformationElastic3D(0, 0, 0.0), K(0.0), G(0.0) |
| { |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------ |
| NeoHookeanCompressible3D::~NeoHookeanCompressible3D() |
| { |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------- |
| double NeoHookeanCompressible3D::getRho(void) |
| { |
| return rho; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------- |
| int NeoHookeanCompressible3D::setTrialF(const straintensor &f) |
| { |
| FromForC = 0; |
| F = f; |
| C = F("ki")*F("kj"); C.null_indices(); |
| return this->ComputeTrials(); |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------- |
| int NeoHookeanCompressible3D::setTrialFIncr(const straintensor &df) |
| { |
| return this->setTrialF(this->getF() + df); |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------- |
| int NeoHookeanCompressible3D::setTrialC(const straintensor &c) |
| { |
| FromForC = 1; |
| C = c; |
| return this->ComputeTrials(); |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------- |
| int NeoHookeanCompressible3D::setTrialCIncr(const straintensor &dc) |
| { |
| return this->setTrialC(this->getC() + dc); |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------- |
| const straintensor NeoHookeanCompressible3D::getF(void) |
| { |
| return F; |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------- |
| const straintensor NeoHookeanCompressible3D::getC(void) |
| { |
| return C; |
| } |
| ////------------------------------------------------------------------------------------------------------------------------------------------------------ |
| //const double NeoHookeanCompressible3D::getJ(void) |
| //{ |
| // return J; |
| //} |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| const Tensor& NeoHookeanCompressible3D::getTangentTensor(void) |
| { |
| return Stiffness; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Tensor |
| &NeoHookeanCompressible3D::getInitialTangentTensor(void) |
| { |
| return this->getTangentTensor(); |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const straintensor NeoHookeanCompressible3D::getStrainTensor(void) |
| { |
| return thisGreenStrain; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const stresstensor NeoHookeanCompressible3D::getStressTensor(void) |
| { |
| return thisPK2Stress; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const stresstensor NeoHookeanCompressible3D::getPK1StressTensor(void) |
| { |
| stresstensor thisSPKStress; |
| stresstensor thisFPKStress; |
| if ( FromForC == 0 ) { |
| thisSPKStress = this->getStressTensor(); |
| thisFPKStress = thisSPKStress("ij") * (F.transpose11())("jk") ; |
| } |
| if ( FromForC == 1 ) { |
| opserr << "NeoHookeanCompressible3D: unknown deformation gradient - cannot compute PK1 stress" << "\n"; |
| exit (-1); |
| } |
| return thisFPKStress; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const stresstensor NeoHookeanCompressible3D::getCauchyStressTensor(void) |
| { |
| stresstensor thisSPKStress; |
| stresstensor thisCauchyStress; |
| if ( FromForC == 0 ) { |
| thisSPKStress = this->getStressTensor(); |
| thisCauchyStress = F("ij") * thisSPKStress("jk") * (F.transpose11())("kl") * (1.0/J); |
| } |
| if ( FromForC == 1 ) { |
| opserr << "NeoHookeanCompressible3D: unknown deformation gradient - cannot compute Cauchy stress" << "\n"; |
| exit (-1); |
| } |
| return thisCauchyStress; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int NeoHookeanCompressible3D::commitState (void) |
| { |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int NeoHookeanCompressible3D::revertToLastCommit (void) |
| { |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int NeoHookeanCompressible3D::revertToStart (void) |
| { |
| tensor F0("I", 2, def_dim_2); |
| F = F0; |
| C = F0; |
| Cinv = F0; |
| J = 1.0; |
| tensor ss_zero(2,def_dim_2,0.0); |
| thisPK2Stress = ss_zero; |
| thisGreenStrain = ss_zero; |
| Stiffness = getInitialTangentTensor(); |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| NDMaterial * NeoHookeanCompressible3D::getCopy (void) |
| { |
| NeoHookeanCompressible3D *theCopy = |
| new NeoHookeanCompressible3D (this->getTag(), K, G, rho); |
| theCopy->F = F; |
| theCopy->C = C; |
| theCopy->Cinv = Cinv; |
| theCopy->J = J; |
| theCopy->Stiffness = Stiffness; |
| theCopy->thisGreenStrain = thisGreenStrain; |
| theCopy->thisPK2Stress = thisPK2Stress; |
| return theCopy; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| NDMaterial * NeoHookeanCompressible3D::getCopy (const char *type) |
| { |
| opserr << "NeoHookeanCompressible3D::getCopy(const char *) - not yet implemented\n"; |
| return 0; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const char* NeoHookeanCompressible3D::getType (void) const |
| { |
| return "ThreeDimentionalFD"; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int NeoHookeanCompressible3D::getOrder (void) const |
| { |
| return 6; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int NeoHookeanCompressible3D::sendSelf (int commitTag, Channel &theChannel) |
| { |
| int res = 0; |
| // not yet implemented |
| return res; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int NeoHookeanCompressible3D::recvSelf (int commitTag, |
| Channel &theChannel, |
| FEM_ObjectBroker &theBroker) |
| { |
| int res = 0; |
| // not yet implemented |
| return res; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| void NeoHookeanCompressible3D::Print (OPS_Stream &s, int flag) |
| { |
| s << "Finite Deformation Elastic 3D model" << "\n"; |
| s << "\trho: " << rho << "\n"; |
| s << "\tK: " << K << "\n"; |
| s << "\tG: " << G << "\n"; |
| return; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| //int NeoHookeanCompressible3D::setParameter(char **argv, int argc, Information &info) |
| //{ |
| // return -1; |
| //} |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| //int NeoHookeanCompressible3D::updateParameter(int parameterID, Information &info) |
| //{ |
| // return -1; |
| //} |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int NeoHookeanCompressible3D::ComputeTrials() |
| { |
| tensor tensorI2("I", 2, def_dim_2); |
| tensor tsr1; |
| tensor tsr2; |
| // Cinv: |
| Cinv = C.inverse(); |
| Cinv.symmetrize11(); |
| // J: |
| J = sqrt(C.determinant()); |
| // lame constants: |
| double lambda = K - 2.0*G/3.0; |
| double mu = G - lambda*log(J); |
| // Pk2Stress: |
| thisPK2Stress = (tensorI2-Cinv)*G + Cinv*lambda*log(J); |
| // Green Strain: |
| thisGreenStrain = (C - tensorI2) * 0.5; |
| // Langrangian Tangent Stiffness: |
| tsr1 = Cinv("ij")*Cinv("kl"); |
| tsr1.null_indices(); |
| tsr2 = tsr1.transpose0110() + tsr1.transpose0111(); |
| Stiffness = tsr1*lambda + tsr2*mu; |
| return 0; |
| } |
| /trunk/SRC/material/nD/FiniteDeformation/NeoHookeanWEnergy.cpp |
|---|
| 21,40 → 21,30 |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: Sept 2003 |
| //# 28May2004 |
| //# |
| //# |
| //=============================================================================== |
| #ifndef NeoHookeanWEnergy_CPP |
| #define NeoHookeanWEnergy_CPP |
| #include <math.h> |
| #include <NeoHookeanWEnergy.h> |
| //================================================================================ |
| // Normal constructor |
| //================================================================================ |
| NeoHookeanWEnergy::NeoHookeanWEnergy(double E_in, double nu_in ) |
| NeoHookeanWEnergy::NeoHookeanWEnergy(double K_in, double G_in ) |
| :K(K_in), G(G_in) |
| { |
| E = E_in; |
| nu = nu_in; |
| if (nu != -1.0) |
| G = 0.5*E_in/(1.0+nu_in); |
| else |
| opserr << "Poisson's ratio = -1.0, not permited for this model (NeoHookeanWEnergy)"; |
| if (nu != 0.5) |
| K = 0.3333333333333333333*E/(1.0-2.0*nu); |
| else |
| opserr << "Poisson's ratio = 0.5, not permited for this model (NeoHookeanWEnergy)"; |
| // K = 1.0e20; |
| } |
| //NeoHookeanWEnergy::NeoHookeanWEnergy( ) |
| //{ |
| // |
| //} |
| NeoHookeanWEnergy::NeoHookeanWEnergy( ) |
| :K(0.0), G(0.0) |
| { |
| } |
| //================================================================================ |
| // Normal destructor |
| //================================================================================ |
| 68,20 → 58,11 |
| //================================================================================ |
| WEnergy * NeoHookeanWEnergy::newObj( ) |
| { |
| WEnergy *new_WEnergy = new NeoHookeanWEnergy(E, nu); |
| WEnergy *new_WEnergy = new NeoHookeanWEnergy(K, G); |
| return new_WEnergy; |
| } |
| const double NeoHookeanWEnergy::getE() |
| { |
| return E; |
| } |
| const double NeoHookeanWEnergy::getnu() |
| { |
| return nu; |
| } |
| //================================================================================ |
| // w |
| //================================================================================ |
| 144,5 → 125,6 |
| return temp2; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/FiniteDeformationEP3D.h |
|---|
| New file |
| 0,0 → 1,145 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef FiniteDeformationEP3D_H |
| #define FiniteDefornationEP3D_H |
| #include <NDMaterial.h> |
| #include "FDEPState.h" |
| #include "FiniteDeformationElastic3D.h" |
| #include <fdYield.h> |
| #include <fdFlow.h> |
| #include <fdEvolution_S.h> |
| #include <fdEvolution_T.h> |
| #include <FEM_ObjectBroker.h> |
| #include <Channel.h> |
| #include <OPS_Globals.h> |
| #include <ConsoleErrorHandler.h> |
| #include <stresst.h> |
| #include <straint.h> |
| #include <BJmatrix.h> |
| #include <BJvector.h> |
| class FiniteDeformationEP3D : public NDMaterial |
| { |
| public: |
| // Constructor 00 |
| FiniteDeformationEP3D( ); |
| // Constructor 01 |
| FiniteDeformationEP3D(int tag, |
| NDMaterial *fde3d_in, |
| fdYield *fdy_in, |
| fdFlow *fdf_in, |
| fdEvolution_S *fdEvolutionS_in, |
| fdEvolution_T *fdEvolutionT_in); |
| // Constructor 02 |
| FiniteDeformationEP3D(int tag, |
| NDMaterial *fde3d_in, |
| fdYield *fdy_in, |
| fdFlow *fdf_in, |
| fdEvolution_S *fdEvolutionS_in); |
| // Constructor 03 |
| FiniteDeformationEP3D(int tag, |
| NDMaterial *fde3d_in, |
| fdYield *fdy_in, |
| fdFlow *fdf_in, |
| fdEvolution_T *fdEvolutionT_in); |
| // Constructor 04 |
| FiniteDeformationEP3D(int tag, |
| NDMaterial *fde3d_in, |
| fdYield *fdy_in, |
| fdFlow *fdf_in); |
| // Destructor |
| virtual ~FiniteDeformationEP3D( ); |
| double getRho(void); |
| int setTrialF(const straintensor &f); |
| int setTrialFIncr(const straintensor &df); |
| const Tensor& getTangentTensor(void) ; |
| const straintensor getStrainTensor(void) ; // Default Green Strain |
| const stresstensor getStressTensor(void) ; // Default 2nd Piola Kirchhoff Stress |
| const straintensor getF(void); |
| const straintensor getFp(void); |
| int commitState(void) ; |
| int revertToLastCommit(void) ; |
| int revertToStart(void) ; |
| NDMaterial *getCopy (void); |
| NDMaterial *getCopy (const char *type); |
| const char *getType (void) const; |
| int getOrder (void) const; |
| int sendSelf(int commitTag, Channel &theChannel); |
| int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker); |
| void Print(OPS_Stream &s, int flag); |
| const stresstensor getCauchyStressTensor(void); |
| private: |
| NDMaterial *getFDE3D() const; |
| fdYield *getFDY() const; |
| fdFlow *getFDF() const; |
| fdEvolution_S *getFDEvolutionS() const; |
| fdEvolution_T *getFDEvolutionT() const; |
| FDEPState *getFDEPState() const; |
| int ImplicitAlgorithm(); |
| int SemiImplicitAlgorithm(); |
| private: |
| NDMaterial *fde3d; |
| fdYield *fdy; |
| fdFlow *fdf; |
| fdEvolution_S *fdEvolutionS; |
| fdEvolution_T *fdEvolutionT; |
| //material input |
| straintensor F; |
| //material response |
| straintensor iniGreen; |
| stresstensor iniPK2; |
| tensor iniTangent; |
| stresstensor B_PK2; |
| straintensor Fe; |
| stresstensor cauchystress; |
| FDEPState *fdeps; |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/MooneyRivlinSimoWEnergy.h |
|---|
| 20,7 → 20,7 |
| //# |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: |
| //# UPDATE HISTORY: 28May2004 |
| //# |
| //# |
| //=============================================================================== |
| 30,38 → 30,29 |
| #include <Vector.h> |
| #include <Tensor.h> |
| //#include <BJvector.h> |
| //#include <BJtensor.h> |
| #include <OPS_Globals.h> |
| #include <W.h> |
| class MooneyRivlinSimoWEnergy : public WEnergy |
| { |
| private: |
| double E; |
| double nu; |
| double c1; |
| double c2; |
| double G; |
| double K; |
| public: |
| MooneyRivlinSimoWEnergy(double , double, double, double ); |
| // MooneyRivlinSimoWEnergy( ); |
| MooneyRivlinSimoWEnergy(double, double, double ); |
| MooneyRivlinSimoWEnergy( ); |
| ~MooneyRivlinSimoWEnergy( ); |
| WEnergy *newObj( ); |
| const double getE(); |
| const double getnu(); |
| const double wE(const double &, const Vector &); |
| const Vector disowOdlambda(const Vector &); |
| const Vector d2isowOdlambda2(const Vector & ); |
| // const tensor d2isowOdlambda1dlambda2(const vector &); |
| //const tensor d2isowOdlambda1dlambda2(const vector &); |
| const double dvolwOdJ( const double &); |
| const double d2volwOdJ2(const double &); |
| // friend OPS_Stream& operator<< (OPS_Stream& os, const MooneyRivlinSimoWEnergy &W); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/OgdenSimoWEnergy.h |
|---|
| 20,7 → 20,7 |
| //# |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: |
| //# UPDATE HISTORY: 28May2004 |
| //# |
| //# |
| //=============================================================================== |
| 30,30 → 30,22 |
| #include <Vector.h> |
| #include <Tensor.h> |
| //#include <BJvector.h> |
| //#include <BJtensor.h> |
| #include <OPS_Globals.h> |
| #include <W.h> |
| class OgdenSimoWEnergy : public WEnergy |
| { |
| private: |
| double E; |
| double nu; |
| double G; |
| double K; |
| int N_Ogden; |
| double *cr_Ogden; |
| double *mur_Ogden; |
| public: |
| OgdenSimoWEnergy(double, double, int , double * , double * ); |
| // OgdenSimoWEnergy( ); |
| OgdenSimoWEnergy(int , double * , double * , double ); |
| OgdenSimoWEnergy( ); |
| ~OgdenSimoWEnergy( ); |
| WEnergy *newObj( ); |
| const double getE(); |
| const double getnu(); |
| const double wE(const double &, const Vector &) ; |
| const Vector disowOdlambda(const Vector & ) ; |
| const Vector d2isowOdlambda2(const Vector & ) ; |
| 61,8 → 53,6 |
| const double dvolwOdJ( const double &) ; |
| const double d2volwOdJ2( const double &) ; |
| // friend OPS_Stream& operator<< (OPS_Stream& os, const OgdenWEnergy &W); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/MooneyRivlinWEnergy.cpp |
|---|
| 29,25 → 29,23 |
| #ifndef MooneyRivlinWEnergy_CPP |
| #define MooneyRivlinWEnergy_CPP |
| #include <math.h> |
| #include <MooneyRivlinWEnergy.h> |
| //================================================================================ |
| // Normal constructor |
| //================================================================================ |
| MooneyRivlinWEnergy::MooneyRivlinWEnergy( double E_in, double nu_in, double c1_in, double c2_in) |
| MooneyRivlinWEnergy::MooneyRivlinWEnergy( double c1_in, double c2_in) |
| : c1(c1_in), c2(c2_in) |
| { |
| E = E_in; |
| nu = nu_in; |
| c1 = c1_in; |
| c2 = c2_in; |
| } |
| //MooneyRivlinWEnergy::MooneyRivlinWEnergy( ) |
| //{ |
| // |
| //} |
| MooneyRivlinWEnergy::MooneyRivlinWEnergy( ) |
| : c1(0.0), c2(0.0) |
| { |
| } |
| //================================================================================ |
| // Normal destructor |
| //================================================================================ |
| 61,20 → 59,11 |
| //================================================================================ |
| WEnergy * MooneyRivlinWEnergy::newObj() |
| { |
| WEnergy *new_WEnergy = new MooneyRivlinWEnergy (E, nu, c1, c2); |
| WEnergy *new_WEnergy = new MooneyRivlinWEnergy (c1, c2); |
| return new_WEnergy; |
| } |
| const double MooneyRivlinWEnergy::getE() |
| { |
| return E; |
| } |
| const double MooneyRivlinWEnergy::getnu() |
| { |
| return nu; |
| } |
| //================================================================================ |
| // w |
| //================================================================================ |
| 114,24 → 103,6 |
| return d2isowOverdlambda2; |
| } |
| //================================================================================ |
| // d(vol)w / dJ |
| //================================================================================ |
| //const double MooneyRivlinWEnergy::dvolwOdJ(const double &J_in) |
| //{ |
| // return 0.0; |
| //} |
| //================================================================================ |
| // d2(vol)w / dJ2 |
| //================================================================================ |
| //const double MooneyRivlinWEnergy::d2volwOdJ2(const double &J_in) |
| //{ |
| // if (nu != 0.5) |
| // return E/3.0/(1-2.0*nu); |
| // else |
| // return 1.0e20; |
| //} |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/Makefile |
|---|
| 1,6 → 1,8 |
| include ../../../../Makefile.def |
| OBJS = FiniteDeformationElastic3D.o \ |
| NeoHookeanCompressible3D.o \ |
| FDdecoupledElastic3D.o \ |
| TclFiniteDeformationElastic3DCommand.o \ |
| W.o \ |
| LogWEnergy.o \ |
| 8,31 → 10,37 |
| NeoHookeanWEnergy.o \ |
| OgdenWEnergy.o \ |
| SimoPisterWEnergy.o \ |
| OgdenSimoWEnergy.o \ |
| MooneyRivlinSimoWEnergy.o |
| OgdenSimoWEnergy.o \ |
| MooneyRivlinSimoWEnergy.o \ |
| FDEPState.o \ |
| FiniteDeformationEP3D.o \ |
| TclFiniteDeformationEP3DCommand.o |
| OBJS1 = FiniteDeformationElastic3D.o \ |
| OBJS1 = FiniteDeformationElastic3D.o \ |
| NeoHookeanCompressible3D.o \ |
| FDdecoupledElastic3D.o \ |
| TclFiniteDeformationElastic3DCommand.o \ |
| W.o \ |
| LogWEnergy.o \ |
| MooneyRivlinWEnergy.o \ |
| NeoHookeanWEnergy.o \ |
| OgdenWEnergy.o \ |
| SimoPisterWEnergy.o \ |
| OgdenSimoWEnergy.o \ |
| MooneyRivlinSimoWEnergy.o |
| OgdenSimoWEnergy.o \ |
| MooneyRivlinSimoWEnergy.o \ |
| FDEPState.o \ |
| FiniteDeformationEP3D.o \ |
| TclFiniteDeformationEP3DCommand.o |
| all: $(OBJS) |
| @$(CD) $(FE)/material/nD/FiniteDeformation/fdYield; $(MAKE); |
| @$(CD) $(FE)/material/nD/FiniteDeformation/fdFlow; $(MAKE); |
| @$(CD) $(FE)/material/nD/FiniteDeformation/fdEvolution; $(MAKE); |
| #all: $(OBJS) |
| # @$(RM) $(RMFLAGS) $(NDARRAY_LIBRARY); |
| # $(AR) $(ARFLAGS) $(NDARRAY_LIBRARY) $(NDARRAY) |
| fd_test: $(OBJS) fd_test.o |
| $(LINKER) $(LINKFLAGS) fd_test.o $(OBJS1) \ |
| $(FE_LIBRARY) $(MACHINE_LINKLIBS) \ |
| $(FE_LIBRARY) $(MACHINE_LINKLIBS) $(TCL_LIBRARY)\ |
| $(MACHINE_NUMERICAL_LIBS) $(MACHINE_SPECIFIC_LIBS) \ |
| -o fd_test |
| 42,8 → 50,11 |
| @$(RM) $(RMFLAGS) Makefile.bak *~ #*# core |
| clean: tidy |
| @$(RM) $(RMFLAGS) $(OBJS) *.o |
| @$(RM) $(RMFLAGS) $(OBJS) *.o *.bak |
| @$(CD) $(FE)/material/nD/FiniteDeformation/fdYield; $(MAKE) wipe; |
| @$(CD) $(FE)/material/nD/FiniteDeformation/fdFlow; $(MAKE) wipe; |
| @$(CD) $(FE)/material/nD/FiniteDeformation/fdEvolution; $(MAKE) wipe; |
| spotless: clean |
| wipe: spotless |
| /trunk/SRC/material/nD/FiniteDeformation/OgdenWEnergy.cpp |
|---|
| 20,7 → 20,7 |
| //# |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: |
| //# UPDATE HISTORY: 28May2004 |
| //# |
| //# |
| //=============================================================================== |
| 29,25 → 29,24 |
| #ifndef OgdenWEnergy_CPP |
| #define OgdenWEnergy_CPP |
| #include <math.h> |
| #include <OgdenWEnergy.h> |
| //================================================================================ |
| // Normal constructor |
| //================================================================================ |
| OgdenWEnergy::OgdenWEnergy(double E_in, double nu_in, int N_in, double *cr_in, double *mur_in ) |
| OgdenWEnergy::OgdenWEnergy(int N_in, double *cr_in, double *mur_in ) |
| { |
| E = E_in; |
| nu = nu_in; |
| N_Ogden = N_in; |
| cr_Ogden = cr_in; |
| mur_Ogden = mur_in; |
| } |
| //OgdenWEnergy::OgdenWEnergy( ) |
| //{ |
| // |
| //} |
| OgdenWEnergy::OgdenWEnergy( ) |
| { |
| N_Ogden = 0; |
| cr_Ogden = 0; |
| mur_Ogden = 0; |
| } |
| //================================================================================ |
| // Normal destructor |
| 62,20 → 61,11 |
| //================================================================================ |
| WEnergy * OgdenWEnergy::newObj( ) |
| { |
| WEnergy *new_WEnergy = new OgdenWEnergy( E, nu, N_Ogden, cr_Ogden, mur_Ogden); |
| WEnergy *new_WEnergy = new OgdenWEnergy( N_Ogden, cr_Ogden, mur_Ogden); |
| return new_WEnergy; |
| } |
| const double OgdenWEnergy::getE() |
| { |
| return E; |
| } |
| const double OgdenWEnergy::getnu() |
| { |
| return nu; |
| } |
| //================================================================================ |
| // w |
| //================================================================================ |
| 125,5 → 115,7 |
| return d2isowOverdlambda2; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdYield/fdYield.cpp |
|---|
| New file |
| 0,0 → 1,66 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdYield_CPP |
| #define fdYield_CPP |
| #include "fdYield.h" |
| fdYield::fdYield () |
| { |
| } |
| int fdYield::getNumRank( ) |
| { |
| return 0; |
| } |
| double fdYield::getTolerance( ) |
| { |
| return 1.0e-8; |
| } |
| double fdYield::dYodq(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| return 0.0; |
| } |
| stresstensor fdYield::dYoda(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| tensor tZ2(2, def_dim_2, 0.0); |
| return tZ2; |
| } |
| OPS_Stream& operator<<(OPS_Stream& os, const fdYield & fdyd) |
| { |
| os << "fdYield Parameters: " << "\n"; |
| return os; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdYield/fdYieldVM.cpp |
|---|
| New file |
| 0,0 → 1,141 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdYieldVM_CPP |
| #define fdYieldVM_CPP |
| #include "fdYieldVM.h" |
| //-------------------------------------------------------------------- |
| fdYieldVM::fdYieldVM(double Y0_in) :Y0(Y0_in) |
| { |
| } |
| //-------------------------------------------------------------------- |
| fdYield * fdYieldVM::newObj() |
| { |
| fdYield *newfdyd = new fdYieldVM(Y0); |
| return newfdyd; |
| } |
| int fdYieldVM::getNumRank() |
| { |
| //return 2; |
| return 1; |
| } |
| double fdYieldVM::getTolerance() |
| { |
| double tol = (Y0*(1.0e-8)) * (Y0*(1.0e-8)); |
| return tol > 1.0e-8? tol : 1.0e-8; |
| //return Y0*1.0e-8 > 1.0e-8? Y0*1.0e-8 : 1.0e-8; |
| } |
| //-------------------------------------------------------------------------------------- |
| // Yd = 3.0*(J2) - (Y0+q)*(Y0+q) = 0, Note here NumRank = 2: No Kinematic hardening |
| // Yd = |S_ij| - sqrt(2/3)*(Y0+q) = 0, Note here NumRank = 1: No Kinematic hardening |
| // Yd = 1.5 * (S_ij - a_ij)*(S_ij-a_ij) - (Y0+q)*(Y0+q) = 0, Note here NumRank = 2 |
| //-------------------------------------------------------------------------------------- |
| double fdYieldVM::Yd(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| //// NumRank=2, No Ki Hardeing |
| //double J2 = sts.Jinvariant2(); |
| //double q = fdepstate.getStressLikeInVar(); |
| //return 3.0*J2 - (Y0+q)*(Y0+q); |
| //// NumRank=1, No Ki Hardeing |
| //return sqrt(2.0*J2) - sqrt(2.0/3.0); |
| // NumRank=2, With Ki Hardeing |
| stresstensor a = fdepstate.getStressLikeKiVar(); |
| double q = fdepstate.getStressLikeInVar(); |
| stresstensor dev = sts.deviator() - a; |
| tensor st = dev("ij")*dev("ij"); |
| st.null_indices(); |
| double x = st.trace(); |
| return 1.5*x - (Y0+q)*(Y0+q); |
| } |
| //-------------------------------------------------------------------- |
| stresstensor fdYieldVM::dYods(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| //// NumRank=2, No Ki Hardeing |
| //return sts.deviator() * 3.0; |
| //// NumRank=1, No Ki Hardeing |
| //double J2 = sts.Jinvariant2(); |
| //return sts.deviator()/(sqrt(8.0*J2); |
| // NumRank=2, With Ki Hardeing |
| stresstensor a = fdepstate.getStressLikeKiVar(); |
| stresstensor dev = sts.deviator() - a; |
| return dev *3.0; |
| } |
| //-------------------------------------------------------------------- |
| double fdYieldVM::dYodq(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| //// NumRank=2, No Ki Hardeing |
| //double q = fdepstate.getStressLikeInVar(); |
| //return -2.0 * (Y0+q); |
| //// NumRank=1, No Ki Hardeing |
| //return sqrt(2.0/3.0); |
| // NumRank=2, With Ki Hardeing |
| double q = fdepstate.getStressLikeInVar(); |
| return -2.0 * (Y0+q); |
| } |
| //-------------------------------------------------------------------- |
| stresstensor fdYieldVM::dYoda(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| //// NumRank=2, No Ki Hardeing |
| //return sts.deviator() * 3.0; |
| //// NumRank=1, No Ki Hardeing |
| //double J2 = sts.Jinvariant2(); |
| //return sts.deviator()/(sqrt(8.0*J2); |
| // NumRank=2, With Ki Hardeing |
| stresstensor a = fdepstate.getStressLikeKiVar(); |
| stresstensor dev = sts.deviator() - a; |
| return dev *(-3.0); |
| } |
| //-------------------------------------------------------------------- |
| OPS_Stream& operator<<(OPS_Stream& os, const fdYieldVM &fdydVM) |
| { |
| os << "fdYieldVM Parameters: " << "\n"; |
| os << "Y0: " << fdydVM.Y0 << "\n"; |
| return os; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdYield/fdYieldDP.cpp |
|---|
| New file |
| 0,0 → 1,140 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdYieldDP_CPP |
| #define fdYieldDP_CPP |
| #include "fdYieldDP.h" |
| //-------------------------------------------------------------------- |
| fdYieldDP::fdYieldDP(double FricAngle_in, double Cohension_in, int ConeIndex_in) |
| : FricAngle(FricAngle_in), Cohension(Cohension_in), ConeIndex(ConeIndex_in) |
| { |
| double pipi = 3.14159265358979323846; |
| double Root3 = sqrt(3.0); |
| double Root1o3 = 1.0/Root3; |
| double archAngle = FricAngle*pipi/180.0; |
| switch (ConeIndex) { |
| case 0: { // Compressive (Outer) Cone |
| k1 = 2.0*Root1o3*sin(archAngle)/(3.0-sin(archAngle)); |
| k2 = 6.0*Root1o3*cos(archAngle)/(3.0-sin(archAngle)); |
| break; |
| } |
| case 1: { // Tensile (Inner) Cone |
| k1 = 2.0*Root1o3*sin(archAngle)/(3.0+sin(archAngle)); |
| k2 = 6.0*Root1o3*cos(archAngle)/(3.0+sin(archAngle)); |
| break; |
| } |
| case 2: { // Mean Cone |
| k1 = Root3*sin(archAngle)/(9.0-sin(archAngle)*sin(archAngle)); |
| k2 = 2.0*Root3*cos(archAngle)/(9.0-sin(archAngle)*sin(archAngle)); |
| break; |
| } |
| case 3: { // Inner-tangent Cone |
| k1 = tan(archAngle)/sqrt(9.0+12.0*tan(archAngle)*tan(archAngle)); |
| k2 = 3.0/sqrt(9.0+12.0*tan(archAngle)*tan(archAngle)); |
| break; |
| } |
| default: { // Compressive (Outer) Cone |
| k1 = 2.0*Root1o3*sin(archAngle)/(3.0-sin(archAngle)); |
| k2 = 6.0*Root1o3*cos(archAngle)/(3.0-sin(archAngle)); |
| } |
| } |
| } |
| //-------------------------------------------------------------------- |
| fdYield * fdYieldDP::newObj() |
| { |
| fdYield *newfdyd = new fdYieldDP(FricAngle, Cohension, ConeIndex); |
| return newfdyd; |
| } |
| int fdYieldDP::getNumRank() |
| { |
| return 1; |
| } |
| double fdYieldDP::getTolerance() |
| { |
| return 1.0e-8*Cohension > 1.0e-8? 1.0e-8*Cohension : 1.0e-8; |
| } |
| //-------------------------------------------------------------------------------------------- |
| // Yd = k1*I1 + sqrt(0.5*Sij*Sji) - k2*(c+q) = 0, |
| // Note here NumRank = 1: No Kinematic hardening |
| //-------------------------------------------------------------------------------------------- |
| double fdYieldDP::Yd(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| // NumRank=1, No Ki Hardeing |
| double q = fdepstate.getStressLikeInVar(); |
| stresstensor dev = sts.deviator(); |
| double I1 = sts.Iinvariant1(); |
| tensor st = dev("ij")*dev("ij"); |
| st.null_indices(); |
| double x = st.trace(); |
| return k1*I1 + sqrt(0.5*x) - k2*(Cohension+q); |
| } |
| //-------------------------------------------------------------------- |
| stresstensor fdYieldDP::dYods(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| // NumRank=1, No Ki Hardeing |
| tensor tI2("I", 2, def_dim_2); |
| stresstensor dev = sts.deviator(); |
| tensor st = dev("ij")*dev("ij"); |
| st.null_indices(); |
| double x = st.trace(); |
| return tI2*k1 + dev*(1.0/sqrt(2.0*x)); |
| } |
| //-------------------------------------------------------------------- |
| double fdYieldDP::dYodq(const stresstensor &sts, const FDEPState &fdepstate ) const |
| { |
| // NumRank=1, No Ki Hardeing |
| return -k2; |
| } |
| //-------------------------------------------------------------------- |
| OPS_Stream& operator<<(OPS_Stream& os, const fdYieldDP &fdydDP) |
| { |
| os << "fdYieldDP Parameters: " << "\n"; |
| os << "FricAngle: " << fdydDP.FricAngle << "\n"; |
| os << "Cohesion: " << fdydDP.Cohension << "\n"; |
| os << "ConeIndex: " << fdydDP.ConeIndex << "\n"; |
| return os; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdYield/fdYield.h |
|---|
| New file |
| 0,0 → 1,58 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdYield_H |
| #define fdYield_H |
| #include <stresst.h> |
| #include <straint.h> |
| #include <FDEPState.h> |
| class fdYield |
| { |
| public: |
| fdYield(); |
| virtual ~fdYield() {}; |
| virtual fdYield *newObj() = 0; |
| virtual int getNumRank(); |
| virtual double getTolerance(); |
| virtual double Yd(const stresstensor &sts, const FDEPState &fdepstate ) const = 0; |
| virtual stresstensor dYods(const stresstensor &sts, const FDEPState &fdepstate ) const = 0; |
| virtual double dYodq(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| virtual stresstensor dYoda(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| virtual void print() = 0; |
| friend OPS_Stream& operator<< (OPS_Stream& os, const fdYield & fdyd); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdYield/fdYieldVM.h |
|---|
| New file |
| 0,0 → 1,57 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdYieldVM_H |
| #define fdYieldVM_H |
| #include "fdYield.h" |
| class fdYieldVM : public fdYield |
| { |
| private: |
| double Y0; |
| public: |
| fdYieldVM(double Y0_in); |
| // virtual ~fdYieldVM() {}; |
| fdYield *newObj(); |
| int getNumRank(); |
| double getTolerance(); |
| double Yd(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| stresstensor dYods(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| double dYodq(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| stresstensor dYoda(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| void print() { opserr << *this; }; |
| friend OPS_Stream& operator<< (OPS_Stream& os, const fdYieldVM & fdydVM); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdYield/fdYieldDP.h |
|---|
| New file |
| 0,0 → 1,60 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdYieldDP_H |
| #define fdYieldDP_H |
| #include "fdYield.h" |
| class fdYieldDP : public fdYield |
| { |
| private: |
| double FricAngle; |
| double Cohension; |
| int ConeIndex; |
| double k1; |
| double k2; |
| public: |
| fdYieldDP(double FricAngle_in, double Cohension_in, int ConeIndex_in); |
| // virtual ~fdYieldDP() {}; |
| fdYield *newObj(); |
| int getNumRank(); |
| double getTolerance(); |
| double Yd(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| stresstensor dYods(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| double dYodq(const stresstensor &sts, const FDEPState &fdepstate ) const; |
| void print() { opserr << *this; }; |
| friend OPS_Stream& operator<< (OPS_Stream& os, const fdYieldDP & fdydDP); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdYield/Makefile |
|---|
| New file |
| 0,0 → 1,23 |
| include ../../../../../Makefile.def |
| OBJS = fdYield.o \ |
| fdYieldVM.o \ |
| fdYiledDP.o \ |
| fdYieldDP.o |
| all: $(OBJS) |
| # Miscellaneous |
| tidy: |
| @$(RM) $(RMFLAGS) Makefile.bak *~ #*# core |
| clean: tidy |
| @$(RM) $(RMFLAGS) $(OBJS) *.o |
| spotless: clean |
| wipe: spotless |
| # DO NOT DELETE THIS LINE -- make depend depends on it. |
| /trunk/SRC/material/nD/FiniteDeformation/FiniteDeformationElastic3D.cpp |
|---|
| 21,671 → 21,224 |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: Sept 2003 |
| //# May28, 2004 |
| //# |
| //# |
| //=============================================================================== |
| #include <math.h> |
| #include <Matrix.h> |
| #include <Vector.h> |
| #include <Tensor.h> |
| #include <BJtensor.h> |
| #include <BJvector.h> |
| #include <ID.h> |
| #include <Channel.h> |
| #include <OPS_Globals.h> |
| #include <W.h> |
| #include <FiniteDeformationElastic3D.h> |
| //----------------------------------------------------------------------------------------------------------------------------------------------- |
| FiniteDeformationElastic3D::FiniteDeformationElastic3D(int tag, |
| int classTag, |
| WEnergy *wEnergy_in, |
| double rho_in= 0.0) |
| :NDMaterial(tag, classTag), rho(rho_in) |
| { |
| if ( wEnergy_in ) |
| { |
| W = wEnergy_in->newObj(); |
| E = W->getE(); |
| nu = W->getnu(); |
| Tensor F0("I", 2, def_dim_2); |
| F = F0; |
| } |
| else |
| { |
| opserr << "FiniteDeformationElastic3D:: FiniteDeformationElastic3D failed to construct the W Energy\n"; |
| exit(-1); |
| } |
| } |
| FiniteDeformationElastic3D::FiniteDeformationElastic3D(int tag, |
| WEnergy *wEnergy_in, |
| double rho_in = 0.0) |
| :NDMaterial(tag, ND_TAG_FiniteDeformationElastic3D), rho(rho_in) |
| { |
| if ( wEnergy_in) |
| { |
| W = wEnergy_in->newObj(); |
| E = W->getE(); |
| nu = W->getnu(); |
| Tensor F0("I", 2, def_dim_2); |
| F = F0; |
| } |
| else |
| { |
| opserr << "FiniteDeformationElastic3D:: FiniteDeformationElastic3D failed to construct the W Energy\n"; |
| exit(-1); |
| } |
| } |
| FiniteDeformationElastic3D::FiniteDeformationElastic3D(int tag, |
| WEnergy *wEnergy_in) |
| :NDMaterial(tag, ND_TAG_FiniteDeformationElastic3D), rho(0.0) |
| { |
| if ( wEnergy_in ) |
| { |
| W = wEnergy_in->newObj(); |
| E = W->getE(); |
| nu = W->getnu(); |
| Tensor F0("I", 2, def_dim_2); |
| F = F0; |
| } |
| else |
| { |
| opserr << "FiniteDeformationElastic3D:: FiniteDeformationElastic3D failed to construct the W Energy\n"; |
| exit(-1); |
| } |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------ |
| FiniteDeformationElastic3D::FiniteDeformationElastic3D( ) |
| :NDMaterial(0, 0), rho(0.0) |
| { |
| W = 0; |
| E = 0.0; |
| nu = 0.0; |
| Tensor F0("I", 2, def_dim_2); |
| F = F0; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------ |
| FiniteDeformationElastic3D::~FiniteDeformationElastic3D() |
| { |
| if (W) |
| delete W; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------- |
| double FiniteDeformationElastic3D::getE(void) |
| { |
| return E; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------ |
| double FiniteDeformationElastic3D::getnu(void) |
| { |
| return nu; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------- |
| double FiniteDeformationElastic3D::getRho(void) |
| { |
| return rho; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------- |
| WEnergy *FiniteDeformationElastic3D::getWEnergy(void) |
| int FiniteDeformationElastic3D::setTrialF(const straintensor &f) |
| { |
| return W; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::setTrialF(const Tensor &f) |
| { |
| F = f; |
| int ret = 0; |
| ret = this->ComputeTrials(); |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::setTrialF(const Tensor &f, const Tensor &d) |
| int FiniteDeformationElastic3D::setTrialFIncr(const straintensor &df) |
| { |
| F = f; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::setTrialFIncr(const Tensor &f) |
| int FiniteDeformationElastic3D::setTrialC(const straintensor &c) |
| { |
| F += f; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::setTrialFIncr(const Tensor &f, const Tensor &d) |
| int FiniteDeformationElastic3D::setTrialCIncr(const straintensor &dc) |
| { |
| F += f; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Tensor FiniteDeformationElastic3D::getF(void) |
| const straintensor FiniteDeformationElastic3D::getF(void) |
| { |
| return F; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Tensor FiniteDeformationElastic3D::getC(void) |
| const straintensor FiniteDeformationElastic3D::getC(void) |
| { |
| return C; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------ |
| const double FiniteDeformationElastic3D::getJ(void) |
| { |
| return J; |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Vector FiniteDeformationElastic3D::getlambda(void) |
| { |
| Vector lambda(3); |
| lambda(0) = lambda1; |
| lambda(1) = lambda2; |
| lambda(2) = lambda3; |
| return lambda; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Vector FiniteDeformationElastic3D::getlambda_wave(void) |
| { |
| Vector lambda_wave(3); |
| lambda_wave(0) = lambda_wave1; |
| lambda_wave(1) = lambda_wave2; |
| lambda_wave(2) = lambda_wave3; |
| return lambda_wave; |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Vector FiniteDeformationElastic3D::wa(void) |
| { |
| Vector Wa(3); |
| Vector lambda_wave(3); |
| lambda_wave = this->getlambda_wave(); |
| Vector disowOverlambda = W->disowOdlambda(lambda_wave); |
| double temp = disowOverlambda(0) * lambda_wave(0) + |
| disowOverlambda(1) * lambda_wave(1) + |
| disowOverlambda(2) * lambda_wave(2) ; |
| temp = temp * (-0.3333333333333333333333333333); |
| Wa(0) = temp + disowOverlambda(0) * lambda_wave(0); |
| Wa(1) = temp + disowOverlambda(1) * lambda_wave(1); |
| Wa(2) = temp + disowOverlambda(2) * lambda_wave(2); |
| return Wa; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| const Tensor FiniteDeformationElastic3D::Yab(void) |
| { |
| Tensor Y(2, def_dim_2, 0.0); |
| Tensor I_ij("I", 2, def_dim_2); |
| Vector lambda_wave(3); |
| lambda_wave = this->getlambda_wave(); |
| Tensor d2 = W->d2isowOdlambda1dlambda2(lambda_wave); |
| Vector d1 = W->disowOdlambda(lambda_wave); |
| Vector d11 = W->d2isowOdlambda2(lambda_wave); |
| d2.val(1,1) = d11(0); |
| d2.val(2,2) = d11(1); |
| d2.val(3,3) = d11(2); |
| Vector tempi(3); |
| double tempd = d1(0)*lambda_wave(0) + d1(1)*lambda_wave(1) + d1(2)*lambda_wave(2) ; |
| double tempcd = 0.0; |
| for (int i=0; i<3; i++) |
| { |
| tempi(i) = 0.0; |
| for (int j=0; j<3; j++) |
| { |
| tempi(i) += d2.cval(i+1,j+1) * lambda_wave(i) * lambda_wave(j); |
| tempcd += d2.cval(i+1,j+1) * lambda_wave(i) * lambda_wave(j); |
| } |
| } |
| for(int a=1; a<=3; a++) |
| { |
| for(int b=1; b<=3; b++) |
| { |
| Y.val(a,b) = d1(a-1)*I_ij.cval(a,b)*lambda_wave(b-1) + d2.cval(a,b)*lambda_wave(a-1)*lambda_wave(b-1) - |
| ( tempi(a-1) + tempi(b-1) + d1(a-1)*lambda_wave(a-1) + d1(b-1)*lambda_wave(b-1) ) / 3.0 + |
| ( tempcd + tempd ) / 9.0; |
| } |
| } |
| return Y; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Tensor FiniteDeformationElastic3D::FDisoStiffness(void) |
| { |
| Tensor I_ij("I", 2, def_dim_2); |
| Tensor I_ijkl( 4, def_dim_4, 0.0 ); |
| I_ijkl = I_ij("ij") * I_ij("kl"); |
| I_ij.null_indices(); |
| Tensor I_ikjl( 4, def_dim_4, 0.0 ); |
| I_ikjl = I_ijkl.transpose0110(); |
| Tensor I_iljk( 4, def_dim_4, 0.0 ); |
| I_iljk = I_ijkl.transpose0111(); |
| Tensor I4s = (I_ikjl+I_iljk)*0.5; |
| Tensor tempI = I4s - I_ijkl; |
| Tensor CinvCinv = Cinv("ij") * Cinv("kl"); |
| CinvCinv.null_indices(); Cinv.null_indices(); |
| Tensor ICinv = ( CinvCinv.transpose0110() + CinvCinv.transpose0111() ) * (0.5); |
| Tensor CinvCinv_ICinv = CinvCinv - ICinv; |
| double I1 = lambda1*lambda1 + lambda2*lambda2 + lambda3*lambda3; |
| Vector Wa = this->wa(); |
| Tensor yab = this->Yab(); |
| Tensor L_iso(2,def_dim_2,0.0); |
| if(caseIndex == 0) |
| { |
| double d1 = (lambda1+lambda2)*(lambda1+lambda3)*(lambda1-lambda2)*(lambda1-lambda3); |
| double d2 = (lambda2+lambda3)*(lambda2+lambda1)*(lambda2-lambda3)*(lambda2-lambda1); |
| double d3 = (lambda3+lambda1)*(lambda3+lambda2)*(lambda3-lambda1)*(lambda3-lambda2); |
| Tensor M1 = ( C - I_ij*(I1-lambda1*lambda1) + Cinv*(J*J/(lambda1*lambda1)) ) * (1.0/d1); |
| Tensor M2 = ( C - I_ij*(I1-lambda2*lambda2) + Cinv*(J*J/(lambda2*lambda2)) ) * (1.0/d2); |
| Tensor M3 = ( C - I_ij*(I1-lambda3*lambda3) + Cinv*(J*J/(lambda3*lambda3)) ) * (1.0/d3); |
| double d1p = 4.0 *lambda1*lambda1*lambda1*lambda1 - I1*lambda1*lambda1 - J*J /(lambda1*lambda1); |
| double d2p = 4.0 *lambda2*lambda2*lambda2*lambda2 - I1*lambda2*lambda2 - J*J /(lambda2*lambda2); |
| double d3p = 4.0 *lambda3*lambda3*lambda3*lambda3 - I1*lambda3*lambda3 - J*J /(lambda3*lambda3); |
| Tensor Cm1M1M1Cm1 = Cinv("ij")*M1("kl") + M1("ij")*Cinv("kl"); |
| Cinv.null_indices(); M1.null_indices(); Cm1M1M1Cm1.null_indices(); |
| Tensor Cm1M2M2Cm1 = Cinv("ij")*M2("kl") + M2("ij")*Cinv("kl"); |
| Cinv.null_indices(); M2.null_indices(); Cm1M2M2Cm1.null_indices(); |
| Tensor Cm1M3M3Cm1 = Cinv("ij")*M3("kl") + M3("ij")*Cinv("kl"); |
| Cinv.null_indices(); M3.null_indices(); Cm1M3M3Cm1.null_indices(); |
| Tensor dM1M1d = I_ij("ij")*M1("kl") + M1("ij")*I_ij("kl"); |
| I_ij.null_indices(); M1.null_indices(); dM1M1d.null_indices(); |
| Tensor dM2M2d = I_ij("ij")*M2("kl") + M2("ij")*I_ij("kl"); |
| I_ij.null_indices(); M2.null_indices(); dM2M2d.null_indices(); |
| Tensor dM3M3d = I_ij("ij")*M3("kl") + M3("ij")*I_ij("kl"); |
| I_ij.null_indices(); M3.null_indices(); dM3M3d.null_indices(); |
| Tensor M1M1 = M1("ij") * M1("kl"); |
| M1.null_indices(); M1M1.null_indices(); |
| Tensor M2M2 = M2("ij") * M2("kl"); |
| M2.null_indices(); M2M2.null_indices(); |
| Tensor M3M3 = M3("ij") * M3("kl"); |
| M3.null_indices(); M3M3.null_indices(); |
| Tensor calM1 = ( tempI + (CinvCinv_ICinv -Cm1M1M1Cm1)*(J*J/(lambda1*lambda1)) + dM1M1d*(lambda1*lambda1) - M1M1*d1p ) *(1.0/d1); |
| Tensor calM2 = ( tempI + (CinvCinv_ICinv -Cm1M2M2Cm1)*(J*J/(lambda2*lambda2)) + dM2M2d*(lambda2*lambda2) - M2M2*d2p ) *(1.0/d2); |
| Tensor calM3 = ( tempI + (CinvCinv_ICinv -Cm1M3M3Cm1)*(J*J/(lambda3*lambda3)) + dM3M3d*(lambda3*lambda3) - M3M3*d3p ) *(1.0/d3); |
| Tensor L_iso_1 = ( calM1*Wa(0) + calM2*Wa(1) + calM3*Wa(2) ) * 2.0; |
| Tensor L_iso_2 = M1("ij") * M1("kl") * yab.cval(1,1) + M1("ij") * M2("kl") * yab.cval(1,2) + M1("ij") * M3("kl") * yab.cval(1,3) + |
| M2("ij") * M1("kl") * yab.cval(2,1) + M2("ij") * M2("kl") * yab.cval(2,2) + M2("ij") * M3("kl") * yab.cval(2,3) + |
| M3("ij") * M1("kl") * yab.cval(3,1) + M3("ij") * M2("kl") * yab.cval(3,2) + M3("ij") * M3("kl") * yab.cval(3,3); |
| L_iso = L_iso_1 + L_iso_2 ; |
| } |
| if(caseIndex == 11) |
| { |
| double d1 = (lambda1+lambda2)*(lambda1+lambda3)*(lambda1-lambda2)*(lambda1-lambda3); |
| Tensor M1 = (I_ij - Cinv * (lambda2*lambda2)) * (1.0/(lambda1+lambda2)/(lambda1-lambda2)); |
| Tensor Mr = Cinv - M1; |
| double d1p = 4.0 *lambda1*lambda1*lambda1*lambda1 - I1*lambda1*lambda1 - J*J /(lambda1*lambda1); |
| Tensor Cm1M1M1Cm1 = Cinv("ij")*M1("kl") + M1("ij")*Cinv("kl"); |
| Cinv.null_indices(); M1.null_indices(); Cm1M1M1Cm1.null_indices(); |
| Tensor dM1M1d = I_ij("ij")*M1("kl") + M1("ij")*I_ij("kl"); |
| I_ij.null_indices(); M1.null_indices(); dM1M1d.null_indices(); |
| Tensor M1M1 = M1("ij") * M1("kl"); |
| M1.null_indices(); M1M1.null_indices(); |
| Tensor calM1 = ( tempI + (CinvCinv_ICinv -Cm1M1M1Cm1)*(J*J/(lambda1*lambda1)) + dM1M1d*(lambda1*lambda1) - M1M1*d1p ) *(1.0/d1); |
| Tensor calMr = (ICinv + calM1) * (-1.0); |
| Tensor L_iso_1 = ( calM1*Wa(0) + calMr*Wa(2) ) * 2.0; |
| Tensor L_iso_2 = M1("ij") * M1("kl") * yab.cval(1,1) + M1("ij") * Mr("kl") * yab.cval(1,3) + |
| Mr("ij") * M1("kl") * yab.cval(3,1) + Mr("ij") * Mr("kl") * yab.cval(3,3); |
| L_iso = L_iso_1 + L_iso_2 ; |
| } |
| if(caseIndex == 13) |
| { |
| double d3 = (lambda3+lambda1)*(lambda3+lambda2)*(lambda3-lambda1)*(lambda3-lambda2); |
| Tensor M3 = (I_ij - Cinv * (lambda2*lambda2)) * (1.0/(lambda3+lambda2)/(lambda3-lambda2)); |
| Tensor Mr = Cinv - M3; |
| double d3p = 4.0 *lambda3*lambda3*lambda3*lambda3 - I1*lambda3*lambda3 - J*J /(lambda3*lambda3); |
| Tensor Cm1M3M3Cm1 = Cinv("ij")*M3("kl") + M3("ij")*Cinv("kl"); |
| Cinv.null_indices(); M3.null_indices(); Cm1M3M3Cm1.null_indices(); |
| Tensor dM3M3d = I_ij("ij")*M3("kl") + M3("ij")*I_ij("kl"); |
| I_ij.null_indices(); M3.null_indices(); dM3M3d.null_indices(); |
| Tensor M3M3 = M3("ij") * M3("kl"); |
| M3.null_indices(); M3M3.null_indices(); |
| Tensor calM3 = ( tempI + (CinvCinv_ICinv -Cm1M3M3Cm1)*(J*J/(lambda3*lambda3)) + dM3M3d*(lambda3*lambda3) - M3M3*d3p ) *(1.0/d3); |
| Tensor calMr = (ICinv + calM3) * (-1.0); |
| Tensor L_iso_1 = ( calM3*Wa(2) + calMr*Wa(0) ) * 2.0; |
| Tensor L_iso_2 = M3("ij") * M3("kl") * yab.cval(3,3) + M3("ij") * Mr("kl") * yab.cval(3,1) + |
| Mr("ij") * M3("kl") * yab.cval(1,3) + Mr("ij") * Mr("kl") * yab.cval(1,1); |
| L_iso = L_iso_1 + L_iso_2 ; |
| } |
| if(caseIndex == 2) |
| { |
| Vector lambda_wave(3); |
| lambda_wave = this->getlambda_wave(); |
| Vector d11 = W->d2isowOdlambda2(lambda_wave); |
| Vector d1 = W->disowOdlambda(lambda_wave); |
| double G2linear = d11(1)*lambda_wave2*lambda_wave2 + d1(1)*lambda_wave2; |
| if (G2linear == 0.0) G2linear = E / (1.0+nu); |
| L_iso = ( ICinv - CinvCinv * (1.0/3.0) ) * G2linear; |
| } |
| return L_iso; |
| } |
| //----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Tensor FiniteDeformationElastic3D::FDvolStiffness(void) |
| { |
| Tensor CinvCinv = Cinv("ij")*Cinv("kl") ; |
| Cinv.null_indices(); CinvCinv.null_indices(); |
| Tensor ICinv = ( CinvCinv.transpose0110() + CinvCinv.transpose0111() ) * (0.5); |
| double dWdJ = W->dvolwOdJ(J); |
| double d2WdJ2 = W->d2volwOdJ2(J); |
| double wj = d2WdJ2*J*J + J*dWdJ; |
| Tensor L_vol = CinvCinv*wj - ICinv *2.0*J*dWdJ ; |
| return L_vol; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| const Tensor& FiniteDeformationElastic3D::getTangentTensor(void) |
| { |
| return Stiffness; |
| exit (-1); |
| // Just to make it compile |
| Tensor *ret = new Tensor; |
| return *ret; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const Tensor |
| &FiniteDeformationElastic3D::getInitialTangentTensor(void) |
| { |
| tensor I2("I", 2, def_dim_2); |
| tensor I_ijkl = I2("ij")*I2("kl"); |
| tensor I_ikjl = I_ijkl.transpose0110(); |
| tensor I_iljk = I_ijkl.transpose0111(); |
| tensor I4s = (I_ikjl+I_iljk)*0.5; |
| static tensor L0; |
| L0 = I_ijkl*( E*nu / ( (1.0+nu)*(1.0 - 2.0*nu) ) ) + I4s*( E / (1.0 + nu) ); |
| return L0; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| // Just to make it compile |
| Tensor *ret = new Tensor; |
| return *ret; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const straintensor FiniteDeformationElastic3D::getStrainTensor(void) |
| { |
| return thisGreenStrain; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| // Just to make it compile |
| straintensor ret; |
| return ret; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const stresstensor FiniteDeformationElastic3D::getStressTensor(void) |
| { |
| return thisPK2Stress; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| stresstensor ret; |
| return ret; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const stresstensor FiniteDeformationElastic3D::getPK1StressTensor(void) |
| { |
| stresstensor thisSPKStress = this->getStressTensor(); |
| stresstensor thisFPKStress = thisSPKStress("ij") * (F.transpose11())("jk") ; |
| return thisFPKStress; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| stresstensor ret; |
| return ret; |
| } |
| //------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const stresstensor FiniteDeformationElastic3D::getCauchyStressTensor(void) |
| { |
| stresstensor thisSPKStress = this->getStressTensor(); |
| stresstensor thisCauchyStress = F("ij") * thisSPKStress("jk") * (F.transpose11())("kl") * (1.0/J); |
| return thisCauchyStress; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| stresstensor ret; |
| return ret; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::commitState (void) |
| { |
| return 0; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return -1; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::revertToLastCommit (void) |
| { |
| return 0; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return -1; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::revertToStart (void) |
| { |
| Tensor F0("I", 2, def_dim_2); |
| F = F0; |
| C = F0; |
| Cinv = F0; |
| Tensor ss_zero(2,def_dim_2,0.0); |
| thisPK2Stress = ss_zero; |
| thisGreenStrain = ss_zero; |
| Stiffness = getInitialTangentTensor(); |
| J = 1.0; |
| lambda1 = 1.0; |
| lambda2 = 1.0; |
| lambda3 = 1.0; |
| lambda_wave1 = 1.0; |
| lambda_wave2 = 1.0; |
| lambda_wave3 = 1.0; |
| caseIndex = 0; |
| return 0; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return -1; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| NDMaterial * FiniteDeformationElastic3D::getCopy (void) |
| { |
| FiniteDeformationElastic3D *theCopy = |
| new FiniteDeformationElastic3D (this->getTag(), this->getWEnergy(), this->getRho()); |
| theCopy->F = F; |
| theCopy->C = C; |
| theCopy->Cinv = Cinv; |
| theCopy->J = J; |
| theCopy->lambda1 = lambda1; |
| theCopy->lambda2 = lambda2; |
| theCopy->lambda3 = lambda3; |
| theCopy->lambda_wave1 = lambda_wave1; |
| theCopy->lambda_wave2 = lambda_wave2; |
| theCopy->lambda_wave3 = lambda_wave3; |
| theCopy->Stiffness = Stiffness; |
| theCopy->thisGreenStrain = thisGreenStrain; |
| theCopy->thisPK2Stress = thisPK2Stress; |
| return theCopy; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| NDMaterial * FiniteDeformationElastic3D::getCopy (const char *type) |
| { |
| opserr << "FiniteDeformationElastic3D::getCopy(const char *) - not yet implemented\n"; |
| return 0; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| const char* FiniteDeformationElastic3D::getType (void) const |
| { |
| return "FiniteDeformationElastic3D"; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::getOrder (void) const |
| { |
| return 6; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::sendSelf (int commitTag, Channel &theChannel) |
| { |
| int res = 0; |
| static Vector data(4); |
| data(0) = this->getTag(); |
| data(1) = rho; |
| data(2) = E; |
| data(3) = nu; |
| res += theChannel.sendVector(this->getDbTag(), commitTag, data); |
| if (res < 0) |
| { |
| opserr << "FiniteDeformationElastic3D::sendSelf -- could not send Vector\n"; |
| return res; |
| } |
| return res; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::recvSelf (int commitTag, |
| Channel &theChannel, |
| FEM_ObjectBroker &theBroker) |
| { |
| int res = 0; |
| static Vector data(4); |
| res += theChannel.recvVector(this->getDbTag(), commitTag, data); |
| if (res < 0) |
| { |
| opserr << "FiniteDeformationElastic3D::recvSelf -- could not recv Vector\n"; |
| return res; |
| } |
| this->setTag((int)data(0)); |
| rho = data(1); |
| E = data(2); |
| nu = data(3); |
| return res; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return 0; |
| } |
| //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| void FiniteDeformationElastic3D::Print (OPS_Stream &s, int flag) |
| { |
| s << "Finite Deformation Elastic 3D model" << endln; |
| s << "\trho: " << rho << endln; |
| s << "\tE: " << E << endln; |
| s << "\tnu: " << nu << endln; |
| opserr << "FiniteDeformationElastic3D-- subclass responsibility\n"; |
| exit (-1); |
| return; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::setParameter(char **argv, int argc, Information &info) |
| { |
| return -1; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::updateParameter(int parameterID, Information &info) |
| { |
| return -1; |
| return -1; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::ComputeTrials() |
| { |
| // C: |
| C = (F.transpose11())("ij")*F("jk"); |
| F.null_indices(); (F.transpose11()).null_indices(); C.null_indices(); |
| C.symmetrize11(); |
| // Cinv: |
| Cinv = C.inverse( ); |
| Cinv.symmetrize11(); |
| // J: |
| J = F.determinant( ); |
| // lambda: |
| tensor eigtensor = C.eigenvalues(); |
| lambda1 = sqrt(eigtensor.cval(1)); |
| lambda2 = sqrt(eigtensor.cval(2)); |
| lambda3 = sqrt(eigtensor.cval(3)); |
| // lambda_wave |
| double JJJ = pow(J, -0.33333333333333333333333333333); |
| lambda_wave1 = lambda1 *JJJ; |
| lambda_wave2 = lambda2 *JJJ; |
| lambda_wave3 = lambda3 *JJJ; |
| // caseIndex, note lambda1 >= lambda2 >= lambda3 implied by C.eigenvalues() |
| double diff12 = fabs(lambda1-lambda2); |
| double diff23 = fabs(lambda2-lambda3); |
| double perturbation = pow( d_macheps(), (0.4) ); |
| if ( diff12 >= perturbation && diff23 >= perturbation ) |
| caseIndex = 0; |
| else if (diff12 >= perturbation && diff23 < perturbation ) |
| caseIndex = 11; |
| else if (diff12 < perturbation && diff23 >= perturbation ) |
| caseIndex = 13; |
| else if (diff12 < perturbation && diff23 < perturbation ) |
| caseIndex = 2; |
| else {opserr << "FiniteDeformationElastic3D::getCaseIndex -- unknown case! \n"; |
| exit (-1);} |
| Tensor I_ij("I", 2, def_dim_2); |
| Tensor isoPK2Stress(2, def_dim_2, 0.0); |
| Vector Wa = this->wa(); |
| double I1 = lambda1*lambda1+lambda2*lambda2+lambda3*lambda3; |
| if (caseIndex == 0) |
| { |
| double d1 = (lambda1+lambda2)*(lambda1+lambda3)*(lambda1-lambda2)*(lambda1-lambda3); |
| double d2 = (lambda2+lambda3)*(lambda2+lambda1)*(lambda2-lambda3)*(lambda2-lambda1); |
| double d3 = (lambda3+lambda1)*(lambda3+lambda2)*(lambda3-lambda1)*(lambda3-lambda2); |
| Tensor M1 = ( C - I_ij*(I1-lambda1*lambda1) + Cinv *(J*J/(lambda1*lambda1)) ) * (1.0/d1); |
| Tensor M2 = ( C - I_ij*(I1-lambda2*lambda2) + Cinv *(J*J/(lambda2*lambda2)) ) * (1.0/d2); |
| Tensor M3 = ( C - I_ij*(I1-lambda3*lambda3) + Cinv *(J*J/(lambda3*lambda3)) ) * (1.0/d3); |
| isoPK2Stress = M1*Wa(0) + M2*Wa(1) + M3*Wa(2); |
| } |
| if (caseIndex == 11) |
| { |
| Tensor M1 = (I_ij - Cinv * (lambda2*lambda2)) * (1.0/(lambda1+lambda2)/(lambda1-lambda2)); |
| Tensor Mr = Cinv - M1; |
| isoPK2Stress = Mr*Wa(2) + M1*Wa(0); |
| } |
| if (caseIndex == 13) |
| { |
| Tensor M3 = (I_ij - Cinv * (lambda2*lambda2)) * (1.0/(lambda3+lambda2)/(lambda3-lambda2)); |
| Tensor Mr = Cinv - M3; |
| isoPK2Stress = Mr*Wa(0) + M3*Wa(2); |
| } |
| if (caseIndex == 2) |
| { |
| } |
| double dWdJ = W->dvolwOdJ(J); |
| Tensor volPK2Stress = Cinv * J * dWdJ; |
| thisPK2Stress = volPK2Stress + isoPK2Stress; // This is PK2Stress |
| thisGreenStrain = (C - I_ij) * 0.5; // This is Green Strain |
| Tensor L_iso = this->FDisoStiffness(); |
| Tensor L_vol = this->FDvolStiffness(); |
| Stiffness = L_iso + L_vol; // This is Langrangian Tangent Stiffness |
| return 0; |
| } |
| //-------------------------------------------------------------------------------------------------------------------------------------- |
| int FiniteDeformationElastic3D::getCaseIndex() |
| { |
| return caseIndex; |
| } |
| /trunk/SRC/material/nD/FiniteDeformation/SimoPisterWEnergy.h |
|---|
| 20,7 → 20,7 |
| //# |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: |
| //# UPDATE HISTORY: 28May2004 |
| //# |
| //# |
| //=============================================================================== |
| 30,27 → 30,22 |
| #include <Vector.h> |
| #include <Tensor.h> |
| //#include <BJvector.h> |
| //#include <BJtensor.h> |
| #include <Channel.h> |
| #include <OPS_Globals.h> |
| #include <W.h> |
| class SimoPisterWEnergy : public WEnergy |
| { |
| private: |
| double E; |
| double nu; |
| double G; |
| double K; |
| public: |
| SimoPisterWEnergy( double , double ); |
| // SimoPisterWEnergy( ); |
| SimoPisterWEnergy( double ); |
| SimoPisterWEnergy( ); |
| ~SimoPisterWEnergy( ) ; |
| WEnergy *newObj( ); |
| const double getE(); |
| const double getnu(); |
| const double wE(const double &, const Vector & ) ; |
| // const Vector disowOdlambda(const Vector &lambda_wave_in ) ; |
| // const Vector const d2isowOdlambda2(const Vector &lambda_wave_in ) ; |
| 58,8 → 53,6 |
| const double dvolwOdJ( const double &J_in) ; |
| const double d2volwOdJ2( const double &J_in) ; |
| // friend OPS_Stream& operator<< (OPS_Stream& os, const LogWEnergy &W); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/TclFiniteDeformationElastic3DCommand.cpp |
|---|
| 21,23 → 21,20 |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: Sept 2003 |
| //# 28May2004 |
| //# |
| //# |
| //=============================================================================== |
| #include <tcl.h> |
| #include <OPS_Globals.h> |
| //#include <stdlib.h> |
| //#include <string.h> |
| #include <Vector.h> |
| #include <Domain.h> |
| #include <ErrorHandler.h> |
| #include <TclModelBuilder.h> |
| #include <FiniteDeformationElastic3D.h> |
| #include <NeoHookeanCompressible3D.h> |
| #include <FDdecoupledElastic3D.h> |
| #include <W.h> |
| #include <LogWEnergy.h> |
| #include <MooneyRivlinWEnergy.h> |
| 47,327 → 44,369 |
| #include <OgdenSimoWEnergy.h> |
| #include <MooneyRivlinSimoWEnergy.h> |
| //static void cleanup(TCL_Char **argv) |
| //{ |
| // Tcl_Free((char *) argv); |
| //} |
| // the functions to create the component objects (defined at eof) |
| WEnergy *EvaluateWEnergyArgs(ClientData, Tcl_Interp *, TCL_Char *tclString); |
| // little function to free memory after invoke Tcl_SplitList |
| // note Tcl_Split list stores the array of pointers and the strings in |
| // one array, which is why Tcl_Free needs only be called on the array. |
| static void cleanup(TCL_Char **argv) |
| { |
| Tcl_Free((char *) argv); |
| } |
| FiniteDeformationElastic3D * |
| TclModelBuilder_addFiniteDeformationElastic3D(ClientData clientData, Tcl_Interp *interp, int argc, |
| TCL_Char **argv, TclModelBuilder *theTclBuilder, int eleArgStart) |
| { |
| // create some empty pointers which we fill in as parse the command line |
| //int argc; |
| //TCL_Char **argv; |
| int tag = 0; |
| double rho_in = 0.0; |
| WEnergy *wenergy =0; |
| int loc = eleArgStart; |
| if (argc < 6) { |
| opserr << "WARNING FiniteDeformation3DElastic -insufficient number of arguments\n"; |
| return 0; |
| } |
| FiniteDeformationElastic3D *theMaterial = 0; |
| if (Tcl_GetInt(interp, argv[loc+1], &tag) != TCL_OK) |
| { |
| opserr << "nDMaterial FiniteDeformationElastic3D - invalid tag " << argv[loc+1] << endln; |
| return 0; |
| if (Tcl_GetInt(interp, argv[loc+1], &tag) != TCL_OK) { |
| opserr << "Warning: nDMaterial FiniteDeformationElastic3D - invalid tag " << argv[loc+1] << "\n"; |
| exit (-1); |
| } |
| // Neo-Hookean (Compressible) |
| if ( (strcmp(argv[loc+2],"NeoHookean3D") == 0) || (strcmp(argv[loc+2],"NeoHookeanCompressible3D") == 0) ) { |
| if ( (strcmp(argv[loc+2],"-wenergy") == 0) || (strcmp(argv[loc+2],"-WEnergy") == 0) |
| || (strcmp(argv[loc+2],"-w") == 0) || (strcmp(argv[loc+2],"-W") == 0) ) |
| { |
| wenergy = EvaluateWEnergyArgs(clientData, interp, argv[loc+3]); |
| if (wenergy == 0) |
| { |
| opserr << "nDMaterial FiniteDeformationElastic3D - could not create a WEnergy from" << argv[loc+3] << endln; |
| return 0; |
| } |
| } |
| double rho_in = 0.0; |
| double K_in = 0.0; |
| double G_in = 0.0; |
| if (Tcl_GetDouble(interp, argv[loc+4], &rho_in) != TCL_OK) |
| { |
| opserr << "nDMaterial FiniteDeformationElastic3D - invalid rho " << argv[loc+4] << endln; |
| return 0; |
| } |
| if (argc < 7) { |
| opserr << "Warning: NeoHookeanCompressible3D -insufficient number of arguments\n"; |
| exit (-1); |
| } |
| FiniteDeformationElastic3D *theMaterial = 0; |
| if ( wenergy != 0) |
| theMaterial = new FiniteDeformationElastic3D(tag, wenergy, rho_in); |
| if (Tcl_GetDouble(interp, argv[loc+3], &K_in) != TCL_OK) { |
| opserr << "nDMaterial NeoHookeanCompressible3D - invalid K " << argv[loc+3] << "\n"; |
| exit (-1); |
| } |
| else |
| opserr << "invalid number of args used to create a FiniteDeformationElastic3D material\n"; |
| if (Tcl_GetDouble(interp, argv[loc+4], &G_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial NeoHookeanCompressible3D - invalid G " << argv[loc+4] << "\n"; |
| exit (-1); |
| } |
| return theMaterial; |
| } |
| if (Tcl_GetDouble(interp, argv[loc+5], &rho_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial NeoHookeanCompressible3D - invalid rho " << argv[loc+5] << "\n"; |
| exit (-1); |
| } |
| theMaterial = new NeoHookeanCompressible3D(tag, K_in, G_in, rho_in); |
| } |
| // DecoupledLog3D |
| else if ( (strcmp(argv[loc+2],"DecoupledLog3D") == 0) || (strcmp(argv[loc+2],"DecoupledLogarithmic3D") == 0) ) { |
| double K_in = 0.0; |
| double G_in = 0.0; |
| double rho_in = 0.0; |
| WEnergy *wenergy =0; |
| if (argc < 7) { |
| opserr << "Warning: DecoupledLogarithmic3D -insufficient number of arguments\n"; |
| exit (-1); |
| } |
| WEnergy *EvaluateWEnergyArgs(ClientData clientData, Tcl_Interp *interp, TCL_Char *tclString) |
| { |
| int argc; |
| TCL_Char **argv; |
| if (Tcl_GetDouble(interp, argv[loc+3], &K_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledLogarithmic3D - invalid K " << argv[loc+3] << "\n"; |
| exit (-1); |
| } |
| // split the list |
| if (Tcl_SplitList(interp, tclString, &argc, &argv) != TCL_OK) |
| return 0; |
| if (Tcl_GetDouble(interp, argv[loc+4], &G_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledLogarithmic3D - invalid G " << argv[loc+4] << "\n"; |
| exit (-1); |
| } |
| if (argc == 0) |
| return 0; |
| if (Tcl_GetDouble(interp, argv[loc+5], &rho_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledLogarithmic3D - invalid rho " << argv[loc+5] << "\n"; |
| exit (-1); |
| } |
| wenergy = new LogWEnergy(K_in, G_in); |
| if ( wenergy != 0 ) { |
| theMaterial = new FDdecoupledElastic3D(tag, wenergy, rho_in); |
| } |
| else { |
| opserr << "Error: nDMaterial DecoupledLogarithmic3D -invalid material model\n"; |
| exit (-1); |
| } |
| } |
| // DecoupledNeoHookean3D |
| else if ( (strcmp(argv[loc+2],"DecoupledNeoHookean3D") == 0) || (strcmp(argv[loc+2],"DecoupledNH3D") == 0) ) { |
| double K_in = 0.0; |
| double G_in = 0.0; |
| double rho_in = 0.0; |
| WEnergy *wenergy =0; |
| // now parse the list & construct the required object |
| WEnergy *wenergy = 0; |
| if (argc < 7) { |
| opserr << "Warning: DecoupledNeoHookean3D -insufficient number of arguments\n"; |
| exit (-1); |
| } |
| // #1 Logarithmic |
| if ((strcmp(argv[0],"-Log") == 0) || (strcmp(argv[0],"-log") == 0) || (strcmp(argv[0],"-Logarithmic") == 0) ) |
| { |
| double E_in = 0.0; |
| double nu_in = 0.0; |
| if (argc > 2) |
| { |
| if (Tcl_GetDouble(interp, argv[1], &E_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid Young's Module for Logarithmic Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[loc+3], &K_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledNeoHookean3D - invalid K " << argv[loc+3] << "\n"; |
| exit (-1); |
| } |
| if (Tcl_GetDouble(interp, argv[2], &nu_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid Poisson Ratio for Logarithmic Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[loc+4], &G_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledNeoHookean3D - invalid G " << argv[loc+4] << "\n"; |
| exit (-1); |
| } |
| wenergy = new LogWEnergy(E_in, nu_in); |
| } |
| } |
| if (Tcl_GetDouble(interp, argv[loc+5], &rho_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledNeoHookean3D - invalid rho " << argv[loc+5] << "\n"; |
| exit (-1); |
| } |
| wenergy = new NeoHookeanWEnergy(K_in, G_in); |
| if ( wenergy != 0 ) { |
| theMaterial = new FDdecoupledElastic3D(tag, wenergy, rho_in); |
| } |
| else { |
| opserr << "Error: nDMaterial DecoupledNeoHookean3D -invalid material model\n"; |
| exit (-1); |
| } |
| } |
| // #2 Mooney Rivlin |
| if ((strcmp(argv[0],"-MR") == 0) || (strcmp(argv[0],"-MooneyRivlin") == 0) ) |
| { |
| double E_in = 0.0; |
| double nu_in = 0.0; |
| double c1_in = 0.0; |
| double c2_in = 0.0; |
| if (argc > 4) |
| { |
| if (Tcl_GetDouble(interp, argv[1], &E_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid 1st material parameter for Mooney-Rivlin Strain Energy Function."; |
| return 0; |
| } |
| // DecoupledMooneyRivlinSimo3D |
| else if ( (strcmp(argv[loc+2],"DecoupledMooneyRivlinSimo3D") == 0) || (strcmp(argv[loc+2],"DecoupledMRS3D") == 0) ) { |
| double c1_in = 0.0; |
| double c2_in = 0.0; |
| double K_in = 0.0; |
| double rho_in = 0.0; |
| WEnergy *wenergy =0; |
| if (Tcl_GetDouble(interp, argv[2], &nu_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid 2nd material parameter for Mooney-Rivlin Strain Energy Function."; |
| return 0; |
| } |
| if (argc < 8) { |
| opserr << "Warning: DecoupledNeoHookean3D -insufficient number of arguments\n"; |
| exit (-1); |
| } |
| if (Tcl_GetDouble(interp, argv[3], &c1_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid 1st material parameter for Mooney-Rivlin Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[loc+3], &c1_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledNeoHookean3D - invalid c1 " << argv[loc+3] << "\n"; |
| exit (-1); |
| } |
| if (Tcl_GetDouble(interp, argv[4], &c2_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid 2nd material parameter for Mooney-Rivlin Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[loc+4], &c2_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledNeoHookean3D - invalid c2 " << argv[loc+4] << "\n"; |
| exit (-1); |
| } |
| wenergy = new MooneyRivlinWEnergy(E_in, nu_in, c1_in, c2_in); |
| } |
| } |
| if (Tcl_GetDouble(interp, argv[loc+5], &K_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledNeoHookean3D - invalid K " << argv[loc+5] << "\n"; |
| exit (-1); |
| } |
| // #3 Neo Hookean |
| if ((strcmp(argv[0],"-NH") == 0) || (strcmp(argv[0],"-NeoHookean") == 0) ) |
| { |
| double E_in = 0.0; |
| double nu_in = 0.0; |
| if (argc > 2) |
| { |
| if (Tcl_GetDouble(interp, argv[1], &E_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid Young's Module for Neo-Hookean Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[loc+6], &rho_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledNeoHookean3D - invalid rho " << argv[loc+6] << "\n"; |
| exit (-1); |
| } |
| wenergy = new MooneyRivlinSimoWEnergy(c1_in, c2_in, K_in); |
| if ( wenergy != 0 ) { |
| theMaterial = new FDdecoupledElastic3D(tag, wenergy, rho_in); |
| } |
| else { |
| opserr << "Error: nDMaterial DecoupledMooneyRivlinSimo3D -invalid material model\n"; |
| exit (-1); |
| } |
| } |
| if (Tcl_GetDouble(interp, argv[2], &nu_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid Poisson Ratio for Neo-Hookean Strain Energy Function."; |
| return 0; |
| } |
| // DecoupleOgdenSimo3D |
| else if ( (strcmp(argv[loc+2],"DecoupledOgdenSimo3D") == 0) || (strcmp(argv[loc+2],"DecoupledOS3D") == 0) ) { |
| int N_in = 0; |
| double K_in = 0.0; |
| double rho_in = 0.0; |
| WEnergy *wenergy =0; |
| wenergy = new NeoHookeanWEnergy(E_in, nu_in); |
| } |
| } |
| // #4 Ogden |
| if ((strcmp(argv[0],"-Ogden") == 0) || (strcmp(argv[0],"-ogden") == 0) ) |
| { |
| double E_in = 0.0; |
| double nu_in = 0.0; |
| int N_in = 0; |
| if (argc > 2*N_in+3) |
| { |
| if (Tcl_GetDouble(interp, argv[1], &E_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid vector parameter number for Ogden Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[2], &nu_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid vector parameter number for Ogden Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetInt(interp, argv[3], &N_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid vector parameter number for Ogden Strain Energy Function."; |
| return 0; |
| } |
| if (argc > 2*N_in+5) { |
| if (Tcl_GetInt(interp, argv[loc+3], &N_in) != TCL_OK) { |
| opserr << "Warning: invalid vector parameter number for Ogden Strain Energy Function\n"; |
| exit (-1); |
| } |
| double *cr_in = new double[N_in]; |
| double *mur_in = new double[N_in]; |
| for (int i=0; i<N_in; i++) |
| { |
| if (Tcl_GetDouble(interp, argv[4+i], &cr_in[i]) != TCL_OK) |
| { |
| opserr << "Warning: invalid parameter for Ogden Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[4+N_in+i], &mur_in[i]) != TCL_OK) |
| { |
| opserr << "Warning: invalid parameter for Ogden Strain Energy Function."; |
| return 0; |
| } |
| for (int i=0; i<N_in; i++) { |
| if (Tcl_GetDouble(interp, argv[loc+4+i], &cr_in[i]) != TCL_OK) { |
| opserr << "Warning: invalid parameter for Ogden Strain Energy Function\n"; |
| exit (-1); |
| } |
| if (Tcl_GetDouble(interp, argv[loc+4+N_in+i], &mur_in[i]) != TCL_OK) { |
| opserr << "Warning: invalid parameter for Ogden Strain Energy Function\n"; |
| exit (-1); |
| } |
| } |
| wenergy = new OgdenWEnergy(E_in, nu_in, N_in, cr_in, mur_in); |
| } |
| } |
| if (Tcl_GetDouble(interp, argv[loc+2*N_in+4], &K_in) != TCL_OK) { |
| opserr << "Warning: invalid Bulk Modulus number for Ogden Strain Energy Function\n"; |
| exit (-1); |
| } |
| // #5 Simo Pister |
| if ((strcmp(argv[0],"-SP") == 0) || (strcmp(argv[0],"-SimoPister") == 0) ) |
| { |
| double E_in = 0.0; |
| double nu_in = 0.0; |
| if (argc > 2) |
| { |
| if (Tcl_GetDouble(interp, argv[1], &E_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid Young's Module for Simo-Pister Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[loc+2*N_in+5], &rho_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledSimoPister3D - invalid rho\n"; |
| exit (-1); |
| } |
| wenergy = new OgdenSimoWEnergy(N_in, cr_in, mur_in, K_in); |
| if ( wenergy != 0 ) { |
| theMaterial = new FDdecoupledElastic3D(tag, wenergy, rho_in); |
| //if ( cr_in ) delete cr_in; |
| //if ( mur_in ) delete mur_in; |
| } |
| else { |
| opserr << "Error: nDMaterial DecoupledOgdenSimo3D -invalid material model\n"; |
| exit (-1); |
| } |
| } |
| } |
| if (Tcl_GetDouble(interp, argv[2], &nu_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid Poisson Ratio for Simo-Pister Strain Energy Function."; |
| return 0; |
| } |
| // DecoupledMooneyRivlin3D |
| else if ( (strcmp(argv[loc+2],"DecoupledMooneyRivlin3D") == 0) || (strcmp(argv[loc+2],"DecoupledMR3D") == 0) ) { |
| double c1_in = 0.0; |
| double c2_in = 0.0; |
| double rho_in = 0.0; |
| WEnergy *wenergy =0; |
| wenergy = new SimoPisterWEnergy(E_in, nu_in); |
| } |
| } |
| if (argc < 7) { |
| opserr << "Warning: DecoupledNeoHookean3D -insufficient number of arguments\n"; |
| exit (-1); |
| } |
| // #6 Ogden-Simo |
| if ((strcmp(argv[0],"-OgdenSimo") == 0) || (strcmp(argv[0],"-OS") == 0) ) |
| { |
| double E_in = 0.0; |
| double nu_in = 0.0; |
| int N_in = 0; |
| if (Tcl_GetDouble(interp, argv[loc+3], &c1_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledNeoHookean3D - invalid c1 " << argv[loc+3] << "\n"; |
| exit (-1); |
| } |
| if (argc > 2*N_in+3) |
| { |
| if (Tcl_GetDouble(interp, argv[1], &E_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid vector parameter number for Ogden Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[loc+4], &c2_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledNeoHookean3D - invalid c2 " << argv[loc+4] << "\n"; |
| exit (-1); |
| } |
| if (Tcl_GetDouble(interp, argv[2], &nu_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid vector parameter number for Ogden Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[loc+5], &rho_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledNeoHookean3D - invalid rho " << argv[loc+5] << "\n"; |
| exit (-1); |
| } |
| wenergy = new MooneyRivlinWEnergy(c1_in, c2_in); |
| if ( wenergy != 0 ) { |
| theMaterial = new FDdecoupledElastic3D(tag, wenergy, rho_in); |
| } |
| else { |
| opserr << "Error: nDMaterial DecoupledMooneyRivlin3D -invalid material model\n"; |
| exit (-1); |
| } |
| } |
| if (Tcl_GetInt(interp, argv[3], &N_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid vector parameter number for Ogden Strain Energy Function."; |
| return 0; |
| } |
| // DecoupleOgden3D |
| else if ( (strcmp(argv[loc+2],"DecoupledOgden3D") == 0) ) { |
| int N_in = 0; |
| double rho_in = 0.0; |
| WEnergy *wenergy =0; |
| if (argc > 2*N_in+4) { |
| if (Tcl_GetInt(interp, argv[loc+3], &N_in) != TCL_OK) { |
| opserr << "Warning: invalid vector parameter number for Ogden Strain Energy Function\n"; |
| exit (-1); |
| } |
| double *cr_in = new double[N_in]; |
| double *mur_in = new double[N_in]; |
| for (int i=0; i<N_in; i++) |
| { |
| if (Tcl_GetDouble(interp, argv[4+i], &cr_in[i]) != TCL_OK) |
| { |
| opserr << "Warning: invalid parameter for Ogden Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[4+N_in+i], &mur_in[i]) != TCL_OK) |
| { |
| opserr << "Warning: invalid parameter for Ogden Strain Energy Function."; |
| return 0; |
| } |
| for (int i=0; i<N_in; i++) { |
| if (Tcl_GetDouble(interp, argv[loc+4+i], &cr_in[i]) != TCL_OK) { |
| opserr << "Warning: invalid parameter for Ogden Strain Energy Function\n"; |
| exit (-1); |
| } |
| if (Tcl_GetDouble(interp, argv[loc+4+N_in+i], &mur_in[i]) != TCL_OK) { |
| opserr << "Warning: invalid parameter for Ogden Strain Energy Function\n"; |
| exit (-1); |
| } |
| } |
| wenergy = new OgdenSimoWEnergy(E_in, nu_in, N_in, cr_in, mur_in); |
| } |
| } |
| if (Tcl_GetDouble(interp, argv[loc+2*N_in+4], &rho_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial Ogden - invalid rho\n"; |
| exit (-1); |
| } |
| wenergy = new OgdenWEnergy(N_in, cr_in, mur_in); |
| if ( wenergy != 0 ) { |
| theMaterial = new FDdecoupledElastic3D(tag, wenergy, rho_in); |
| //if ( cr_in ) delete cr_in; |
| //if ( mur_in ) delete mur_in; |
| } |
| else { |
| opserr << "Error: nDMaterial DecoupledOgden3D -invalid material model\n"; |
| exit (-1); |
| } |
| } |
| } |
| // #7 Mooney Rivlin Simo |
| if ((strcmp(argv[0],"-MRS") == 0) || (strcmp(argv[0],"-MooneyRivlinSimo") == 0) ) |
| { |
| double E_in = 0.0; |
| double nu_in = 0.0; |
| double c1_in = 0.0; |
| double c2_in = 0.0; |
| if (argc > 4) |
| { |
| if (Tcl_GetDouble(interp, argv[1], &E_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid 1st material parameter for Mooney-Rivlin Strain Energy Function."; |
| return 0; |
| } |
| // DecoupledSimoPister3D |
| else if ( (strcmp(argv[loc+2],"DecoupledSimoPister3D") == 0) || (strcmp(argv[loc+2],"DecoupledSP3D") == 0) ) { |
| double K_in = 0.0; |
| double rho_in = 0.0; |
| WEnergy *wenergy =0; |
| if (Tcl_GetDouble(interp, argv[2], &nu_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid 2nd material parameter for Mooney-Rivlin Strain Energy Function."; |
| return 0; |
| } |
| if (argc < 6) { |
| opserr << "Warning: DecoupledSimoPister3D -insufficient number of arguments\n"; |
| exit (-1); |
| } |
| if (Tcl_GetDouble(interp, argv[3], &c1_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid 1st material parameter for Mooney-Rivlin Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[loc+3], &K_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledSimoPister3D - invalid K " << argv[loc+3] << "\n"; |
| exit (-1); |
| } |
| if (Tcl_GetDouble(interp, argv[4], &c2_in) != TCL_OK) |
| { |
| opserr << "Warning: invalid 2nd material parameter for Mooney-Rivlin Strain Energy Function."; |
| return 0; |
| } |
| if (Tcl_GetDouble(interp, argv[loc+4], &rho_in) != TCL_OK) { |
| opserr << "Warning: nDMaterial DecoupledSimoPister3D - invalid rho " << argv[loc+4] << "\n"; |
| exit (-1); |
| } |
| wenergy = new SimoPisterWEnergy(K_in); |
| if ( wenergy != 0 ) { |
| theMaterial = new FDdecoupledElastic3D(tag, wenergy, rho_in); |
| } |
| else { |
| opserr << "Error: nDMaterial DecoupledSimoPister3D -invalid material model\n"; |
| exit (-1); |
| } |
| } |
| // Else |
| else { |
| opserr << "Error: nDMaterial - unknown FiniteDeformationElastic3D material model\n"; |
| exit (-1); |
| } |
| wenergy = new MooneyRivlinSimoWEnergy(E_in, nu_in, c1_in, c2_in); |
| } |
| } |
| //cleanup(argv); |
| return theMaterial; |
| cleanup(argv); |
| return wenergy; |
| } |
| /trunk/SRC/material/nD/FiniteDeformation/W.h |
|---|
| 20,7 → 20,7 |
| //# |
| //# |
| //# DATE: 19AUg2003 |
| //# UPDATE HISTORY: |
| //# UPDATE HISTORY: 28May2004 |
| //# |
| //# |
| //=============================================================================== |
| 32,31 → 32,13 |
| #include <Vector.h> |
| #include <Tensor.h> |
| //#include "LogWEnergy.h" |
| //#include "MooneyRivlinWEnergy.h" |
| //#include "NeoHookeanWEnergy.h" |
| //#include "OgdenWEnergy.h" |
| //#include "SimoPisterWEnergy.h" |
| // |
| #include <ID.h> |
| #include <Channel.h> |
| //#include <G3Globals.h> |
| #include <OPS_Globals.h> |
| //#include <BJvector.h> |
| //#include <BJtensor.h> |
| class WEnergy |
| { |
| public: |
| WEnergy(); |
| virtual ~WEnergy(); |
| virtual WEnergy*newObj( ) =0; |
| virtual const double getE(); |
| virtual const double getnu(); |
| virtual const double wE(const double &, const Vector &) ; |
| virtual const Vector disowOdlambda(const Vector &) ; |
| virtual const Vector d2isowOdlambda2(const Vector &) ; |
| 64,10 → 46,6 |
| virtual const double dvolwOdJ(const double &) ; |
| virtual const double d2volwOdJ2(const double &) ; |
| protected: |
| double E; |
| double nu; |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdEvolution/fdEvolution_SLS.cpp |
|---|
| New file |
| 0,0 → 1,76 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdEvolution_SLS_CPP |
| #define fdEvolution_SLS_CPP |
| #include "fdEvolution_SLS.h" |
| // Linear and / or Saturated isotropic hardening |
| //------------------------------------------------------------------------ |
| fdEvolution_SLS::fdEvolution_SLS(double H_linear_in, |
| double q_saturated_in, |
| double delta_in) |
| :H_linear(H_linear_in), q_saturated(q_saturated_in), delta(delta_in) |
| { |
| } |
| //------------------------------------------------------------------------ |
| fdEvolution_S * fdEvolution_SLS::newObj() |
| { |
| fdEvolution_S *newEL = new fdEvolution_SLS( *this ); |
| return newEL; |
| } |
| //------------------------------------------------------------------------ |
| double fdEvolution_SLS::HModulus(const stresstensor &sts, const FDEPState &fdepstate) const |
| { |
| double xi = fdepstate.getStrainLikeInVar(); |
| return H_linear + delta*q_saturated*exp(-delta*xi); |
| } |
| //------------------------------------------------------------------------ |
| void fdEvolution_SLS::print() |
| { |
| opserr << (*this); |
| } |
| //------------------------------------------------------------------------ |
| OPS_Stream& operator<< (OPS_Stream& os, const fdEvolution_SLS & fdesl) |
| { |
| os.precision(5); |
| os.width(10); |
| os << "Linear & Saturate Scalar Linear Evolution Law's Modulus: " << "\n"; |
| os << "H_linear = " << fdesl.H_linear << "; " << "\n"; |
| os << "H_initial = " << fdesl.q_saturated << "; " << "\n"; |
| os << "Delta= " << fdesl.delta << "; " << "\n"; |
| return os; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdEvolution/fdEvolution_S.cpp |
|---|
| New file |
| 0,0 → 1,55 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdEvolution_S_CPP |
| #define fdEvolution_S_CPP |
| #include "fdEvolution_S.h" |
| fdEvolution_S * fdEvolution_S::newObj() |
| { |
| fdEvolution_S *newEL = new fdEvolution_S( *this ); |
| return newEL; |
| } |
| double fdEvolution_S::HModulus(const stresstensor &sts, const FDEPState &fdepstate) const |
| { |
| return 0.0; |
| } |
| void fdEvolution_S::print() |
| { |
| opserr << (*this); |
| } |
| OPS_Stream& operator<< (OPS_Stream& os, const fdEvolution_S & ev) |
| { |
| os << "Scalar Evolution Law's Parameters: " << "\n"; |
| return os; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdEvolution/fdEvolution_T.cpp |
|---|
| New file |
| 0,0 → 1,56 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdEvolution_T_CPP |
| #define fdEvolution_T_CPP |
| #include "fdEvolution_T.h" |
| fdEvolution_T * fdEvolution_T::newObj() |
| { |
| fdEvolution_T *newEL = new fdEvolution_T( *this ); |
| return newEL; |
| } |
| tensor fdEvolution_T::HModulus(const stresstensor &sts, const FDEPState &fdepstate) const |
| { |
| tensor Z400(4, def_dim_4, 0.0); |
| return Z400; |
| } |
| void fdEvolution_T::print() |
| { |
| opserr << (*this); |
| } |
| OPS_Stream& operator<< (OPS_Stream& os, const fdEvolution_T & ev) |
| { |
| os << "Tensor Evolution Law's Parameters: " << "\n"; |
| return os; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdEvolution/fdEvolution_TL.h |
|---|
| New file |
| 0,0 → 1,56 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdEvolution_TL_H |
| #define fdEvolution_TL_H |
| #include "fdEvolution_T.h" |
| class fdEvolution_TL : public fdEvolution_T |
| { |
| private: |
| double H_linear; |
| public: |
| fdEvolution_TL(double H_linear_in = 0.0); |
| fdEvolution_TL(const stresstensor &sts, const FDEPState &fdepstate); |
| //virtual ~fdEvolution_TL() {}; |
| fdEvolution_T *newObj(); |
| // Derivative of stress like hardening variable to strain like variable |
| tensor HModulus(const stresstensor &sts, const FDEPState &fdepstate) const; |
| void print(); |
| friend OPS_Stream& operator<< (OPS_Stream& os, const fdEvolution_TL & fdetl); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdEvolution/fdEvolution_SLS.h |
|---|
| New file |
| 0,0 → 1,60 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdEvolution_SLS_H |
| #define fdEvolution_SLS_H |
| #include "fdEvolution_S.h" |
| class fdEvolution_SLS : public fdEvolution_S |
| { |
| private: |
| double H_linear; |
| double q_saturated; |
| double delta; |
| public: |
| fdEvolution_SLS(double H_linear_in = 0.0, |
| double q_saturated_in = 0.0, |
| double delta_in = 0.0); |
| fdEvolution_SLS(const stresstensor &sts, const FDEPState &fdepstate); |
| //virtual ~fdEvolution_SLS() {}; |
| fdEvolution_S *newObj(); |
| // Derivative of stress like hardening variable to strain like variable |
| double HModulus(const stresstensor &sts, const FDEPState &fdepstate) const; |
| void print(); |
| friend OPS_Stream& operator<< (OPS_Stream& os, const fdEvolution_SLS & fdesl); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdEvolution/fdEvolution_S.h |
|---|
| New file |
| 0,0 → 1,55 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdEvolution_S_H |
| #define fdEvolution_S_H |
| #include <stresst.h> |
| #include <straint.h> |
| #include <math.h> |
| #include <FDEPState.h> |
| class fdEvolution_S |
| { |
| public: |
| fdEvolution_S() {}; |
| virtual ~fdEvolution_S() {}; |
| virtual fdEvolution_S *newObj(); |
| // Derivative of stress like hardening variable to strain like variable |
| virtual double HModulus(const stresstensor &sts, const FDEPState &fdepstate) const; |
| void print(); |
| friend OPS_Stream& operator<< (OPS_Stream& os, const fdEvolution_S & ev); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdEvolution/fdEvolution_T.h |
|---|
| New file |
| 0,0 → 1,55 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdEvolution_T_H |
| #define fdEvolution_T_H |
| #include <stresst.h> |
| #include <straint.h> |
| #include <math.h> |
| #include <FDEPState.h> |
| class fdEvolution_T |
| { |
| public: |
| fdEvolution_T() {}; |
| virtual ~fdEvolution_T() {}; |
| virtual fdEvolution_T *newObj(); |
| // Derivative of stress like hardening variable to strain like variable |
| virtual tensor HModulus(const stresstensor &sts, const FDEPState &fdepstate) const; |
| void print(); |
| friend OPS_Stream& operator<< (OPS_Stream& os, const fdEvolution_T & ev); |
| }; |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdEvolution/Makefile |
|---|
| New file |
| 0,0 → 1,23 |
| include ../../../../../Makefile.def |
| OBJS = fdEvolution_S.o \ |
| fdEvolution_SLS.o \ |
| fdEvolution_T.o \ |
| fdEvolution_TL.o |
| all: $(OBJS) |
| # Miscellaneous |
| tidy: |
| @$(RM) $(RMFLAGS) Makefile.bak *~ #*# core |
| clean: tidy |
| @$(RM) $(RMFLAGS) $(OBJS) *.o |
| spotless: clean |
| wipe: spotless |
| # DO NOT DELETE THIS LINE -- make depend depends on it. |
| /trunk/SRC/material/nD/FiniteDeformation/fdEvolution/fdEvolution_TL.cpp |
|---|
| New file |
| 0,0 → 1,73 |
| //=============================================================================== |
| //# COPYRIGHT (C): Woody's license (by BJ): |
| // ``This source code is Copyrighted in |
| // U.S., for an indefinite period, and anybody |
| // caught using it without our permission, will be |
| // mighty good friends of ourn, cause we don't give |
| // a darn. Hack it. Compile it. Debug it. Run it. |
| // Yodel it. Enjoy it. We wrote it, that's all we |
| // wanted to do.'' |
| // |
| //# PROJECT: Object Oriented Finite Element Program |
| //# PURPOSE: Finite Deformation Hyper-Elastic classes |
| //# CLASS: |
| //# |
| //# VERSION: 0.6_(1803398874989) (golden section) |
| //# LANGUAGE: C++ |
| //# TARGET OS: all... |
| //# DESIGN: Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu) |
| //# PROGRAMMER(S): Zhao Cheng, Boris Jeremic |
| //# |
| //# |
| //# DATE: July 2004 |
| //# UPDATE HISTORY: |
| //# |
| //=============================================================================== |
| #ifndef fdEvolution_TL_CPP |
| #define fdEvolution_TL_CPP |
| #include "fdEvolution_TL.h" |
| //------------------------------------------------------------------------ |
| fdEvolution_TL::fdEvolution_TL(double H_linear_in) |
| :H_linear(H_linear_in) |
| { |
| } |
| //------------------------------------------------------------------------ |
| fdEvolution_T * fdEvolution_TL::newObj() |
| { |
| fdEvolution_T *newEL = new fdEvolution_TL( *this ); |
| return newEL; |
| } |
| //------------------------------------------------------------------------ |
| tensor fdEvolution_TL::HModulus(const stresstensor &sts, const FDEPState &fdepstate) const |
| { |
| tensor eta = fdepstate.getStrainLikeKiVar(); |
| tensor I2("I", 2 , def_dim_2); |
| tensor I4 = I2("ij")*I2("kl"); I4.null_indices(); |
| //I4 = (I4.transpose0110()+I4.transpose0111())*0.5; //For symmetric tensor |
| I4 = I4.transpose0110(); //For general tensor |
| return I4*H_linear; |
| } |
| //------------------------------------------------------------------------ |
| void fdEvolution_TL::print() |
| { |
| opserr << (*this); |
| } |
| //------------------------------------------------------------------------ |
| OPS_Stream& operator<< (OPS_Stream& os, const fdEvolution_TL & fdetl) |
| { |
| os.precision(5); |
| os.width(10); |
| os << "Tensor Linear Evolution Law's Modulus: " << "\n"; |
| return os; |
| } |
| #endif |
| /trunk/SRC/material/nD/FiniteDeformation/fdEvolution/tags |
|---|
| New file |
| 0,0 → 1,170 |
| ! Q ø Kù ì Ó Ó Ý +ë L³ 0J 4 ¶ O÷ Û |
| +ulus MÁ bj MÁ olution_S.h MÁ olution_S_CPP My bj tion_S_H My volution_S My olution_S My .h My int.h My olution_S_H L¿ volution_S L¿ bj L¿ |
| +ulus LÑ |
| +ulus M· |
| +ulus N¹ |
| +t Q ulus on_SLS_H Q bj Q olution_SLS Q |
| +ulus LÑ |
| +ulus U |
| +ulus UV UV |
| +ulus [$ |
| +ulus Wì |
| +ulus 1= |
| +t newObj Ö 9olution fdEvolution_T.h fdEvolution_T_CPP 1 |
| +ulus fZ |
| + HModulus |
| + print << |