Peano
Loading...
Searching...
No Matches
Easi.h
Go to the documentation of this file.
1#ifndef EXASEIS_SCENARIOEASI_HEADER
2#define EXASEIS_SCENARIOEASI_HEADER
3#include "Scenario.h"
4#include "easi/ResultAdapter.h"
5#include "easi/YAMLParser.h"
6// #include "../include/easi/reader/asagi_reader.h"
7#include "../easi/reader/asagi_reader.h"
8
10 double lambda;
11 double mu;
12 double rho;
13};
14
15template <class Shortcuts, int basisSize>
16class EasiScen: public Scenario<Shortcuts, basisSize> {
17
18public:
20 Scenario<Shortcuts, basisSize>(info) {
21 asagiReader = new AsagiReader("");
22 easi::YAMLParser parser(3, asagiReader);
23 model = parser.parse("material.yaml");
24 };
25
27 const double* const x,
29 const double t,
30 const double dt,
31 double* Q
32 ) {
33 Shortcuts s;
34
35 ElasticMaterial material[1];
36 easi::ArrayOfStructsAdapter<ElasticMaterial> adapter(material);
37 adapter.addBindingPoint("rho", &ElasticMaterial::rho);
38 adapter.addBindingPoint("mu", &ElasticMaterial::mu);
39 adapter.addBindingPoint("lambda", &ElasticMaterial::lambda);
40
41 easi::Query query(1, 3);
42 query.group(0) = 0;
43 query.x(0, 0) = x[0];
44 query.x(0, 1) = x[1];
45 query.x(0, 2) = x[2];
46
47 model->evaluate(query, adapter);
48
49 Q[s.rho] = material[0].rho;
50 Q[s.cp] = sqrt((material[0].lambda + 2 * material[0].mu) / material[0].rho);
51 Q[s.cs] = sqrt(material[0].mu / material[0].rho);
52 }
53 void refinementCriteria(std::vector<Refinement::RefinementCriterion<Shortcuts>*>& criteria) override {}
54
55private:
56 AsagiReader* asagiReader;
57 easi::Component* model;
58};
59#endif
AsagiReader * asagiReader
Definition Easi.h:56
easi::Component * model
Definition Easi.h:57
void initUnknownsPointwise(const double *const x, const tarch::la::Vector< Dimensions, double > &center, const double t, const double dt, double *Q)
Definition Easi.h:26
EasiScen(DomainInformation *info)
Definition Easi.h:19
void refinementCriteria(std::vector< Refinement::RefinementCriterion< Shortcuts > * > &criteria) override
Definition Easi.h:53
DomainInformation * info
Definition Scenario.h:35
double rho
Definition Easi.h:12
double mu
Definition Easi.h:11
double lambda
Definition Easi.h:10
Simple vector class.
Definition Vector.h:159