Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F71046257
patch_test_linear_elastic.cc
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Mon, Jul 8, 23:06
Size
1 KB
Mime Type
text/x-c
Expires
Wed, Jul 10, 23:06 (2 d)
Engine
blob
Format
Raw Data
Handle
18892815
Attached To
rAKA akantu
patch_test_linear_elastic.cc
View Options
/* -------------------------------------------------------------------------- */
#include "mesh_utils.hh"
#include "non_linear_solver.hh"
#include "solid_mechanics_model.hh"
#include "test_gtest_utils.hh"
/* -------------------------------------------------------------------------- */
#include <gtest/gtest.h>
#include <vector>
/* -------------------------------------------------------------------------- */
TYPED_TEST(TestPatchTestLinearElastic, Implicit) {
this->model->initFull(_analysis_method = _static);
this->applyBC();
auto & solver = this->model->getNonLinearSolver();
solver.set("max_iterations", 2);
solver.set("threshold", 2e-4);
solver.set("convergence_type", _scc_residual);
this->model->solveStep();
this->checkDisplacements();
this->checkStrains();
this->checkStresses();
}
TYPED_TEST(TestPatchTestLinearElastic, Explicit) {
this->model->initFull(_analysis_method = _explicit_lumped_mass);
this->applyBC();
const auto & coordinates = this->mesh->getNodes();
auto & displacement = this->model->getDisplacement();
//set the position of all nodes to the static solution
for (auto && tuple :
zip(make_view(coordinates, this->dim), make_view(displacement, this->dim))) {
this->setDisplacement(std::get<1>(tuple), std::get<0>(tuple));
}
for(UInt s = 0; s < 100; ++s) {
this->model->solveStep();
}
auto ekin = this->model->getEnergy("kinetic");
EXPECT_NEAR(0, ekin, 1e-16);
this->checkDisplacements();
this->checkStrains();
this->checkStresses();
}
Event Timeline
Log In to Comment