LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
vector_calculus_surfaces.hpp
浏览该文件的文档.
1#pragma once
2
4
5namespace LMCAS {
6
7/**
8 * @brief 计算第一类曲面积分(标量场在曲面上的积分)。
9 *
10 * 计算 ∬ f(r(u,v))·|r_u × r_v| du dv,其中 r(u,v) 为参数化曲面。
11 *
12 * @param[in] f 标量函数表达式(以坐标变量表示)
13 * @param[in] parametrization 参数化曲面 [x(u,v), y(u,v), z(u,v)]
14 * @param[in] u 第一参数变量名
15 * @param[in] v 第二参数变量名
16 * @param[in] u_lower u 参数下界
17 * @param[in] u_upper u 参数上界
18 * @param[in] v_lower v 参数下界
19 * @param[in] v_upper v 参数上界
20 * @return 曲面积分结果表达式
21 */
23 const std::shared_ptr<SymbolicExpr>& f, const VectorField& parametrization,
24 const std::string& u, const std::string& v,
25 const std::shared_ptr<SymbolicExpr>& u_lower, const std::shared_ptr<SymbolicExpr>& u_upper,
26 const std::shared_ptr<SymbolicExpr>& v_lower, const std::shared_ptr<SymbolicExpr>& v_upper,
28
29/** @brief 用默认上下文计算第一类曲面积分,报告无效输入与未覆盖域。 */
31 const std::shared_ptr<SymbolicExpr>& f, const VectorField& parametrization,
32 const std::string& u, const std::string& v,
33 const std::shared_ptr<SymbolicExpr>& u_lower, const std::shared_ptr<SymbolicExpr>& u_upper,
34 const std::shared_ptr<SymbolicExpr>& v_lower, const std::shared_ptr<SymbolicExpr>& v_upper);
35
36LMCAS_API std::shared_ptr<SymbolicExpr> surface_integral_scalar(
37 const std::shared_ptr<SymbolicExpr>& f, const VectorField& parametrization,
38 const std::string& u, const std::string& v,
39 const std::shared_ptr<SymbolicExpr>& u_lower, const std::shared_ptr<SymbolicExpr>& u_upper,
40 const std::shared_ptr<SymbolicExpr>& v_lower, const std::shared_ptr<SymbolicExpr>& v_upper);
41
42/**
43 * @brief 计算第二类曲面积分(向量场通过曲面的通量)。
44 *
45 * 计算 ∬ F·(r_u × r_v) du dv,其中 r(u,v) 为参数化曲面。
46 *
47 * @param[in] F 向量场(三分量,以坐标变量表示)
48 * @param[in] parametrization 参数化曲面 [x(u,v), y(u,v), z(u,v)]
49 * @param[in] u 第一参数变量名
50 * @param[in] v 第二参数变量名
51 * @param[in] u_lower u 参数下界
52 * @param[in] u_upper u 参数上界
53 * @param[in] v_lower v 参数下界
54 * @param[in] v_upper v 参数上界
55 * @return 曲面积分结果表达式
56 */
59 const std::string& u, const std::string& v,
60 const std::shared_ptr<SymbolicExpr>& u_lower, const std::shared_ptr<SymbolicExpr>& u_upper,
61 const std::shared_ptr<SymbolicExpr>& v_lower, const std::shared_ptr<SymbolicExpr>& v_upper,
63
64/** @brief 用默认上下文计算第二类曲面积分,报告无效输入与未覆盖域。 */
67 const std::string& u, const std::string& v,
68 const std::shared_ptr<SymbolicExpr>& u_lower, const std::shared_ptr<SymbolicExpr>& u_upper,
69 const std::shared_ptr<SymbolicExpr>& v_lower, const std::shared_ptr<SymbolicExpr>& v_upper);
70
71LMCAS_API std::shared_ptr<SymbolicExpr> surface_integral_vector(
73 const std::string& u, const std::string& v,
74 const std::shared_ptr<SymbolicExpr>& u_lower, const std::shared_ptr<SymbolicExpr>& u_upper,
75 const std::shared_ptr<SymbolicExpr>& v_lower, const std::shared_ptr<SymbolicExpr>& v_upper);
76
77}
#define LMCAS_API
__attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) std const VectorField const std::string const std::string & v
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
VectorCalculusExprResult surface_integral_scalar_checked(const std::shared_ptr< SymbolicExpr > &f, const VectorField &parametrization, const std::string &u, const std::string &v, const std::shared_ptr< SymbolicExpr > &u_lower, const std::shared_ptr< SymbolicExpr > &u_upper, const std::shared_ptr< SymbolicExpr > &v_lower, const std::shared_ptr< SymbolicExpr > &v_upper, ComputationContext &context)
__attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) std const VectorField const std::string const std::string const std::shared_ptr< SymbolicExpr > const std::shared_ptr< SymbolicExpr > const std::shared_ptr< SymbolicExpr > & v_lower
__attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) std const VectorField const std::string const std::string const std::shared_ptr< SymbolicExpr > & u_lower
VectorCalculusExprResult surface_integral_vector_checked(const VectorField &F, const VectorField &parametrization, const std::string &u, const std::string &v, const std::shared_ptr< SymbolicExpr > &u_lower, const std::shared_ptr< SymbolicExpr > &u_upper, const std::shared_ptr< SymbolicExpr > &v_lower, const std::shared_ptr< SymbolicExpr > &v_upper, ComputationContext &context)
__attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) std const VectorField const std::string const std::string const std::shared_ptr< SymbolicExpr > const std::shared_ptr< SymbolicExpr > const std::shared_ptr< SymbolicExpr > const std::shared_ptr< SymbolicExpr > & v_upper
std::vector< std::shared_ptr< SymbolicExpr > > VectorField
向量场由标量表达式组成。
std::shared_ptr< SymbolicExpr > surface_integral_scalar(const std::shared_ptr< SymbolicExpr > &f, const VectorField &parametrization, const std::string &u, const std::string &v, const std::shared_ptr< SymbolicExpr > &u_lower, const std::shared_ptr< SymbolicExpr > &u_upper, const std::shared_ptr< SymbolicExpr > &v_lower, const std::shared_ptr< SymbolicExpr > &v_upper)
__attribute__((visibility("default"))) VectorCalculusExprResult curve_integral_scalar_checked(const std __attribute__((visibility("default"))) VectorCalculusExprResult curve_integral_scalar_checked(const std __attribute__((visibility("default"))) std const VectorField & parametrization
Result< std::shared_ptr< SymbolicExpr > > VectorCalculusExprResult
__attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) std const VectorField const std::string const std::string const std::shared_ptr< SymbolicExpr > const std::shared_ptr< SymbolicExpr > & u_upper
std::shared_ptr< SymbolicExpr > surface_integral_vector(const VectorField &F, const VectorField &parametrization, const std::string &u, const std::string &v, const std::shared_ptr< SymbolicExpr > &u_lower, const std::shared_ptr< SymbolicExpr > &u_upper, const std::shared_ptr< SymbolicExpr > &v_lower, const std::shared_ptr< SymbolicExpr > &v_upper)
__attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) VectorCalculusExprResult surface_integral_scalar_checked(const std __attribute__((visibility("default"))) std const VectorField const std::string & u