-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Concrete-rebar bondslip constraint model #100
Open
SudiptaBiswas
wants to merge
6
commits into
idaholab:devel
Choose a base branch
from
SudiptaBiswas:rebar_bondslip
base: devel
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+794
−0
Open
Changes from 1 commit
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
f61a141
Bondslip Constraint Model #99
SudiptaBiswas 23fbf4d
BondSlip Initial Tests #99
SudiptaBiswas 3ae0ed8
Update bondslip constraint jacobian #99
SudiptaBiswas 4218191
Modify tests and add documentation #99
SudiptaBiswas 4aa681d
Remove print statements #99
SudiptaBiswas 97192a8
Fix failing tests #99
SudiptaBiswas File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
//* This file is part of the MOOSE framework | ||
//* https://www.mooseframework.org | ||
//* | ||
//* All rights reserved, see COPYRIGHT for full restrictions | ||
//* https://github.com/idaholab/moose/blob/master/COPYRIGHT | ||
//* | ||
//* Licensed under LGPL 2.1, please see LICENSE for details | ||
//* https://www.gnu.org/licenses/lgpl-2.1.html | ||
|
||
#pragma once | ||
|
||
// MOOSE includes | ||
#include "EqualValueEmbeddedConstraint.h" | ||
|
||
// Forward Declarations | ||
class RebarBondSlipConstraint; | ||
|
||
template <> | ||
InputParameters validParams<RebarBondSlipConstraint>(); | ||
|
||
/// A RebarBondSlipConstraint enforces concrete-rebar constraint | ||
class RebarBondSlipConstraint : public EqualValueEmbeddedConstraint | ||
{ | ||
public: | ||
static InputParameters validParams(); | ||
|
||
RebarBondSlipConstraint(const InputParameters & parameters); | ||
virtual void initialSetup() override; | ||
virtual void timestepSetup() override; | ||
bool shouldApply() override; | ||
void reinitConstraint(); | ||
|
||
protected: | ||
virtual void computeTangent(); | ||
virtual Real computeQpResidual(Moose::ConstraintType type) override; | ||
virtual Real computeQpJacobian(Moose::ConstraintJacobianType type) override; | ||
virtual Real computeQpOffDiagJacobian(Moose::ConstraintJacobianType type, | ||
unsigned int jvar) override; | ||
|
||
/** | ||
* Struct designed to hold info about the bonds slip history | ||
*/ | ||
struct bondSlipData | ||
{ | ||
Real slip_min; | ||
Real slip_max; | ||
Real slip_min_old; | ||
Real slip_max_old; | ||
Real bondstress_min; | ||
Real bondstress_max; | ||
Real bondstress_min_old; | ||
Real bondstress_max_old; | ||
|
||
bondSlipData() | ||
: slip_min(0.0), | ||
slip_max(0.0), | ||
slip_min_old(0.0), | ||
slip_max_old(0.0), | ||
bondstress_min(0.0), | ||
bondstress_max(0.0), | ||
bondstress_min_old(0.0), | ||
bondstress_max_old(0.0) | ||
{ | ||
} | ||
}; | ||
|
||
// Bond-slip data | ||
std::map<dof_id_type, bondSlipData> _bondslip; | ||
|
||
const unsigned _component; | ||
const unsigned int _mesh_dimension; | ||
std::vector<unsigned int> _var_nums; | ||
std::vector<MooseVariable *> _vars; | ||
|
||
const bool _debug; | ||
|
||
const Real _max_bondstress; | ||
const Real _frictional_bondstress; | ||
const Real _ultimate_slip; | ||
const Real _bar_radius; | ||
std::vector<Real> _transitional_slip; | ||
/// constraint force needed to enforce the constraint | ||
RealVectorValue _constraint_residual; | ||
/// penalty force for the current constraint | ||
RealVectorValue _pen_force; | ||
RealVectorValue _slave_tangent; | ||
Real _current_elem_volume; | ||
bool _bond; | ||
Real _bond_stress; | ||
}; |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need doxygen comments for all descriptions of non-override methods and for all member variables. Three slash comments for the variables, long form comments for methods, including @param and @return tags.