libMesh
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
libMesh::USoln Class Reference

#include <exact_soln.h>

Inheritance diagram for libMesh::USoln:
[legend]

Public Member Functions

 USoln (const Real nu_in, const bool cavity_in)
 
Real operator() (const Point &p) const override
 
Real forcing (const Point &p) const override
 

Private Attributes

const Real nu
 
const bool cavity
 

Detailed Description

Definition at line 45 of file exact_soln.h.

Constructor & Destructor Documentation

◆ USoln()

libMesh::USoln::USoln ( const Real  nu_in,
const bool  cavity_in 
)
inline

Definition at line 48 of file exact_soln.h.

48: nu(nu_in), cavity(cavity_in) {}
const bool cavity
Definition exact_soln.h:87
const Real nu
Definition exact_soln.h:86

Member Function Documentation

◆ forcing()

Real libMesh::USoln::forcing ( const Point p) const
inlineoverridevirtual

Implements libMesh::ExactSoln.

Definition at line 60 of file exact_soln.h.

61 {
62 const auto x = p(0);
63 const auto y = p(1);
64 if (cavity)
65 {
66 return nu * sin(y) * cos((1. / 2) * x * pi) +
67 (1. / 4) * pi * pi * nu * sin(y) * cos((1. / 2) * x * pi) -
68 1. / 2 * pi * sin(x) * sin(y) * sin((1. / 2) * y * pi) * cos((1. / 2) * x * pi) +
69 sin(x) * cos(y) * cos((1. / 2) * x * pi) * cos((1. / 2) * y * pi) -
70 pi * sin(y) * sin(y) * sin((1. / 2) * x * pi) * cos((1. / 2) * x * pi) +
71 sin(y) * cos(x);
72 }
73 else
74 {
75 const auto quant1 = sin((1. / 2) * y * pi);
76 const auto quant2 = cos((1. / 2) * y * pi);
77 return (1. / 2) * pi * pi * nu * sin((1. / 2) * y * pi) * cos((1. / 2) * x * pi) -
78 1. / 2 * pi * sin((1. / 4) * x * pi) * quant1 * quant1 * cos((1. / 2) * x * pi) -
79 1. / 4 * pi * sin((1. / 4) * x * pi) * sin((3. / 2) * y * pi) +
80 (1. / 2) * pi * sin((1. / 4) * x * pi) * cos((1. / 2) * x * pi) * quant2 * quant2 -
81 pi * sin((1. / 2) * x * pi) * quant1 * quant1 * cos((1. / 2) * x * pi);
82 }
83 }
const Real pi
.
Definition libmesh.h:292

References cavity, nu, and libMesh::pi.

◆ operator()()

Real libMesh::USoln::operator() ( const Point p) const
inlineoverridevirtual

Implements libMesh::ExactSoln.

Definition at line 50 of file exact_soln.h.

51 {
52 const auto x = p(0);
53 const auto y = p(1);
54 if (cavity)
55 return sin(y) * cos((1. / 2) * x * pi);
56 else
57 return sin(1. / 2 * y * pi) * cos(1. / 2 * x * pi);
58 }

References cavity, and libMesh::pi.

Member Data Documentation

◆ cavity

const bool libMesh::USoln::cavity
private

Definition at line 87 of file exact_soln.h.

Referenced by forcing(), and operator()().

◆ nu

const Real libMesh::USoln::nu
private

Definition at line 86 of file exact_soln.h.

Referenced by forcing().


The documentation for this class was generated from the following file: