69LatticeDirichletCouplingNode :: LatticeDirichletCouplingNode(
int n,
Domain *aDomain) :
73LatticeDirichletCouplingNode :: ~LatticeDirichletCouplingNode()
78LatticeDirichletCouplingNode :: initializeFrom(
InputRecord &ir,
int priority)
84 Node :: initializeFrom(ir);
89LatticeDirichletCouplingNode :: postInitialize()
93 Node :: postInitialize();
97void LatticeDirichletCouplingNode :: printYourself()
105 printf(
"LatticeDirichletCouplingNode %d coord : x %f y %f\n",
number, x, y);
110 printf(
"dof %d is nil \n", i + 1);
119LatticeDirichletCouplingNode :: giveUnknownVector(
FloatArray &answer,
const IntArray &dofIDArry, ValueModeType mode,
TimeStep *tStep,
bool padding)
128 for (
int i = 1; i <= size; i++ ) {
131 if ( pos == this->
end() ) {
132 OOFEM_ERROR(
"Couldn't find dof with Dof ID %d", dofIDArry.
at(i));
135 answer.
at(i) = (*pos)->giveUnknown(mode, tStep);
184LatticeDirichletCouplingNode :: computeUnknownCouplingContribution(
TimeStep *stepN) {
193 double nominator = 0;
194 double denominator = 0;
198 if (
domain->giveEngngModel()->giveMasterEngngModel() ) {
199 (
static_cast< StaggeredProblem *
>(
domain->giveEngngModel()->giveMasterEngngModel() ) )->giveCoupledModels(coupledModels);
200 if ( coupledModels.
at(1) != 0 && !(stepN->
giveNumber()<=
domain->giveEngngModel()->giveNumberOfFirstStep()) ) {
202 for (
int i = 1; i <= nCouplingElements; i++ ) {
203 couplingGpCoords.
zero();
214 if(normalStress > 0.){
220 nominator = nominator +
distance * normalStress;
221 denominator = denominator +
distance;
224 result = nominator / denominator;
233void LatticeDirichletCouplingNode :: printOutputAt(FILE *stream,
TimeStep *stepN)
237#if defined( __MPI_PARALLEL_MODE ) || defined( __ENABLE_COMPONENT_LABELS )
#define REGISTER_DofManager(class)
int giveGlobalNumber() const
int giveNumberOfDofs() const
IntArray loadArray
List of applied loads.
std::vector< Dof * >::const_iterator findDofWithDofId(DofIDItem dofID) const
double giveCoordinate(int i) const
std::vector< Dof * > dofArray
Array of DOFs.
std::vector< Dof * >::iterator end()
FloatArray coordinates
Array storing nodal coordinates.
Domain * giveDomain() const
Domain * domain
Link to domain object, useful for communicating with other FEM components.
int number
Component number.
void zero()
Zeroes all coefficients of receiver.
void rotatedWith(FloatMatrix &r, char mode)
static ParamKey IPK_LatticeDirichletCouplingNode_couplingelements
double computeUnknownCouplingContribution(TimeStep *stepN)
IntArray couplingElements
Array storing nodal coordinates.
const char * giveClassName() const override
virtual int hasBeenUpdated()
virtual double giveOldNormalStress()
virtual double giveNormalStress()
virtual void giveGpCoordinates(FloatArray &coords)
Node(int n, Domain *aDomain)
bool computeL2GTransformation(FloatMatrix &answer, const IntArray &dofIDArry) override
int giveNumber()
Returns receiver's number.
double distance(const FloatArray &x, const FloatArray &y)
#define PM_ELEMENT_ERROR_IFNOTSET(_pm, _componentnum, _paramkey)
#define PM_UPDATE_PARAMETER(_val, _pm, _ir, _componentnum, _paramkey, _prio)