TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Force_sp.h
1/****************************************************************************
2* Copyright (c) 2019, CEA
3* All rights reserved.
4*
5* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8* 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
9*
10* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
11* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
12* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
13*
14*****************************************************************************/
15
16#ifndef Force_sp_included
17#define Force_sp_included
18
19// #include <iostream>
20#include <string>
21#include <vector>
22
23#include <FixedVector.h>
24#include <Domaine_IJK.h>
25#include <Objet_U.h>
26#include <string>
27#include <iostream>
28#include <math.h>
29#include <Force_ph.h>
30#include <Random_process.h>
31#include <IJK_Field.h>
32// #include <fftw3.h>
33// #include <init_forcage_THI.h>
34
35class Force_sp : public Objet_U
36{
37
38 Declare_instanciable( Force_sp ) ;
39
40public:
41
42 void initialise(int nl, int nn, int nm, int momin, int momax, double kmin, double kmax,std::string nom_fichier);
43 void initialise(int nl, int nn, int nm, int momin, int momax, double kmin, double kmax, double amplitude, std::string nom_fichier);
44 // void initialise(int nl, int nn, int nm, double kmin, double kmax, double amplitude);
45 // void initialise(int nl, int nn, int nm, double kmin, double kmax);
46 // void compute_step2(const std:: vector <double >& process);
47 void compute_step2(ArrOfDouble& process_flt);
48 void field_advection(const ArrOfDouble& advection_length, const double dt, const int it);
49 void set_zero();
57 void compute_door_rope();
58 void compute_door_cube();
62 void write(std::string nom_fichier_sortie, double time);
63 void write_separate(std::string nom_fichier_sortie, double t);
64 void compute_energie();
65 double get_energie();
66 double get_force(int cpx, int dir, int ind);
67 std::vector< std::vector< std:: vector <double >>> get_coeff();
68 // std:: vector <double > get_coeff_flt();
69 ArrOfDouble& get_coeff_flt();
70private:
71
72 int nl = 0;
73 int nm = 0;
74 int nn = 0;
75 int n_lmn = 0;
76 int momin = 0;
77 int momax = 0;
78 double amplitude = 0.;
79 double kmin = 0.;
80 double kmax = 0.;
81 double energie = 0.;
82
83 std::vector< std::vector< std:: vector <double >>> force;
84 ArrOfDouble force_flt;
85};
86
87
88
89#endif
void compute_dirac_point_div_nulle()
Definition Force_sp.cpp:300
void initialise(int nl, int nn, int nm, int momin, int momax, double kmin, double kmax, std::string nom_fichier)
Definition Force_sp.cpp:42
void compute_force_kappa()
Definition Force_sp.cpp:195
void set_zero()
Definition Force_sp.cpp:186
void compute_dirac_point_uniX_alongY()
Definition Force_sp.cpp:562
ArrOfDouble & get_coeff_flt()
Definition Force_sp.cpp:832
std::vector< std::vector< std::vector< double > > > get_coeff()
Definition Force_sp.cpp:826
double get_force(int cpx, int dir, int ind)
Definition Force_sp.cpp:821
void compute_diracs_for_t_times_cos_squarred(double time)
Definition Force_sp.cpp:473
void compute_diracs_for_cos_squarred()
Definition Force_sp.cpp:421
void compute_dirac_board()
Definition Force_sp.cpp:233
void compute_door_cube()
Definition Force_sp.cpp:634
void compute_dirac_point_uniX_alongX()
Definition Force_sp.cpp:525
void compute_step2(ArrOfDouble &process_flt)
Definition Force_sp.cpp:669
double get_energie()
Definition Force_sp.cpp:816
void write(std::string nom_fichier_sortie, double time)
Definition Force_sp.cpp:733
void compute_dirac_point_uniY()
Definition Force_sp.cpp:385
void field_advection(const ArrOfDouble &advection_length, const double dt, const int it)
Definition Force_sp.cpp:120
void compute_energie()
Definition Force_sp.cpp:800
void write_separate(std::string nom_fichier_sortie, double t)
Definition Force_sp.cpp:764
void compute_door_rope()
Definition Force_sp.cpp:599
void compute_dirac_point()
Definition Force_sp.cpp:275
void compute_dirac_point_uniZ()
Definition Force_sp.cpp:347
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
Definition Objet_U.cpp:55