b2api
B2000++ API Reference Manual, VERSION 4.6
 
Loading...
Searching...
No Matches
b2initial_condition.H
Go to the documentation of this file.
1//------------------------------------------------------------------------
2// b2initial_condition.H --
3//
4//
5// written by Mathias Doreille
6//
7// Copyright (c) 2004-2012 SMR Engineering & Development SA
8// 2502 Bienne, Switzerland
9//
10// All Rights Reserved. Proprietary source code. The contents of
11// this file may not be disclosed to third parties, copied or
12// duplicated in any form, in whole or in part, without the prior
13// written permission of SMR.
14//------------------------------------------------------------------------
15
16#ifndef __B2INITIAL_CONDITION_H__
17#define __B2INITIAL_CONDITION_H__
18
19#include "b2ppconfig.h"
20#include "utils/b2linear_algebra.H"
21#include "utils/b2object.H"
22#include "utils/b2type.H"
23
37namespace b2000 {
38
39class Model;
40class Case;
41
43class InitialCondition : public Object {
44public:
46 virtual void set_model(Model& model) = 0;
47
49 virtual void set_case(Case& case_) = 0;
50
51 virtual bool is_zero() = 0;
52
54 static type_t type;
55};
56
58template <typename T>
60public:
81 b2linalg::Matrix<double, b2linalg::Mrectangle>& dof, double& time, int& stage,
82 std::string& domain_state_id) = 0;
83
85 b2linalg::Matrix<std::complex<double>, b2linalg::Mrectangle>& dof, double& time,
86 int& stage, std::string& domain_state_id) {
88 return true;
89 }
109 b2linalg::Vector<double, b2linalg::Vdense_ref> dof, double& time, int& stage,
110 std::string& domain_state_id) {
111 b2linalg::Matrix<double, b2linalg::Mrectangle> dof_tmp;
112 bool res = get_dynamic_initial_condition_value(dof_tmp, time, stage, domain_state_id);
113 dof = dof_tmp[0];
114 return res;
115 }
117 b2linalg::Vector<std::complex<double>, b2linalg::Vdense_ref> dof, double& time,
118 int& stage, std::string& domain_state_id) {
120 return true;
121 }
122
123 typedef ObjectTypeIncomplete<TypedInitialCondition> type_t;
124 static type_t type;
125};
126
127template <typename T>
128typename TypedInitialCondition<T>::type_t TypedInitialCondition<T>::type(
129 "TypedInitialCondition", type_name<T>(), StringList(), b2000_module, &InitialCondition::type);
130
131} // namespace b2000
132#endif
#define THROW
Definition b2exception.H:198
Definition b2case.H:110
Definition b2initial_condition.H:43
virtual void set_model(Model &model)=0
virtual void set_case(Case &case_)=0
Definition b2model.H:69
Definition b2object.H:340
Definition b2object.H:456
Definition b2initial_condition.H:59
virtual bool get_dynamic_initial_condition_value(b2linalg::Matrix< double, b2linalg::Mrectangle > &dof, double &time, int &stage, std::string &domain_state_id)=0
virtual bool get_static_initial_condition_value(b2linalg::Vector< double, b2linalg::Vdense_ref > dof, double &time, int &stage, std::string &domain_state_id)
Definition b2initial_condition.H:108
Contains the base classes for implementing Finite Elements.
Definition b2boundary_condition.H:32
GenericException< UnimplementedError_name > UnimplementedError
Definition b2exception.H:314