Plugins
eddy_current_cmd.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014: G-CSC, Goethe University Frankfurt
3  * Author: Dmitry Logashenko
4  *
5  * This file is part of UG4.
6  *
7  * UG4 is free software: you can redistribute it and/or modify it under the
8  * terms of the GNU Lesser General Public License version 3 (as published by the
9  * Free Software Foundation) with the following additional attribution
10  * requirements (according to LGPL/GPL v3 §7):
11  *
12  * (1) The following notice must be displayed in the Appropriate Legal Notices
13  * of covered and combined works: "Based on UG4 (www.ug4.org/license)".
14  *
15  * (2) The following notice must be displayed at a prominent place in the
16  * terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
17  *
18  * (3) The following bibliography is recommended for citation and must be
19  * preserved in all covered files:
20  * "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
21  * parallel geometric multigrid solver on hierarchically distributed grids.
22  * Computing and visualization in science 16, 4 (2013), 151-164"
23  * "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
24  * flexible software system for simulating pde based models on high performance
25  * computers. Computing and visualization in science 16, 4 (2013), 165-179"
26  *
27  * This program is distributed in the hope that it will be useful,
28  * but WITHOUT ANY WARRANTY; without even the implied warranty of
29  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30  * GNU Lesser General Public License for more details.
31  */
32 
33 /*
34  * Misc. functions and commands for the eddy current simulations.
35  */
36 #ifndef __H__UG__PLUGINS__ELECTROMAGNETISM__EDDY_CURRENT_CMD__
37 #define __H__UG__PLUGINS__ELECTROMAGNETISM__EDDY_CURRENT_CMD__
38 
39 #include <vector>
40 
41 namespace ug{
42 namespace Electromagnetism{
43 
45 template <typename TGridFunc>
46 void calc_power
47 (
48  TGridFunc * pJGGF,
49  size_t JG_fct[],
50  SubsetGroup & JG_ssg,
51  TGridFunc * pEGF,
52  size_t E_fct[],
53  number pow[]
54 );
55 
57 template <typename TGridFunc>
58 void CalcPower
59 (
60  SmartPtr<TGridFunc> spJGGF,
61  const char* JG_cmps,
62  const char* JG_ss,
63  SmartPtr<TGridFunc> spEGF,
64  const char* E_cmps
65 );
66 
68 template <typename TGridFunc>
70 (
71  const TGridFunc * gfE,
72  const size_t fct [2],
73  const SubsetGroup & ss_grp,
74  const MathVector<TGridFunc::dim> & Normal,
75  const typename TGridFunc::domain_type::position_type & base_pnt,
76  const size_t n_pnt,
77  const typename TGridFunc::domain_type::position_type & d_pnt,
78  number flux [2]
79 );
80 
82 template <typename TGridFunc>
84 (
85  SmartPtr<TGridFunc> spGF,
86  const char* cmps,
87  const char* subsets,
88  const std::vector<number>& Normal,
89  const std::vector<number>& base_pnt,
90  const size_t n_pnt,
91  const std::vector<number>& d_pnt
92 );
93 
94 } // end namespace Electromagnetism
95 } // end namespace ug
96 
97 #include "eddy_current_cmd_impl.h"
98 
99 #endif // __H__UG__PLUGINS__ELECTROMAGNETISM__EDDY_CURRENT_CMD__
100 
101 /* End of File */
MathVector< dim > position_type
double number
void calc_power(TGridFunc *pJGGF, size_t JG_fct[], SubsetGroup &JG_ssg, TGridFunc *pEGF, size_t E_fct[], number pow[])
Computes the power of the electromagnetic field (up to the contribution of the boundary)
Definition: eddy_current_cmd_impl.h:223
number calc_magnetic_flux(const TGridFunc *gfE, const size_t fct[2], const SubsetGroup &ss_grp, const MathVector< TGridFunc::dim > &Normal, const typename TGridFunc::domain_type::position_type &base_pnt, const size_t n_pnt, const typename TGridFunc::domain_type::position_type &d_pnt, number flux[2])
Computation of the magnetic flux through windings of a coil.
void CalcPower(SmartPtr< TGridFunc > spJGGF, const char *JG_cmps, const char *JG_ss, SmartPtr< TGridFunc > spEGF, const char *E_cmps)
Prints the (complex-valued) power of the electromagnetic field.
Definition: eddy_current_cmd_impl.h:246
void CalcMagneticFlux(SmartPtr< TGridFunc > spGF, const char *cmps, const char *subsets, const std::vector< number > &Normal, const std::vector< number > &base_pnt, const size_t n_pnt, const std::vector< number > &d_pnt)
Prints of the magnetic flux through windings of a coil.