dynLattice
Loading...
Searching...
No Matches
SymBCModel.h
Go to the documentation of this file.
1
11#pragma once
12
13#include <jem/base/Object.h>
14
15#include <jem/util/ArrayBuffer.h>
16#include <jem/util/Properties.h>
17
18#include <jive/Array.h>
19#include <jive/fem/NodeGroup.h>
20#include <jive/fem/NodeSet.h>
21#include <jive/model/Actions.h>
22#include <jive/model/Model.h>
23#include <jive/model/ModelFactory.h>
24#include <jive/model/Names.h>
25#include <jive/util/Assignable.h>
26#include <jive/util/Constraints.h>
27#include <jive/util/DofSpace.h>
28#include <jive/util/Globdat.h>
29
31#include "utils/helpers.h"
32#include "utils/testing.h"
33
34using jem::util::Properties;
35using jive::BoolMatrix;
36using jive::IdxMatrix;
37using jive::fem::NodeGroup;
38using jive::fem::NodeSet;
39using jive::model::Model;
40using jive::util::Assignable;
41using jive::util::Constraints;
42using jive::util::DofSpace;
43using jive::util::Globdat;
44
45typedef jem::util::ArrayBuffer<idx_t> IdxBuffer;
46
47//-----------------------------------------------------------------------
48// class SymBCModel
49//-----------------------------------------------------------------------
50
67class SymBCModel : public Model
68{
69public:
72 static const char *TYPE_NAME;
73 static const char *DOF_OPPO_NAMES_PROP;
74 static const char *DOF_EQUAL_NAMES_PROP;
75 static const char *SURFACES_PROP;
77
78 JEM_DECLARE_CLASS(SymBCModel, Model);
79
85 explicit SymBCModel(const String &name,
86 const Properties &conf,
87 const Properties &props,
88 const Properties &globdat);
89
95 virtual bool takeAction(const String &action,
96 const Properties &params,
97 const Properties &globdat) override;
98
105 static Ref<Model> makeNew(const String &name,
106 const Properties &conf,
107 const Properties &props,
108 const Properties &globdat);
109
111 static void declare();
112
113private:
116 void init_(const Properties &globdat);
117
119 void setConstraints_();
120
121private:
122 Assignable<NodeSet> nodes_;
123 Ref<DofSpace> dofs_;
124 Ref<Constraints> cons_;
125 StringVector dofOppoNames_;
126 StringVector dofEqualNames_;
127 StringVector surfaceNames_;
128 IdxVector mainOppoDofs_;
129 IdxVector secondaryOppoDofs_;
130 IdxVector mainEqualDofs_;
131 IdxVector secondaryEqualDofs_;
132 idx_t pbcRank_;
133};
Module for generating periodic boundary condition node groups.
jem::util::ArrayBuffer< idx_t > IdxBuffer
Definition SymBCModel.h:45
Model for symmetry boundary conditions on plane symmetric domains.
Definition SymBCModel.h:68
virtual bool takeAction(const String &action, const Properties &params, const Properties &globdat) override
Handle model actions.
Definition SymBCModel.cpp:67
static const char * SURFACES_PROP
Surface pairs property.
Definition SymBCModel.h:75
static const char * TYPE_NAME
Model type name.
Definition SymBCModel.h:72
static Ref< Model > makeNew(const String &name, const Properties &conf, const Properties &props, const Properties &globdat)
Create new SymBCModel instance.
Definition SymBCModel.cpp:164
static void declare()
Declare model type to factory.
Definition SymBCModel.cpp:170
static const char * DOF_OPPO_NAMES_PROP
Opposing DOF names property.
Definition SymBCModel.h:73
static const char * DOF_EQUAL_NAMES_PROP
Equal DOF names property.
Definition SymBCModel.h:74
file containing some basic helper functions
several compiler macros for faster testing of variables